Container เหมาะกับ Cloud อย่างไร

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

แม้ว่า Docker Container จะไม่ได้ขาด IT Support แต่ข้อจำกัดที่ยังต้องพึ่งพา Linux ทำให้จุดยืนของ Docker ในวงการ Cloud ดูไม่ค่อยชัดเจนเท่าไหร่นัก

ในการทำงานของ 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 อีกเช่นกัน

ส่วนการรองรับ Docker ของ 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 อย่างต่อเนื่อง หรือรันการทำงานแบบเป็นช่วงๆ ได้ อย่างไรก็ดีการเลือกรันการทำงานด้วย Linux Container ก็คือการตัดสินใจเลือกใช้ Docker ไปโดยปริยาย

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

10 ข้อดีของ Cloud

Cloud Computing ฟังแล้วคงคุ้นๆหูกันบ้าง แต่รู้หรือไม่ ว่าแท้จริงแล้วคืออะไร ซึ่งก็อธิบายได้ดังนี้

Cloud Computing ก็คือระบบ Compting ที่อยู่บน Internet นั่นเอง โดยในอดีตเราใช้งาน Application หรือ Program ต่างๆ จากเหล่า Software ที่ดาวน์โหลดมาจาก Internet และนำมาติดตั้งไว้ในคอมพิวเตอร์หรือ Server อีกทอดหนึ่ง แต่ว่าระบบ Cloud Computing นั้นแตกต่างออกไป เพราะเราสามารถใช้งาน Application หรือ Program ทั้งหลายได้เลย ผ่านทาง Internet

โดยในทุกวันนี้ ชีวิตประจำวันของเราก็เกี่ยวข้องกับระบบ Cloud กันอย่างไม่รู้ตัว ทั้งการอัพเดท
สเตตัสบน Facebook และเปิดแอพฯ เช็คเงินในธนาคาร ล้วนเป็นการใช้งาน Cloud Computing ด้วยกันทั้งสิ้น ซึ่งใครๆ ต่างก็พึ่งพา Cloud Computing เพื่อแก้ปัญหายิบย่อยของการทำธุรกิจ เช่น การส่งอีเมลระหว่างเดินทาง หรือใช้สารพัดแอพฯ ช่วยบริหารจัดการ Workload เป็นต้น

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

แล้วทำไมเปอร์เซ็นต์ถึงเยอะขนาดนั้น? Cloud computing มีดีแค่ไหน? เสริมศักยภาพการทำธุรกิจได้อย่างไร? ช่วยให้ทำเงินได้เยอะขึ้นจริงหรือ?

