Docker ซอฟต์แวร์คอนเทนเนอร์ชื่อดังแห่งยุค ออกเวอร์ชัน 1.9 ซึ่งเป็นเวอร์ชันใหญ่ตัวล่าสุด มีการเปลี่ยนแปลงมากมาย ของใหม่ที่สำคัญได้แก่
Rackspace ผู้ให้บริการคลาวด์รายใหญ่เปิดตัวบริการ Carina เป็นเบต้าสำหรับรันคอนเทนเนอร์ของ Docker และ Docker Swarm
Carina จะมาพร้อมกับสคริปต์สำหรับเชื่อมต่อจากเครื่องพัฒนา เมื่อยืนยันตัวตนผ่านสคริปต์แล้วจะได้ไฟล์ environment เพื่อเชื่อมต่อคำสั่ง docker ไปยังเซิร์ฟเวอร์ Carina
ช่วงนี้เป็นช่วงเบต้า เปิดให้ใช้งานฟรีโดยไม่ต้องผูกบัตรเครดิตล่วงหน้า
แจกของที่ระลึกเกี่ยวข้องกับซอฟต์แวร์สาย development ครับ เป็นของที่ได้มาจากงานต่างๆ ในต่างประเทศ เก็บไว้ก็ไม่ได้ใช้อะไร นำมาแจกให้กับ developer เผื่อจะเป็นแรงบันดาลใจให้เขียนโค้ดหรือทำระบบได้ดีกว่าเดิม
ของชุดแรกคือสินค้าเกี่ยวกับ Parse เครื่องมือสำหรับช่วยสร้างแอพ ที่ขายกิจการให้ Facebook เมื่อปี 2013 ของที่มีคือสมุดโน้ต 1 เล่ม และสติ๊กเกอร์ 2 แผ่น (หน้าตาเหมือนกัน)
กูเกิลเป็นหนึ่งในผู้สนับสนุนเทคโนโลยี container (ในที่นี้คือ Docker) บนระบบคลาวด์ของตัวเองมาตั้งแต่ยุคแรกๆ (ข่าวเก่า) ล่าสุดกูเกิลปรับสถานะของบริการ Google Container Engine เป็นการให้บริการเต็มรูปแบบ (general availability) เรียบร้อยแล้ว
Google Container Engine เป็นบริการช่วยจัดการคลัสเตอร์ของ container โดยใช้ซอฟต์แวร์โอเพนซอร์ส Kubernetes ของตัวเอง รองรับการจัดระเบียบ, กระจายโหลด, บันทึกล็อก และการทำงานข้ามเครือข่ายให้กับ container ด้วย
ไมโครซอฟท์เปิดให้ดาวน์โหลด Windows Server 2016 Technical Preview 3 โดยของใหม่ที่สำคัญของพรีวิวรุ่นนี้คือ Windows Server Containers ตามความร่วมมือกับ Docker ที่เคยประกาศไว้
ความยากของการใช้ Docker บนระบบปฏิบัติการที่ไม่ใช่ลินุกซ์คือการติดตั้งต้องผ่านตัวจำลองระบบหรือ Virtual Machine (VM) เท่านั้น คนสายเขียนโปรแกรมจึงต้องเรียนรู้วิธีการใช้งานที่ยุ่งยากกว่าปกติ ทั้งเรื่องการแชร์นำโค้ดเข้าไปใช้ใน VM และเรื่องการเข้าถึงแอพพลิเคชันผ่าน Docker ใน VM ที่ต้องใช้ความรู้ทางด้านเครือข่ายบ้าง
ที่ผ่านมาจึงมีตัวติดตั้ง Docker ที่ช่วยให้ชีวิตของนักพัฒนาง่ายขึ้นตั้งแต่ Boot2docker ที่เป็นลินุกซ์ VM ขนาดเล็กไว้สำหรับรัน Docker มาจนถึง Kitematic ที่มีหน้าตาสวยงามถูกใจผู้ใช้งาน มาเป็นซอฟต์แวร์ครอบสำหรับจัดการ Boot2docker อีกทีหนึ่ง
Docker ออกรุ่น 1.8 เพิ่มฟีเจอร์สำคัญคือ Content Trust สามารถตรวจสอบความถูกต้องว่าอิมเมจจากนักพัฒนาไม่ได้ถูกแก้ไขมาก่อน โดยก่อนที่นักพัฒนาจะ push อิมเมจไปยัง registry ตัว Docker Engine จะเซ็นกำกับเสมอ และเมื่อผู้ใช้อิมเมจสั่ง pull ลงมาตัวอิมเมจก็จะถูกตรวจสอบความถูกต้องก่อนรันอ
Docker ประกาศบริการเชิงการค้าเต็มรูปแบบ โดยเปิดตัว Docker Trusted Registry (DTR) สำหรับการสร้าง registry ใช้งานภายในองค์กร และซัพพอร์ตจากทาง Docker โดยตรง
การซัพพอร์ตมีสองรูปแบบ คือการใช้งานภายในองค์กร จะได้ DTR ไปติดตั้งภายในกันเอง 1 ชุด พร้อมกับซัพพอร์ต Docker Engine อีก 10 ชุด ขณะที่แบบใช้งานผ่านคลาวด์ จะได้รับ private repo 20 ชุด Docker Engine 10 ชุด ทั้งสองแบบมาพร้อมกับซัพพอร์ตแบบผ่านอีเมลไม่จำกัดเคส 150 ดอลลาร์ต่อเดือน
บริการซัพพอร์ตระดับสูงกว่านี้ที่มีข้อตกลง SLA กับทาง Docker ก็มีให้เลือกเช่นกัน แต่ไม่เปิดเผยราคา โดยระดับสูงสุด Business Critical จะรับเคสฉุกเฉินได้ตลอด 24 ชั่วโมง
Canonical เปิดตัวระบบเครือข่ายแบบใหม่ในชื่อ Fan สำหรับใช้งานกับคอนเทนเนอร์โดยเฉพาะ มันทำให้เครื่องคอนเทนเนอร์สามารถใช้หมายเลขไอพีในวงขนาดใหญ่ เช่น 10.0.0.0/8 ขณะที่เครื่องเซิร์ฟเวอร์จริงอยู่ในเน็ตเวิร์คที่เล็กกว่า เช่น 172.16.0.0/16
โครงการ CoreOS ประกาศทำคอนเทนเนอร์ของตัวเองในชื่อ App Container Image (ACI) แสดงความต้องการเป็นอิสระจาก Docker ตอนนี้ทั้งสองโครงการก็กลับมาร่วมมือกันได้อีกครั้งภายใต้โครงการ Open Container Project (OCP)
OCP จะพัฒนามาตรฐานคอนเทนเนอร์ให้สามารถรันบนรันไทม์ยอดนิยมได้ทุกตัว นับแต่ Docker, rkt, Kurma, และ Jetpack ตอนนี้มีผู้ผลิตและผู้ให้บริการคลาวด์จำนวนมากเข้ามาร่วมโครงการ ช่วงแรกทางโครงการจะใช้ runC จาก Docker มาเป็นรันไทม์ต้นแบบสำหรับมาตรฐานใหม่นี้
โครงการ OCP จะเป็นโครงการในความดูแลของ Linux Foundation
นับว่าจบไปอีกหนึ่งรายการวงแตกในโลกโอเพนซอร์สครับ (วิดีโอท้ายข่าวไม่เกี่ยว)
ศึกมาตรฐานของวงการ container เข้มข้นขึ้นเรื่อยๆ บริษัทรายล่าสุดที่ลงมาร่วมวงคือ Red Hat ที่ประกาศตัวชัดเจนว่ายืนอยู่ข้างเดียวกับ Docker
Red Hat ออกมาบอกว่าโลกของ container ควรมีมาตรฐานเปิด (open standard) เพื่อให้เทคโนโลยีทำงานข้ามกันได้ และเสนอแนวทางมาตรฐานสำหรับเทคโนโลยี 4 ระดับ
เทคโนโลยี container กำลังมาแรงมากในโลกของเซิร์ฟเวอร์รุ่นใหม่ แม้แต่ในสายของวินโดวส์เอง ปีที่แล้วไมโครซอฟท์ก็ประกาศความร่วมมือกับ Docker ว่า Windows Server รุ่นถัดไป (Windows 10 Server หรือบ้างก็เรียก Windows Server 2016) จะผนวกเอาระบบ container ของ Docker มาให้ในตัว
คราวนี้ไมโครซอฟท์ประกาศฟีเจอร์ container ที่เพิ่มความสามารถเข้ามาอีกชั้น ชื่อว่า Hyper-V Container หลักการคือเอาระบบ virtualization ของ Hyper-V ห่อหุ้ม container เข้ามาอีกชั้น
CoreOS ได้รับการยอมรับอย่างรวดเร็วจากผู้ให้บริการคลาวด์ทั่วโลก ตอนนี้กลับมีปัญหากับโครงการที่เป็นส่วนประกอบสำคัญ คือ Docker จนไม่สามารถร่วมงานกันต่อ และประกาศโครงการของตัวเองชื่อโครงการว่า Rocket ในที่สุด
ทาง CoreOS ระบุว่าจากเดิมที่ Docker เคยตั้งเป้าหมายเป็นรันไทม์ (runtime) ของ container ที่ทำตามมาตรฐานที่กำหนดตอนนี้โครงการมีฟีเจอร์เพิ่มขึ้นมากมาย นับแต่าการสร้างอิมเมจ, รันไทม์, คลัสเตอร์, ไปจนถึงการวางเครือข่าย ทั้งหมดอยู่ในไบนารีเดียวที่รันด้วยสิทธิ์ root ทาง CoreOS ไม่เห็นด้วยกับแนวทางนี้เพราะผู้ใช้ CoreOS เป็นลูกค้าองค์กรที่ต้องการความปลอดภัยสูง
ใครหลายคนในที่นี้คงรู้จัก Docker ตัวครอบ (container) แอพฝั่งเซิร์ฟเวอร์ชื่อดังกันแล้ว ปัญหาอย่างหนึ่งคือการจัดการกับคอนเทนเนอร์จะต้องผ่าน CLI บนระบบปฏิบัติการสายลินุกซ์หรือใช้ boot2docker สร้างสภาพแวดล้อมของการพัฒนาเสมือน (virtualized development environment) บน Windows เท่านั้น แต่ล่าสุด Ahmet Alp Balkan วิศวกรซอฟต์แวร์ที่ทำงานกับ Azure Linux Team ได้พัฒนา Docker CLI for Windows เพื่อใช้จัดการตัวครอบแอพฝั่งเซิร์ฟเวอร์ได้จาก Windows โดยตรงแล้ว
Docker ได้พันธมิตรรายใหญ่อย่างไมโครซอฟท์ ที่ประกาศว่า Windows Server รุ่นหน้า (Windows 10 Server) จะรองรับ Docker มาตั้งแต่ต้น
ไมโครซอฟท์สนับสนุน Docker บน Azure มาก่อนแล้ว จึงไม่น่าแปลกใจนักที่ Windows 10 Server จะมีความสามารถแบบเดียวกัน การที่ "คอนเทนเนอร์" แบบ Docker สามารถใช้งานบน Windows Server ได้โดยตรง ย่อมทำให้การนำแอพพลิเคชันข้ามไปรันบนลินุกซ์ง่ายขึ้นมาก
การพัฒนาซอฟต์แวร์สายไมโครซอฟท์ให้ทำงานร่วมกับ Docker เป็นผลงานของ MS Open Tech ทีมสนับสนุนซอฟต์แวร์โอเพนซอร์สและมาตรฐานเปิดของไมโครซอฟท์
Kubernetes เป็นเครื่องมือสำหรับจัดการคลัสเตอร์ Docker ที่กูเกิลพัฒนาขึ้นมาเพื่อใช้กับแพลตฟอร์ม Google Compute Engine ของตัวเอง (ข่าวเก่า) แต่ก็เปิดซอร์สโค้ดและเชิญบริษัทอื่นๆ เข้าร่วมพัฒนาด้วย (ข่าวเก่า)
หนึ่งในบริษัทที่ร่วมพัฒนา Kubernetes คือไมโครซอฟท์ และวันนี้ Kubernetes สามารถรันบน Azure ได้แล้วครับ (รายละเอียด) รูปแบบการใช้งานคร่าวๆ คือ
โครงการ Docker ซึ่งเป็น app container สำหรับเซิร์ฟเวอร์ กำลังมาแรงมากในโลกไอทีองค์กร แนวคิดนี้แตกต่างจากการรัน virtual machine ตรงระดับชั้นของระบบปฏิบัติการ โดยแนวคิด VM แบบเดิมจะพ่วงระบบปฏิบัติการไปด้วย (แต่ละ VM มีระบบปฏิบัติการแยกกัน) ในขณะที่ container แยกเฉพาะแอพ และแชร์ระบบปฏิบัติการร่วมกัน (ดูภาพประกอบ)
ความร้อนแรงของ Docker ท้าทายโลก virtualization โดยเฉพาะเจ้าตลาดอย่าง VMware พอสมควร แต่ล่าสุด VMware เลือกไม่แข่งกับ Docker ตรงๆ และประกาศความร่วมมือกับฝั่ง Docker แล้ว
โครงการ Docker กำลังมาแรงมากๆ ในโลกฝั่งเซิร์ฟเวอร์-กลุ่มเมฆ อย่างไรก็ตาม Docker ทำตัวเป็นแค่ "ลังใส่ของ" (container) เพื่อใส่สภาพแวดล้อมของแอพพลิเคชันเซิร์ฟเวอร์เท่านั้น สิ่งที่ยังขาดอยู่คือ "ตัวจัดการลัง" (container manager) ในกรณีที่ต้องบริหาร container เป็นจำนวนมากๆ (บริษัท Docker มีเครื่องมือชื่อ libswarm ที่เพิ่งเริ่มต้นพัฒนา)
เมื่อเดือนมิถุนายนที่ผ่านมา กูเกิลประกาศโครงการ Kubernetes ตัวจัดการ "คลัสเตอร์" ของ container โดยมุ่งเป้าใช้งานกับ Google Compute Engine แต่ก็เปิดซอร์สโค้ดให้หน่วยงานอื่นๆ ใช้งานด้วย
Docker ตัวครอบ (container) แอพฝั่งเซิร์ฟเวอร์ที่กำลังมาแรง (ข่าวเก่า) ได้ฤกษ์ออกรุ่น 1.0 หลังจากเริ่มพัฒนาโครงการมาตั้งแต่ต้นปี 2013
ก่อนหน้านี้ชุมชน Docker เตือนว่าซอฟต์แวร์ยังอยู่ในระยะการพัฒนา และไม่เหมาะสำหรับนำไปใช้งานจริง (production) แต่การเดินทางมาถึงเวอร์ชัน 1.0 ที่ทีมงานประกาศว่าพร้อมแล้วสำหรับการใช้งานในองค์กรทั้งในแง่ฟีเจอร์และเสถียรภาพ ย่อมช่วยให้ Docker ได้รับความนิยมเพิ่มขึ้นอีกมากในการใช้งานจริง
ของใหม่ในเวอร์ชัน 1.0 ได้แก่การสั่ง pause/unpause ให้กับ container ที่รันงานอยู่, เพิ่มคำสั่ง COPY และปรับปรุงคำสั่ง ADD ที่ช่วยให้การสร้างอิมเมจทำได้ง่ายขึ้น, รองรับระบบไฟล์ XFS และปรับปรุงด้านความปลอดภัย เป็นต้น
Docker เป็น "ตัวครอบ" แอพพลิเคชันฝั่งเซิร์ฟเวอร์ (application container) ที่กำลังมาแรง หน้าที่ของมันคือช่วยให้เราสามารถนำแอพพลิเคชันไปรันบนเซิร์ฟเวอร์หรือกลุ่มเมฆประเภทต่างๆ โดยลดภาระของการคอนฟิกใหม่ให้น้อยที่สุด (Build once...run anywhere)
แนวคิดของ application container จะคล้ายกับการทำงานบน virtualization แต่จะต่างกันตรงที่ container จะไม่รวมระบบปฏิบัติการที่เป็น guest OS ทำให้มันเล็กและเบากว่าการเก็บใส่ VM image มาก (ดูรายละเอียดในสไลด์ท้ายข่าว)