OpenStack Services
OpenStack consists of multiple independent but integrated services. Each service has a code name (like "Nova") and provides specific functionality through well-defined APIs. This modular approach allows you to deploy only the services you need.
Core Services
These services form the foundation of any OpenStack deployment:
Nova (Compute)
Function: Manages the lifecycle of compute instances (virtual machines) in an OpenStack environment.
Key Components:
- nova-api: Accepts and responds to end user compute API calls
- nova-scheduler: Determines which compute host to run an instance on
- nova-compute: Daemon that creates and terminates VM instances via hypervisor APIs
- nova-conductor: Mediates interactions between compute nodes and database
- nova-novncproxy: Provides VNC console access to instances
Supported Hypervisors: KVM, QEMU, VMware ESXi, Hyper-V, Xen, LXC
Neutron (Networking)
Function: Provides "networking as a service" between interface devices managed by other OpenStack services.
Key Capabilities:
- Create and manage virtual networks, subnets, and routers
- Floating IP addresses for external connectivity
- Security groups for firewall rules
- Load Balancing as a Service (LBaaS)
- VPN as a Service (VPNaaS)
- Firewall as a Service (FWaaS)
Plugins: Open vSwitch, Linux Bridge, Cisco, VMware NSX, OpenDaylight
Keystone (Identity)
Function: Provides authentication, authorization, and service discovery for all OpenStack services.
Key Features:
- User authentication and token management
- Service catalog (directory of available services)
- Policy-based authorization
- Multi-tenancy support (projects/domains)
- Federation with external identity providers (LDAP, SAML, OAuth)
Authentication Methods: Password, token, LDAP, OAuth2, SAML, Kerberos
Glance (Image Service)
Function: Discovers, registers, and retrieves virtual machine images.
Key Features:
- Store and catalog VM images
- Image metadata management
- Support for multiple storage backends
- Image snapshots and cloning
- Image format conversion
Supported Formats: RAW, QCOW2, VMDK, VHD, ISO, AMI, AKI, ARI
Storage Backends: Local filesystem, Swift, Ceph RBD, S3, HTTP
Storage Services
Cinder (Block Storage)
Function: Provides persistent block storage to running instances (like Amazon EBS).
Key Features:
- Create, attach, and detach block volumes
- Volume snapshots and backups
- Volume cloning and extending
- Volume encryption
- Quality of Service (QoS) specifications
- Volume migration and replication
Storage Backends: Ceph RBD, LVM, NFS, iSCSI, NetApp, EMC, Pure Storage, and 70+ others
Swift (Object Storage)
Function: Scalable redundant storage system for objects and files (like Amazon S3).
Key Features:
- Store and retrieve arbitrary unstructured data
- Built-in replication and redundancy
- No single point of failure
- Scales horizontally by adding storage nodes
- RESTful HTTP API
- S3-compatible API available
Use Cases: Backups, archives, static website content, media files, VM images
Manila (Shared Filesystem)
Function: Provides shared filesystems as a service (NFS, CIFS).
Key Features:
- Create and manage shared filesystems
- Access control lists
- Snapshots and replication
- Share across multiple instances
Protocols: NFS, CIFS/SMB, GlusterFS, HDFS, CephFS
Optional Services
Horizon (Dashboard)
Function: Web-based user interface to OpenStack services.
Capabilities:
- Launch instances, manage networks
- Create volumes and snapshots
- Manage users, projects, and roles
- View usage statistics and quotas
- Access VM consoles via VNC/SPICE
Note: Built with Django/Python, customizable and extensible
Heat (Orchestration)
Function: Orchestration service for deploying complex cloud applications (like AWS CloudFormation).
Key Features:
- Template-based resource provisioning
- Auto-scaling groups
- Rolling updates
- Nested stacks
- AWS CloudFormation template compatibility
Template Format: HOT (Heat Orchestration Template) or CFN (CloudFormation)
Ceilometer (Telemetry)
Function: Collects measurements of cloud resource usage for monitoring, metering, and billing.
Metrics Collected:
- Instance CPU, memory, disk, network usage
- Storage consumption
- Network bandwidth
- Custom application metrics
Often paired with: Gnocchi (time-series database), Aodh (alarming service)
Ironic (Bare Metal)
Function: Provisions bare metal machines instead of virtual machines.
Use Cases:
- High-performance computing requiring direct hardware access
- Database servers needing maximum I/O
- NFV workloads requiring SR-IOV
- Workloads with software licensing tied to physical cores
Power Management: IPMI, iLO, iDRAC, Redfish
Magnum (Container Orchestration)
Function: Provides container orchestration engines (Kubernetes, Docker Swarm, Mesos) as a service.
Features:
- Deploy Kubernetes clusters on demand
- Auto-scaling cluster nodes
- Integrated with Keystone for auth
- Leverages Neutron for networking
Trove (Database as a Service)
Function: Provides relational and non-relational database engines as a service.
Supported Databases:
- MySQL, PostgreSQL, MariaDB
- MongoDB, Cassandra, Redis
- CouchDB, Percona
Features: Automated backups, replication, high availability
Barbican (Key Manager)
Function: Secure storage, provisioning, and management of secrets (passwords, keys, certificates).
Manages:
- Symmetric and asymmetric keys
- Certificates and certificate authorities
- Raw binary secrets
Backend Support: PKCS#11, KMIP, Vault, software encryption
Designate (DNS as a Service)
Function: Multi-tenant REST API for managing DNS zones and records.
Features:
- Create and manage DNS zones
- Automated record creation for instances
- Integration with multiple DNS servers
Backends: BIND9, PowerDNS, Microsoft DNS, Akamai
Octavia (Load Balancer)
Function: Load balancing as a service (successor to Neutron LBaaS).
Features:
- Layer 4 and Layer 7 load balancing
- Health monitoring
- TLS termination
- Horizontally scalable amphora-based architecture
Algorithms: Round robin, least connections, source IP
Service Maturity
| Maturity Level | Services | Description |
|---|---|---|
| Stable & Mature | Nova, Neutron, Keystone, Glance, Cinder, Swift, Horizon | Battle-tested, production-ready, widely deployed |
| Production Ready | Heat, Ironic, Barbican, Octavia, Designate | Mature enough for production, growing adoption |
| Growing/Evolving | Magnum, Trove, Manila, Senlin, Zaqar | Functional but evolving, evaluate before production use |
| Deprecated | Ceilometer (replaced by Gnocchi/Panko) | Being phased out, migrate to replacements |
Choosing Services
Minimal Deployment (Basic IaaS)
Required:
- Nova (Compute)
- Neutron (Networking)
- Keystone (Identity)
- Glance (Images)
Recommended: Horizon (Dashboard), Cinder (Block Storage)
Standard Production Deployment
Core services plus:
- Swift: Object storage for backups and images
- Heat: Application orchestration
- Ceilometer/Gnocchi: Monitoring and metering
- Barbican: Secrets management
- Octavia: Load balancing
Enterprise/Large-Scale Deployment
All above plus specialized services based on requirements:
- Ironic: If bare metal provisioning needed
- Magnum: For container orchestration
- Trove: If DBaaS is required
- Manila: For shared filesystem needs
- Designate: For automated DNS management
Each service adds complexity to deployment and operations. Start with core services and add optional components as your requirements grow. Many successful OpenStack clouds run perfectly well with just the core services.