ปัจจุบันองค์กรส่วนใหญ่เริ่มมองเห็นคุณค่าของระบบคอนเทนเนอร์ (Container) จนทำให้เทคโนโลยีดังกล่าวก้าวเข้ามาสู่การใช้งานจริงอย่างเต็มรูปแบบในช่วงไม่กี่ปีที่ผ่านมา โดยมีการพัฒนา, ออกมาตรฐานควบคุม, กลุ่มทีมงานกลางดูแลอย่างเป็นจริงเป็นจังที่ไม่ผูกขาดกับผู้จำหน่าย เช่น Open Container Initiative
พื้นฐานนั้น ระบบคอนเทนเนอร์บนลีนุกส์จะทำหน้าที่ให้ผู้ใช้สามารถมัดรวมและแยกระบบแอพแต่ละแอพไว้ในสภาพแวดล้อมในการรันการทำงานที่จำเป็นทั้งหมดเป็นเอกเทศเฉพาะ พร้อมไฟล์ทั้งหมดที่จำเป็นสำหรับแต่ละคอนเทนเนอร์ ซึ่งทำให้ย้ายคอนเทนเนอร์แพกเกจของแต่ละแอพไปไว้บนสภาพแวดล้อมแตกต่างกันไปได้ง่าย ไม่ว่าจะเป็นส่วนสำหรับพัฒนา, ทดสอบ, หรือนำมาใช้งานจริง ซึ่งทำให้ทีมงานแต่ละส่วน ทั้งฝั่งพัฒนา และฝั่งผลิตไม่ต้องมาใช้ทรัพยากรหรือแอพร่วมกันจนเกิดปัญหา
นอกจากนี้ ระบบคอนเทนเนอร์บนลีนุกส์เป็นโอเพ่นซอร์ส ทำให้สามารถนำเทคโนโลยีอัพเดทใหม่ๆ มาใช้ได้ทันทีที่ถูกเผยแพร่ออกมา ไม่ว่าจะเป็น CRI-O, Kubernetes, หรือ Docker ที่ช่วยอำนวยความสะดวก, เร่งความเร็ว, และจัดการทั้งการพัฒนาและการติดตั้งแอพได้ดังใจ
อย่างไรก็ดี ตอนนี้ระบบคอนเทนเนอร์ได้พัฒนามาถึงจุดอิ่มตัว เปลี่ยนจากเทคโนโลยีที่ถูกพัฒนา มาเป็นแพลตฟอร์มสำหรับพัฒนาแอพอื่นๆ อย่างรวดเร็ว และสอดคล้องกับแนวทางการทำงานแบบ DevOps แทน ซึ่งองค์กรต่างๆ ที่ต้องการนำระบบคอนเทนเนอร์มาใช้อย่างมีประสิทธิภาพก็ควรทำความเข้าใจกับการเปลี่ยนแปลงที่เกี่ยวข้อง 8 ประการดังต่อไปนี้
1. โครงสร้างและองค์ประกอบของคอนเทนเนอร์
อันได้แก่ ส่วนของโครงสร้างพื้นฐาน, ตัวรันไทม์, และตัวจัดการหรือ Orchestration ซึ่งองค์ประกอบที่นิยมใช้กันหรือที่เรียกว่า Container Stack ที่มักพบเห็นมักจะเป็น LDK คือ Linux, Docker, และ Kubernetesแต่ปัจจุบัน Docker ไม่ได้เป็นตัวรันไทม์ตัวเดียวที่มีในตลาด โดยเฉพาะมีการพัฒนาตัวรันไทม์ที่มีวัตถุประสงค์เฉพาะด้านอย่างเช่น ตัวรันคอนเทนเนอร์ในเวอร์ช่วลแมชชีนที่แยกจากกันได้ เป็นต้น
2. Kubernates
ยังเป็นระบบจัดการองค์ประกอบที่นิยมใช้มากที่สุด เนื่องจากคอนเทนเนอร์มีหลายส่วนประกอบที่ต้องจัดการเรียบเรียงให้ไปในทางเดียวกัน Kubernetes ยังถือเป็นระบบโอเพ่นซอร์สที่จัดการทั้งการติดตั้ง, ปรับจนาดระบบ, และจัดการแอพต่างๆ ที่ถูกจับอยู่ในคอนเทนเนอร์ได้อย่างอัตโนมัติ แม้จะมีตัว Orchestrate คู่แข่งอย่าง Mesos และ Swarm แต่ Kubernetes ก็ยังถือเป็นมาตรฐานหลักที่นิยมใช้กันอยู่ทั่วไป
3. บทบาทของเทคโนโลยีใหม่ CRI และ CRI-O
ในฐานะอินเทอร์เฟซที่เป็นปลั๊กอินของ Kubernetes ซึ่งเปิดให้แต่ละตัวคุมโหนดกลุ่มคอนเทนเนอร์หรือ Kubelet สามารถใช้ตัวรันไทม์ที่รองรับ OCI แตกต่างกันได้โดยไม่ต้องเสียเวลาคอมไพล์ Kubernetes ใหม่ โดยตัว CRI-O หรือชื่อเก่าคือ OCID เป็นตัวพัฒนาต่อมาที่อยู่ในรูปรันไทม์แบบเบาหวิวสำหรับ Kubernetes ที่ทำให่รันคอนเทนเนอร์จาก Kubernetes ได้โดยตรง โดยไม่ต้องเสียเวลาใช้รันไทม์คนละตัวให้ซับซ้อน และทำให้รันได้เสถียรมากขึ้น
4. มาตรฐานคอนเทนเนอร์
มีมาตรฐานที่ควรจับตามองตั้งแต่ Open Container Initiative (OCI) Image Specification, OCI Runtime Specification, Kubernetes Container Runtime Initiative (CRI), Container Network Interface (CNI), และ Docker Container Network Model (CNM)เป็นต้น
5. บทบาทของโปรเจ็กต์โอเพ่นซอร์สมากมาย
อย่าง Kubernetes ที่พัฒนาโดยวิศวกรของกูเกิ้ล ถือเป็นโปรเจ็กต์ที่มีกิจกรรมมากที่สุดในโลกของคอนเทนเนอร์ตอนนี้แล้ว แต่ก็ยังมีโปรเจ็กต์อื่นๆ ที่น่าสนใจ เช่น Origin ที่พัฒนาตัว OpenShift สำหรับพัฒนา, ติดตั้ง, และจัดการคอนเทนเนอร์ได้ดีขึ้น เป็นต้น
6. การผสานเข้ากับพับลิกคลาวด์
เช่น บริการ AWS หลายเจ้าตอนนี้ก็เปิดอินเทอร์เฟซให้ทำงานบนแพลตฟอร์มคอนเทนเนอร์ของ OpenShift ได้แล้ว ทำให้ผู้ใช้ตั้งค่าและติดตั้งบริการจากภายใน OpenShift เพื่อให้บริการแอพตัวเดียวกันที่ปรับเปลี่ยนขนาดได้บน Kubernetes เป็นต้น
7. อย่างที่บอกตอนต้น เคอเนลลีนุกซ์ถึงจุดอิ่มตัวแล้ว
รวมถึงตัวรันไทม์พื้นฐานด้วย เอาเวลาไปสนใจการพัฒนาสภาพแวดล้อมการทำงานอื่นของคอนเทนเนอร์จะคุ้มกว่า
8. ปฏิวัติการพัฒนาแอพใหม่ เน้นแยกแอพย่อยมากขึ้น
แทนที่จะเป็นแอพมัดรวมแบบเดิม ด้วยเทคโนโลยีคอนเทนเนอร์ที่สามารถแตกย่อยแอพให้เป็นแอพแยกแต่ละวัตถุประสงค์การใช้งานได้ ซึ่งสามารถนับมาสานรวมเข้ากันให้ทำหน้าที่ได้เหมือนแอพปกติทั่วไป แต่สามารถพัฒนา จัดการแยกย่อยได้อย่างมีประสิทธิภาพมากกว่า เรียกว่าก้าวเข้าสู่โลกสถาปัตยกรรมแบบบริการแยกย่อย หรือ Microservice ได้มากขึ้น
ที่มา : Networkcomputing