Lesson 4Promotion

Quality Gates and Environment Promotion

Quality gate คือเงื่อนไขที่ต้องผ่านก่อน change จะไป environment ถัดไป เป้าหมายคือจับปัญหาเร็วและปล่อย production อย่างมีหลักฐาน

IaC validation

สำหรับ Terraform pipeline ควรมี fmt, validate, module tests ตามความเหมาะสม และ plan ที่ถูกแนบใน Pull Request หรือ approval record เพื่อให้ reviewer เห็น resource changes จริง

terraform fmt -check -recursive
terraform init -backend=false
terraform validate
terraform plan -out tfplan

Security scanning

  • Dependency scan สำหรับ application packages
  • Container image scan ก่อน push/deploy
  • IaC scan เช่น public S3, open Security Group, missing encryption
  • Secret scan เพื่อกัน credentials หลุดเข้า repository

Environment separation

แยก dev, staging และ production ด้วย account, role, state backend, secrets และ approval policy Artifact ควรถูก promote จาก environment ก่อนหน้า ไม่ใช่ rebuild ใหม่ด้วย code เดิม เพราะ rebuild อาจได้ dependency version ต่างกัน

Production approval

Approval ควรเป็นการตรวจหลักฐาน ไม่ใช่แค่กดปุ่ม ควรเห็น diff, test result, risk, rollback plan, owner, deployment window และ expected metrics

Production rule: ถ้า rollback ยังไม่ชัด อย่า deploy production แม้ pipeline checks จะผ่านทั้งหมด

Common mistakes

  • ให้ pipeline ไป production ได้ทันทีจากทุก branch
  • ใช้ environment variables production ใน CI logs หรือ test output
  • ไม่เก็บ Terraform plan/result ไว้ตรวจย้อนหลัง

Review questions

  1. Quality gate ที่ดีควรตรวจอะไรบ้าง?
  2. ทำไมควร promote artifact แทน rebuild ก่อน production?
  3. Production approval ควรดูหลักฐานอะไร?