แอปต้องเรียกบริการภายนอกโดยกำหนด timeout retry และ circuit breaker อย่างเหมาะสม จึงถามว่า ทีมพัฒนากำลังพิจารณาระหว่างสถาปัตยกรรม Monolithic กับ Microservices สำหรับเว็บแอปพลิเคชัน Startup ที่เพิ่งเริ่มต้น ยังไม่แน่ใจใน Business Requirements และมีทีมพัฒนาขนาดเล็ก 3 คน ควรเลือกสถาปัตยกรรมใดและเพราะเหตุใด

Monolithic เพราะพัฒนาเร็วกว่า จัดการง่ายกว่า และเหมาะกับทีมเล็กที่ยังไม่ชัดเจนใน Requirements
Serverless Architecture เพราะไม่ต้องจัดการ Infrastructure เลย
Event-Driven Architecture เพราะรองรับ Real-time ได้ดีที่สุด
Microservices เพราะรองรับการขยายในอนาคตได้ดีกว่าตั้งแต่ต้น

เฉลยอธิบาย

สำหรับ Startup ทีมเล็กที่ Requirements ยังไม่ชัดเจน Monolithic Architecture เหมาะสมที่สุดตามหลัก YAGNI (You Aren't Gonna Need It) เพราะพัฒนาและ Deploy ง่าย Debug ง่าย Overhead ต่ำ เมื่อระบบโตขึ้นจึงค่อยแยกเป็น Microservices ส่วน A Microservices มี Operational Complexity สูงมาก (Service Discovery, Network Latency, Distributed Tracing) ไม่เหมาะกับทีมเล็ก, C และ D เป็นสถาปัตยกรรมที่เหมาะกับ Use Case เฉพาะทาง ไม่ใช่คำตอบทั่วไปสำหรับ Startup

ข้อสอบอื่นในวิชาความรู้เกี่ยวกับการพัฒนาโปรแกรมระบบงานในลักษณะ Web Application

ดูข้อสอบวิชานี้ทั้งหมด →