AWS เปิดตัวฟีเจอร์ใหม่ Deep Learning Containers หรือ DL Containers เป็นฟีเจอร์ที่ AWS จะทำอิมเมจของ Docker สำหรับใช้งานประเภท deep learning พร้อมกับคอนฟิกด้านในอิมเมจไว้ให้เรียบร้อย เพื่อให้หยิบมาใช้งานได้โดยไม่ต้องเริ่มทำอิมเมจเองใหม่ตั้งแต่ต้น
สำหรับอิมเมจเหล่านี้ AWS ได้ทำการคอนฟิกให้เรียบร้อยแล้ว เพื่อให้ผู้ใช้หยิบมาใช้งานได้เลย ทั้งผ่าน ECS, EKS หรือ EC2 ในเวลาเพียงไม่กี่นาที ซึ่งอิมเมจเหล่านี้มีให้เลือกบน AWS Marketplace และ ECR ซึ่งผู้ใช้สามารถนำมาใช้โดยไม่มีค่าใช้จ่ายเพิ่มเติม ซึ่งจะนำมาใช้เลยก็ได้ หรือจะคอนฟิก, ใส่ไลบรารี, ใส่แพคเกจเพิ่มก็ได้เช่นกัน
Kubernetes ออกเวอร์ชัน 1.14 ซึ่งถือเป็นเวอร์ชันแรกของปี 2019
ของใหม่ที่สำคัญคือ Windows container เข้าสถานะ production แล้ว หลังจากทดสอบแบบ beta มานานพอสมควร ทำให้ Kubernetes ซัพพอร์ตเครื่อง (node) ที่เป็น Windows อย่างเป็นทางการ (แถมรองรับระบบปฏิบัติการ Windows Server 2019 รุ่นล่าสุดด้วย) ย่อมช่วยให้การใช้งาน Kubernetes ในฝั่งองค์กรที่ใช้ Windows เพิ่มสูงขึ้นมาก
ฟีเจอร์ใหม่อย่างอื่นได้แก่ Persistent Local Volumes เข้าสถานะ GA แล้วเช่นกัน ทำให้เหมาะสำหรับกรณีที่ต้องใช้ดิสก์แบบโลคัล (เชื่อมต่อตรงไม่ผ่านเครือข่าย) ที่มีประสิทธิภาพสูงขึ้น, ปรับปรุง kubectl (คอมมานด์ไลน์ของ Kubernetes) เรื่องปลั๊กอินและเอกสาร, เชื่อมต่อกับตัวจัดการคอนฟิก Kustomize
นักวิจัยรายงานถึงช่องโหว่ของโปรแกรม runc ตัวคำสั่งคอมมานไลน์สำหรับรันคอนเทนเนอร์ ที่ใช้งานร่วมกับโครงการคอนเทนเนอร์สำคัญๆ จำนวนมาก ทั้ง Docker, cri-o, containerd, Kubernetes
ช่องโหว่นี้เปิดทางให้แฮกเกอร์สร้างอิมเมจมุ่งร้าย สามารถเขียนทับไบนารี runc เอง ทำให้ผลสุดท้ายคือการยึดเครื่องในสิทธิ์ root โดยหากมีใครสร้างอิมเมจต่อมาจากอิมเมจของคนร้าย อิมเมจนั้นก็จะได้รับผลกระทบไปด้วย คะแนนความร้ายแรงตาม CVSSv3 อยู่ที่ 7.2 คะแนน โดยมองเป็นการโจมตีจาก local อย่างไรก็ดีหลายคนอาจจะโหลดอิมเมจจาก Docker Hub โดยไม่ได้ตรวจสอบความน่าเชื่อถือกันอยู่เนืองๆ ช่องโหว่ที่ทำให้ถูกยึดเครื่องได้เช่นนี้ก็ควรเร่งอัพเดตกว่าปกติ
Podman โครงการสร้างเอนจินคอนเทนเนอร์ ภายใต้การดูแลของ Red Hat ประกาศรุ่น 1.0 พร้อมสำหรับการใช้งานเป็นการทั่วไปแล้ว
โครงการ Podman พยายามสร้างเอนจินรันคอนเทนเนอร์แบบเดียวกับ Docker Engine ที่ไม่ต้องการ daemon มารันไว้ล่วงหน้า แต่อาศัยการ fork โปรเซสทุกครั้งที่ผู้ใช้สั่งรันคอนเทนเนอร์ขึ้นมา ทำให้กระบวนการรันคอนเทนเนอร์ไม่ต้องการสิทธิ์ root เลย
ในเวอร์ชั่นนี้รองรับคำสั่ง podman play kube
สำหรับการรัน YAML ของ Kubnernetes แล้ว, รองรับการเซ็นอิมเมจ, การดึงอิมเมจทำแบบขนานทำให้ความเร็วดีขึ้น
ไมโครซอฟท์เปิดตัว Windows Sandbox ฟีเจอร์ใหม่ของ Windows 10 รุ่น Professional และ Enterprise สำหรับการรันโปรแกรมที่ไม่น่าไว้ใจ ทำให้เราสามารถทดลองรันโดยไม่เสี่ยงว่าจะถูกโจมตี ขณะที่ไม่เปลืองทรัพยากรเท่ากับการรันผ่าน Virtual Machine
ภายในของฟีเจอร์ Sandbox อาศัยเทคโนโลยีแบบเดียวกับการรันคอนเทนเนอร์ ไลบรารีของระบบยังคงใช้ร่วมกันระหว่างในและนอก sandbox ทำให้ประหยัดหน่วยความจำ ตัว scheduler เป็นแบบใหม่ที่เรียกว่า integrated scheduler ทำให้โปรเซสใน sandbox ทำงานเหมือนเธรดปกติ เครื่องหลักจึงตอบสนองผู้ใช้ได้ดีกว่า
ใช้งานได้แล้วในวินโดวส์ build 18305 ขึ้นไป
Docker Compose เป็นเครื่องมือสร้างคอนฟิกสำหรับรันแอพพลิเคชันบน Docker ตามที่เราต้องการ (เช่น สั่งดาวน์โหลดอิมเมจ, กำหนดคอนฟิกของอิมเมจ) เป็นไฟล์ฟอร์แมต YAML (.yml)
ล่าสุดบริษัท Docker ประกาศว่า Docker Compose รองรับการคอนฟิกคลัสเตอร์ Kubernetes แล้ว ก่อนหน้านี้ฟีเจอร์นี้เป็นฟีเจอร์สำหรับ Docker Enterprise แต่ก็เปิดซอร์สให้ผู้ใช้ทั่วไปใช้งาน (GitHub)
บริษัท Docker มีผลิตภัณฑ์ Docker Desktop ที่รวมเอาซอฟต์แวร์สำคัญๆ (Docker/Swarm/Kubernetes) สำหรับรันคอนเทนเนอร์บนพีซีแบบติดตั้งง่าย-ใช้งานง่าย โดยบริษัทบอกว่ามีผู้ใช้เป็นประจำเกือบทุกวันที่ 1.4 ล้านคน
ล่าสุด Docker ออก Docker Desktop Enterprise มาจับตลาดลูกค้าองค์กร โดยมีคุณสมบัติเพิ่มจากรุ่นปกติดังนี้
Kubernetes ออกเวอร์ชัน 1.13 ตามระบบออกรุ่นทุกไตรมาส โดยเวอร์ชันนี้จะเป็นเวอร์ชันสุดท้ายที่ออกในปี 2018 และมีของใหม่ดังนี้
ที่มา - Kubernetes Blog
Google ได้ปล่อยแพตช์ให้กับ Kubernetes เวอร์ชัน 1.10.11, 1.11.5 และ 1.12.3 เพื่อแก้ปัญหาช่องโหว่ CVE-2018-1002105 ระดับวิกฤติ (critical) พร้อมแนะนำให้คลัสเตอร์ที่รันซอฟต์แวร์ที่เก่ากว่านี้ให้อัพเดตโดยด่วน โดยแพตช์นี้จะรวมอยู่ในเวอร์ชัน 1.13.0 ที่กำลังจะออกด้วย
ช่องโหว่ CVE-2018-1002105 กระทบซอฟต์แวร์ทุกเวอร์ชันที่ผ่านมา ทำให้แฮกเกอร์สามารถใช้การยืนยันตัวตน TLS ของเซิร์ฟเวอร์ Kubernetes API เพื่อส่งคำสั่งใดๆ ไปยังหลังบ้าน โดยคำสั่งดังกล่าวจะถูกเก็บล็อกเอาไว้ใน kublet หรือระบบล็อกกลางและไม่สามารถแยกออกจากคำสั่งปกติได้
เทคโนโลยีที่กำลังมาแรงในโลก container ตอนนี้คือ service mesh ซึ่งเป็นเลเยอร์ของซอฟต์แวร์ที่มอนิเตอร์และควบคุมไมโครเซอร์วิสอีกทีหนึ่ง ฝั่งของกูเกิลมีความชัดเจนว่าผลักดัน Istio โดยเตรียมผนวกเข้าเป็นส่วนหนึ่งของ Google Kubernetes Engine (GKE) แล้ว
ด้าน AWS ในฐานะผู้ให้บริการคลาวด์หมายเลขหนึ่งของโลก ก็ตอบรับความต้องการนี้ด้วยบริการใหม่ชื่อ App Mesh
ความสำคัญของการพัฒนาบนแพลตฟอร์มคอนเทนเนอร์และระบบ orchrestration เช่น kubernetes เริ่มแสดงความสำคัญขึ้นอย่างมากในช่วงหลังที่องค์กรต้องการรูปแบบการพัฒนาที่รวดเร็ว แม้ว่า kubernetes จะเป็นซอฟต์แวร์โอเพนซอร์สที่ทุกคนสามารถดาวน์โหลดไปใช้งานได้ฟรี แต่ก็อาจจะขาดส่วนประกอบที่จำเป็นสำหรับโลกองค์กรหลายประการ โดยเฉพาะการรับประกันในระยะเวลาที่ยาวนาน และฟีเจอร์สำหรับองค์กรที่มีความซับซ้อนสูง
โอกาสนี้ Blognone ได้พูดคุยกับคุณสุพรรณี อํานาจมงคล Senior Solutions Architect ที่ทำงานกับองค์กรใหญ่ๆ ทั่วภูมิภาคอาเซียนมานานกว่าสิบปี ถึงความเปลี่ยนแปลงครั้งนี้
Docker ประกาศออก Docker Engine เวอร์ชัน 18.09 ซึ่งเป็นรุ่นแรกที่ใช้รอบการออกทุก 6 เดือน เปลี่ยนจากก่อนหน้านี้ที่เร่งออกทุก 3 เดือน
ของใหม่ใน Docker Engine เวอร์ชันนี้คือการพัฒนาอิงอยู่บน containerd เวอร์ชัน 1.2 ซึ่งเป็นซอฟต์แวร์ที่บริษัท Docker Inc. มอบให้กับมูลนิธิ Cloud Native Computing Foundation (CNCF)
อย่างอื่นได้แก่ ปรับปรุง BuildKit (Docker Build) เครื่องมือช่วยสร้างอิมเมจ โดยปรับปรุงทั้งประสิทธิภาพให้ทำงานเร็วขึ้น และเพิ่มฟีเจอร์ใหม่ๆ เช่น SSH forwarding เพิ่มเติม
Docker Engine เวอร์ชันเสียเงิน (Enterprise Edition 18.09) ยังปรับปรุงเรื่องการเข้ารหัส FIPS 140-2 และการบังคับให้ต้องทำ signed image ได้ด้วย
ในรอบ 1-2 ปีนี้ ชื่อเทคโนโลยีฝั่งเซิร์ฟเวอร์ที่พบเห็นได้บ่อยมากคือคำว่า Kubernetes ที่แค่เห็นก็อ่านไม่ออกแล้วว่าออกเสียงอย่างไร (อ่านว่า "คูเบอร์เนเตส") แต่ความร้อนแรงของมันถึงขั้นพลิกโฉมสถาปัตยกรรมของระบบโครงสร้างพื้นฐานทางไอที (infrastructure) ไปอย่างสิ้นเชิง
Kubernetes เป็นซอฟต์แวร์สำหรับ Container Orchestration (คำเดียวกับ "วงออเคสตร้า") ถ้าให้อธิบายแบบสั้นๆ มันคือซอฟต์แวร์ที่ใช้จัดการและควบคุม "วงดนตรีคอนเทนเนอร์" นั่นเอง ส่วนคำอธิบายแบบยาวๆ สามารถอ่านได้จากบทความนี้ครับ
Google Kubernetes Engine (GKE) บริการ Kubernetes ของ Google Cloud Platform ประกาศรองรับ Containerd แล้ว
Containerd คือเดมอน/รันไทม์สำหรับรันคอนเทนเนอร์ เดิมทีมันเป็นส่วนหนึ่งของ Docker Engine แต่ภายหลัง Docker บริจาคโครงการให้กับมูลนิธิ Cloud Native Computing Foundation (CNCF) เพื่อเป็นมาตรฐานกลางของวงการ
แนวทางการใช้งานคอนเทนเนอร์เพื่อการพัฒนาซอฟต์แวร์ บน Docker และแยกเซอร์วิสออกเป็นส่วนย่อยๆ (microservice) เป็นแนวทางที่ได้รับความนิยมอย่างสูงในช่วงหลัง เพราะช่วยลดความยุ่งยากในการจัดการสภาพแวดล้อมกันพัฒนา และการขยายความสามารถของระบบได้ง่ายขึ้น แต่การเชื่อมต่อบริการขนาดเล็กเข้าด้วยกันก็ทำให้เกิดภาระใหม่คือการจัดการล็อกที่อาจจะกระจัดกระจาย, การมอนิเตอร์ส่วนต่างๆ ของซอฟต์แวร์ และการปรับสเกลให้รองรับโหลดที่มากขึ้น
ช่วงหลังโครงการ Kubernetes ของกูเกิลจึงได้รับความนิยมขึ้นมา ในฐานะซอฟต์แวร์ container orchrestration ที่ช่วยจัดการเชื่อมต่อระหว่างคอนเทนเนอร์เข้าด้วยกัน มอนิเตอร์การทำงานของคลัสเตอร์ว่ายังอยู่ในสภาพดี พร้อมกับการจัดการกระจายโหลดของบริการต่างๆ
ช่วงหลังเราได้ยินชื่ออย่าง Docker, Container, Kubernetes, Orchestration กันบ่อยขึ้นมาก โดย Blognone เองก็เคยนำเสนอข่าวในหัวข้อเหล่านี้อยู่บ่อยครั้ง แต่ก็ยังมีความสับสนในเรื่องนี้อยู่มาก เพราะเป็นแนวคิดที่ยังค่อนข้างใหม่และมีความแตกต่างจากระบบเซิร์ฟเวอร์แบบเดิมๆ สูง
บทความชุดนี้จึงมีเป้าหมายเพื่ออธิบายและทำความเข้าใจกับแนวคิดเหล่านี้ ใครที่รู้เรื่องนี้ดีอยู่แล้วสามารถข้ามไปได้เลยครับ
Google Cloud เปิดตัวเครื่องมือสแกนช่องโหว่ใน Container Registry ที่ช่วยในการตรวจสอบช่องโหว่ด้านความปลอดภัยในกระบวนการ CI/CD เพื่อป้องกันการดีพลอยอิมเมจที่มีช่องโหว่ โดยฟีเจอร์นี้เปิดให้ทดลองใช้งานในรูปแบบเบต้าแล้ว
ฟีเจอร์การตรวจสอบช่องโหว่ใน pipeline ของ CI/CD จะช่วยให้ผู้ใช้ระบุช่องโหว่ที่รู้จักโดยทั่วไปได้ทันที ซึ่งระบบจะคอยอัพเดตช่องโหว่ใหม่ ๆ ให้ทันสมัยอยู่ตลอดเวลาและจะทำงานอัตโนมัติ ซึ่งหมายความว่าคอนเทนเนอร์ที่สร้างจาก Cloud Build จะถูกสแกนเมื่ออิมเมจถูกพุชขึ้นไปที่ Container Registry ผ่านการใช้งาน Container Analysis API จากนั้นระบบจะให้คำแนะนำเกี่ยวกับความปลอดภัยกลับมา
Google Cloud Launcher สถานที่ซื้อขายแอพพลิเคชั่นบนคลาวด์ของ Google จากผู้พัฒนาภายนอก ได้ถูกรีแบรนด์ใหม่แล้วโดยเปลี่ยนเป็นชื่อ Google Cloud Platform Marketplace หรือ GCP Marketplace พร้อมกับเพิ่มแอพพลิเคชั่นแบบคอนเทนเนอร์ ทั้งโอเพ่นซอร์สและเชิงพาณิชย์เข้ามาด้วย
สำหรับแอพแบบคอนเทนเนอร์บน GCP Marketplace ผู้ใช้สามารถ click-to-deploy เพื่อทำการดีพลอยแอพไปยัง Google Kubernetes Engine หรือบริการ Kubernetes อื่น ๆ ได้เลย และคอนโซลของ Kubernetes Engine นั้นก็มีหน้าต่าง GCP Marketplace เพื่อเลือกแอพมาดีพลอยได้ในตัวด้วย
หลัง Red Hat ซื้อกิจการ CoreOS ในเดือนมกราคม 2018 ผลิตภัณฑ์หนึ่งที่ซ้อนทับกันคือดิสโทรลินุกซ์จากทั้งสองบริษัท ได้แก่ Container Linux ของ CoreOS และ Red Hat Atomic Host ที่ออกแบบมาสำหรับรันในคอนเทนเนอร์เหมือนกัน
เดือนที่แล้ว Red Hat ประกาศว่าจะยุบดิสโทรสองตัวนี้เข้าด้วยกัน โดยจะให้ Container Linux เป็นตัวหลัก และเปลี่ยนชื่อตัวดิสโทรมาเป็น CoreOS แทน
ในยุคคอนเทนเนอร์ครองเมือง ไฟล์อิมเมจ Docker ถูกสร้างและแจกจ่ายบน Docker Hub อย่างแพร่หลาย ทำให้มันกลายเป็นช่องว่างให้แฮ็กเกอร์แอบฝัง backdoor มาในไฟล์เหล่านี้ด้วย
บริษัทความปลอดภัย Kromtech ประกาศพบไฟล์อิมเมจ 17 ไฟล์ถูกส่งขึ้น Docker Hub และปล่อยทิ้งไว้นานเป็นปี มีคนดาวน์โหลดมากถึง 5 ล้านครั้ง เปิดให้แฮ็กเกอร์สามารถควบคุมเซิร์ฟเวอร์จำนวนมาก และนำไปใช้ขุดเหมือง Monero ได้ถึง 544.74 เหรียญ คิดเป็นมูลค่าประมาณ 3 ล้านบาท
อิมเมจชุดนี้เริ่มถูกอัพโหลดขึ้น Docker Hub ในเดือนพฤษภาคม 2017 และเริ่มมีคนร้องเรียนปัญหาครั้งแรกในเดือนกันยายน 2017 แต่ทาง Docker ก็ละเลยไม่สนใจ จนเวลาผ่านมาหนึ่งปีเต็ม หลังบริษัท Fortinet แจ้งเตือนและ Docker จึงลบอิมเมจออกในเดือนพฤษภาคม 2018
Red Hat เผยแผนการในอนาคตของ CoreOS หลังซื้อกิจการมาในเดือนมกราคม 2018 ด้วยมูลค่า 250 ล้านดอลลาร์
ปัญหาของการซื้อกิจการครั้งนี้คือ CoreOS มีผลิตภัณฑ์หลายตัวที่ทับซ้อนกับ OpenShift เพราะเป็นผลิตภัณฑ์สาย Docker/Kubernetes เหมือนกัน ทำให้ต้องเลือกว่าตัวไหนจะอยู่ตัวไหนจะเลิกทำ
รอบหลายปีที่ผ่านมา โลกไอทีขยับจากเทคโนโลยี virtualization (VM) มาสู่ container กันมากขึ้น โดย container มีข้อดีกว่าเรื่องประหยัดทรัพยากร เพราะไม่ต้องยัด VM ทั้งตัวเข้ามา แต่ก็มีข้อเสียเรื่องความปลอดภัย เพราะงานใน container อาจไม่ถูกจับแยก (isolation) ขาดจากโฮสต์เหมือนกับ virtualization ถ้าเกิดปัญหาอะไรขึ้นมาก็อาจส่งผลกระทบต่อเครื่องที่เป็นโฮสต์ได้
ที่ผ่านมามีความพยายามทำ container isolation อยู่บ้าง เช่นโครงการ Kata ที่เป็นลูกผสมระหว่าง container กับ VM โดยใช้เทคนิค VM แต่ลดขนาดและฟีเจอร์ลง
คอนเทนเนอร์เช่น Docker ได้รับความนิยมอย่างสูงสำหรับการแบ่งทรัพยากรเพื่อรันแอปพลิเคชั่นแยกจากกันในช่วงหลัง แต่ในแง่ความปลอดภัย แต่ละคอนเทนเนอร์ยังคงมีโอกาสสูงที่จะข้ามไปมาได้เพราะใช้เคอร์เนลร่วมกัน ต่างจากระบบ virtual machine ที่มักออกแบบให้แต่ละเครื่องแยกขาดจากกันโดยสมบูรณ์ ตอนนี้กูเกิลเปิดซอร์ส gVisor ระบบแยกทรัพยากรสำหรับคอนเทนเนอร์เพื่อเพิ่มความปลอดภัยเข้าไปอีกชั้น
DigitalOcean เปิดตัวฟีเจอร์ใหม่ DigitalOcean Kubenetes อย่างเป็นทางการ เพื่ออำนวยความสะดวกในการดีพลอยคอนเทนเนอร์โดยไม่จำเป็นต้องทำการตั้งค่าต่าง ๆ ตั้งแต่เริ่มต้น
DigitalOcean Kubernetes ก็จะมีฟีเจอร์คล้ายกับ Kubernetes จากผู้ให้บริการคลาวด์รายอื่น คือช่วยจัดการปัญหาความซับซ้อนในการจัดการคอนเทนเนอร์ มีระบบดีพลอยอัตโนมัติสำหรับ load balancers, block storage, firewalls, ingress controllers เพื่ออำนวยความสะดวกในการจัดการคลัสเตอร์บน DigitalOcean
ใกล้งาน Google I/O ปีนี้ ฟีเจอร์ของซอฟต์แวร์และบริการของกูเกิลสำคัญๆ ก็มักจะถูกประกาศในงาน แต่ฟีเจอร์หนึ่งที่เริ่มปรากฎในโค้ดของ Chrome OS คือ Crostini ที่ยังไม่มีประกาศออกมาเป็นทางการ แต่เอกสารฟีเจอร์ก็ระบุว่ามันเป็นระบบ virtual machine สำหรับรันลินุกซ์ ที่เปิดทางให้ Chrome OS รันแอปสำหรับลินุกซ์ได้เต็มรูปแบบ เช่น Android Studio, VSCode, หรือแม้แต่ Steam ก็ยังได้
โค้ด Crostini เริ่มเข้ามาใน dev channel แล้ว แต่เปิดให้ใช้งานเฉพาะ Pixelbook เท่านั้น แม้ว่าอุปกรณ์ Chrome OS ส่วนมากจะสามารถเปิดใช้ developer mode เพื่อติดตั้งลินุกซ์ได้อยู่แล้ว แต่ Crostini จะทำงานในโหมดปกติได้เลย โดยความปลอดภัยจะแยกคอนเทนเนอร์ออกจากระบบปฎิบัติการหลัก คล้ายกับการรันแอปแอนดรอยด์ใน Chrome OS ทุกวันนี้