ก่อนที่จะทำความรู้จัก OpenStack นั้น เราต้องทำความรู้จักเทคโนโลยี cloud กันก่อน
ถ้าพูดถึง Cloud Computing หลายคนอาจจะนึกไม่ออกว่าคืออะไร คำแปลสุดฮิตของเจ้า Cloud Computing ก็คือ การประมวลผลบนกลุ่มเมฆ พูดง่าย ๆ ก็คือ บริการที่ให้เราเลือกใช้ทรัพยากรคอมพิวเตอร์ได้ตามความต้องการ โดยสามารถปรับเพิ่ม ลด ปริมาณการใช้งานได้ง่ายและรวดเร็วผ่าน web interface
ซึ่งรูปแบบบริการ Cloud Computing ก็จะแบ่งได้ 3 รูปแบบ ดังนี้
- Infrastructure as a Service (IaaS) – ให้บริการในส่วน Physical หรือทรัพยากรคอมพิวเตอร์ เช่น CPU, Memory, Operating System, Storage เป็นต้น ตัวอย่าง Amazon
- Platform as a Service (PaaS) – ให้บริการในส่วนทรัพยากรและเครื่องมือสำหรับนักพัฒนา เช่น Google Apps Engine, IBM Mashup Hub, Microsoft Azure
- Software as a Service (SaaS) – ให้บริการในส่วนข้อมูลหรือ Application เช่น Google Apps, Picasa, Youtube, Facebook
ในส่วนของ OpenStack เป็นชุดของซอฟต์แวร์ Open Source ที่ใช้ทำระบบ cloud แบบ Infrastructure as a Service (IaaS) โดยมี Rackspace และ NASA เป็นผู้ริเริ่มโครงการ
การทำงานของ OpenStack เกิดจากส่วนประกอบหลัก 7 ส่วนด้วยกัน ดังนี้
ที่มาภาพ : http://applycloud.blogspot.com
- Nova (Compute Service) – ใช้สำหรับคำนวณ จัดการ ควบคุม VM ซึ่งสนับสนุน hypervisors หลากหลายด้วยกัน ไม่ว่าจะเป็น KVM, QEMU, LXC และ XenServer จะคล้ายกับ Amazon EC2
- Swift (Object Storage) – ใช้สำหรับจัดเก็บข้อมูล คล้าย Amazon S3
- Glance (Image Service) – สำหรับจัดเก็บ เรียกใช้ ค้นหา VM Image โดยสามารถทำเป็นเทมเพลตเมื่อต้องการสร้าง VM ใหม่ เปรียบได้กับ Amazon’s AMI catalog
- Keystone (Identity Service) – ใช้ในการระบุตัวตนสำหรับการใช้งาน OpenStack services ต่าง ๆ
- Quantum ( Network Service) – ใช้เชื่อมต่อเครือข่ายระหว่างอินเตอร์เฟซ (เช่น VNICs) จัดการผ่านส่วนประกอบอื่น (เช่น Nova) โดยให้ผู้ใช้สามารถสร้างระบบ network ได้ด้วยตัวเอง
- Cinder (Block Storage) – พื้นที่จัดเก็บข้อมูล(storage) ผ่าน Nova-volume โดยผู้ใช้สามารถขอพื้นที่ใช้งานได้โดยไม่ต้องมีความรู้เรื่องเรื่องการติดตั้งหรือชนิดของอุปกรณ์เลย เปรียบเหมือน Amazon EBS
- Horizon (UI Service) – เป็นแดชบอร์ดที่อยู่เบื้องหลัง OpenStack ที่ช่วยให้สามารถจัดการส่วนประกอบต่างๆ ของ OpenStack ผ่าน Web UI