OpenStack is an Infrastructure as a service (IaaS) cloud solution with a collection of services that interact to control storage, compute, and networking resources. As a Cloud Administrator you can use a command-line or web-based dashboard provision, control, and automate OpenStack resources. OpenStack has an extensive API that is available to all cloud users.
The following diagram provides a high-level overview of some OpenStack core services and their relationship with each other.
In the following section we describe each of the core OpenStack components in the diagram -a short description of the component and the function.
1. Dashboard (Horizon)
Horizon is the Dashboard Management service of OpenStack Cloud Platform. It provides a web based user interface to manage OpenStack services including Cinder, Nova, Swift, Keystone, etc.
2. Identity (Keystone)
Keystone is an OpenStack service that provides API client authentication, service discovery, and distributed multi-tenant authorization by implementing OpenStack’s Identity API.
3. Networking (Neutron)
Neutron is OpenStack networking service. It implements services and associated libraries to provide on-demand, scalable, and technology-agnostic network abstraction. It provides connectivity between the interfaces of OpenStack services.
4. Block Storage (Cinder)
Cinder is the Block Storage Service of OpenStack.Cinder provides software-defined Block Storage via abstraction and automation on top of various traditional backend block storage devices. It implements libraries and services to provide self-service and on-demand access to Block Storage resources.
5. Compute (Nova)
Nova is OpenStack Compute service. It provides a massively scalable, on-demand, self-service access to compute resources, including bare metal, virtual machines, and containers.
6. Shared File Systems (Manila)
Manila is the OpenStack Shared Filesystem Service. Manila provides a vendor neutral API for provisioning and attaching filesystem-based storage such as NFS, CIFS, CephFS, HDFS and other network filesystems.
7. Image (Glance)
Registry service that you use to store resources such as virtual machine images and volume snapshots.
The Glance Image service is used for discovering, registering, and retrieving virtual machine images. It has a RESTful API that allows querying of VM image metadata as well as retrieval of the actual image.
8. Object Storage (Swift)
Swift is the OpenStack object storage service. Swift is a distributed, highly available and consistent object/blob store. It allows users to store and retrieve files and arbitrary data.
9. Telemetry (Ceilometer)
Ceilometer reliably collects measurements of the utilization of the physical and virtual resources comprising deployed clouds, persists these data for subsequent retrieval and analysis, and triggers actions when defined criteria are met.
10. Load balancing (Octavia)
Octavia is a load balancing solution designed to provide load-balancing services for the OpenStack cloud.
11. Orchestration (Heat)
Heat service is used for managing the entire lifecycle of infrastructure and applications within OpenStack clouds.
12. Secrets Service (Barbican)
Barbican Secrets service provides a REST API designed for the secure storage, provisioning and management of secrets such as passwords, encryption keys and X.509 Certificates.
13. Bare metal provisioning (Ironic)
Ironic is the OpenStack Bare metal provisioning service. It provisions physical hardware as opposed to virtual machines.
14. Database as a Service (Trove)
Trove is the Database-as-a-Service solution of OpenStack
Gnocchi is time series as a service providing a HTTP REST API service to store metrics and index resources. It has support for multiple backends like Object-Store (Swift, Ceph) and Store-Index (mariadb).
16. DNS service (Designate)
Designate is the DNS as a Service (DNSaaS) service that provides a scalable, on demand, self service access to authoritative DNS services.
There are more OpenStack Modules that we didn’t capture in this article. Refer to OpenStack Services List page for detailed report on all modules that can be integrated to your OpenStack Cloud.
We have more articles written for OpenStack Administration: