
VM Virtual Machine
VM ย่อมาจาก “Virtual Machine” หมายถึง โปรแกรมคอมพิวเตอร์ที่จำลองการทำงานของเครื่องคอมพิวเตอร์ (computer) จริงๆ โดยสร้างขึ้นมาเพื่อให้ผู้ใช้งานสามารถรันโปรแกรมหรือซอฟต์แวร์ต่างๆ ได้บนเครื่องคอมพิวเตอร์หลายๆ เครื่องได้ โดยไม่จำเป็นต้องติดตั้งโปรแกรมหรือซอฟต์แวร์นั้นๆ ลงบนเครื่องคอมพิวเตอร์ทุกเครื่อง ในกรณีที่ต้องการรันโปรแกรมนั้นบนเครื่องคอมพิวเตอร์ต่างๆ
การพัฒนา VM เริ่มต้นขึ้นในปี ค.ศ. 1960 โดย IBM ที่พัฒนาโปรแกรมสำหรับเครื่อง System/360 ซึ่งเป็นเครื่องคอมพิวเตอร์ใหญ่ของ IBM ในยุคนั้น โดย VM ในยุคนั้นถูกออกแบบให้สามารถรันหลายระบบปฏิบัติการบนเครื่องเดียวกันได้ นับเป็นเทคโนโลยีที่มีประสิทธิภาพสูงและประหยัดทรัพยากรมากกว่าการใช้เครื่องจำลองฮาร์ดแวร์ที่ต้องมีฮาร์ดแวร์สำหรับแต่ละระบบปฏิบัติการ ต่อมาในปี ค.ศ. 1972 นักวิทยาการคอมพิวเตอร์ชื่อว่า Bob Supnik ได้พัฒนาโปรแกรมชื่อชุด SIMH ที่เป็นโปรแกรมจำลองเครื่องคอมพิวเตอร์โดยใช้โครงสร้างของ VM เพื่อใช้ในการจำลองเครื่องคอมพิวเตอร์โบราณเช่น PDP-11, VAX และ DECsystem-10 ซึ่งชุดโปรแกรม SIMH นี้ได้รับความนิยมในการใช้จำลองเครื่องคอมพิวเตอร์โบราณจนถึงปัจจุบัน และในปี ค.ศ. 1998 บริษัท VMware ได้เปิดตัวโปรแกรม VMware Workstation ซึ่งเป็นโปรแกรมจำลองเครื่องเพื่อใช้ในการทดสอบและพัฒนาระบบปฏิบัติการและแอปพลิเคชัน โดย VM จะสร้างสภาพแวดล้อมที่เหมือนกับเครื่องจริงๆ ที่รองรับการทำงาน ทำให้ผู้ใช้งานสามารถรันโปรแกรมหรือไฟล์ซอฟต์แวร์ต่างๆ ได้บน VM ได้เหมือนกับการรันบนเครื่องจริงๆ โดย VM จะรับรู้คำสั่งและคำขอการทำงานจากผู้ใช้งาน และแปลงเป็นรหัสเครื่องที่เข้าใจได้ แล้วส่งคำสั่งไปยังเครื่องจริง เพื่อทำการดำเนินการต่อไป

Physical Server VS VM (Cr: Veeam.com)
หัวใจหลักๆ ของ VM ประกอบด้วย Host Machine และ Guest Machine Host Machine หรือคอมพิวเตอร์จริง จะรันระบบปฏิบัติการ (Operating System) และ VM จะถูกติดตั้งบนระบบปฏิบัติการดังกล่าว ซึ่งทำหน้าที่เป็น Hypervisor หรือ Virtual Machine Monitor (VMM) เพื่อจัดการทรัพยากรของเครื่องจริง ๆ เพื่อให้ VM ที่ถูกสร้างขึ้นมาสามารถเข้าถึงและใช้งานทรัพยากรดังกล่าวได้อย่างมีประสิทธิภาพ
Guest Machine หรือคอมพิวเตอร์จำลองบน VM นั้นจะถูกติดตั้งระบบปฏิบัติการและแอปพลิเคชันต่างๆ ที่ผู้ใช้งานต้องการใช้งาน โดยที่ VM จะจัดการทรัพยากรของเครื่องจำลองให้แก่ Guest Machine เหมือนกับเครื่องจริง ๆ ที่มีหลายหน้าต่างและแอปพลิเคชันที่รันพร้อมกันได้ ตัวอย่าง VM ที่สามารถใช้งานได้ฟรี:
1. VirtualBox: เป็นโปรแกรม VM ที่ได้รับความนิยมมากๆ และมีการพัฒนาโดย Oracle โดยสามารถใช้งานบน Windows, Mac และ Linux
2. VMware Workstation Player: เป็นโปรแกรม VM ที่ได้รับความนิยมอย่างมาก มีฟีเจอร์หลากหลาย และสามารถใช้งานบน Windows และ Linux
3. KVM (Kernel-based Virtual Machine): เป็นโปรแกรม VM ที่เป็น Open Source และสามารถใช้งานบน Linux ได้ฟรีๆ โดยใช้งานผ่าน Terminal โดยไม่ต้องมี GUI (Graphical User Interface)
นอกจาก VM แบบดั้งเดิมที่ใช้ Hypervisor เพื่อจัดการรันและจำลองระบบปฏิบัติการ ยังมีเทคโนโลยี Containerization ที่เป็นทางเลือกที่มากขึ้นในช่วงสองสามปีที่ผ่านมา การใช้งาน Containerization ช่วยลดความซับซ้อนในการจัดการระบบและการใช้ทรัพยากร โดยใช้ Container เพื่อแยกแยะและจำลองแอปพลิเคชันในรูปแบบเลเยอร์บนระบบปฏิบัติการเดียวกัน ซึ่งมีความสามารถในการใช้ทรัพยากรน้อยกว่า VM และเร็วกว่าในการเริ่มต้นและหยุดใช้งาน
ในอนาคต คาดว่าการใช้งาน Containerization จะมีความนิยมมากขึ้นเนื่องจากความสามารถในการจัดการระบบที่เป็นมาตรฐานและความรวดเร็วในการรันและเลิกใช้งาน Container อีกทั้งยังเริ่มมีการพัฒนาและการใช้งานเทคโนโลยีอื่น ๆ เช่น MicroVMs ซึ่งเป็นการรันแอปพลิเคชันในรูปแบบของ Virtual Machine ที่มีขนาดเล็กกว่าและใช้ทรัพยากรน้อยกว่า และเทคโนโลยี Serverless Computing ที่ให้ความยืดหยุ่นและประหยัดทรัพยากรในการรันแอปพลิเคชันโดยไม่ต้องกังวลเรื่องราคาและความซับซ้อนในการดูแลระบบซอฟต์แวร์