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 ก็ยังได้

Public Cloud คืออะไร

หากพูดถึง Cloud Computing คนก็มักจะนึกถึง Public Cloud เพราะต้องถือว่าเป็นรูปแบบบริการหนึ่งของ Cloud ที่อยู่ภายใน Virtualised Environment และยังมีแหล่งทรัพยากรร่วมกัน ซึ่งเข้าถึงได้ทาง Public Network เช่น Internet เป็นต้น

และถือว่าเป็นฝ่ายตรงข้ามของ Private Cloud ซึ่งมีระบบ Ring-Fencing หรือก็คือแหล่งทรัพยากรคอมพิวเตอร์ สร้าง Cloud Platform แยกออกมาเดี่ยวๆ เพื่อองค์กรใดองค์กรหนึ่งเท่านั้นมีสิทธิ์เข้าถึง ขณะที่ Public Cloud เปิดให้ผู้ใช้บริการหลายรายเข้าถึงระบบ Infrastructure เดียวกันได้เลย

ข้อดีหลายๆ อย่างในการใช้งานระบบ Cloud Computing นั้น ส่วนใหญ่ก็มาจากการใช้งาน Public Cloud แทบทั้งสิ้น  ด้วยเหตุที่สามารถเข้าถึงได้อย่างสาธารณะ โดยบริการ Software as a Service (SaaS) อย่าง Cloud Storage และ Office Application อาจเป็นที่คุ้นหูกันมากที่สุด แต่บริการ Infrastructure as a Service (IaaS) และ Platform as a Service (PaaS) ที่มีอยู่อย่างหลากหลาย รวมไปถึง Based Web Hosting และ Development Environment ก็ถือว่าเป็นอีกข้อดีหนึ่งของ Public Cloud (แม้ว่าบริการเหล่านี้จะมีอยู่ใน Private Cloud เช่นกันก็ตาม) โดย Public Cloud จะเหมาะสำหรับผู้ใช้งานรายบุคคลที่ไม่ต้องการระบบ Infrastructure และระบบรักษาความปลอดภัยในระดับสูงเทียบเท่ากับ Private Cloud แต่อย่างไรก็ตามผู้ใช้บริการในระดับองค์กรก็ยังสามารถนำ Public Cloud มาเสริมประสิทธิภาพการทำงานได้เช่นกัน เช่น ใช้เป็นพื้นที่จัดเก็บข้อมูลที่ไม่เป็นความลับหรือละเอียดอ่อนมากนัก, เสริมการทำงานร่วมกันผ่านทาง Online Document, และการใช้งาน Webmail เป็นต้น

ข้อดีและฟีเจอร์เด่นๆ ของ Public Cloud มีดังนี้

Scale การทำงานได้ดีมาก

โดยสามารถดึงทรัพยากรของ Public Cloud มาได้ตามต้องการ ซึ่งนำมาจากแหล่งทรัพยากรขนาดใหญ่ที่ Application รันอยู่ และตอบสนองต่อการเปลี่ยนแปลงการทำงานได้อย่างต่อเนื่อง

ราคาไม่แพง

Public Cloud มีระดับของทรัพยากรและความประหยัดต่อขนาด (Economies of Scale) อยู่ในระดับสูง ระบบปฏิบัติการส่วนกลางและการจัดการทรัพยากรถูกแชร์ร่วมกันผ่านบริการ Cloud ในขณะที่องค์ประกอบอื่นๆ จำพวก Server ต่างๆ ก็ไม่ได้ต้องการการตั้งค่าหรืปรับเปลี่ยนอะไรมากนัก รวมไปถึงข้อเสนอทางการตลาดบางอย่างอาจมีการเปิดให้ใช้งานได้ฟรีด้วยซ้ำไป เพื่อแลกกับการโฆษณาเพื่อผลประโยชน์ของตัวผู้ให้บริการเอง

คุ้มราคาค่าบริการ

