Canonical ประกาศออกคอนเทนเนอร์ Ubuntu ขนาดเล็กพิเศษที่เรียกว่า "chiselled" เข้าสถานะ GA (general availability) อย่างเป็นทางการ
แนวคิดของ chiselled container คือการสกัดส่วนที่ไม่จำเป็นออกจากคอนเทนเนอร์ (ตามความหมายของคำว่า chisel ที่แปลว่าสิ่ว แต่ในที่นี้คือชื่อตัวจัดการแพ็กเกจของ Canonical) เหลือแค่ตัวแอพพลิเคชันและรันไทม์ที่เกี่ยวข้องเท่านั้น ไม่ต้องมีส่วนแพ็กเกจ ไลบรารี และซอฟต์แวร์อื่นของระบบปฏิบัติการติดมาด้วย ทำให้คอนเทนเนอร์มีขนาดเล็กลงมาก นำไปใช้ข้ามดิสโทรได้ และปลอดภัยกว่าเดิมเพราะลดพื้นที่การถูกโจมตีลง
Canonical เริ่มทำคอนเทนเนอร์แบบนี้กับ .NET 6 มาตั้งแต่ปี 2022 และตอนนี้ทดสอบจนมั่นใจในระดับ GA จึงออกคอนเทนเนอร์สำหรับแอพพลิเคชันยอดนิยมมา 3 แพลตฟอร์ม ได้แก่ Python, Java และ .NET (มีทั้ง .NET 6/7/8 ให้เลือก)
ตัวเลขของ Canonical บอกว่าคอนเทนเนอร์ Java มีขนาดเล็กลง 51% ในขณะที่คอนเทนเนอร์ .NET ก็ลดขนาดลงเหลือ 116MB เทียบกับ 219MB ในคอนเทนเนอร์ปกติ
ที่มา - Canonical
Comments
ชอบโลกของ container จัง มันทำให้การพัฒนาและนำซอร์ฟแวร์ไปใช้งานสะดวกขึ้นมากจริงๆ
..: เรื่อยไป
สำหรับ dev นี้ไม่เสมอไปครับ
มันทำให้ dev ประเภทขี้เกียจเรียนรู้ config environment มาเกินความจำเป็นเป็นประจำ
ทำให้ไม่รู้ requirement ของ app ตัวเอง
สุดท้าย error on production
ได้ product แย่ๆ ออกมา
พอเล่ารายละเอียดเพิ่มได้ไหมครับ ผมจะได้หลีกเลี่ยงไม่ทำตัวแบบนั้นบ้าง ไม่รู้ว่าหลุดโดยไม่รู้ตัวอยู่ไหม 😢
ใช่ๆ ถ้าสะดวกแชร์ฝากแชร์หน่อยนะครับ จะได้เลี่ยง
..: เรื่อยไป
หมายถึง dev ที่ focus แต่ coding กับ requirement เท่านั้น พอเจอต้องมายุ่งเรื่องการ deploy ใน k8s ก็เหมือนต้องรู้เรื่อง infra/network มากเกินไปจนเบลอ คุณภาพงานเลยเสียอะไรแบบนี้ป่าวนะครับ
Ooh
ผมน่าจะใช้คำสื่อความหมายผิดไปหน่อย
ตัวอย่างนะครับ platform eCommerce opensource อันนึงมี dev container ให้ ใน container ก็มี env1..2..3.., tool 1..2..3.. เยอะไปหมด dev ก็ไม่ได้ใช้หมดทุกอัน
- แต่ app ที่ตน dev มันดันไปเกิด error กับ environment ที่ตนไม่ได้ใช้ ทำให้มัวแต่ไปหาคำตอบ ว่าทำไมมัน error จนไม่ได้ focus ที่ environment ของ app ตัวเองจริงๆ
- บางครั้งตอนเอาไป deploy มันก็ error อีก เพราะ environment ไม่มันเหมือนกัน (พวก dev container มันไม่ค่อยมี server application ที่ใช้จริงอย่าง Nginx มาให้)
ทั้งที่เวลา dev minimum environment มันก็ไม่ได้เยอะมาก เดี๋ยวนี้ package manager ก็หาให้ได้เกือบหมด
อยาก Install อะไรก็ apt, composer, npm,... เท่านั้นเอง
ที่จริงผมก็เคยพยายามใช้ container อยู่ช่วงหนึ่ง แค่พอลองใช้ apt ดูนี้รู้สึกว่า install เองจะง่ายกว่า