และนี่คือ 10 ข้อได้เปรียบที่คุณจะได้เป็นเจ้าของทันที เมื่อเปลี่ยนมาใช้ Cloud

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

  1. ไม่หวั่นต่อภัยธรรมชาติ : ทุกบริษัทล้วนต้องมีการลงทุนเพื่อกู้คืนความเสียหายจากภัยธรรมชาติอยู่แล้ว แต่สำหรับธุรกิจหน้าใหม่ที่อาจจะขาดทั้งเงินทุนและผู้เชี่ยวชาญ ระบบ Cloud คือ ตัวช่วยแก้ปัญหาได้เป็นอย่างดี ถ้าสำรองข้อมูลไว้บน Cloud ต่อให้เกิดภัยพิบัติใดๆ กับบริษัท ก็ไม่ต้องห่วงว่าข้อมูลจะเสียหาย แถมต้นทุนยังไม่แพงอีกด้วย
  2. อัพเดทซอฟต์แวร์อัตโนมัติ : สุดยอดข้อดีของระบบ Cloud ก็คือ Server ของมันเป็นแบบ Off-premise ไม่ได้มาติดตั้งกินพื้นที่อยู่ในบริษัทของเรา การดูแลทั้งหมด ไม่ว่าจะด้านความปลอดภัย บำรุงรักษา หรืออัพเดทซอฟต์แวร์ก็จะเป็นหน้าที่ของผู้ให้บริการที่คอยจัดการให้โดยอัตโนมัติ ผู้ใช้งาน Cloud สามารถเอาเวลาอัพเดทระบบ ไปสร้างสรรค์ธุรกิจของตนได้เต็มที่
  3. ไม่เสียค่าอุปกรณ์ : ลืมค่าอุปกรณ์ฮาร์ดแวร์ราคาแพงไปได้เลย เพราะเราไม่ได้มีเครื่อง Server ติดตั้งอยู่กับตัวบริษัท ผู้ใช้บริการระบบ Cloud เพียงแค่จ่ายค่าบริการในส่วนที่ต้องการใช้เท่านั้น ซึ่งวิธีนี้ทำให้เราสามารถใช้งานฮาร์ดแวร์คุณภาพสูงได้ในราคาค่าบริการที่ไม่แพง
  4. ประสานงานได้ดีขึ้น : ให้ลองนึกภาพ Google Drive เมื่อมีการสร้างหรือแชร์งานกันผ่านระบบ Cloud ทีมงานทุกคนจะสามารถทำงานพร้อมกันได้ทันที และยังอัพเดทแบบ real-time อีกด้วย
  5. อยู่ที่ไหนก็ทำงานได้ : พอกันทีกับยุคสมัยที่ต้องติดแหง็กนั่งทำงานอยู่กับที่ ระบบ Cloud ทำให้เราสามารถทำงานจากที่ไหน เมื่อไหร่ก็ได้ ขอเพียงแค่มี Internet กับอุปกรณ์สำหรับเข้าถึงก็เพียงพอ เพิ่มความคิดสร้างสรรค์ส่งผลดีต่องานของเราได้ด้วยการทำงานในสภาพแวดล้อมตามชอบใจ
  6. จัดการเอกสารได้ง่าย : สมัยก่อน เวลาจะส่งเอกสารทีไรก็ต้องแนบไฟล์ผ่านอีเมลเป็นรายคน และเมื่อมีการแก้ไขหรือส่งกลับไปกลับมาบ่อยๆ เข้า ก็เกิดปัญหาชวนสับสนเรื่องชื่อไฟล์ ฟอร์แมต รวมไปถึงเนื้อหา ไม่รู้ว่าอันไหนใช้งานได้หรือไม่ได้กันแน่ แต่ในระบบ Cloud ปัญหาพวกนี้จะหมดไป เพราะเอกสารจะถูกเก็บในส่วนกลาง มีการอัพเดทอยู่ตลอดทุกคนสามารถเปิดอ่านเอกสารฉบับล่าสุดที่เพิ่งแก้ไขได้ในทันที
  7. ปลอดภัย : ก่อนหน้าที่จะมีระบบ Cloud การโดนขโมยคอมพิวเตอร์โน้ตบุ๊ค หรือทำมันหาย ไม่ใช่แค่เสียเครื่องไปอย่างเดียว แต่ยังสูญข้อมูลข้างในซึ่งอาจเต็มไปด้วยความลับของบริษัทอีกด้วย ระบบ Cloud ช่วยให้ปัญหานี้เบาบางลง เพราะเก็บไฟล์งานไว้แบบออนไลน์ 100% หมดห่วงข้อมูลรั่วไหล
  8. เพิ่มอำนาจการแข่งขัน : บางบริษัทเล็กๆ อาจถึงกับต้องถอดใจเมื่อคิดจะลงสนามแข่งกับพวกธุรกิจรายใหญ่ เพราะติดปัญหาความพร้อมทางเทคโนโลยี แต่พอมีระบบ Cloud ก็วางใจได้เลย เพราะ Cloud จะทำให้บริษัทเล็กๆ สามารถใช้เทคโนโลยีและ Application ทันสมัย เพิ่มอำนาจในการแข็งขันได้อย่างเต็มที่ โดยเลือกจ่ายเฉพาะในสิ่งที่ต้องการใช้
  9. เป็นมิตรต่อสิ่งแวดล้อม : ถึงแม้ในภาพรวมดูจะมีแต่ข้อดีทางธุรกิจ ก็ไม่ได้หมายความว่าการย้ายมา Cloud จะเป็นเรื่องเห็นแก่ตัว ตามปกติแล้ว Server จะใช้พลังงานและปล่อยคาร์บอนออกไปมหาศาลในการ Scale ระบบที่อาจจะไม่ได้ใช้งานอย่างคุ้มค่าเท่าที่ควร  แต่ด้วยความยืดหยุ่นของ Cloud ที่ทำให้เราปรับ Scale ได้ตามปริมาณการใช้งานจริง ทำให้ไม่เกิดการสิ้นเปลืองพลังงานโดยใช่เหตุ นอกจากนี้การทำงานบนระบบ Cloud ยังช่วยลดปริมาณการใช้งานกระดาษ ด้วยการแชร์ข้อมูลออนไลน์แทนที่การปรินท์อีกด้วย

เรียกได้ว่าข้อดีเพียง 3 ข้อก็น่าจะเพียงพอให้ฝ่าย IT และฝ่ายบริหารของทางบริษัทพุ่งเป้าไปที่ Cloud แล้ว แต่นี่มีด้วยกันถึง 10 ข้อเลยทีเดียว ซึ่งสามารถคอนเฟิร์มคุณภาพว่าส่งผลดีต่อธุรกิจและสิ่งแวดล้อมแน่นอน ถึงขนาดนี้แล้วจะรอช้าอยู่ทำไม รีบเปลี่ยนมาวางแผนใช้ Cloud กันตอนนี้เลยดีกว่านะ