ปีที่ผ่านมาเราได้ยินคำว่า Kubernetes กันมากมาย องค์กรจำนวนมากที่มีระบบไอทีที่ซับซ้อนสักหน่อยคงสนใจอยากศึกษาดูว่าการใช้ Kubernetes จะช่วยให้องค์กรบริหารระบบไอทีมีประสิทธิภาพดีขึ้นได้อย่างไร
ก่อนหน้าที่ Kubernetes จะโด่งดังขึ้นมานั้น การใช้คอนเทนเนอร์หรือที่มักเรียกตามแบรนด์ว่า Docker เป็นระบบจัดสร้าง “สภาพแวดล้อม” สำหรับรันแอปพลิเคชั่นที่ได้รับความนิยมอย่างสูง การแพ็กแอปพลิเคชั่นเป็นคอนเทนเทอร์ทำให้ไม่ต้องกังวลว่าจะเจอเหตุการณ์ขัดกัน เช่นตัวแอปต้องการระบบปฎิบัติการรุ่นหนึ่งแต่ระบบฐานข้อมูลต้องการอีกรุ่นหนึ่ง หลังเราแพ็กแอปพลิเคชั่นทั้งหมดไปอยู่บนคอนเทนเนอร์แล้ว แอปพลิเคชั่นทั้งหมดก็จะอยู่ร่วมกันได้ โดยมีข้อดีกว่าการแบ่งเครื่องเป็น virtual machine (VM) ทุกวันนี้ คือการใช้ทรัพยากรของตัวคอนเทนเนอร์น้อยกว่า VM มาก มีโอกาสที่เราจะอัดแอปพลิเคชั่นจำนวนมากขึ้นเข้าไปในฮาร์ดแวร์เดิมโดยประสิทธิภาพไม่ลดลง
หากเรามีแอปจำนวนไม่มากนัก หรือระบบที่ไม่ซับซ้อน การย้ายแอปพลิเคชั่นเป็นคอนเทนเนอร์ก็มักเพียงพอ แต่หากระบบมีความซับซ้อนมาก ต้องเพิ่มจำนวนเครื่องเพื่อรับโหลดมากน้อยต่างกันในแต่ละช่วงเวลา การแพ็กแอปพลิเคชั่นเป็นคอนเทนเนอร์ก็จะไม่เพียงพออีกต่อไป แต่ต้องมีแพลตฟอร์มมาช่วยจัดการคอนเทนเนอร์เหล่านี้ หรือที่เรียกว่า container orchrestration
ระบบของเราอาจจะมีแอปพลิเคชั่นสำคัญในองค์กร 5-10 แอปพลิเคชั่น แต่ละตัวใช้ระบบฐานข้อมูลคนละชนิด มีโหลดต่างกัน ในบางช่วงเวลามีบางระบบโหลดสูงเป็นพิเศษ เช่นระบบบัญชีในช่วงสิ้นเดือน หรือบางแอปพลิเคชั่นทำงานหนักหลังเลิกงานเพื่อสรุปผลประจำวัน
container orchestration เข้ามาดูแลการใช้ทรัพยากรเหล่านี้ โดยแพลตฟอร์มจะรับผิดชอบในการหาทรัพยากร อย่างซีพียูและแรม เพื่อให้แอปพลิเคชั่นรันได้อย่างเต็มประสิทธิภาพ มันจะคอยตรวจสอบว่ามีส่วนไหนมีโหลดสูงเกินกำหนดและพยายามขยายระบบเพื่อรองรับโหลดโดยอัตโนมัติ
หลายปีที่ผ่านมีผู้พัฒนา container orchestration ออกมาหลายตัว แต่ในวันนี้ก็ค่อนข้างชัดเจนว่า Kubernetes เป็นผู้ชนะ ทำให้แอปพลิเคชั่นระดับองค์กรจำนวนหนึ่งเพิ่มแพ็กเกจขายในเพื่อติดตั้งบน Kubernetes โดยตรง แทนที่จะบอกลูกค้าว่าต้องติดตั้งบนระบบปฎิบัติการใดเวอร์ชั่นใดเหมือนแต่เดิม ตัวอย่างหนึ่งเช่น Elasticsearch ซอฟต์แวร์ค้นหาเอกสารที่เปิดตัว Elastic Cloud on Kubernetes (ECK) ไปเมื่อต้นปีที่ผ่านมา แนวทางเช่นนี้ทำให้การลงทุนแพลตฟอร์ม Kubernetes ยิ่งน่าสนใจขึ้นไปอีก
แม้ Kubernetes จะเป็นผู้ชนะแต่ก็ไม่ได้หมายความว่าเราต้องดาวน์โหลด Kubernetes จากเว็บโครงการโดยตรงเท่านั้น แต่มีผู้ผลิตจำนวนมากนำโค้ด Kubernetes ไปพัฒนาต่อ เพิ่มส่วนขยายและฟีเจอร์รอบข้าง เช่น การจัดการที่ง่ายขึ้นหรือเพิ่มระดับการรักษาความปลอดภัย ไปจนถึงบริการซัพพอร์ตเมื่อเกิดปัญหา โดยผู้ผลิตเหล่านี้มักนำซอฟต์แวร์ไปทดสอบว่ายังทำงานร่วมกับ Kubernetes จากโครงการหลักได้อยู่ ทำให้แม้จะมีผู้ผลิตหลากหลายยี่ห้อ หรือบริการคลาวด์หลายรายที่ให้บริการ Kubernetes แต่แพลตฟอร์มเหล่านี้ก็มักทำงานร่วมกันได้ค่อนข้างดี
ชุด Kubernetes เด่นในตลาดเช่น Red Hat OpenShift ที่เน้นตลาดระดับองค์กร, Rancher K3s ที่เน้นคอมพิวเตอร์ขนาดเล็กไปจนถึงการใช้งานในบ้าน, หรือ VMware Project Pacific ที่พยายามหลอมรวมโลกคอนเทนเนอร์เข้ากับโลกของการใช้ VM แบบเดิมบนเครื่องมือเดียวกัน หรือผู้ให้บริการคลาวด์รายใหญ่ทั้งหมดล้วนให้บริการ Kubernetes ที่เราไม่ต้องดูแลเอง แต่สามารถทำแอปพลิเคชั่นขึ้นมารันได้แทบไม่ต่างกัน ทำให้การใช้ Kubernetes กลายเป็นเส้นทางสำคัญในการเตรียมความพร้อมย้ายโครงสร้างขึ้นสู่คลาวด์
– – –โดยวสันต์ ลิ่วลมไพศาลChief Technology Officer, MFEC