Container : รากฐานของระบบ Cloud

สำหรับใครที่เป็นสาย IT หรือ CXO (Cheif Experience Officer) คงเคยได้ยินเรื่องเกี่ยวกับ Docker และ Containerization กันมาบ้างแหละ แต่ถ้าถามว่า Docker และ Container คืออะไร แล้วจะมามีบทบาทเพิ่มศักยภาพให้ Virtual และ Cloud Infrastructure ของได้อย่างไร

ช่วงราวๆ ปี 1970 IBM ได้คิดค้น VM/370 Operating System ขึ้นมา ทำให้สามารถแยกส่วนการทำงานทางกายภาพและ Software ของ Mainframe Computer ได้ คือ ทำให้พวก Instance ของ OS หรือ VM รันได้ใน Environment ส่วนตัว สำหรับ Application และ User แต่ละรายออกจากกัน นอกจาก VM จะช่วยเสริมประสิทธิภาพการทำงานของ Mainframe แล้วยังทำให้การบริหารจัดการง่ายขึ้นอีกด้วย

และในที่สุด เทคโนโลยี Virtualization ก็แพร่หลายมาสู่ Intel และ PC ซึ่งเดิมถูกใช้งานสำหรับ Compatibility เช่น ระบบ DOS/Windows subsystem implemented in OS/2 2.0 เมื่อปี 1992

ต่อมาในปี 1999 VMware ได้เปิดตัวผลิตภัณฑ์ชิ้นแรก คือ VMware 1.0 สำหรับ Linux เพื่อให้ Windows และ Windows Application สามารถรัน Desktop Version ของ OS ได้ เนื่องจากในช่วงเวลานั้น Windows ยังขาด native apps อยู่หลายตัว ทำให้ VMware กลายมาเป็น Tools ยอดนิยมสำหรับ Software Developer ที่ต้องการ Code จาก Running Environment เผื่อในกรณีที่ Development VM เกิดผิดพลาดขึ้นมา OS จะได้ไม่ล่มไปทั้งระบบ

เมื่อเข้าสู่ยุค 2000 Client-server ก็เติบโตขึ้นอย่างรวดเร็วจน Data Center เต็มไปด้วย Server

และด้วยผลิตภัณฑ์จาก VMware ทั้ง ESX hypervisor, Xen, Hyper-V และ KVM ทำให้ x86 System ทั้งหลายกลายมาเป็น Virtual Machine กันเสียเยอะแยะ เม็ดเงินที่ต้องจ่ายเพื่อทำ Server และเป็นเจ้าของ Data Center จึงลดลงจนน่าตกใจ ผลลัพธ์ คือ จาก Physical Server หลายพันเครื่อง ตอนนี้เหลือเครื่อง Host สำหรับบรรจุ Virtual Machine เพียงไม่กี่เครื่องเท่านั้น

ซึ่ง Hypervisor และ Virtual Infrastructure นี้เองที่ผลักดันให้ Data Center และบริการ Publice Cloud แบบ IaaS (Infrastructure as a Service) เติบโตมาได้จนถึงทุกวันนี้

ในปัจจุบัน Public Cloud เช่น AWS (Amazon Web Service) และ Microsoft Azure จะเรียกเก็บเงินเป็นรายชั่วโมงที่ VM เปิดใช้งาน โดยคิดในส่วนของการใช้งาน Virtual cpus (vCPUs) ซึ่งเป็น Virtualization ส่วนหนึ่งของ Host CPU core

VM คือ แหล่ง Instance ทั้งหมดของ OS โดยต้องมี Kernel และ Device Driver ซึ่งเข้ากันได้กับ VM เครื่องอื่นๆ ที่ใช้ Hypervisor ร่วมกัน VM มีข้อดีด้านความสามารถในการย้าย System และ App ภายในจาก Physical ไปยัง Virtual ได้โดยไม่กระทบต่อโครงสร้างพื้นฐานของ Environment ที่มีอยู่ แต่ VM ก็กิน Resource เปลืองมาก โดยเฉพาะในส่วนของ Memory และ CPU intensive workloads อย่าง Database

ทั้งนี้ การใช้งาน VM ในระดับ Private และ Public Cloud หมายความว่า Workload จาก VM แบบ on-premise หลายเครื่อง จะถูกย้ายขึ้นไปบน Cloud กันหมด ซึ่งอาจเกิดปัญหา Scalability และเพื่อเป็นการแก้ปัญหาดังกล่าว Container จึงเข้ามามีบทบาท

