บทความนี้ผมได้นำมาจากบล็อกของ อ.ชาญวิทย์ แก้วกสิ ซึ่งผมเห็นว่ามีประโยชน์ แต่บล็อก อ. เข้าไม่ได้แล้ว หาก อ. ต้องการให้ลบ ส่ง email ที่ด้านล่างมาได้ครับ
ในปีที่ผ่านมา 2015 นั้น Docker ทำให้การปรับใช้ (adopt) เทคโนโลยี Container โตขึ้นอย่างต่อเนื่อง จนกระทั่งจำนวนการ pull image (ผ่านคำสั่ง $ docker pull) ตอนนี้ทะลุ 1.2 พันล้านครั้งไปแล้ว
ช่วงกลางปี 2015 นั้น Docker เข้าร่วมเป็นสมาชิกผู้ก่อตั้ง (Founding Members) โครงการ Open Container Initiative (OCI) ของมูลนิธิ Linux (Linux Foundation) ซึ่งมีเป้าหมายเพื่อตั้งและผลักดันมาตรฐานของ Container ให้สามารถทำงานได้บนระบบรันไทม์ที่ไม่ยึดติดกับ Vendor โดยมีโครงการ runC เป็นระบบรันไทม์อ้างอิง (Reference implementation)
ตรงจุดนี้มีความหมายยังไง?
นั่นคือ Container กำลังจะเปลี่ยนผ่าน จากสิ่งที่ควบคุมโดย Docker ไปเป็นมาตรฐานกลางที่บริษัทใดก็จะสามารถนำไปอิมพลีเมนต์ระบบรันไทม์เองได้ ความสำคัญของ Container จะขยับไปอยู่ที่ไฟล์ฟอร์แมตมาตรฐาน (นิยามไว้ที่ OCI Specs เรียกว่า Open Container Format) ยกตัวอย่างเช่น ต่อไปเราจะสามารถย้าย Container ที่เคยเตรียมด้วย Docker เอาไปรันบนระบบรันไทม์ที่พัฒนาขึ้นโดย Huawei ได้ เป็นต้น
โดยแนวคิดเรื่อง Portability นี้ผมสรุปไว้ว่ามันมีอยู่ด้วยกัน 2 ระดับคือ
-
Provider Portability - การย้าย Container ข้ามผู้ให้บริการคลาวด์ ซึ่งทำได้อยู่แล้วในระดับของ Docker ด้วยการใช้ Docker Machine เช่น ปัจจุบันเราสามารถย้าย Container จาก Amazon EC2 ไปรันบน DigitalOcean ได้ง่ายและรวดเร็ว
-
Runtime Portability - การย้าย Container ข้ามระบบรันไทม์ ซึ่งจะเป็นสิ่งที่เกิดขึ้นจากการผลักดันของโครงการ OCI
สรุปว่าในปี 2016 นั้น ตัว Contain Image จะค่อย ๆ กลายไปเป็น File Format (แบบเดียวกับไฟล์ .PDF ไฟล์ .MP3) ที่รันบนระบบของใครก็ได้ จุดนี้จะเป็นการสร้างความเชื่อมั่นเพื่อทำให้ Docker ก้าวเข้าสู่ตลาด Enterprise ได้อย่างเต็มตัว
จัดการคลัสเตอร์ระดับกลาง (1,000+ โหนด)
ประเด็นถัดมาคือการ Scale ซึ่งเป็นความท้าทายอย่างนึงของการปรับใช้ Container สู่ Production ในระดับใหญ่ นั่นคือผู้ใช้ต้องการระบบจัดการคลัสเตอร์ที่รองรับการขยายตัว และที่สำคัญต้องใช้ง่าย
ในโลกของ Container ตัวจัดการคลัสเตอร์หลัก ๆ มีอยู่ 2 ตัวคือ Docker Swarm และ Kubernetes (อ่านว่า คู-เบอ-เน-เทส บางครั้งจะเห็นย่อเป็น k8s) ถ้าพูดเฉพาะแนวโน้มการใช้ Docker ในรูปแบบคลัสเตอร์ผ่าน Docker Swarm หลังจากเปิดตัวรุ่น 1.0 ไปในช่วงไม่กี่เดือนที่ผ่านมาเพิ่มขึ้นอย่างชัดเจน โดยมีจำนวนการ pull Docker Swarm Image จากประมาณ 5 ล้านครั้งในช่วงก่อน 1.0 พุ่งสูงเป็น 19 ล้านครั้งหลังรุ่น 1.0 - เกิดมาผมก็เพิ่งเคยได้ทำโครงการประเภท system infrastructure ที่มีคนใช้เยอะขนาดนี้
และเหตุผลหลักที่บริษัทใหญ่ ๆ เช่น Rackspace เลือกใช้ Docker Swarm ก็คือ มันใช้งานง่าย
ความท้าทายในปี 2016 ที่รอ Swarm และ Docker Engine อยู่ในอนาคตก็คือคลัสเตอร์ระดับ 1,000 - 5,000 โหนดที่ responsive นี่แหละ - มันยาก แต่เราจะทำมันขึ้นมาได้
Container สู่ฝั่ง Enterprise
มีสัญญาณหลาย ๆ อย่างไม่ว่าจะเป็น การเปิดตัว Docker UCP, การเปิดตัว OpenShift Dedicated ของ Red Hat, การเปิดตัว Windows Server 2016 ในเร็ว ๆ นี้ และอีกหลายเรื่อง รวมทั้งการสำรวจจากหลาย ๆ ที่ เช่น Ruxit’s Docker and containerization survey
ทำให้มั่นใจได้ว่าในปี 2016 จะเป็นปีที่ Enterprise เริ่มทำการปรับใช้เทคโนโลยีกลุ่ม Container กันอย่างจริงจัง
นอกจากนี้ ผมเชื่อว่าในปี 2016 นี้ บริษัท Telecom ในไทยจำนวน 2 ใน 4 จะปรับใช้เทคโนโลยีกลุ่ม Container เข้าสู่ Production ในช่วงครึ่งแรกของปีซึ่งน่าจะไปได้สวย และด้วยความเป็น Large Scale บริษัทกลุ่มนี้อาจมองไปที่การ Deploy แบบคลัสเตอร์ตั้งแต่เริ่ม
และผมคาดเดาว่าในปีที่กำลังจะมาถึงนี้ ผู้ให้บริการ Content ในประเทศที่ใช้ Container หรือ Docker อยู่แล้ว จะเริ่มปรับใช้เทคโนโลยีคลัสเตอร์ของ Container กันอย่างจริงจังมากขึ้นเพื่อรับมือกับการขยายตัวของตลาด
จากนั้นอีกสักระยะหนึ่ง Software Container ก็จะเข้าไปสู่อุตสาหกรรมอื่น ๆ ในไทย
ในเมืองไทยดูเหมือนจะไม่ค่อยมี Social Activity ที่เกี่ยวกับ Container มากนัก แต่มั่นใจได้ครับว่าเทคโนโลยี Container ในบ้านเราล้ำหน้าไปมาก
- มีบริษัทในบ้านเราที่ใช้ Docker สร้าง Hybrid Cloud แล้วปูด้วย Software-Defined Network และกำลังจะขึ้น Production ภายในไม่กี่เดือนนี้แล้ว (ต้องบอกว่านาทีนี้เรื่อง Container เราล้ำหน้ากว่าทีม Weibo ของจีนแล้ว แต่จะประมาทจีนไม่ได้เลย)
- มีบริษัทในบ้านเราที่สามารถนำข้อมูลจากตัว Reverse Proxy ไปทำการขยายระบบอัตโนมัติด้วย Docker แล้ว
- มีองค์กรในบ้านเราที่เตรียมสร้าง Platform-as-a-Service สำหรับ Docker
- มี Cloud Provider เปิดบริการ OpenStack แบบเต็มรูปสำหรับในประเทศแล้ว แน่นอนว่าใช้กับ Container ได้อย่างสบาย และถ้า Cloud Provider ไม่คิดเผื่อเรื่องการสนับสนุน Container ต่อไปก็อาจจะลำบากกันซักนิดนึง
สรุปคอนเทนเนอร์ในปี 2016
- Container กำลังเปลี่ยนผ่านเป็นมาตรฐานภายใต้ Linux Foundation
- Container Cluster คือความท้าทายในปีหน้า สำหรับคลัสเตอร์ size กลาง (1,000 - 5,000 โหนด) ที่ใช้งานง่าย
- Container กำลังจะเข้าสู่โลกฝั่ง Enterprise
- หลาย ๆ บริษัทในไทยจะปรับใช้ Container กันอย่างจริงจังในปีนี้ เริ่มจากกลุ่ม Telecom กลุ่ม Content Provider กลุ่ม E-commerce และจะค่อย ๆ ไปสู่ Segment อื่น
สำหรับห้องปฏิบัติการวิจัยไอยราคลัสเตอร์ จาก commit แรกของเราใน Docker Swarm เมื่อปลายปี 2014 จนถึงตอนนี้ เราค่อย ๆ ขยับจากสถานะ ผู้ใช้เทคโนโลยี มาเป็น ผู้ร่วมสร้างเทคโนโลยี ที่กลายเป็นโครงสร้างพื้นฐาน เป็นเสาเข็มของอินเตอร์เนต ไปโดยไม่รู้ตัว
เราภูมิใจที่มีส่วนร่วมในการพัฒนา Docker Swarm มาตั้งแต่ช่วงก่อน 0.1 - จนปัจจุบันเราอยู่ในระดับที่สามารถระบุ Bug ของเครื่องมือกลุ่ม Docker ได้บรรทัดต่อบรรทัด - และความร่วมมือระหว่างเรากับ Docker ในการสร้างสรรค์ฟีเจอร์ใหม่ ๆ ทั้งสำหรับ Docker Swarm หรือแม้แต่ Docker Engine เองก็ยังคงมีในปีหน้านี้อย่างต่อเนื่อง
และในฐานะที่เป็นส่วนหนึ่งของสถาบันการศึกษาไทย ห้องปฏิบัติการของเรายินดีที่จะมีโอกาสในการถ่ายทอดและปรับแปลงเทคโนโลยีเหล่านี้ไปสู่ชุมชน ทั้งในประเทศและในภูมิภาค SEA โดยเฉพาะอย่างยิ่งเพื่อช่วยเพิ่มความสามารถในการแข่งขันแก่บริษัทสัญชาติไทยของเรา ให้สามารถเข้าสู่การให้บริการใน Scale ระดับโลกได้อย่างมั่นคง
ปีหน้าจะยังคงเป็นปีของ Container
สุขสันต์วันปีใหม่ 2559 / 2016 ครับ