การสร้างไปป์ไลน์ด้วย CodePipeline

การทำ Deployment อัตโนมัติบน AWS

Dunieski Otano

Amazon Web Services Solutions Architect

ไปป์ไลน์แบบหลายขั้นตอน

video2-preview-multi-stage-pipeline-with-artifacts-approval-eventbridge.png

การทำ Deployment อัตโนมัติบน AWS

องค์ประกอบของไปป์ไลน์ CodePipeline

  • ไปป์ไลน์คือลำดับของ stage
  • แต่ละ stage มี action group ที่ประกอบด้วย action
  • action สร้างและใช้ artifact (จัดเก็บใน S3)
  • stage ถัดไปใช้ artifact เป็นอินพุต

codepipeline-anatomy-stages-actions-artifacts.png

การทำ Deployment อัตโนมัติบน AWS

การเชื่อมต่อ source, build และ deploy

  • Source stage: CodeCommit ตรวจพบการ push แล้วส่งออก source artifact
  • Build stage: CodeBuild รับ source artifact แล้วส่งออก build artifact
  • Deploy stage: CodeDeploy รับ build artifact แล้ว deploy ไปยัง target
  • ไปป์ไลน์รันตั้งแต่ต้นจนจบทุกครั้งที่มีการ push โค้ด

3-stage-pipeline

การทำ Deployment อัตโนมัติบน AWS

การทำงานแบบ Manual Approval

  • Manual approval: จุดตรวจสอบโดยคนระหว่าง stage
  • ไปป์ไลน์จะหยุดรอจนกว่าจะมีคนอนุมัติหรือปฏิเสธ
  • ใช้บ่อยเป็นจุดตรวจสอบระหว่าง staging และ production
  • สถานะจะแสดง "Waiting for approval" และรองรับการแจ้งเตือนผ่าน SNS

manual-approval-gate-team-lead-reviewing-pipeline.png

การทำ Deployment อัตโนมัติบน AWS

การควบคุม stage transition และไปป์ไลน์

  • เปิด/ปิด transition ระหว่าง stage
    • ปิดเพื่อหยุดไปป์ไลน์ ณ จุดที่ต้องการ
  • Retry failed actions โดยไม่ต้องรันไปป์ไลน์ใหม่ทั้งหมด
  • Release change แบบแมนนวลเพื่อ push revision ที่ต้องการ

 

codepipeline-stage-transition-controls-retry-release.png

การทำ Deployment อัตโนมัติบน AWS

การแจ้งเตือน event ของไปป์ไลน์

codepipeline-anatomy-stages-actions-artifacts.png

  • CodePipeline ส่ง event ไปยัง Amazon EventBridge
  • Event ที่ส่ง ได้แก่ pipeline started, stage succeeded, stage failed
  • สร้าง EventBridge rules เพื่อส่ง event ไปยัง target
    • SNS topics สำหรับแจ้งเตือนผ่านอีเมลหรือ SMS
    • Lambda functions สำหรับ automation ที่กำหนดเอง
  • รายละเอียดของ event ประกอบด้วยชื่อ pipeline, ชื่อ stage และสาเหตุที่ล้มเหลว
การทำ Deployment อัตโนมัติบน AWS

การออกแบบไปป์ไลน์แบบหลาย environment

  • ไปป์ไลน์เดียว deploy ไปยัง หลาย environment
  • build ครั้งเดียวแล้ว promote ต่อไป: Dev -> Staging -> Approval -> Prod
  • artifact เดียวกันไหลผ่านทุก environment
  • สิ่งที่ทดสอบคือสิ่งที่ deploy จริง

multi-environment-pipeline-dev-staging-approval-prod.png

การทำ Deployment อัตโนมัติบน AWS

มาฝึกกันเถอะ!

การทำ Deployment อัตโนมัติบน AWS

Preparing Video For Download...