Container คล้ายกับ VM ในด้านการสร้างพื้นที่เฉพาะสำหรับ Application โดยมีทรัพยากรแยกออกจากกัน ไม่ว่าจะเป็นพื้นที่สำหรับติดตั้ง, Memory และพื้นที่เก็บไฟล์ เพราะเหตุนี้ Container จึงสามารถมี Sysadmin และกลุ่มของ User ส่วนตัวเฉพาะแต่ละ Container ได้ แต่ที่ไม่เหมือนกับ VM ก็คือ Container ไม่ได้รัน Instance หรือ Image ของ OS อย่างสมบูรณ์ ด้วย Kernels, Drivers, และ Libraries ที่แชร์ร่วมกัน และไม่ว่า Container จะมีจำนวนมากแค่ไหน ก็สามารถรันได้บน Single OS เดียวกัน และมีขนาดเล็กนิดเดียว เมื่อเทียบกับ VM

ภายในหนึ่ง Container จะมีเพียง Application และ Setting กับ Storage ที่จำเป็นสำหรับการทำงานของ Application เท่านั้น ซึ่งบางครั้ง Concept นี้จะถูกเรียกว่า JeOS “Just enough OS”

ด้วยความที่ Container สามารถโอนถ่าย Libraries และ Patches จาก Host เมื่อ Host ของ Container อัพเดท Libraries พวก Container ทั้งหมดที่อยู่ใน Host ก็จะอัพเดท Libraries ไปด้วย จึงเรียกได้ว่า Container หรือ Virtual Environment ที่อยู่บน Host เดียวกันใช้งาน OS เวอร์ชั่นเดียวกันทั้งหมด

ทางด้านการทำงาน Container นั้นต้องการ Host OS หรือ Containerization Platform อย่าง LXC กับ Docker แตกต่างจาก VM ที่รันบน Hypervisor เพราะฉะนั้น Containerization จึงถูกพูดถึงในฐานะ Virtualization ในระดับ OS (Operating System-level Virtualization) โดย Linux containerization host จะรัน Linux containers ส่วน Windows containerization host ก็รัน Windows containers และเพราะ Container หลายตัวสามารถรันได้ด้วย Single Instance ของ OS การจะให้ Container Host กลายมาเป็น Single VM จึงสามารถทำได้เช่นกัน

ตอนนี้เราก็มาถึง Containerization Technology ที่กำลังเป็นที่สนใจกันแล้ว นั่นก็คือ Docker โดย Containerization Engine จริงๆ ของ Docker ใน Linux OS คือ LXC

Docker เป็น Containerization Technology ที่โดดเด่นด้วยการทำให้เราสามารถรวม Application ซับซ้อนทั้งหลายเป็นแพ็คเกจเอาไว้ แล้วอัพโหลดขึ้นที่เก็บไฟล์สาธารณะ จากนั้นก็ดาวน์โหลดมาติดตั้งใน Public หรือ Private Cloud ที่มี OS ซึ่งรัน Docker Engine และ Containerization Platform อยู่ ซึ่งเป็นวิธีการเดียวกันกับที่เราโหลดแอพฯ จาก App Store มาลงสมาร์ทโฟนหรือแท็บเล็ตนั่นแหละ

การย้าย Docker ไป Host อื่นก็สามารถทำได้ไม่ต่างกับการย้าย VM  แถมยังเร็วกว่าด้วยซ้ำ ส่วนเรื่องการ Clustering ข้อมูล Docker จะใช้ Swarm เป็นตัวจัดการไฟล์

สรุปแล้ว การมาถึงของ Container Technology ทำให้การพึ่งพา VM ลดน้อยลง เพราะ Container ได้นำเสนอทางเลือกประหยัดค่าใช้จ่ายด้าน Cloud Computing โดยเฉพาะในระดับ Hyperscale ได้อย่างน่าดึงดูดใจ ให้เหล่า CXO ต้องกลับไปคิดทบทวนเรื่องปรับโครงสร้างระบบและเปลี่ยนมาใช้งาน Docker กันสักที

ฉลาดเลือกในการใช้ Virtual Private Cloud ต่อยอดธุรกิจ

การที่ธุรกิจจะเติบโตไปได้ ก็ต้องมีหลายปัจจัยเข้ามาช่วย นอกจากการทำการตลาดเพียงอย่างเดียวแล้ว การร่นระยะกระบวนการในการทำงานให้น้อยลง ก็ถือว่าเราได้ก้าวไปอีกขั้น

อย่างที่รู้ดีกันแล้วว่า Virtual Private Cloud ก็คือบริการที่องค์กรนำเอาเทคโนโลยีคลาวด์มาปรับใช้สร้างคลาวด์ส่วนตัวขึ้นมาได้แต่ใช้ได้เฉพาะในองค์กรเท่านั้น

แต่ถ้าพูดกันจริงๆตัว Virtual Private Cloud ก็รันอยู่ในระบบคลาวด์สาธรณะอยู่ดี ซึ่งข้อจำกัดของ Virtual Private Cloud ก็พบว่ามีอยู่พอสมควร เพราะว่าระบบนี้เป็นแบบ Multi-tenants โดย Resource ทุกอย่างอยู่บน Infra เดียวกันทั้งหมด จึงพบข้อเสียอยู่บ้าง เช่น การจัดการหมายเลขไอพีความยุ่งยากในการดำเนินงาน

