The OpenStack cloud platform is a combination of various technologies interlinked together to provide cloud services. The following diagram shows the most significant components of OpenStack:
The services that provide block storage, compute, networking, image, object store, and identity management are the core components of OpenStack. There are several other services provided by the OpenStack version that was released in August 2017. This release is called Pike.
The following table provides a brief description of each of the services provided by the OpenStack Pike release:
Service |
Codename |
Description |
Compute Service |
Nova |
Provides a hypervisor for running virtual machines |
Networking Service |
Neutron |
Provides networking and connectivity between various OpenStack services and virtual machines |
Image Service |
Glance |
Provides storage for virtual machine images and snapshots |
Block Storage Service |
Cinder |
Provides persistent block storage volumes that can be attached to virtual machines |
Object Storage Service |
Swift |
Provides storage for files and arbitrary data |
Identity Service |
Keystone |
Provides identity management for users, projects, and roles by performing authentication and authorization |
Dashboard Service |
Horizon |
Provides a web-based graphical user interface for manipulating OpenStack services |
Orchestration Service |
Heat |
Provides automation and template-based orchestration services for creating OpenStack resources |
Bare Metal Provisioning Service |
Ironic |
Provides bare metal provisioning of various hardware vendors |
Database Service |
Trove |
Provides relational and non-relational database services |
Data Processing Service |
Sahara |
Provides Hadoop clusters on OpenStack for data processing |
Messaging Service |
Zaqar |
Provides a multi-tenant cloud messaging service for web and mobile developers |
Shared File System Service |
Manila |
Provides a shared filesystem |
DNS service |
Designate | Provides DNS as a service |
Key Management service |
Barbican | Provides secure storage, provisioning, and management of data |
Search and Indexing service |
Searchlight | Provides scalable indexing and searching across clouds |
Container Orchestration service |
Magnum | Provides container orchestration on OpenStack |
Alarm service |
aodh | Provides an alarming service based on events |
Billing service |
Cloudkitty | Provides a billing and rating service based on usage |
Policy service |
congress | Provides policy as a service to offer governance and compliance for dynamic infrastructures |
Backup and Restore service |
freezer | Provides backup and recovery as a service |
Workflow service |
mistral | Provides a workflow service for interconnected components |
Monitoring service |
monasca-api | Provides monitoring as a service |
Log monitoring service |
monasca-log-api | Provides monitoring of the logs |
Catalog service |
murano | Provides a catalog service for applications |
Event storage service |
panko | Provides event storage for events generated by Ceilometer |
Clustering service |
senlin | Provides clustering of homogenous objects. |
NFV orchestration service |
tacker | Provides NFV Orchestration with a VNF Manager to deploy and operate Virtual Network Functions (VNFs) and Network Services on an NFV Platform |
Analysis service |
vitrage | Provides a root-cause-analysis service by analyzing events and alarms |
Optimization service. |
watcher | Provides optimization of OpenStack resources |
We can classify these components in the following categories:
Computing Services |
|
Storage, Backup, and Recovery |
|
Networking and Content Delivery |
|
Data Analytics |
|
Security, Identity, and Compliance |
|
Management Tools |
|
Deployment Tools |
|
Application Services |
|
Monitoring and Metering |
|
Now that we have a brief understanding of the various components of OpenStack, let's get some practical experience by installing OpenStack on your computer. You will need an Ubuntu Linux 16.04 virtual machine and an internet connection to get started.