Public Cloud คิดค่าบริการในรูปแบบของการ “จ่ายเท่าที่ใช้งาน” หรือก็คือใช้เท่าไหร่ก็จ่ายแค่เท่านั้น ไม่ต้องจ่ายอะไรเพิ่มเจิมให้ยุ่งยาก ทั้งยังให้ผู้ใช้บริการเข้าถึงทรัพยากรได้ตามต้องการ ตลอดเวลาที่ต้องการใช้ และหลังจากนั้นก็จ่ายค่าบริการในส่วนของทรัพยากรที่ใช้ไป เป็นการขจัดปัญหาการเพิ่มระดับความสามารถของระบบ (Capacity) เข้ามามากเกินจำเป็นลงได้

ไม่เคยล้มเหลว

Server และ Network จำนวนมากที่อยู่ใน Public Cloud จะมีการตั้งค่าระบบ Redundancy ไว้พร้อม ซึ่งต่อให้ระบบทางกายภาพส่วนใดส่วนหนึ่งทำงานล้มเหลว บริการ Cloud ก็ยังสามารถใช้งานหรือรันต่อไปบนระบบที่เหลือได้ โดยปราศจากผลกระทบใดๆ ในบางกรณีที่ Cloud ดึงทรัพยากรมาจาก Data Center หลายแห่งจนอาจทำให้ทั้ง Data Center เข้าสู่การ Offline แต่ Cloud Service แต่ละบริการจะยังคงไม่ได้รับผลกระทบใดๆ ในจุดนี้ หรืออีกนัยหนึ่งก็คือ ไม่มีความล้มเหลวใดๆ ที่จะสามารถหยุดการทำงานของ Public Cloud Service ลงได้นั่นเอง

มีความยืดหยุ่นสูง

ในทุกวันนี้มีบริการ IaaS, PaaS, และ SaaS จำนวนมหาศาลซึ่งอยู่ในรูปแบบของ Public Cloud รองรับการเข้าถึงจากทุกอุปกรณ์ที่สามารถเชื่อมต่อ Internet ได้ ซึ่งบริการเหล่านี้เข้ามาเติมเต็มความต้องการทางระบบ Computing โดยทำประโยชน์ให้กับทั้งลูกค้ารายบุคคลและกลุ่มองค์กรได้เป็นอย่างมาก รวมไปถึงการรวมบริการ Public Cloud เข้ากับ Private Cloud เฉพาะในส่วนที่มีข้อมูลละเอียดอ่อน ให้เกิดเป็น Hybrid Cloud ก็ยังสามารถทำได้

ใช้ได้ทุกสถานที่

เพราะ Public Cloud ให้บริการผ่านทางการเชื่อมต่อ Internet ไม่ว่าตัวผู้ใช้จะอยู่ที่ไหนก็สามารถเข้าถึงบริการได้ สร้างอำนาจให้กับองค์กรในการ Remote Access เข้ามาจัดการระบบ IT Infrastructure ในยามจำเป็น หรือจะทำงานร่วมกันบน Online Ducument จากหลายๆ ที่ก็ยังได้เช่นกัน

 

Public vs Private

ข้อดีหลักๆ ของ Cloud Platform คือ การเสริมประสิทธิภาพการ Compute, การจัดการระบบ Network, และการจัดการพื้นที่จัดเก็บ (Storage) ได้อย่างรวดเร็วเมื่อต้องการเรียกใช้ และยังสามารถยกเลิกการใช้ Resource เมื่อไม่ต้องการได้เร็วพอๆ กันอีกด้วย กลุ่มผู้ให้บริการ Public Cloud ตอนนี้ Amazon กำลังเป็นเจ้าตลาดนำ Google, Microsoft, และผู้ให้บริการรายอื่นๆ อยู่ ส่วนทาง Private Cloud ก็มี OpenStack เข้ามาเป็นอีกทางเลือกหนึ่งนอกเหนือจาก Microsoft และ VMware

 

นิยามของ OpenStack และ Amazon Web Service (AWS) EC2

OpenStack เป็นซอฟต์แวร์ควบคุมชุดคำสั่งคอมพิวเตอร์, Networking และพื้นที่จัดเก็บขนาดใหญ่ที่อยู่ใน Data Center โดยทำการควบคุมผ่านทาง Dashboard หรือ OpenStack API ซึ่ง OpenStack ได้รับความนิยมในหมู่ผู้ประกอบการและในกลุ่มเทคโนโลยี Open Source ด้วยกัน ทำให้ OpenStack กลายเป็นซอฟต์แวร์ในอุดมคติที่เหมาะกับ Infrastructure แบบผสมมากที่สุด

 

