บันทึกการตัดสินใจด้านสถาปัตยกรรม: การจัดการคอนเทนเนอร์ด้วย Kubernetes
คำชี้แจงปัญหา
เราต้องเลือกแพลตฟอร์มจัดการคอนเทนเนอร์สำหรับพอร์ตโฟลิโอแอปพลิเคชันแบบคลาวด์เนทีฟที่กำลังเติบโตของเรา การติดตั้งใช้งานบนแพลตฟอร์มเดิมของเราปัจจุบันช้าเกินไปและไม่คล่องตัวพอที่จะตามความต้องการที่เติบโตของเรา เรากำลังมองหาระบบที่ช่วยให้เราปรับขนาดบริการของเราได้อย่างมีประสิทธิภาพที่สุดโดยไม่ลดทอนความคล่องตัวหรือความง่ายในการใช้งาน
ทางเลือกที่พิจารณา
Docker Swarm
Kubernetes
Apache Mesos
การตัดสินใจที่ทำ
หลังจากวิเคราะห์แพลตฟอร์มจัดการคอนเทนเนอร์แต่ละตัวอย่างละเอียด เราตัดสินใจนำ Kubernetes มาใช้เป็นทางเลือกที่ดีที่สุดสำหรับความต้องการขององค์กร เหตุผลที่เราเลือก Kubernetes มีดังนี้:
ความสามารถในการปรับขนาด: การออกแบบที่เป็นเอกลักษณ์ของ Kubernetes เหมาะอย่างยิ่งสำหรับการปรับขนาดแอปพลิเคชัน และเมื่อข้อกำหนดด้านการปรับขนาดของเราพัฒนาไปตามเวลา Kubernetes มีความสามารถในตัวที่จะรองรับการเปลี่ยนแปลงเหล่านี้ได้โดยไม่มีปัญหา
สถาปัตยกรรมแบบกระจายศูนย์: โทโพโลยี master-worker ของ Kubernetes รับประกันสถาปัตยกรรมแบบกระจายศูนย์ซึ่งทำให้ไม่มีจุดล้มเหลวเดียว
การสนับสนุนจากชุมชน: Kubernetes มีชุมชนโอเพนซอร์สที่ใหญ่และคึกคักที่สุด หมายความว่ามีผู้มีส่วนร่วม นักพัฒนา และผู้ขายจำนวนมาก ทำให้เราขอความช่วยเหลือและหาทรัพยากรได้ง่ายขึ้น
การสนับสนุนจากระบบนิเวศ: Kubernetes มีระบบนิเวศที่เติบโตพร้อมเครื่องมือของบุคคลที่สามหลากหลาย การทำงานร่วมกับรีจิสทรีคอนเทนเนอร์ ไปป์ไลน์ CI/CD การจัดเก็บข้อมูล และอื่น ๆ
ดังนั้น เราจึงตัดสินใจนำ Kubernetes มาใช้เป็นแพลตฟอร์มจัดการคอนเทนเนอร์ของเราสำหรับปัจจุบันและอนาคตอันใกล้