เทคโนโลยี “คอนเทนเนอร์” สูตรพัฒนาและติดตั้งซอฟต์แวร์ฉบับลัดทันใจ
นายสุภัค ลายเลิศ
กรรมการอำนวยการ และประธานเจ้าหน้าที่ปฏิบัติการ
บริษัท ยิบอินซอย จำกัด
เชื่อว่า องค์กรธุรกิจหลายแห่งในขณะนี้ต่างต้องการเครื่องมือที่จะมาช่วยในการพัฒนาซอฟต์แวร์ให้มีขนาดกะทัดรัด ใช้ทรัพยากรน้อย ๆ แต่มีประสิทธิภาพการทำงานสูง สามารถปรับเปลี่ยนย่อ-ขยายซอฟต์แวร์ได้ตามลักษณะของงาน รวมถึงขนย้ายไปติดตั้งใช้งานในสภาพแวดล้อมต่าง ๆ ได้ง่ายดายและรวดเร็ว โดยเฉพาะสภาพแวดล้อมคลาวด์ที่กำลังใช้งานกันอย่างแพร่หลายในขณะนี้
เครื่องมือหนึ่งที่อยากแนะนำให้รู้จัก ก็คือ เทคโนโลยีคอนเทนเนอร์ (Container) ซึ่งคุณลักษณะการทำงาน จะเปรียบเสมือนตู้รวบรวมสิ่งจำเป็นสำหรับการทำงานของซอฟต์แวร์ ซึ่งประกอบด้วย แอปพลิเคชันหนึ่งตัวหรือมากกว่านั้น กลุ่มไฟล์สนับสนุนต่าง ๆ (Dependencies) เช่น ไฟล์ข้อมูลไลบรารี (Library) ไฟล์แบบไบนารี (Binary) ไฟล์สกุล config ซึ่งเป็นกลุ่มไฟล์เกี่ยวกับการเขียนโปรแกรม ไฟล์เกี่ยวกับการจัดการระบบ (System Tools) รวมถึงจัดเตรียมพื้นที่ใช้รันโปรแกรมการทำงาน (Runtime) และจัดเก็บฐานข้อมูลเฉพาะซอฟต์แวร์นั้น ๆ โดยมีผู้ช่วยคนสำคัญ ชื่อว่า คูเบอร์เนเตส (Kubernetes) มาทำหน้าที่ควบคุมการทำงานของคอนเทนเนอร์ ซึ่งกระจายไปตามกลุ่มก้อนการทำงานของระบบคอมพิวเตอร์ต่าง ๆ (Cluster) ในองค์กร ให้อยู่ในจุดที่ถูกต้องเหมาะสม สามารถทำงานเป็นอิสระ และไม่รบกวนซึ่งกันและกัน
...แล้วเทคโนโลยีคอนเทนเนอร์จะช่วยองค์กรธุรกิจได้อย่างไรบ้าง?...
มองจากมุมของการพัฒนาซอฟต์แวร์ เทคโนโลยีคอนเทนเนอร์ได้ช่วยส่งเสริมการทำงานร่วมกันระหว่างทีมนักพัฒนาโปรแกรม และทีมผู้ปฏิบัติ (DevOps) ให้เกิดความสะดวกมากขึ้น ตั้งแต่ขั้นตอนการเขียนโค้ดโปรแกรม การเข้าสู่การทดสอบปรับแต่งให้ออกมาเป็นซอฟต์แวร์สำเร็จ และนำไปติดตั้งใช้งานในสภาพแวดล้อมต่าง ๆ ชนิดยกกันไปทั้งคอนเทนเนอร์โดยไม่ต้องกังวลถึงการตกหล่นของโค้ดโปรแกรม ไฟล์สนับสนุน หรือฐานข้อมูลใดที่ใช้สำหรับการทำงานของซอฟต์แวร์นั้น ๆ เช่น เราสามารถพัฒนาและขนย้ายซอฟต์แวร์ในรูปแบบคอนเทนเนอร์ที่พัฒนาบนเครื่องเดสก์ท็อปของเราขึ้นไปอยู่บน อเมซอนเว็บเซอร์วิส กูเกิลคลาวด์ หรือ ไมโครซอฟท์ อาซัวร์ ให้พร้อมใช้งานได้โดยไม่ต้องปรับแต่งโค้ด หรือตั้งค่าติดตั้งใด ๆ เพิ่มเติม หรือ ปรับแต่งแค่เพียงเล็กน้อย ซึ่งทำให้การติดตั้งยิ่งง่าย รวดเร็ว และเกิดข้อผิดพลาดน้อย
นอกจากนี้ คอนเทนเนอร์ ยังเหมาะสำหรับองค์กรที่ต้องการพัฒนาซอฟต์แวร์ในรูปแบบ ไมโครเซอร์วิส (Microservices) ซึ่งเป็นการออกแบบโปรแกรมโดยแบ่งแอปพลิเคชันแยกส่วนเป็นชิ้นเล็ก ๆ แล้วทำการพัฒนาหรือจัดการแต่ละชิ้น ซึ่งเราจะเห็นว่า คอนเทนเนอร์ได้จัดสภาพแวดล้อมและทรัพยากรที่เหมาะสมไว้ให้แล้วในขั้นตอนของการพัฒนา มีความสะดวกในขั้นตอนการส่งต่อเพื่อนำไปใช้งาน และยังสามารถลด-ขยายเฉพาะส่วนที่ต้องการใช้งานตามความจำเป็น หรือตามปริมาณงานที่เกิดขึ้น ซึ่งช่วยให้องค์กรสามารถคุมงบประมาณด้านไอทีได้มีประสิทธิภาพมากขึ้น
หากมองจากมุมของธุรกิจผ่านกระแสการเติบโตของคลาวด์ เราจะเห็นว่า หลายองค์กรพยายามเปลี่ยนผ่านการดำเนินธุรกิจเพื่อมุ่งสู่เทคโนโลยีคลาวด์ ซึ่งคอนเทนเนอร์จะมีส่วนช่วยองค์กรในการปรับแต่ง หรือย่อส่วนซอฟต์แวร์บางตัวที่มีขนาดใหญ่ และเดิมใช้เฉพาะภายในองค์กร ไปเป็นซอฟต์แวร์ที่มีขนาดกะทัดรัดและทันสมัย โดยใช้ทรัพยากรในการทำงานน้อย และสามารถปรับเปลี่ยนขึ้นไปสู่การทำงานบนคลาวด์ หรือจะเป็นการขยับขยายการทำงานจากคลาวด์ในองค์กรไปอยู่บนคลาวด์สาธารณะหรือคลาวด์แบบไฮบริดภายในระยะเวลาอันรวดเร็ว รวมถึงการพัฒนาแอปพลิเคชัน หรือแพลตฟอร์มการให้บริการทางธุรกิจ หรือรุกคืบสู่ตลาดการแข่งขันใหม่ ๆ โดยลดความยุ่งยากในขั้นตอนการพัฒนาและการติดตั้ง และยังทำให้องค์กรประหยัดเวลา ประหยัดค่าใช้จ่าย รวมถึงสามารถประเมินความคุ้มค่าของการพัฒนาซอฟต์แวร์ในโครงการหรือกิจกรรมต่าง ๆ ภายหลังใช้งานได้ในเวลาไม่นาน
ปัจจุบัน องค์กรธุรกิจนิยมนำเทคโนโลยีคอนเทนเนอร์ไปใช้เป็นฐานในการพัฒนาและติดตั้งซอฟต์แวร์ แอปพลิเคชัน หรือแพลตฟอร์มในหลายรูปแบบมากขึ้น เช่น การพัฒนาด้านปัญญาประดิษฐ์ แมชชีนเลิร์นนิ่ง บิ๊ก ดาต้า การวิเคราะห์ข้อมูล ไอโอที เอดจ์ คอมพิวติ้ง รวมถึงใช้ปรับปรุงแอปพลิเคชันเดิมให้ทันสมัยขึ้น สนับสนุนกระบวนการทำงานระหว่างขั้นของการเขียนโค้ดโปรแกรมและแปลงเป็นซอฟต์แวร์สำเร็จ รวมถึงการทำงานร่วมกับไฮบริดคลาวด์ หรือ มัลติคลาวด์
รายงานของ การ์ทเนอร์ เอง ได้ย้ำตัวเลขการใช้เทคโนโลยีคอนเทนเนอร์ และ คูเบอร์เนเตส สำหรับพัฒนาแอปพลิเคชันบนคลาวด์ที่เพิ่มขึ้น รวมถึงความต้องการขององค์กรทั่วโลกต่อการใช้แอปพลิเคชันในแบบคอนเทนเนอร์ที่ก้าวกระโดดจากตัวเลขน้อยกว่า 30% ในตอนนี้ ไปเป็นมากกว่า 75% ในปี 2565 เช่นเดียวกับปริมาณการใช้งานแอปพลิเคชันในแบบคอนเทนเนอร์บนสภาพแวดล้อมการทำงานแบบไฮบริด กำลังกระโดดจากตัวเลขที่น้อยกว่า 20% ในตอนนี้ ไปเป็นมากกว่า 50% ในปี 2565 เช่นกัน ส่วนไอดีซี ชี้ว่า เทคโนโลยีคอนเทนเนอร์จะเติบโตอย่างรวดเร็ว โดยปริมาณการใช้งานจะเพิ่มจาก 723 ล้าน คอนเทนเนอร์ ในปีนี้ ไปเป็นมากกว่า 1.8 พันล้าน คอนเทนเนอร์ ในปี 2564
ขณะที่ บริษัทชั้นนำด้านไอทีหลายแห่งก็มีแนวโน้มที่จะนำเสนอแพลตฟอร์มด้านคอนเทนเนอร์มากขึ้น เห็นได้จาก กูเกิล ได้ออกมาเสนอบริการด้านคอนเทนเนอร์ หรือ Containers as a Service (CaaS) เพื่อช่วยให้องค์กรส่งต่อซอฟต์แวร์ในรูปแบบคอนเทนเนอร์ผ่านการใช้งานบนคลาวด์สาธารณะ หรือ บริษัทซอฟต์แวร์อย่าง ไมโครซอฟท์ ได้เปิดตัวบริการ ไมโครซอฟท์ อาซัวร์ คูเบอร์เนเตส (Azure Kubernetes Services-AKS) ซึ่งช่วยเพิ่มขีดความสามารถให้กับคูเบอร์เนเตสในการทำงานร่วมกับคลัสเตอร์ต่าง ๆ ในระบบ
ส่วนบริษัทผู้พัฒนาฮาร์ดแวร์ เช่น ฮิวเลตต์-แพคการ์ด ได้ออกแบบ แพลตฟอร์ม เอชพีอี คอนเทนเนอร์ (HPE Container Platform) เพื่อมารองรับการพัฒนา และการติดตั้งใช้งานซอฟต์แวร์ด้วยเทคโนโลยีคอนเทนเนอร์โดยเฉพาะ เสริมด้วยศักยภาพของเทคโนโลยี บลู ดาต้า ( Blue Data) ซึ่งเป็นคอนเทนเนอร์สำหรับการจัดการด้านปัญญาประดิษฐ์ แมชชีนเลิร์นนิ่ง และบิ๊ก ดาต้า ขนาดใหญ่ คู่กับ แมปอาร์ ( MapR) เทคโนโลยีสำหรับการจัดการบิ๊ก ดาต้า เพื่อให้การทำงานของแพลตฟอร์มด้านคอนเทนเนอร์มีประสิทธิภาพสูง และสามารถบริหารจัดการง่าย หรือ เอชพีอี แมชชีน เลิร์นนิ่ง ออปส์ (HPE Machine Learning Ops) ซึ่งจะมาช่วยองค์กรในการสร้างซอฟต์แวร์โซลูชันซึ่งใช้เทคโนโลยีคอนเทนเนอร์เป็นฐาน โดยใช้เวลาในการพัฒนาและติดตั้งใช้งานที่ลดลงจากเดือนเหลือเป็นวัน เพื่อมาสนับสนุนมาตรฐานการทำงานของแมชชีนเลิร์นนิ่ง และเป็นตัวเร่งให้เกิดการใช้งานปํญญาประดิษฐ์ที่เหมาะสมกับสถาปัตยกรรมด้านไอทีที่มีความหลากหลาย ทั้งกับคลาวด์ในองค์กร คลาวด์สาธารณะ หรือ ไฮบริดคลาวด์ โดยที่ยังมีความปลอดภัยสูง เป็นต้น
สำหรับองค์กรที่เคยขัดใจกับการพัฒนาหรือติดตั้งใช้งานซอฟต์แวร์ที่ยุ่งยากและยืดยาว เทคโนโลยีคอนเทนเนอร์จึงนับเป็นอีกหนึ่งทางเลือกที่นอกจากจะมาช่วยคลี่คลายปมปัญหาเดิมแล้ว ยังเป็นโอกาสที่องค์กรจะได้ปรับปรุงรูปแบบการทำงานของซอฟต์แวร์ แอปพลิเคชัน หรือแพลตฟอร์มให้กระชับ ฉับไว คล่องตัวสูงในการตอบสนองต่อเป้าหมายการดำเนินธุรกิจ และพร้อมเปลี่ยนผ่านตัวเองเพื่อสนองตอบการทำงานในโลกของคลาวด์ และความหลากหลายทางเทคโนโลยีที่จะเกิดขึ้นใหม่ในอนาคต