How container technology

เทคโนโลยี Virtualization นั้นเรียกได้ว่าเป็นหัวใจสำคัญของ Cloud โดยเป็น Virtualization เต็มรูปแบบอันมีพื้นฐานมาจาก Hypervisor-Based ที่ซึ่งพวก Host Operating System และ Hypervisor จะรันชิ้นส่วนของ VM อย่า Independent Server ด้วย OS ของตน และ Middleware ทั้งนี้การ Virtualization ได้สร้างขอบเขตของระบบที่มีค่ามากใน Cloud และรูปแบบการ Virtualization ที่เป็นที่นิยมอยู่ตอนนี้ก็คือ Container Technology นั่นเอง

ในการทำงานของ Container ตัว Server จะรัน OS ที่สร้าง Container แบบกึ่งอัตโนมัติเพื่อรองรับ Application ต่างๆ โดย Application พวกนี้จะแชร์การใช้งาน OS หรือ Host ร่วมกัน ทำให้ Server ไม่ต้องรัน OS ใหม่สำหรับแต่ละ VM และรองรับการทำงาน Multi-Programming ได้ง่ายขึ้น รวมทั้งแบ่ง Application ออกจากกันได้ ถึงอย่างนั้นก็ยังไม่ใช่การแยกออกเป็นเอกเทศอย่างสิ้นเชิงเหมือนกับ VM

อาจกล่าวได้ว่าเทคโนโลยี Container เป็นคำตอบที่เหมาะสำหรับ Private Cloud และ Application บางอย่างของ Public Cloud โดยมี Container ยอดนิยม อย่าง Docker เป็น Platform ที่เพอร์เฟ็กต์ที่สุด

 

กระแสนิยม Docker ใน Cloud

Docker เป็นระบบจัดการ Container (Container Management System) ที่จัดการการสร้าง Container อย่างอัตโนมัติเพื่อใช้รัน Application หรือ Component ต่างๆ โดยพื้นฐานแล้ว จะมีชุด API สำหรับจัดการ Container ที่อาจสร้างมาจาก Template หรือ Command ซึ่งตอนนี้ Docker ก็มีการพัฒนาอยู่ตลอด ออก Orchestration Tool สำหรับ Deploy Component เพิ่มเข้ามาให้ใช้ง่ายได้ง่ายและสะดวกยิ่งขึ้น

ที่จริงแล้วการสร้างระบบ Container-Based จะทำบน OS แบบไหนก็ได้ที่รองรับการ Partition แบบ Container แต่ Docker กลับใช้ Linux Container Tool ดังนั้น Docker Container จึงรันเฉพาะ Application และ Component ของ Linux เท่านั้น แม้จะสามารถรันบน OS อื่นได้ แต่ก็ยังต้องการ Linux Guest OS ติดตั้งไว้ใน VM เพื่อรองรับการทำงานของ Container ซึ่งแน่นอนว่ามันก็ต้องรัน Application ของ Linux อีกเช่นกัน

Windows จะทำงานแบบใช้ Docker ติดตั้งเอาไว้ใน VM (Docker-in- a-VM Approach) ซึ่งการนำ Docker มาใช้นอก Linux Host นั้นมีความยุ่งยากมาก ทำให้ผู้ใช้หลายคนรู้สึกว่าความยากมันมากเกินกว่าจะช่วยให้ทำงานได้สะดวกขึ้น

 

ต่อให้ผู้ใช้จะรัน Docker บน Host OS อื่นที่ไม่ใช่ Linux แต่สุดท้ายก็มีข้อจำกัดว่าต้องใช้ Application ของ Linux อยู่ดี อย่างไรก็ตามการ Host Docker Container บน Server ของ Windows ก็ยังถือว่าเหมาะสมกับผู้ใช้ที่มี Windows Server ขนาดใหญ่และต้องการเพิ่ม Linux-Based Application เข้าไป

ทางด้าน VM-based Virtualization และ Cloud Computing จะมีข้อได้เปรียบตรงความเป็นเอกเทศ เหมาะกับการทำ Public Cloud และ Server Consolidation โดยการสร้าง Application สำหรับใช้บน Cloud แทนที่จะย้าย Application จะช่วยลดความจำเป็นของการ Support ความเป็นเอกเทศในระดับนี้ลงไป กลุ่มองค์กรสามารถ Host Container บน VM ใน Public Cloud หรือ Host ใน Data Center หรือกระทั่งบน Client Device ก็ได้ โดยใช้ Orchestration Tool ใหม่ของ Docker ในการ Deploy Container Based Component รวมทั้งประสานการทำงานกับ Workflow แถม Tool พวกนี้ยังช่วยให้ใช้งาน Hybrid Cloud ได้สะดวกด้วยระบบ Failover ที่ใช้งานง่ายกว่าเดิม

