Virtual Machine vs. Container

วันนี้เราจะมาพูดถึงในส่วนของความแตกต่างระหว่าง Virtual machine based กับ Container based

อย่างแรกเรามาทำความรู้จักกับ technologies พวกนี้ก่อนนะครับ

VM based / Virtual Machine based คืออะไร?

VM based / Virtual Machine based คือการที่เราเอา Software มาติดตั้งบนแม่โครงข่ายหรือที่เราเรียกว่า Server โดยเราจะอ้างอิง Specifications ต่างๆไม่ว่าจะเป็น CPU, Disk, Memory เป็นต้น โดยหลักๆแล้วอะครับนักพัฒนาบางท่านจะมีการผสมผสานระหว่าง OS และ Hypervisor เข้าด้วยกัน

ซึ่งจะแบ่งออกเป็นสองกลุ่มดังนี้

Type-1 Hypervisor กลุ่มนี้จะเป็นพวก VMWare ESXI หรือ Microsoft Hypervisor.

Type-2 Hypervisor จะเป็นในกลุ่มพวก VMware Workstation, Virtual box.

ส่วนประกอบทั้งหมดของ Virtual machine มีอะไรบ้าง?

โดยส่วนประกอบทั้งหมดของ Virtual machine อะครับจะประกอบไปด้วย

Infrastructure –  ตัวเครื่อง Server

Guest OS – เป็นระบบปฏิบัติการที่จะทำให้เราใช้งานบน Server ของเราได้นะครับเช่น Linux / Windows เป็นต้น

Hypervisor – Software ที่ติดตั้งบน Guest OS โดยพอติดตั้งสำเร็จเราสามารถที่จะสร้างหรือควบคุมการจัดการของ Virtual machine ได้ครับ

Binary/Library –  เปรียบเสมือน Library ที่เอาไว้เก็บไฟล์ต่างๆเพื่อใช้ในการ Run แอพพลิเคชั่น

Applications – Software ที่ทำให้ End users ใช้งานแอพพลิเตชั่นต่างๆได้ไม่ว่าจะเป็น Browsers, Home offices.

ข้อดีของ VM คืออะไร?

  • เราสามารถลง OS ต่างๆบน Server ของเราได้ไม่ว่าจะเป็น Linux, Windows Server, UNIX เพราะว่าแต่ละ VM ที่เราลงเราจะมีการแยก Library/bin เอาไว้
  • ลดจำนวนการใช้งานของ Server สำหรับการใช้งานประมวนผล

Container คืออะไร?

Container จะเปรียบเสมือนได้กับตู้ Container ที่มีคุณสบมัติหลักๆเลยก้คือง่ายต่อโยกย้ายและช่วยประหยัด Resource ครับ

ส่วนประกอบทั้งหมดของ Container มีอะไรบ้าง?

โดยส่วนประกอบหลักๆของ Container ก้จะมีดังนี้

Infrastructure – ตัวเครื่อง Server

Guest OS – เป็นระบบปฏิบัติการที่จะทำให้เราใช้งานบน Server ของเราได้นะครับเช่น Linux / Windows เป็นต้น

Container Engine – software ที่ใช้สั่งงานผ่าน Command Line

Binary/Library –  เปรียบเสมือน Library ที่เอาไว้เก็บไฟล์ต่างๆเพื่อใช้ในการ Run แอพพลิเคชั่น

Applications – Software ที่ทำให้ End users ใช้งานแอพพลิเตชั่นต่างๆได้ไม่ว่าจะเป็น Browsers, Home offices.

ข้อดี ของ Container คืออะไร?

  • กิน Resource ที่น้อยกว่า VM ทั่วไป
  • ง่ายต่อการจัดการเพราะว่าทุกๆ containers จะมีการแชร์ OS เดียวกันทั้งหมด
  • ใช้เวลาในการสร้างที่น้อยนิด

Use cases สำหรับการใช้ Containers

  • Support CI/CD (both Continuous Integration and Continuous Development) ง่ายสำหรับกลุ่ม DevOps ในการ deploy container image
  • Support Microservices ในกรณีที่เรามี Application หลายๆตัว Container จะเหมาะมากครับเพราะว่าเราสามารถ Run ใน Environment เดี่ยวกันได้โดยจะไม่มีการกระทบของกันและกันครับ
  • Easy to Deploy, Easy to Manage โดยเราสามารถบริหารหรือจัดการ Container ผ่านหน้า Web portal ของเราได้.

 

Comparison VM and Container เปรียบเทียบระหว่าง Virtual Machine(VM) และ Container

Container Virtual Machine
Management Container Engine Hypervisor
Deployment Share the same host OS Each VM run its own OS
Boot time Boot up in milliseconds Boot up in minutes
Resource Consumption Requires less memory space

As it is lightweight.

Requires more memory a space as it is heavyweight
Tools Docker, K8s VMware Esxi, Hyper-V Manager

VM และ Container เหมาะกับธุรกิจแบบไหน?

หลายคนมักจะถามว่าเราจะใช้ VM หรือ  Container ดี แล้วมันเหมาะกับองค์กรของเราไหม

VM นะครับ

  • จะเหมาะกับพวกองค์กรที่ใช้ Legacy application หรือว่า traditional workload ครับ
  • เหมาะสำหรับการทำ Backup + Transfer ข้อมูล

Container นะครับ

  • เหมาะสำหรับการทำ Microservices
  • การทำ Cloud-native application
  • DevOps สามารถนำ CI/CD process มาใช้เพื่อให้เกิดความง่ายต่อการ Deploy application ได้
  • สร้าง Environment หรือ โปรเจ็คใหม่ๆขึ้นได้ โดยจะไม่มีผลกระทบกันและกัน

 

สนใจบริการ Virtual Machine หรือ Container ก็สามารถติดต่อทาง PROEN Cloud ได้เลยนะครับ ^^