Amazon Elastic Compute Cloud (Amazon EC2) เป็น Web Service ที่ให้บริการปรับแต่งขอบเขตความสามารถของระบบ Compute ใน Cloud ถูกออกแบบมาเพื่อให้ Developer ทำ Web-scale ของ Cloud Computing ได้ง่ายขึ้น

 

เทียบคุณสมบัติทางเทคนิคระหว่าง OpenStack และ AWS EC2

Compute

การรัน Application จำเป็นต้องมี Server ซึ่งมาพร้อมกับ CPU, หน่วยความจำ (Memory), และพื้นที่จัดเก็บ (Storage) โดยอาจจะมีหรือไม่มี Operating System กับ Application ที่ติดตั้งมาอยู่ก่อนแล้วก็ได้

 

OpenStack AWS
Definition

Compute ก็คือ Virtual Machine หรือ Server

Instance Instance/VM
ขนาด

ขนาดของ Memory, CPU และพื้นที่จัดเก็บชั่วคราว สำหรับ Instance หรือ VM

Flavors: หลากหลายตามต้องการ : Micro, Small, Medium, Large ฯลฯ หลากหลายตามต้องการ : Micro, Small, Medium, Large ฯลฯ
ระบบปฏิบัติการที่มีให้

Cloud มี OS แบบไหนให้ End-user บ้าง?

ระบบ OS ใดๆ ก็ตามที่ Host อยู่บน OpenStack Cloud ซึ่งอาจจะเป็น Red Hat certifies, Microsoft Windows, RHEL, SUSE เป็นต้น AMIs (Amazon Machine Image) ที่มาจาก AWS marketplace
Template/image

การตั้งค่าพื้นฐานของ Virtual Machine ที่สามารถนำไปใช้สร้าง VM ตัวอี่นๆ

Catalog ของแต่ละ VM Image สามารถสร้างได้จาก VM ที่ User เป็นคนเลือก

Glance

Administrator ของ OpenStack จะ Upload Image และสร้าง Catalog สำหรับ User

User สามารถอัพโหลด Image ของตนได้

(AMI) Amazon Machine Image

AWS จะมี Online Marketplace ของ Image ที่ตั้งค่ามาแล้ว

User สามารถอัพโหลด Image ของตนได้

 

Networking

การทำ Network เพื่อเชื่อม Virtual Server เข้าหากัน จะต้องมีการควบคุมการเข้าถึงว่าใครสามารถเข้าถึง Server ได้บ้าง ต้องมีการป้องกัน หรือมี Firewall ให้กับ Server โดยเฉพาะเมื่ออยู่ใน Internet

 

OpenStack AWS
Definition

Networking จัดการการเชื่อมต่อระหว่าง User กับ VM รวมทั้งเชื่อมต่อระหว่าง VM ด้วยกันและเชื่อมต่อกับ Network ภายนอก (Internet)

Neutron Networking
Private IP Address

เป็น IP เฉพาะเครื่อง และสำหรับใช้งานภายในเท่านั้น ไม่สามารถใช้เชื่อมต่ออินเตอร์เน็ตได้

ทุก Virtual Instance จะได้รับ IP โดยอัตโนมัติ โดยมักจะใช้ DHCP AWS จะจัด IP ให้อัตโนมัติ โดยใช้ DHCP
Public IP Address Floating IP คือ Public IP Address ซึ่งสามารถนำไปเพิ่มให้กับ Virtual Instance ทีกำลังทำงานอยู่ได้ AWS Public IP จะถูก Map ไปยัง Primary Private IP Address
Networking Service สามารถสร้าง Network และ Netwoking Function ได้ เช่น L3 Forwarding, NAT, edge firewall และ IPsec VPN Virtual Router หรือ Switch จะสามารถเสริมเข้ามาได้ ในกรณีที่ใช้งาน AWS VPC (Virtual Public Cloud)
Load Balance VM traffic OpenStack LBaaS (Load Balancing as a Service) จะ แจกจ่าย Traffic จาก 1 Network ไปยัง Application Service อย่างเท่าเทียม ELB (Elastic Load Balancing) จะแจกจ่าย Traffic ของ Application ที่เข้ามาไปทั่ว Amazon EC2 instance โดยอัตโนมัติ
DNS

