- MicroVM เป็นหนึ่งในด้านที่ร้อนแรงของงานวิจัยและพัฒนาเทคโนโลยีตลอด 5 ปีที่ผ่านมา
- แนวคิดหลักคือการรื้อฟื้นบางแนวคิดและเทคโนโลยีที่ IBM คิดค้นขึ้นพร้อมกับไฮเปอร์ไวเซอร์ในทศวรรษ 1960
- ออกแบบ OS ขึ้นมาโดยเฉพาะให้ทำงานเป็น guest บน OS อื่น
- ให้ทำงานอยู่ภายใน VM แต่สื่อสารกับทรัพยากร (VirtIO) ที่ไฮเปอร์ไวเซอร์เฉพาะรายนั้นจัดเตรียมให้ แทนที่จะใช้ฮาร์ดแวร์จำลอง
- เป้าหมายเชิงพาณิชย์คือการมอบประสิทธิภาพสำหรับการประมวลผลแบบ "serverless"
- AWS Lambda ขับเคลื่อนด้วย Firecracker
- Firecracker พัฒนาขึ้นบน KVM hypervisor ที่ฝังอยู่ในเคอร์เนลลินุกซ์ (เดิม AWS ใช้ Xen hypervisor)
- Linux-On-Linux
- ในสภาพแวดล้อมเดียวกันที่ FreeBSD บูตได้ภายใน 25ms นั้น Linux ใช้เวลา 75~80ms
- Colin Percival นักพัฒนา FreeBSD Kernel ระบุว่า ตอนเริ่มต้นปรับปรุงความเร็วการบูตนั้นใช้เวลา 10 วินาที แต่ตอนนี้เร็วขึ้น 400 เท่าแล้ว
- ตอนนี้การปรับแต่งทำได้ดีบน x86-64 เป็นหลัก แต่กำลังดำเนินงานบน Arm64 ด้วย
- Firecracker เป็นหนึ่งใน microVM ที่เป็นที่รู้จักมากที่สุดในปัจจุบัน แต่ก็ยังมีผลิตภัณฑ์อื่นด้วย
- QEMU ได้เพิ่มแพลตฟอร์มเสมือน microvm และ Hocus ซึ่งเป็นบริการสภาพแวดล้อมการพัฒนาออนไลน์ ก็ได้เปลี่ยนจาก Firecracker ไปเป็น QEMU
- นอกจากคลาวด์แล้ว ยังอาจนำไปใช้ในงานแบบอื่นได้ด้วย
- การรันโปรแกรมเดี่ยวที่สร้างมาสำหรับ OS หนึ่ง บนอีก OS ที่แตกต่างกันโดยสิ้นเชิง อาจมีประโยชน์ในหลายสถานการณ์
5 ความคิดเห็น
ความแตกต่างระหว่าง 80 มิลลิวินาทีกับ 20 มิลลิวินาที ในแง่ของบริการจริงทั้งหมด? หรือประสบการณ์ของผู้ให้บริการ? มันต่างกันมากแค่ไหนครับ? ผมเองก็รู้สึกคลุมเครือเหมือนกันว่าแค่ 80 มิลลิวินาทีก็น่าจะเพียงพอแล้วไม่ใช่เหรอครับ ส่วน 10 วินาทีนั้นก็ดูมากเกินไปหน่อยครับ
ถ้าสามารถลดเวลา cold start ให้สั้นกว่าระยะเวลาที่ใช้ในการทำ TLS handshake กับไคลเอนต์ได้ ก็จะไม่จำเป็นต้องมีมาตรการอย่างการวอร์มระบบล่วงหน้าเพื่อป้องกันไม่ให้ผู้ใช้บางส่วนรู้สึกว่าความเร็วช่วงเริ่มต้นช้าลงจาก cold start ที่ช้า
CloudFlare เคยอวดว่าสามารถทำสิ่งนี้ได้จริง โดยลดเวลาโหลดของบริการ Workers ลงเหลือเพียง 5 มิลลิวินาที
ศักยภาพทางเทคโนโลยีของ Cloudflare สุดยอดจริง ๆ...
ช่วงนี้ Colin Percival เป็นที่พูดถึงจากการเปลี่ยน
SYSINITจาก bubble sort เป็น merge sort อยู่ก็จริงแต่บทความนี้อธิบายควบคู่กันไปด้วยถึงความสัมพันธ์ระหว่างการปรับปรุงความเร็วในการบูตของ FreeBSD ที่เป็นพื้นฐานอยู่เบื้องหลัง กับ microVM จึงขอนำมาแปลครับ
Hocus - ทางเลือกโอเพนซอร์สแทน GitHub Codespaces
เหตุผลที่แทนที่ Firecracker ด้วย QEMU
FreeBSD ใช้เวลา 7% ตอนบูตไปกับการ bubble sort
SYSINITFreeBSD เปลี่ยน bubble sort ของ
SYSINITเป็น merge sortอ๋อ เป็นบทความที่อยู่ในบริบทเดียวกันกับนั้นนี่เอง น่าสนใจดี