ด้วยความเล็กและการทำงานอย่างรวดเร็วของ Container ทำให้สามารถ Scale จำนวน Load หรือ เพิ่ม/ลด Feature ได้ อีกทั้ง Machine Image ที่ต้องใช้ Load โครงสร้าง Container ลงไปบน Bare-Metal หรือ VM ก็ง่ายต่อการพัฒนาระบบ และสามารถ Port ได้สะดวกอีกด้วย ตัว Application Image ที่ต้องติดตั้งลงไปใน Container ก็สามารถพัฒนาและสั่ง Deploy ได้ง่ายเช่นเดียวกัน โดยพึ่งการทำงานของ Host OS และ Middleware Service

 

Docker เป็นที่นิยมมากขึ้นเรื่อยๆ แต่ยังห่างไกลคำว่าเพอร์เฟ็กต์

ถึงจะได้รับความนิยมอย่างล้นหลามแต่ Docker ก็ไม่ได้สมบูรณ์แบบ ทำให้ VM ยังคงเป็นคำตอบที่ดีที่สุดสำหรับ Application ใน Public Cloud เพราะว่าการเจาะระบบ VM เพื่อโจมตี Application นั้นทำได้ยากกว่าโจมตีที่ตัว

Container นอกจากนี้ Docker ยังไม่ค่อยมีระบบป้องกันการดึงทรัพยากรไปใช้เกินจำเป็นของ Container จนส่งผลกระทบต่อเครื่องอื่นๆ จึงต้องรัน Container และ Docker ภายใน VM ซึ่งเป็นพื้นฐานของการใช้งาน Docker และ VM ร่วมกัน

 

นอกจากนี้ ยังมีอีกวิธีหนึ่ง คือ การปรับ VM ให้ทำงานคล้ายกับ Container เรียกว่า “Mini-VM” เช่น การที่ Xen Mirage ใช้ Shim Kernel ที่มีความเป็นเอกเทศกับกับ Application อยู่บ้าง แต่จะเลี่ยงการคัดลอก OS และ Middleware ทั้งหมด

 

ส่วนการตัดสินใจว่าจะเลือกใช้ Container หรือ VM ดีนั้น ต้องดูจากโครงสร้างของ Application และ Source ซึ่ง Monolithic Application ที่สร้างขึ้นมาด้วย Server Consolidation จะมีขนาดใหญ่และไม่ยืดหยุ่น ใช้ประโยชน์จาก Container ได้ไม่มาก Application ที่เหมาะกับเทคโนโลยี Container คือ พวกที่มีพื้นฐานมาจาก SOA/REST เพราะ Application พวกนี้มีขนาดเล็ก กระจายตัวได้หลากหลาย ย้ายไปมาระหว่าง Cloud ได้ รวมทั้งสามารถ Scale อย่างต่อเนื่อง หรือรันการทำงานแบบเป็นช่วงๆ ได้

เทคโนโลยี Container และบทบาทของ Docker ในระบบ Cloud Computing มีแนวโน้มจะเติบโตอย่างต่อเนื่อง โดยเฉพาะเมื่อ Application ใหม่ๆ สำหรับ Cloud โดยเฉพาะได้รับการพัฒนาออกมาอยู่เรื่อยๆ นานวันเข้าก็จะมีการทำงานร่วมกันระหว่าง Docker กับ VM มากขึ้น Orchestration Tool คุณภาพสูงจะช่วยให้ผู้ใช้สามารถสั่งใช้งาน Component ใน Container หรือ VM หรือกระทั่ง Container ภายใน VM ก็ยังได้

Why move to the cloud? 10 Benefits of Cloud Computing

Cloud เทคโนโลยีอินเตอร์เน็ตมาแรงในยุคนี้ สมัยก่อนเราใช้ Application ต่างๆ จาก Software ที่ต้องทำการดาวน์โหลดจากเน็ต ต่อจากนั้นถึงจะติดตั้งลงบนเครื่องคอมพิวเตอร์ของเรา

แต่เมื่อ Cloud เข้ามาเราสามารถใช้งาน งาน Application หรือ Program ทั้งหลายได้เลย ผ่านทาง Internet
ทุกวันนี้พวกเราเองก็กำลังใช้ Cloud กันอยู่โดยไม่รู้ตัว ทั้งการอัพเดทสเตตัสบท Facebook, การใช้ธนาคารออนไลน์ หรือแอพโอนเงินต่างๆ เป็นต้น