จัดการ DNS ทั้งหมดสำหรับ Virtual Server และ Web Application

DNS Project (Designate) ของ OpenStack จะอยู่ใน “Incubation” และไม่นับเป็นส่วนหลักของ OpenStack Route 53 คือ DNS Service ของ AWS
SRIOV

วิธีที่อุปกรณ์ Virtualization เพิ่มประสิทธิภาพ I/O และลด CPU Utilization เมื่อเทียบกับการ Implementation แบบเก่า

SR-IOV แต่ละพอร์ตจะประสานกับ Virtual Function (VF) ซึ่งพอร์ตของ SR-IOV อาจมาจาก Virtual Ethernet Bridging ที่เป็น Hardware-based หรืออาจจะถูกเพิ่มไปยัง Upstream Physical Switch (IEEE 802.1br) AWS รองรับการเพิ่มประสิทธิภาพของ Network ด้วย SR-IOV โดยจะเพิ่มค่า Packet per Second (PPS), ลด Latency ของ Instance ภายใน, และลด Network Jitter

 

Monitoring

การ Mornitoring ทำให้เห็นรูปแบบและการใช้งานทรัพยากรทั้งในส่วนของ Physical และ Virtual ซึ่งอาจต้องตรวจสอบการใช้งานเป็นรายบุคคล และเลือกเก็บค่าบริการตามการใช้งาน

 

Topic OpenStack AWS
Definition

Monitoring จะแสดงปริมาณการใช้งาน Cloud

มี Ceilometer วัดการทำงาน มี Cloudwatch วัดการทำงาน
การวัดปริมาณการใช้งานแบบเหมารวมทั้งระบบ (System Wide) รวบรวมปริมาณการใช้งานทรัพยากรแบบ Physical และ Virtual ใน Cloud Monitor บริการในส่วนของ AWS Cloud Resource และ Application บน AWS
การส่งบิลเก็บเงินผู้ใช้ตามปริมาณการใช้งาน กักเก็บ Data เพื่อวิเคราะห์ และกู้คืนในภายหลัง โดยจะ Trigger การทำงานเมื่อใช้งานถึงเกณฑ์ที่ตั้งเอาไว้ มีการเก็บข้อมูลและติดตาม Metric, เก็บข้อมูลและ Monitor Log files, และตั้งการแจ้งเตือน

 

Security

จำเป็นต้องมีการเข้ารหัส Public Key สำหรับ SSH และมี Password Decryption นอกจากนี้ยังต้องมี Firewall สำหรับ Virtual Machine เพื่อจำกัดการเข้า-ออก (Ingress-Egress) ของข้อมูลอีกด้วย

 

OpenStack AWS
Definition

ควบคุมการเข้าถึง VM

Keypairs, Security Groups Keypairs, Security Groups
Key pairs

ต้องสร้าง Key pair ในการ Log in เข้าใช้ VM หรือ Instance เพื่อจัดการและควบคุมการเข้าถึง

Linux : ใช้ Key pair สำหรับ SSH

Windows : ใช้ Key pair สำหรับถอดรหัส Administrator

เมื่อเปิดการทำงานของ VM จะสามารถใส่ Key Pair ที่มี SSH เพื่อให้เข้าถึง Instance ได้ เมื่อต้องการ Log in เข้าใช้งาน Instance ต้องระบุชื่อ Key Pair ในตอนที่เปิดการใช้งาน Instance และต้องใส่ Private Key เมื่อจะเชื่อมต่อกับ Instance นั้นๆ
Security Group

Security Group เป็นชื่อของของ Network Access Rules ที่จำกัด Traffic การเข้าถึง Instance

เมื่อเปิดการทำงาน Instance แล้ว จะสามารถตั้ง Security Group สำหรับ Instance ได้ตั้งแต่ 1 กลุ่มขึ้นไป

รองรับ รองรับ

 

Identity

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

 

Topic OpenStack AWS
Definition

การยืนยันตัวและวิธีการยืนยันตัวเพื่อควบคุมการเข้าถึง Virtual Server, พื้นจัดเก็บข้อมูล, และ Resource อื่นๆ ใน Cloud

ทำงานร่วมกับ External Provider เช่น LDAP หรือ AD

