ทีมต้องเขียนการทดสอบที่แยกกฎธุรกิจออกจากฐานข้อมูลและเครือข่าย จึงถามว่า ทีมพัฒนากำลังถกเถียงระหว่างการใช้ Monolithic Architecture กับ Microservices Architecture สำหรับระบบ E-Commerce ขนาดกลาง ที่มีทีมพัฒนา 5 คน และคาดว่าจะเติบโตเป็น 3 เท่าใน 2 ปี การตัดสินใจที่เหมาะสมที่สุดคืออะไรและเพราะเหตุใด

เลือก Serverless Architecture เพราะไม่ต้องดูแล Server และมีความยืดหยุ่นมากขึ้น
เลือก Microservices ทันที เพราะรองรับการขยายตัวได้ดีกว่าและลดความเสี่ยงในอนาคต
เลือก Microservices แบบ Partial โดยแยกเฉพาะ Module Payment ออกมา ส่วนอื่นคง Monolithic
เลือก Monolithic ก่อน เพราะทีมขนาดเล็กบริหารจัดการง่ายกว่า และสามารถ Migrate ไป Microservices เมื่อระบบโตพอ

เฉลยอธิบาย

แนวคิด 'Monolith First' ของ Martin Fowler แนะนำว่าทีมขนาดเล็กควรเริ่มด้วย Monolithic ก่อน เพราะ Microservices มีความซับซ้อนด้าน Network Latency, Distributed Transaction, Service Discovery และ DevOps Overhead สูง ทีม 5 คนจะเสียเวลากับ Infrastructure มากกว่า Feature จริง ตัวเลือก ก เพิ่มความซับซ้อนโดยไม่จำเป็นในตอนนี้ ตัวเลือก ค Partial Microservices ยิ่งซับซ้อนกว่าเดิม ตัวเลือก ง Microservices ทันทีเสี่ยงต่อ Over-engineering

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

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