Container คืออะไร
Container คือการแพ็กแอปพร้อมไลบรารีและการตั้งค่าที่แอปต้องใช้ไว้ในกล่องเดียว ย้ายไปรันบนเครื่องไหนก็ทำงานเหมือนเดิม โดยไม่ต้องติดตั้งโปรแกรมประกอบใหม่
เปรียบง่ายๆ
เหมือนตู้คอนเทนเนอร์ขนส่งสินค้า ข้างในจะเป็นอะไรก็ได้ แต่ขนาดและจุดยึดเป็นมาตรฐาน เรือหรือรถบรรทุกคันไหนก็ยกต่อได้ทันที โดยไม่ต้องรื้อของออกมาจัดใหม่
Container ประกอบด้วยสองส่วน ส่วนแรกคือ image ซึ่งเป็นแม่แบบที่รวมโค้ดของแอป ไลบรารี และการตั้งค่าไว้ด้วยกัน ส่วนที่สองคือ container ซึ่งคือ image ที่ถูกเปิดให้ทำงานจริง image หนึ่งตัวเปิดเป็น container ได้หลายตัวพร้อมกัน รูปแบบ image ที่ใช้กันทั่วไปเป็นมาตรฐานเปิดชื่อ OCI ซึ่งเครื่องมืออย่าง Docker สร้างได้
ความต่างจาก VM
Cloud Server หรือ VM มีระบบปฏิบัติการเต็มชุดของตัวเอง ซึ่งคุณต้องอัปเดตและตั้งค่าเอง ส่วน container ใช้แกนของระบบปฏิบัติการร่วมกับเครื่องที่รัน จึงเบากว่าและเริ่มทำงานได้เร็วกว่า
container ถูกออกแบบให้ทิ้งแล้วสร้างใหม่ได้ ไฟล์ที่แอปเขียนไว้ในตัว container จึงหายเมื่อดีพลอยใหม่ ถ้าต้องเก็บข้อมูลถาวร ให้ต่อ Block Storage
การรัน container บน XVer
Container Compute รับได้ทั้ง image ที่ build ไว้แล้ว และโค้ดที่ให้ระบบ build เป็น image ให้ เมื่อดีพลอย ระบบตรวจว่าเวอร์ชันใหม่ทำงานปกติก่อนสลับไปใช้ แล้วให้ลิงก์ HTTPS บน *.run.xver.cloud จำนวน container เพิ่มและลดตามคำขอด้วย Autoscaling
ข้อผิดพลาดที่พบบ่อย
- build image บน Mac ชิป Apple Silicon โดยไม่ระบุ platform จะได้ image สำหรับชิป ARM ซึ่งรันบน Container Compute ไม่ได้ ให้ใส่
--platform linux/amd64ตอน build - ใส่รหัสผ่านหรือค่าตั้งค่าไว้ใน image ทุกคนที่เข้าถึง image จะเห็น ควรแยกค่าเหล่านี้ออกมาตั้งตอนดีพลอย
ตัวอย่างค่าใช้จ่ายบน XVer
ราคาต่อหน่วยของ Container Compute และโควตาฟรีที่ได้ทุกเดือน
| รายการ | ราคา | ฟรีต่อเดือน |
|---|---|---|
| vCPU | ฿0.0003/vCPU-วินาที | 180,000 vCPU-วินาที (50 vCPU-ชม.) |
| หน่วยความจำ | ฿0.00005/GiB-วินาที | 360,000 GiB-วินาที (100 GiB-ชม.) |
| HTTP request | ฿20/1 ล้านครั้ง | 1,000,000 ครั้ง |
- โควตาฟรีนับแยกต่อ container และเริ่มนับใหม่ทุกวันที่ 1 ของเดือน
- นับการใช้งานเป็นวินาทีและเรียกเก็บรายชั่วโมง ช่วงที่ scale to zero ไม่มีค่าประมวลผล
- ราคาดึงจากระบบราคาของ XVer ตอนสร้างหน้านี้ เป็นเงินบาท