แอปต้องเรียกบริการภายนอกโดยกำหนด timeout retry และ circuit breaker อย่างเหมาะสม จึงถามว่า เว็บแอปพลิเคชันใช้ Containerization ด้วย Docker และ Kubernetes สำหรับการ Deploy แนวคิด Immutable Infrastructure ที่ใช้ควบคู่กันหมายความว่าอย่างไรและมีประโยชน์อย่างไร
กโครงสร้างพื้นฐานที่ไม่เคยต้องการ Update หรือ Patch เลยตลอดช่วงการใช้งาน
ขการใช้ Hardware ที่ไม่สามารถเปลี่ยนแปลงได้เพื่อประหยัดค่าใช้จ่าย
คแทนที่จะแก้ไข Server ที่กำลังทำงาน ให้สร้าง Container Image ใหม่ที่มีการเปลี่ยนแปลงแล้ว Deploy แทนของเดิม ทำให้สภาพแวดล้อมสม่ำเสมอและสามารถ Rollback ได้ง่าย
งการ Lock Configuration ไม่ให้ Developer ทุกคนแก้ไขได้โดยไม่ผ่านการอนุมัติ
เฉลยอธิบาย
Immutable Infrastructure หมายถึงแทนที่จะ SSH เข้าไปแก้ไข Server ที่ Running (Mutable) ให้สร้าง Artifact ใหม่ (Docker Image) ที่รวมการเปลี่ยนแปลงทั้งหมดแล้ว Deploy ใหม่ทั้งหมด ข้อดี: (1) สภาพแวดล้อม Production ตรงกับ Development เสมอ (2) Rollback ทำได้โดย Deploy Image เวอร์ชันก่อนหน้า (3) ลด Configuration Drift ตัวเลือก A ผิดเพราะ Immutable ไม่ได้แปลว่าไม่ Update แต่ Update ด้วยการ Replace ไม่ใช่ Modify, ตัวเลือก C เกี่ยวกับ Hardware ไม่ใช่แนวคิดนี้, ตัวเลือก D เป็นเรื่อง Access Control ไม่ใช่ Immutable Infrastructure