In the previous post we had a quick OpenStack tutorial and intro to What is OpenStack. In this post, we will be outlining in short the different OpenStack components, and how they work together. From OpenStack Cinder through OpenStack Heat, and Trove – this is your quick wiki for everything OpenStack compute, networking, and storage.
Components of Openstack
There are basically eleven components of OpenStack (two of which were just included in the last Icehouse release), below is a quick breakdown of what they are called in OpenStack speak, and what they do.
Test drive Cloudify. Go
|OpenStack Compute (Nova)||OpenStack compute (codename: Nova) is the component which allows the user to create and manage virtual servers using the machine images. It is the brain of the Cloud. OpenStack compute provisions and manages large networks of virtual machines.|
|Block Storage (Cinder)||This component provides persistent block storage to running instances. The flexible architecture makes creating and managing block storage devices very easy.|
|Object Storage (Swift)||This component stores and retrieves unstructured data objects through the HTTP based APIs. Further, it is also fault tolerant due to its data replication and scale out architecture.|
|OpenStack Networking (Neutron)||It is a pluggable, scalable and API-driven system for managing networks. OpenStack networking is useful for VLAN management, management of IP addresses to different VMs and management of firewalls using these components.|
|Identity Service (Keystone)||This provides a central directory of users mapped to the OpenStack services. It is used to provide an authentication and authorization service for other OpenStack services.|
|OpenStack Image Service (Glance)||This provides the discovery, registration and delivery services for the disk and server images. It stores and retrieves the virtual machine disk image.|
|OpenStack Telemetry Service (Ceilometer)||It monitors the usage of the Cloud services and decides the billing accordingly. This component is also used to decide the scalability and obtain the statistics regarding the usage.|
|Dashboard (Horizon)||This component provides a web-based portal to interact with all the underlying OpenStack services, such as NOVA, Neutron, etc.|
|Orchestration Heat||This component manages multiple Cloud applications through an OpenStack-native REST API and a CloudFormation-compatible Query API.|
|Database as a Service (Trove)||Trove is Database as a Service for OpenStack. It’s designed to run entirely on OpenStack, with the goal of allowing users to quickly and easily utilize the features of a relational database without the burden of handling complex administrative tasks. Cloud users and database administrators can provision and manage multiple database instances as needed. Initially, the service will focus on providing resource isolation at high performance while automating complex administrative tasks including deployment, configuration, patching, backups, restores, and monitoring.|
|Messaging as a Service (Marconi)||Marconi is a cloud messaging and notification service for developers building applications on top of OpenStack. The service features a web-friendly HTTP API, which developers can use to send messages between the various components of their SaaS and mobile applications, using a variety of communication patterns. Underlying the API is an efficient messaging engine designed with scalability and security in mind.|
Below is an example of a user who wants to host SUSE Linux. The workflow diagrams given below describe how the process flows in OpenStack.
Finally after getting the image, Nova mounts it on a VM host. During the boot process of the VM, it requests Neutron (DHCP component) for an IP address.
The diagram given below depicts the intercommunication between all the components of OpenStack.
We’ll be bring you more OpenStack 101 posts – so stay tuned.
And get ready for Cloudify, OpenStack Native, with scalable, multi-tenant workflows. Stay tuned…