การสร้างไปป์ไลน์ด้วย CodePipeline
การทำ Deployment อัตโนมัติบน AWS
Dunieski Otano
Amazon Web Services Solutions Architect
ไปป์ไลน์แบบหลายขั้นตอน
องค์ประกอบของไปป์ไลน์ CodePipeline
ไปป์ไลน์คือลำดับของ
stage
แต่ละ stage มี
action group
ที่ประกอบด้วย
action
action สร้างและใช้
artifact
(จัดเก็บใน S3)
stage ถัดไปใช้ artifact เป็นอินพุต
การเชื่อมต่อ source, build และ deploy
Source stage
: CodeCommit ตรวจพบการ push แล้วส่งออก source artifact
Build stage
: CodeBuild รับ source artifact แล้วส่งออก build artifact
Deploy stage
: CodeDeploy รับ build artifact แล้ว deploy ไปยัง target
ไปป์ไลน์รันตั้งแต่ต้นจนจบทุกครั้งที่มีการ push โค้ด
การทำงานแบบ Manual Approval
Manual approval
: จุดตรวจสอบโดยคนระหว่าง stage
ไปป์ไลน์จะหยุดรอจนกว่าจะมีคนอนุมัติหรือปฏิเสธ
ใช้บ่อยเป็นจุดตรวจสอบระหว่าง staging และ production
สถานะจะแสดง "
Waiting for approval
" และรองรับการแจ้งเตือนผ่าน SNS
การควบคุม stage transition และไปป์ไลน์
เปิด/ปิด transition
ระหว่าง stage
ปิดเพื่อหยุดไปป์ไลน์ ณ จุดที่ต้องการ
Retry failed actions
โดยไม่ต้องรันไปป์ไลน์ใหม่ทั้งหมด
Release change
แบบแมนนวลเพื่อ push revision ที่ต้องการ
การแจ้งเตือน event ของไปป์ไลน์
CodePipeline ส่ง event ไปยัง
Amazon EventBridge
Event ที่ส่ง ได้แก่ pipeline started, stage succeeded, stage failed
สร้าง
EventBridge rules
เพื่อส่ง event ไปยัง target
SNS topics สำหรับแจ้งเตือนผ่านอีเมลหรือ SMS
Lambda functions สำหรับ automation ที่กำหนดเอง
รายละเอียดของ event ประกอบด้วยชื่อ pipeline, ชื่อ stage และสาเหตุที่ล้มเหลว
การออกแบบไปป์ไลน์แบบหลาย environment
ไปป์ไลน์เดียว deploy ไปยัง
หลาย environment
build ครั้งเดียวแล้ว promote ต่อไป: Dev -> Staging -> Approval -> Prod
artifact เดียวกันไหลผ่านทุก environment
สิ่งที่ทดสอบคือสิ่งที่ deploy จริง
มาฝึกกันเถอะ!
การทำ Deployment อัตโนมัติบน AWS
Preparing Video For Download...