Keystone มี I AM เป็นระบบยืนยันตัวและจัดการการเข้าถึง

 

Storage

Block storage

  • จัดการ Virtual Drive/Volume สำหรับ Virtual Server เพื่อเพิ่มความจุของพื้นที่จัดเก็บข้อมูล นอกเหนือจาก Boot Volume
  • Snapshot และ Backup ของ Virtual Server

 

Object storage

  • เก็บข้อมูล เช่น File, Media, และ Image ต่างๆ
OpenStack AWS
Object Storage

เก็บไฟล์ เช่น Media, Document, Image และอื่นๆ

Swift S3 – Simple Storage Service
Block Storage

สร้าง Virtual Disk Drives (Volumes)

Cinder EBS – Elastic Block Storage

 

Database

ผู้ใช้งาน Cloud สามารถเข้าใช้ Database Service ได้โดยไม่ต้องติดตั้งและตั้งค่า Database ของตัวเอง

 

OpenStack AWS
Definition Trove RDS
Relational Database My SQL, PostgresSQL ผู้ใช้จะได้ Instance ของ MySQL หรือ Oracle 11g
Non Relational Database Cassandra, Couchbase, MongoDB ผู้ใช้ Amazon SimpleDB จะเก็บ Data Pairs ใน Simple Database ซึ่งเหมาะกับ Application ที่มีค่า Read สูง

 

Orchestration

สร้าง Copy ซ้ำๆ ของ Application ได้

 

OpenStack AWS
Definition

Developer สามารถบันทึก Requirement ของ Cloud Application ไว้ในรูปแบบของ File หรือ Template ซึ่งระบุ Resource ที่จำเป็นต่อการทำงานของ Application เช่น VM, Network, Storage, Security, Templates, Images ฯลฯ

Heat Cloud Formation

 

Bigdata / Parallel Processing

ระบบ Cloud จะให้บริการ Infrastructure ที่สามารถประมวลผลข้อมูลขนาดใหญ่ได้

 

OpenStack AWS
Definition

สามารถทำ Parallel Processing ของข้อมูลขนาดใหญ่ เช่น Hadoop ได้

Sahara EMR – (Elastic Map Reduce)

 

Messaging

 

OpenStack AWS
Definition

Cloud สามารถเสริมและย้ายข้อมูลระหว่าง Application กับ VM / Instance บน Hosted Queue ได้

Zaqar (ยังไม่เปิดตัว) SQS – (Simple Queue Service)

 

Graphic User Interface (GUI) dashboard

สามารถจัดการดูแล Cloud ในฐานะ Administrator หรือจะใช้งานปรับแต่งด้วยตัวเองในฐานะ User ก็ทำได้ตามต้องการผ่าน Web Browser

 

OpenStack AWS
Definition

ใช้ Browser เพื่อจัดการในส่วนของระบบ Compute, Networking, และ Storage ด้วยตัวเองได้

Horizon Console

 

Command Line Interface (CLI)

สามารถทำ Automate และ Script ของระบบการจัดการ รวมทั้งใช้งาน   ผ่าน Command line ได้

OpenStack AWS
Definition

Command Line Interface ทำให้ Aministrator สามารถใช้ Command Line จัดหาและยกเลิกการใช้ทรัพยากร Cloud เช่น  Virtual Machine, Storage, และ Networking

รองรับ รองรับ

 

Business level component: เทียบคุณสมบัติเชิงธุรกิจ

 

รองรับผู้ใช้หลายคน

แบ่งกลุ่มผู้ใช้ตาม Business Unit เป็นองค์กรหรือหน่วยงานต่างๆ เพื่อให้สามารถตั้งค่าการใช้งานทรัพยากรได้ตอบโจทย์ความต้องการของแต่ละกลุ่ม

Topic OpenStack AWS
Definition

ผู้เช่าใช้ คือ กลุ่มของผู้ใช้ที่แชร์การเข้าถึง Infrastructure (Cloud Platform) ร่วมกับผู้ใช้ท่านอื่นๆ ซึ่งผู้ใช้พวกนี้จะถูกแบ่งออกจากกันชัดเจน

Project / ผู้เช่าใช้ (Tenant)

สามารถกำหนดโควต้าการใช้งานทรัพยากรสำหรับแต่ละ Project และผู้เช่าใช้ได้

