• wongtisak k.

Virtualization vs. Containerization What is the Difference


หากเราต้องการจะ รัน Application บนเครื่องคอมพิวเตอร์เสมือน ในปัจจุบันมีสองทางเลือกคือรันบน Virtual Machines(VMs) หรือ บน Containers เราจะมาดูกันว่าทั้งสองอย่างมีข้อแตกต่างกันอย่างไรและจะเลือกใช้อย่างไร


Server Virtualization

ปัจจุบันนี้ CPU มีประสิทธิภาพสูงมากขึ้นทุกๆปี และ ราคาของ RAM และ Disk ก็ถูกลงเมื่อเทียบกับขนาดความจุที่ได้ทำให้สามารถที่จะรัน Application หลายๆ Application ในหนึ่ง Physical Server ได้ซึ่งทำให้ลดต้นทุนด้าน IT โดย VMware ซึ่งเป็น Software ที่สามารถจำลอง Virtual Server หลายๆ Virtual server ในหนึ่ง Physical Server ได้ โดยที่แต่ละ Virtual Server (VM) จะมี OS เป็นของตัวเอง ซึ่งจะเป็น Windows Servers หรือ Linux ก็ได้

VMware ถูกออกแบบให้แยกแต่ละ VM ออกจากกัน ทำให้หาก VM ใด VM หนึ่งมีปัญหา จะไม่กระทบกับ VM อื่นๆ หรือ หาก Application ใน VM Crash จำเป็นต้อง reboot OS ก็สามารถทำได้โดยไม่กระทบ กับ VM อื่นๆ ในส่วนของการ Allocate Resources เราสามารถ จัดสรร จำนวน Core CPU, RAM, Disk ให้กับ แต่ละ VM ได้เช่น สามารถให้ VM1: มี Core CPU 4 cores , 12GB RAM, 1TB Disk VM2: Core CPU 2 Cores, 8 GB RAM, 1TB disk ก็สามารถทำได้ และในอนาคต หาก VM2: ต้องการพื้นที่ Disk เพิ่มขึ้นเราก็สามารถ ปรับเพิ่มได้ทันที นอกจากนี้ VMware มี Tool vMotion ที่สามารถย้าย VM ไปยัง Host อื่นได้ โดยไม่ต้องหยุดการทำงาน เรียกว่า live migration ซึ่งเหมาะ กับการทำ disaster recovery เพื่อย้าย VM ไปทำงาน อีกไซท์ หนึ่งได้ โดยไม่ต้อง มีการ Backup หรือ Replicate ข้อมูลไปยัง ไซท์สำรองไว้ก่อน ขอเพียงแต่ มี Server เตรียมไว้สำหรับรองรับ VM ใน ไซท์สำรองก็เพียงพอ



ภาพแสดง การย้าย VM vMotion


เบื้องหลังของ Virtualization Server คือ Physical server จะต้องมี Software ที่เรียกว่า Hypervisor เพื่อทำหน้าที่เป็นผู้จัดสรรทรัพยากร ของ Server ให้กับ VM ทั้งหมด สำหรับ Hypervisor ที่นิยมใช้กันก็มี Hyper-V, ESXi, KVM และ Nutanix AHV


Containers

ข้อต่างระหว่าง Virtualization และ Container คือ Virtualization จะต้องมี OS รันอยู่ในทุกๆ VM ขณะที่ Container จะมี Microservice และไฟล์ที่จำเป็นสำหรับการรันจากนั้นจะใช้เคอร์เนลระบบปฏิบัติการ ไบนารีและไลบรารีของโฮสต์คอนเทนเนอร์เพื่อให้ทำงานได้ ไฟล์ที่แชร์เหล่านี้จะถูกใช้ ใน Container อื่นๆ อีกด้วย

Container จะมีส่วนประกอบที่น้อยกว่าทำให้ เริ่มทำงานได้เร็วกว่า เพราะเป็นการรันแบบ Microservice โดย Container ที่นิยมกันได้แก่ Docker, Apache Mesos, lxc, containerd, Hyper-V Containers และ Windows Server Containers



VM Container


เทียบมวยระหว่าง VMs กับ Containers


- Container มีขนาดเล็กและเร็วกว่า VMs ต้องการทรัพยากรน้อยกว่า VMs ซึ่งหมายความว่า ใน Physical Server เดียวกัน สามารถมี Container ได้มากกว่า VMs

- Container สามารถ Start ได้เร็วกว่า VMs มาก เพียงแค่ ไม่กี่วินาที ขณะที่ VMs จะต้อง Boot OS ซึ่งใช้เวลานานกว่ามาก

- Container เป็นการแชร์ OS ดังนั้น ทุก Application ใช้ OS เดียวกัน ขณะที่ VMs สามารถรัน OS ได้หลากหลาย เนื่องจาก มี OS แยกตาม VM Host

- ถ้า OS บน Host ที่รัน Container มีปัญหาทุก Container จะมีปัญหาทั้งหมด เพราะแชร์ OS เดียวกันทุก Container

- เช่นกันหากมีภัยคุกคามเกิดขึ้นบน OS ของ Container ทุก Containerก็ได้รับผลทั้งหมด


เมื่อไหร่ควรใช้ VMs หรือ Container

VMs เหมาะสำหรับ Application ขนาดใหญ่ต้องการทรัพยากรมาก หรือ Application ที่ต้องการแยก Instance เพื่อป้องกันความเสี่ยง ระบบที่ต้องการ OS ที่หลากหลายขณะที่

Container เหมาะกับงานสร้าง Cloud-native app , การทำ Microservices, สำหรับ Developer ที่ต้องการ Deploy เอง บน เครื่องคอมพิวเตอร์ของตัวเอง


สนใจปรึกษา ระบบ Virtual Server สามารถติดต่อเราได้ที่ โทร 02-513-9415-6 หรือ

อีเมล contact@techknowledge-th.com

โดยทีมผู้เชี่ยวชาญจาก Techknowledge Consulting ที่มีประสบการณ์การทำงานมากกว่า 15 ปี

Ref: https://www.enterprisenetworkingplanet.com/data-center/virtualization-vs-containerization/


61 views