CI/CD บน AWS เบื้องต้น
การทำ Deployment อัตโนมัติบน AWS
Dunieski Otano
Amazon Web Services Solutions Architect
วงจรต่อเนื่อง
รู้จักผู้สอน
เหตุใด CI/CD จึงสำคัญ
การดีพลอยด้วยมือช้าและเกิดข้อผิดพลาดได้ง่าย
นักพัฒนาพุชโค้ด แล้วต้องรอให้คนอื่นมาดีพลอย
CI/CD ทำให้เส้นทางจากโค้ดสู่โปรดักชันเป็นไปโดยอัตโนมัติ
ปล่อยรุ่นได้เร็วขึ้น ข้อผิดพลาดน้อยลง
วงจรชีวิตของ CI/CD
Source
: โค้ดถูกคอมมิตเข้าสู่รีพอสิทอรี
Build
: คอมไพล์โค้ดและติดตั้ง dependency
Test
: การทดสอบอัตโนมัติตรวจสอบความถูกต้องของ build
Deploy
: แอปพลิเคชันถูกปล่อยใช้งาน อาร์ทิแฟกต์ส่งต่อระหว่างขั้นตอน
ภาพรวมบริการ AWS Code
CodeCommit
: ระบบควบคุมซอร์สโค้ด (Git repository)
CodeBuild
: คอมไพล์ ทดสอบ และแพ็กเกจ
CodeDeploy
: ปล่อยไปยัง EC2, Lambda หรือ ECS
CodePipeline
: ประสานทุกขั้นตอนเข้าด้วยกัน
CI เทียบกับ Continuous Delivery และ Continuous Deployment
Continuous Integration (CI)
: รวมโค้ด สร้าง และทดสอบทุกครั้งที่พุช
Continuous Delivery
: ดีพลอยไปยัง staging โดยอัตโนมัติ ต้องอนุมัติด้วยตนเองก่อนขึ้น production
(พบมากที่สุด)
Continuous Deployment
: ทุก build ที่ผ่านการทดสอบจะถูกปล่อยใช้งานจริงโดยอัตโนมัติ
CodePipeline ประสานการทำงานทั้งหมดอย่างไร
CodePipeline เชื่อมต่อขั้นตอนต่างๆ ตามลำดับ
แต่ละขั้นตอนประกอบด้วย
action
หนึ่งอย่างหรือมากกว่า
ไปป์ไลน์ทำงานโดยอัตโนมัติเมื่อซอร์สมีการเปลี่ยนแปลง
หากขั้นตอนใดล้มเหลว ไปป์ไลน์จะหยุดทำงาน
ตัวอย่างไปป์ไลน์ในโลกจริง
Source
: นักพัฒนาพุชโค้ดไปยัง CodeCommit
Build
: CodeBuild รันการทดสอบและแพ็กเกจเป็นไฟล์ ZIP
Staging
: CodeDeploy ปล่อยไปยัง staging
Approval => Production
: หัวหน้าทีมอนุมัติ แล้วดีพลอยขึ้น production
มาฝึกกันเถอะ!
การทำ Deployment อัตโนมัติบน AWS
Preparing Video For Download...