แบ่งผู้ใช้ออกจากกันด้วย AWS VPC (Virtual Private Cloud)

 

SLA (Service Legal Agreement)

SLA จำเป็นต่อการรัน Application สำคัญระดับ Mission Critical ให้มี  Downtime ต่ำที่สุด

 

Topic OpenStack AWS
Definition

SLA เป็นการรับประกันความพร้อมใช้งานของระบบ Cloud

SLA ขึ้นอยู่กับการตกลงกันระหว่างผู้ให้บริการ OpenStack Private Cloud (รวมไปถึงฝ่าย IT ภายใน และผู้ให้บริการการจัดการ) กับผู้ใช้บริการ มี AWS SLA ที่เป็นมาตรฐาน สามารถศึกษาได้จากหน้าเว็บไซต์

 

Ownership และ Control of data

ผู้ใช้บริการควรทราบว่าใครสามารถเข้าถึงฐานข้อมูลในระบบ Cloud ได้บ้าง ข้อบังคับทางกฎหมายสำหรับกลุ่มอุตสาหกรรมจำพวกการดูแลสุขภาพ, บริการด้านการเงิน, หน่วยงานราชการ ฯลฯ ระบุให้มีการกำหนดสิทธิ์ผู้ที่สามารถเข้าถึง Application และฐานข้อมูลได้

 

Topic OpenStack AWS
Definition

เมื่อติดตั้ง Application และ Data ไว้ใน Cloud แล้ว ใครจะเป็นเจ้าของ Data และมีใครสามารถเข้าถึงมันได้บ้าง

ผู้ใช้ของ OpenStack Cloud เท่านั้น ผู้ใช้จะเป็นเจ้าของข้อมูลนั้นๆ โดยสามารถศึกษาสิทธิ์ได้จาก AWS Agreement (Section 8)

 

Ecosystem

การใช้งาน Private Cloud หรือ Public Cloud อาจต้องมีที่ปรึกษาหรือสมาคมผู้ใช้งาน ซึ่งถ้าเลือกใช้ Private OpenStack Cloud ก็จะมีกลุ่มสมาคมของผู้จัดจำหน่าย Software และ Hardware ที่ได้รับการรับรองจาก OpenStack ทำให้ผู้ใช้สามารถมั่นใจได้ว่าปัญหาที่อาจเกิดขึ้นจากการใช้งานจะได้รับการแก้ไขแน่นอน

 

OpenStack AWS
Definition

ระบบนิเวศ (Ecosystem) ประกอบด้วย ผู้จัดจำหน่าย Software และ Hardware, สมาคมผู้ใช้ (Developer, User, Administrator), และที่ปรึกษาสำหรับการใช้งาน Cloud

OpenStack Ecosystem: ประกอบด้วย ผู้ให้บริการ Software และ Hardware รวมไปถึงตัวแทนผู้ให้บริการ และ End User

Code ของ OpenStack ที่ใช้รัน Cloud เป็น Open Source เปิดให้ผู้ใช้นำมาใช้และพัฒนาต่อได้อย่างอิสระ

Amazon Ecosystem: ประกอบด้วยผู้ให้คำปรึกษา และ ISV (ตัวแทนจำหน่ายซอฟต์แวร์อิสระ) คอยให้ความช่วยเหลือผู้ใช้งาน AWS

Code ของ AWS ที่ใช้รัน Cloud เป็น Close Source ไม่เปิดให้คนนอกนำไปพัฒนา

 

High availability

หากว่าระบบ Cloud มีความพร้อมต่อการใช้งานสูง และมีการเตรียมการ Fail Over ป้องกันข้อผิดพลาดของ Application ที่ Host อยู่บน Cloud แล้ว จะทำให้เกิดการขัดกันของ Service น้อยลง

 

Topic OpenStack AWS
Definition

ขอบเขตพื้นที่การให้บริการ

ข้อมูลและ Instance ทั้งหลาย สามารถบันทึกเก็บไว้ในเขตพื้นที่ที่แตกต่างกันได้ เพื่อสำรองการใช้ ตอบสนองความล่าช้า หรือเพื่อให้เป็นไปตามข้อระบุของกฎหมาย Amazon EC2 ถูก Host อยู่ในหลากหลายพื้นที่ทั่วโลก และในแต่ละท้องที่ก็จะมีพื้นที่รองรับอีกหลายแห่ง เรียกว่า Availability Zone

 

