CI/CD บน AWS เบื้องต้น

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

Dunieski Otano

Amazon Web Services Solutions Architect

วงจรต่อเนื่อง

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

รู้จักผู้สอน

dunieski-otano-instructor-with-aws-certifications.png

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

เหตุใด CI/CD จึงสำคัญ

  • การดีพลอยด้วยมือช้าและเกิดข้อผิดพลาดได้ง่าย
  • นักพัฒนาพุชโค้ด แล้วต้องรอให้คนอื่นมาดีพลอย
  • CI/CD ทำให้เส้นทางจากโค้ดสู่โปรดักชันเป็นไปโดยอัตโนมัติ
  • ปล่อยรุ่นได้เร็วขึ้น ข้อผิดพลาดน้อยลง

 

ci_cd

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

วงจรชีวิตของ CI/CD

  • Source: โค้ดถูกคอมมิตเข้าสู่รีพอสิทอรี
  • Build: คอมไพล์โค้ดและติดตั้ง dependency
  • Test: การทดสอบอัตโนมัติตรวจสอบความถูกต้องของ build
  • Deploy: แอปพลิเคชันถูกปล่อยใช้งาน อาร์ทิแฟกต์ส่งต่อระหว่างขั้นตอน

วงจรชีวิต

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

ภาพรวมบริการ AWS Code

  • CodeCommit: ระบบควบคุมซอร์สโค้ด (Git repository)
  • CodeBuild: คอมไพล์ ทดสอบ และแพ็กเกจ
  • CodeDeploy: ปล่อยไปยัง EC2, Lambda หรือ ECS
  • CodePipeline: ประสานทุกขั้นตอนเข้าด้วยกัน

   

 

ภาพบริการ Code services

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

CI เทียบกับ Continuous Delivery และ Continuous Deployment

  • Continuous Integration (CI): รวมโค้ด สร้าง และทดสอบทุกครั้งที่พุช
  • Continuous Delivery: ดีพลอยไปยัง staging โดยอัตโนมัติ ต้องอนุมัติด้วยตนเองก่อนขึ้น production (พบมากที่สุด)
  • Continuous Deployment: ทุก build ที่ผ่านการทดสอบจะถูกปล่อยใช้งานจริงโดยอัตโนมัติ

 

three-tier

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

CodePipeline ประสานการทำงานทั้งหมดอย่างไร

cp

  • CodePipeline เชื่อมต่อขั้นตอนต่างๆ ตามลำดับ
  • แต่ละขั้นตอนประกอบด้วย action หนึ่งอย่างหรือมากกว่า
  • ไปป์ไลน์ทำงานโดยอัตโนมัติเมื่อซอร์สมีการเปลี่ยนแปลง
  • หากขั้นตอนใดล้มเหลว ไปป์ไลน์จะหยุดทำงาน
การทำ Deployment อัตโนมัติบน AWS

ตัวอย่างไปป์ไลน์ในโลกจริง

  • Source: นักพัฒนาพุชโค้ดไปยัง CodeCommit
  • Build: CodeBuild รันการทดสอบและแพ็กเกจเป็นไฟล์ ZIP
  • Staging: CodeDeploy ปล่อยไปยัง staging
  • Approval => Production: หัวหน้าทีมอนุมัติ แล้วดีพลอยขึ้น production

 

ตัวอย่างไปป์ไลน์จริง

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

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

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

Preparing Video For Download...