ในขณะที่ Amazon Web Services, Google และ Microsoft ใช้บริการที่ดีขึ้นอย่างต่อเนื่องแต่ Virtual Private Cloud ยังช้าเหมือนจังหวะของหอยทาก ถึงแม้ว่าคลาวด์ตัวนี้จะมีข้อได้เปรียบมากมายในการใช้โอเพนซอร์สแต่ความจริงแล้วก็ไม่สามารถทำงานได้เร็วได้เท่าที่ควร

เมื่อไม่กี่ปีที่ผ่านมาจะเห็นได้ว่าองค์กรยักษ์ใหญ่หลายๆค่ายเริ่มมองหา คลาวด์เพื่อเป็นตัวควบคุมฮาร์ดแวร์และนักไอทีของหลายๆบริษัทได้กล่าวถึง Virtual Private Cloud ในประเด็นความปลอดภัยระบบคลาวด์มักดีกวาระแบบอื่นๆ

และนั่นเป็นเหตุผลที่ระบบ Virtual Private Cloud ยังคงพัฒนาต่อไปแต่ยังคงพัฒนาอย่างต่อเนื่อง และหากองค์กรไหนที่กำลังจะเปรียบเทียบว่าจะใช้  Private Cloud หรือ Public Cloud ดีคงจะต้องพิจารณาในหลายๆด้านเพื่อให้ชนิดของคลาวด์ตอบสนองโจทย์ของธุรกิจได้มากที่สุด

ฉะนันจึงสรุปได้ว่าจริงๆแล้ว Virtual Private Cloud นั้นมีทั้งข้อดีและข้อเสียแต่การใช้งานต่างหากที่สำคัญ หากคุณเลือกใช้ Virtual Private Cloud ในการขับเคลื่อนธุรกิจ คุณก็จะได้รับความปลอดภัยที่สูง ใช้งบลงทุนไม่มากอีกด้วย

 

Private Cloud คือการลงทุนที่คุ้มค่าต่อธุรกิจในปัจจุบัน

เพราะในปัจจุบันนั้นโครงสร้างธุรกิจมีการแข่งขันที่สูงขึ้น ทุกๆกิจการต้องการความรวดเร็วและใช้เทคโนโลยีที่ทันสมัยเพื่อจะเป็นที่ 1 ในด้านธุรกิจ ซึ่งปัจจัยหลักของการเอาชนะคู่แข่งได้ Private Cloud ก็เป็นอีกสิ่งหนึ่งที่ผู้ประกอบการไม่ควรมองข้ามหรือนักธุรกิจควรศึกษาไว้เพื่อรับมือกับการเปลี่ยนแปลงทางธุรกิจ ก่อนอื่นมาทำความรู้จักก่อนกับ  Private Cloud คือระบบ Cloud จัดขึ้นมาเพื่อรองรับการทำงานขององค์กรใดองค์กรหนึ่ง หรือเฉพาะกลุ่มที่ได้รับอนุญาตให้เข้าถึงได้ โดยจะลูกเล่นเหมือนกับ Public Cloud แต่จะต่างกันตรงที่ Private Cloud หนึ่งอันจะถูกใช้โดยหนึ่งองค์กรเท่านั้น โดยมีการบริหารจัดการ Resource ให้กับหน่วยงานภายในกันเอง ผู้ใช้ทั่วไปไม่สามารถเข้าไปใช้ Resource เหล่านั้นได้โดยตรง

ข้อดีของ Private Cloud ที่มีต่อธุรกิจ

– มีความปลอดภัยสูงเพราะข้อความทุกอย่างจะเป็นความลับถายในอังค์กรเท่านั้น

– สามารถควบคุมได้ง่าย

– คุมค่าใช่จ่ายให้อยู่ในขอบเขต

– ยกระดับด้านศักยภาพของบุคลากรและระบบ IT ภายในองค์ให้มีประสิทธิภาพ

– มีความรวดเร็วในการใช้งาน ทั้งด้านโปรแกรม และอินเตอเน็ต

– ไม่เปลือง Internet Bandwidth หากการใช้งานส่วนใหญ่เกิดขึ้นจากบุคคลภายในองค์กรเอง

– ประหยัดค่าใช้จ่าย สำหรับองค์กรที่มีข้อมูลสำคัญอยู่มาก

– สามารถดึงทรัพยากรออกมาใช้ได้อย่างเต็มที่ Private Cloud ให้เราสามารถปรับแต่งการทำงานได้อย่างอิสระ

 

ข้อเสียของ Private Cloud ที่มีต่อธุรกิจ

– ต้องดูแล Private Cloud อยู่ตลอดเวลาเพื่อความปลอดภัยของข้อมูล

– ผู้ดูแลระบบ Private Cloud ต้องเป็นผู้ที่มีความรู้ มีความรับผิดชอบสูง

– มีค่าใช้จ่ายในการลุงทุนด้านHardware และ Software สูง