Cloud Computing กำลังกลายมาเป็นส่วนหนึ่งในชีวิตประจำวันของพวกเราอย่างรวดเร็ว จากการคาดการณ์ในภาพรวม ราวๆ 90% ของธุรกิจจำเป็นต้องพึ่งพาอยู่บนระบบ Cloud Computing อย่างแน่นอน เรามารู้จัก 10 ข้อดีของการเปลี่ยนมาใช้ Cloud กันดีกว่า

ยืดหยุ่น : พวกระบบบริการที่เป็น Cloud-based Service ทั้งหลาย แทบจะเป็นระบบในอุดมคติสำหรับธุรกิจที่มีการเคลื่อนไหวของ Bandwidth เพราะในระบบ Cloud เราสามารถเพิ่มหรือลดขนาดของ Bandwidth ได้ทันทีตามต้องการ

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

อัพเดทซอฟต์แวร์อัตโนมัติ : สุดยอดข้อดีของระบบ Cloud ก็คือ Server ของมันเป็นแบบ Off-premise การติดตั้งไม่กินพื้นที่ในบริษัท การดูแลทั้งหมดไม่ว่าจะด้านความปลอดภัย การบำรุงรักษา หรือการอัพเดทซอฟต์แวร์จะเป็นหน้าที่ของผู้ให้บริการที่คอยจัดการให้โดยอัตโนมัติ

ไม่เสียค่าอุปกรณ์ : ลืมค่าอุปกรณ์ฮาร์ดแวร์ราคาแพงไปได้เลย เพราะเราไม่ได้มีเครื่อง Server ติดตั้งอยู่กับตัวบริษัท ผู้ใช้บริการระบบ Cloud เพียงแค่จ่ายค่าบริการในส่วนที่ต้องการใช้เท่านั้น

ประสานงานได้ดีขึ้น : เมื่อมีการสร้างหรือแชร์งานผ่านระบบ Cloud ทีมงานทุกคนจะสามารถทำงานพร้อมกันได้ทันที และยังอัพเดทแบบ real-time อีกด้วย

อยู่ที่ไหนก็ทำงานได้ : สามารถทำงานจากที่ไหน เมื่อไหร่ก็ได้ เพียงแค่มี Internet กับอุปกรณ์สำหรับเข้าถึงก็เพียงพอ เพิ่มความคิดสร้างสรรค์ส่งผลดีต่องานของเราได้ด้วยการทำงานในสภาพแวดล้อมตามใจชอบ

จัดการเอกสารได้ง่าย : Cloud จะช่วยจัดการเอกสารให้ง่ายขึ้นเพราะเอกสารจะถูกเก็บในส่วนกลาง มีการอัพเดทอยู่ตลอดทุกคนสามารถเปิดอ่านเอกสารฉบับล่าสุดที่เพิ่งแก้ไขได้ในทันที

ปลอดภัย : ก่อนหน้าที่จะมีระบบ Cloud การทำคอมพิวเตอร์โน้ตบุ๊คหาย หรือโดนขโมย นอกจากจะเสียเครื่องไปแล้วยังสูญข้อมูลภายในอีกด้วย ระบบ Cloud จะช่วยให้ปัญหานี้เบาบางลง เพราะไฟล์งานจะถูกเก็บไว้แบบออนไลน์ 100%

เพิ่มอำนาจการแข่งขัน : บางบริษัทเล็กๆ อาจติดปัญหาความพร้อมทางเทคโนโลยีเมื่อต้องการแข่งขันกับธุรกิจใหญ่ๆ แต่ระบบ Cloud จะทำให้บริษัทเล็กๆ ใช้เทคโนโลยี และ Application ที่ทันสมัย เพิ่มอำนาจในการแข็งขันได้อย่างเต็มที่ โดยเลือกจ่ายเฉพาะสิ่งที่ต้องการใช้

เป็นมิตรต่อสิ่งแวดล้อม : ตามปกติแล้ว Server จะใช้พลังงานและปล่อยคาร์บอนออกไปมหาศาลในการ Scale ระบบที่อาจจะไม่ได้ใช้งานอย่างคุ้มค่าเท่าที่ควร แต่ด้วยความยืดหยุ่นของ Cloud ทำให้เราปรับ Scale ได้ตามปริมาณการใช้งานจริง ลดการสิ้นเปลืองของพลังงาน และ Cloud ช่วยลดปริมาณการใช้งาน