- Ubuntu Multipass เป็นเครื่องมือสำหรับรันและจัดการ Linux virtual machine บนเวิร์กสเตชันได้อย่างรวดเร็ว
- ใช้งานได้บน Linux, MacOS, Windows
- เป็นทางเลือกแทน Docker หรือ VirtualBox ที่ใช้งานได้ง่ายและเรียบง่ายกว่า
- ช่วยให้เวิร์กสเตชันสะอาดอยู่เสมอ และมีประโยชน์ต่อการทดสอบซอฟต์แวร์และการดีพลอย
Multipass ทำงานอย่างไร?
- สร้างและรัน virtual machine ใหม่:
multipass launch --name backend
- ตรวจสอบสถานะ:
multipass info backend
- รันคำสั่ง:
multipass exec backend -- systemctl restart apache
- เปิด interactive shell session:
multipass shell backend
- แสดงรายการอินสแตนซ์ทั้งหมด:
multipass list
- รีบูต:
multipass restart backend
- ลบอินสแตนซ์:
multipass delete backend
- ยังมีคำสั่งเพิ่มเติม เช่น การเมานต์ไดเรกทอรี (
mount) และการคัดลอกไฟล์ (transfer)
- ดูเอกสารแบบละเอียดได้ที่ที่นี่
ใช้ Multipass ทำอะไรได้บ้าง?
- virtual machine และ container เป็นเครื่องมือที่มีประโยชน์มากที่สุดอย่างหนึ่งในชุดเครื่องมือของนักพัฒนา
- สามารถติดตั้งซอฟต์แวร์จาก third party ไว้ในสภาพแวดล้อมที่แยกออกจากกัน เพื่อให้เวิร์กสเตชันสะอาดและพร้อมใช้งานอยู่เสมอ
- ทดสอบและดีพลอยในสภาพแวดล้อมที่สะอาด เพื่อลดอาการ "เครื่องฉันรันได้ปกตินะ"
- มีโซลูชันให้เลือกหลายแบบ เช่น Docker, VMWare, VirtualBox, VPS ราคาประหยัด หรืออินสแตนซ์ชั่วคราวบนคลาวด์
- virtual machine ของ Multipass คือ Ubuntu LTS instance แบบสมบูรณ์
- ทุกอย่างที่ทำได้บน Ubuntu Linux server ก็ทำได้บน Multipass instance
- สามารถรันซอฟต์แวร์ในสถานะที่แยกออกจากเวิร์กสเตชันได้
- สามารถรัน micro instance หลายตัวเพื่อทำ automated integration test ได้
- สามารถทดสอบ deployment script บนเครื่องโลคัลได้
ข้อดีของ Multipass
Multipass instance รัน Ubuntu LTS แบบสมบูรณ์
- ทุกอย่างอย่าง
nano และ curl พร้อมใช้งานมาให้ตั้งแต่ต้น
- ใช้เครื่องมือ Linux ที่คุ้นเคยได้ทันที
- ไม่ต้องเรียนรู้คำสั่งใหม่ ช่วยประหยัดพลังสมองของนักพัฒนา
Multipass instance เชื่อมต่อได้ทันที
- ทันทีที่รันอินสแตนซ์ ก็เข้าถึง LAN และ WAN ได้
- การเชื่อมต่อเปิดให้พร้อมโดยไม่ต้องตั้งค่าเพิ่มเติม
- ไม่จำเป็นต้องกำหนดค่า virtual network เองหรือแมปพอร์ต
Multipass instance มีสถานะแบบต่อเนื่อง
- Docker container ถูกออกแบบมาให้ใช้งานแบบใช้แล้วทิ้ง
- ข้อมูลต้องเก็บไว้ใน shared volume
- Multipass สามารถเมานต์โฟลเดอร์จากโฮสต์เข้าไปยังอินสแตนซ์ได้ด้วยคำสั่ง
mount
- อินสแตนซ์เริ่มต้นจะเมานต์โฮมโฟลเดอร์เป็น
~/Home โดยอัตโนมัติ ทำให้เข้าถึงไฟล์ได้ทันที
จัดการ Multipass instance ได้ง่าย
- ไวยากรณ์คำสั่งและตัวเลือกมีไม่มาก จดจำได้ง่าย
- ด้วยความสามารถในการรันคำสั่งและโอนไฟล์ จึงสามารถเขียนสคริปต์เพื่อทำงานอัตโนมัติ เช่น การติดตั้งซอฟต์แวร์ การทดสอบรวมระบบ และงานดีพลอย ได้อย่างง่ายดาย
มี UI ด้วย
- หากติดตั้ง Multipass บนเครื่อง Linux ที่ใช้ PopOS! จะมี UI แสดงบนแถบด้านบน
หาได้จากที่ไหน?
- Multipass ใช้งานได้บน Linux, MacOS, Windows
- บน Linux วิธีที่ดีที่สุดคือติดตั้งด้วย
snap
- บนดิสโทรที่ใช้ Ubuntu เป็นฐาน มีแนวโน้มว่า
snap จะถูกติดตั้งมาอยู่แล้ว
- หากไม่มี ต้องติดตั้ง
snap daemon ก่อนผ่าน package manager
- บนแพลตฟอร์มอื่น สามารถดาวน์โหลดแพ็กเกจติดตั้งที่เหมาะสมได้จากที่นี่
หมายเหตุ
- หากมีซอฟต์แวร์ VM ตัวอื่น เช่น Oracle VirtualBox กำลังทำงานอยู่ Multipass instance อาจไม่สามารถเริ่มทำงานได้
- ให้หยุด VirtualBox แล้วลองใหม่อีกครั้ง
สรุปโดย GN⁺
- Ubuntu Multipass เป็นเครื่องมือจัดการ virtual machine ที่มีประโยชน์สำหรับนักพัฒนาและวิศวกร DevOps
- Multipass มีประโยชน์มากในการแยกสภาพแวดล้อมการพัฒนาและรักษาความสะอาดของระบบ โดยเฉพาะอย่างยิ่งเพราะสามารถใช้เครื่องมือ Linux ที่หลากหลายได้อย่างง่ายดาย จึงเป็นมิตรกับนักพัฒนา
- ใช้งานได้ง่ายและเรียบง่ายกว่า Docker หรือ VirtualBox
- เมื่อเทียบกับ Docker จุดเด่นสำคัญคือการเก็บข้อมูลแบบคงอยู่และการตั้งค่าเครือข่ายที่สะดวกกว่า แต่จุดแข็งด้านความเบาและความเร็วในการดีพลอยของ Docker ก็ยังมองข้ามไม่ได้
- รัน Ubuntu LTS instance แบบสมบูรณ์ ทำให้ใช้เครื่องมือและคำสั่งที่คุ้นเคยได้ทันที
- สามารถทดลองสถานการณ์การทดสอบและการดีพลอยได้หลากหลายบนเครื่องโลคัล ช่วยค้นพบและแก้ปัญหาที่อาจเกิดขึ้นในสภาพแวดล้อมจริงได้ล่วงหน้า
- ใช้งานได้บนหลายแพลตฟอร์มและติดตั้งได้ง่าย
5 ความคิดเห็น
ดูจากที่ภายใน ต้องใช้เครื่องมือ virtualization ก็เลยรู้สึกว่าใช้เครื่องมือ virtualization โดยตรงไปเลยน่าจะดีกว่า
ต้องติดตั้ง snap จริง ๆ เหรอครับ? ถ้าต้องติดตั้ง snap เพิ่มเพราะเรื่องนี้ ดูเหมือนว่าจะมีแต่เพิ่มจุดที่ต้องดูแลมากขึ้นหรือเปล่านะครับ https://multipass.run/install
แทนที่จะจำกัดการใช้แขกเสมือนให้เป็น Ubuntu อย่างเดียว
การใช้ rootless podman บนโฮสต์ของตัวเองจะได้เปรียบกว่า เพราะสามารถใช้ Linux OS หลายแบบ เช่น Ubuntu, Alpine, RHEL, Rocky เป็น guest ได้ จึงรองรับสภาพแวดล้อมสำหรับการดีพลอยที่หลากหลายได้ดีกว่า
ไม่จำเป็นต้องเรียนรู้คำสั่งใหม่ จึงช่วยประหยัดพื้นที่สมองของนักพัฒนาได้
Vagrant สำหรับ Ubuntu?