OpenStack (http://www.openstack.org/) is an OpenSource cloud computing platform that can be used to build up a Public and Private cloud. As in weaving of various technological components to provide a capability to build a cloud service supporting any use-case and scale.
Once upon a time RackSpace came into Cloud Services. In some parallel beautiful world, few Pythonistas at NASA started building there own Nova Cloud Compute to handle there own instances. RackSpace bought SliceHost which worked 'somewhat' fine. RackSpace came along with their Swift Object Storage Service and weaved in Nova with few more components around it. More other companies like HP, RedHat, Canonical etc. came along to contribute and benefit from OpenSource cloud.
It's all Open it can be. Open Source. Open Design. Ope Development. Open Community.
# Quick Hands-On
DevStack (http://devstack.org/) gives you the easiest fastest way to get all OpenStack components installed, configured and started on any supported O.S. platform.
You can trial-run your app-code in an OpenStack environment at TryStack (http://trystack.org/).
RedHat RDO (http://openstack.redhat.com/Main_Page) is also coming in soon making it super easy to get OpenStack running on RHEL-based distros.
OpenStack Cloud Platform constitutes of mainly following components:
- Compute: Nova
Brings up and maintains operations related to virtual server as per requirement.
~like aws ec2
- Storage: Swift
Allows you to store, retrieve & remove objects (files).
~like aws s3
- Image Registry/Delivery: Glance
Processes metadata for disk images, manages read/write/delete for actual image files using 'Swift' or similar scalable file storage service.
~like aws ami
- Network Management: Quantum/Melange
Provides all the networking mechanisms required in any instance or environment as a service. Handels network interface cards plug/un-plug actions, ip allocation procedures along-with capability enhancement possible to virtual switches.
- Block Storage: Cinder
Enables to attach volumes for persistent usage. Detach them, snapshot them.
~like aws ebs
- WebUI: Horizon
Provides usability improvement for users or projects for managing compute nodes, object storage resources, quota usages and more in a detailed web-app way.
~like aws web dashboard
- Authentication: Keystone
Identity management system, providing apis to all other OpenStack components to query for authorization.
- Billing Service: Ceilometer (preview)
Analyzes quantity, cost-priority and hence billing of all the tasks performed at cloud.
- Cloud Template: Heat (under construction)
Build your entire desired cloud setup providing OpenStack a Template for it.
~like aws cloudformation
- OpenStack Common: OSLO (tenure code)
Supposed to contain all common libraries of shared infrastructure code in OpenStack.
Hypervisors are software/firmware/hardware that enables to create, run and monitor virtual machines. OpenStack Compute supports multiple hypervisors like KVM, LXC, QEMU, XEN, VMWARE & more.
Message Queue Service is used by most of the OpenStack Compute services to communicate with each other using AMQP (Advanced Message Queue Protocol) supporting async calls and callbacks.
# Weaving of Components
asciigram: openstack ~ evolution mode, how varied components are connected