การจัดการสภาพแวดล้อมและเวอร์ชันที่ผ่านการอนุมัติ

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

Dunieski Otano

Amazon Web Services Solutions Architect

โค้ดเดียวกัน สามสภาพแวดล้อม

โค้ดเดียวกัน

  • เลื่อนเวอร์ชันของ Lambda จาก staging ไปยัง prod
  • อาร์ติแฟกต์เดียวกัน ไม่ต้องสร้างใหม่
  • เรียก API ครั้งเดียวก็อัปเดต alias ของ prod ได้ โดยโค้ดไม่เปลี่ยนแปลง
  • นี่คือแนวคิด "build once, deploy many"
การทำ Deployment อัตโนมัติบน AWS

เวอร์ชันที่ผ่านการอนุมัติ แยกตามบริการ

เวอร์ชัน

  • Lambda: alias ชี้ไปยังเวอร์ชันของฟังก์ชัน
  • ECR + ECS: แท็กของอิมเมจ + revision ของ task-definition
  • API Gateway: stage พร้อมการ deploy
  • S3: เวอร์ชันของอ็อบเจ็กต์ในบัคเก็ตที่เปิดใช้งาน versioning
การทำ Deployment อัตโนมัติบน AWS

การทำงานของ Lambda alias

3 เวอร์ชัน

  • เวอร์ชันคือ สแนปช็อตที่เปลี่ยนแปลงไม่ได้ ของฟังก์ชัน
  • alias คือ พอยน์เตอร์ที่มีชื่อ ซึ่งชี้ไปยังเวอร์ชันหนึ่ง
  • อัปเดต alias เพื่อ เลื่อนระดับ เวอร์ชัน
  • alias รองรับ การจัดสรรทราฟฟิกแบบถ่วงน้ำหนัก สำหรับ canary release
การทำ Deployment อัตโนมัติบน AWS

แท็กของ ECR และ task definition ของ ECS

  • อิมเมจของ ECR เปลี่ยนแปลงไม่ได้ตาม digest
  • แท็กคือ ป้ายชื่อที่เคลื่อนย้ายได้ บน digest
  • task definition ของ ECS อ้างอิงด้วย image:tag หรือ @digest
  • สำหรับ production ให้ ระบุตาม digest เพื่อล็อกบิตที่แน่นอน

ecr

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

stage ของ API Gateway แบบสั้นๆ

  • stage คือ การ deploy ของ API
  • แต่ละ stage มี URL และ ประวัติการ deploy ของตัวเอง
  • เลื่อนระดับด้วยการ deploy API ไปยัง stage ถัดไป
  • ตัวแปรของ stage เก็บ ค่ารันไทม์เฉพาะของแต่ละสภาพแวดล้อม

api-2

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

การเลื่อนระดับเวอร์ชัน

  • สร้างอาร์ติแฟกต์ ครั้งเดียว
  • ตรวจสอบใน dev จากนั้นเป็น staging
  • อัปเดต alias หรือแท็กของ prod โดย ไม่ต้องสร้างใหม่
  • อาร์ติแฟกต์เดียวกันทำงานได้ในทุกสภาพแวดล้อม

การเลื่อนระดับ

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

แยกการกำหนดค่าออกจากโค้ด

แยกกัน

  • โค้ดเหมือนกัน ในทุกสภาพแวดล้อม
  • การกำหนดค่า เก็บความแตกต่างระหว่าง dev กับ prod
  • ตัวแปรของ stage, env vars, Parameter Store, Secrets Manager
  • ห้าม hardcode ค่าของสภาพแวดล้อมไว้ในอาร์ติแฟกต์
การทำ Deployment อัตโนมัติบน AWS

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

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

Preparing Video For Download...