Cost

ค่าใช้จ่ายสำหรับ Server และ Application ใน Cloud เป็นได้ทั้งแบบ Operational (OPEX) และ Capital (CAPEX)

 

Topic OpenStack AWS
Definition

ค่าใช้จ่ายสำหรับการใช้งานระบบ Cloud

ใช้งาน Manage Service Offering หรือ ซื้อ Hardware เพื่อรัน OpenStack Cloud และ ดาวน์โหลด OpenStack ได้ฟรีก่อนจ้างทีมวิศวกรมาติดตั้ง ดูแลรักษา และทำการอัพเกรดระบบ ค่าใช้จ่ายส่วนนี้ค่อนข้างประมาณการณ์ได้ยาก ขึ้นอยู่กับจำนวนวิศวกรที่ว่าจ้าง หรือ จดทะเบียนสิทธิ์การจัดการจากผู้ให้บริการ โดยเสียค่า License Cost ก่อนการใช้งาน, ค่าบำรุงรักษารายปี, รวมถึงค่าต่ออายุ License หรืออีกวิธีหนึ่ง คือ ซื้อบริการจาก Red Hat และรับบริการหลังการขาย ทั้งด้านให้คำปรึกษา การซ่อมบำรุง ตลอดจนการอัพเกรด คิดเงินตามนาที/ชั่วโมง ที่ใช้งานจริง จึงไม่สามารถประเมินค่าใช้จ่ายล่วงหน้าได้

ส่วนการชำระเงินล่วงหน้าซื้อ Block สำหรับใช้งาน จะอยู่ในเรทราคาอื่น เช่น ราคาของ Instance ที่จองไว้ หรือ Spot Pricing เป็นต้น

 

ควรเลือกใช้แบบไหน?

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

 

Gartner แนะนำให้ใช้ OpenStack สำหรับ :

  • การพัฒนา Software ตามสไตล์ของ DevOps ซึ่ง Developer สามารถเข้าถึง OpenStack API และทำงานกับ Infrastructure ในรูปแบบ Code ได้
  • สนับสนุนการพัฒนาและทดสอบระบบ ในสภาพแวดล้อม IaaS แบบดั้งเดิม ที่มาพร้อม Portal แบบ Self-Service สำหรับ Developer และกลุ่มผู้ทดสอบ
  • ระบบ Computing ประสิทธิภาพสูง / Grid Computing เป็นกรณีการใช้งานที่เหมาะสมสำหรับ OpenStack เพราะสภาพแวดล้อมแบบนี้มักจะถูก Implement เข้ากับองค์ประกอบเเบบ Open Source เป็นส่วนใหญ่ และ OpenStack ก็ยังรองรับการจัดหาทรัพยากร Infrastructure ที่มีความยืดหยุ่นได้ดีอีกด้วย
  • การ Scale-out ในส่วนของ Infrastructure เพื่อรองรับ Big Data Technology เช่น Hadoop, Apache Spark และ Apache Cassandra เป็นต้น
  • ธุรกิจสาย Application Hosting ที่เน้นผลักดัน Cloud-Native Application มากว่าจะปรับแต่งความเข้ากันได้กับโปรแกรมรุ่นก่อน นับว่าเป็นรูปแบบ IaaS ที่ถูกใช้งานกันมากในบริการ Private Cloud

 

ใช้งาน AWS และ OpenStack ร่วมกันได้อย่างไร?

Hybrid Cloud เป็นการผสานการทำงานระหว่าง Private Cloud และ Public Cloud โดยใน Cloud Management Platform จะมีเครื่องมือที่รองรับการจัดการในสภาพแวดล้อมของ Cloud ทั้ง 2 แบบ ซึ่งทาง Red Hat เองก็มีบริการ Open Hybrid Cloud “รูปแบบบริการที่ให้ผู้ใช้สามารถสร้างและจัดการ IaaS Cloud ได้ทั้งแบบ Open และ Private ใช้ความสามารถการ Scale ระดับสูงได้เหมือน Infrastructure ของ Public Cloud บนแพลตฟอร์ม OpenStack