Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 56

OpenStack Architecture and Core Components

Recommended resources

Introduction

In the previous lesson, we examined the hierarchical architecture of Eucalyptus, an open-source IaaS platform known for its AWS API compatibility. We saw how its components—the Cloud Controller, Cluster Controllers, and Node Controllers—are organized in a clear top-down structure.

This lesson continues our exploration of major cloud platforms by focusing on OpenStack, a requirement from your syllabus. OpenStack is arguably the most dominant open-source platform for building private and hybrid clouds. Unlike Eucalyptus's rigid hierarchy, OpenStack features a modular, service-oriented architecture. Your goal for this lesson is to describe this architecture and list its key components, such as Nova, Swift, and Cinder. A solid grasp of these components and their interactions is essential for exam questions on cloud infrastructure.



1. What is OpenStack? A Modular Architecture

OpenStack is an open-source cloud operating system that manages large pools of compute, storage, and networking resources within a data center. It is not a single piece of software but rather a collection of independent yet interrelated projects or services that control the different hardware pools.

This modular design is a core principle of OpenStack. Each service handles a specific function (like compute or storage) and communicates with the others through Application Programming Interfaces (APIs). This allows for immense flexibility—you can choose which components to deploy and scale them independently.

To begin, let's get a high-level overview of OpenStack's philosophy and its core building blocks.

OpenStack - A Powerful Solution for Building Your Own Private Cloud

This video from Learn Linux TV introduces OpenStack and explains its fundamental concept as a collection of separate components. It perfectly sets the stage for understanding its architecture.

Watch from 02:34 to 06:52. Focus on: The definition of OpenStack and its comparison to public cloud providers (until 05:12). The introduction of the key components: Horizon, Neutron, Nova, Glance, and Cinder (from 05:12 onwards).

As the video explains, this component-based architecture allows you to scale specific parts of your cloud. If your virtual machines need more CPU power, you can add more compute resources (Nova) without having to deploy new dashboard or storage nodes.

The following diagram provides a clean, high-level view of the main services that form an OpenStack cloud.

OpenStack Core Components Architecture
A high-level diagram showing the core service components of OpenStack, including Compute (Nova), Object Storage (Swift), Block Storage (Cinder), Networking (Neutron), Image Service (Glance), Identity (Keystone), and the Dashboard (Horizon).


2. Core OpenStack Components

For your exams, you must be able to define the function of each core OpenStack service. Each service has a project name (like "Nova") which is the term used in practice.

The Red Hat documentation provides precise, exam-friendly definitions for these services.

Chapter 1. Components | Red Hat OpenStack Platform | 11

The following table from the Red Hat OpenStack Platform Architecture Guide is an excellent resource for memorizing the core services and their functions. I have summarized it below for you.

Review the 'Table 1.1. Core services' in the document. You don't need to read the entire page yet, just focus on this table to see the official descriptions.

Here is a summary table of the essential components, formatted for quick revision.

Service Project Name Function
Compute Nova The core compute engine. It provisions and manages large networks of virtual machines (VMs) on demand. It acts as the "brain" for VM lifecycle management.
Block Storage Cinder Provides persistent block storage volumes for VMs, similar to a virtual hard drive that can be attached and detached. Essential for databases and applications requiring persistent storage.
Object Storage Swift Provides a highly scalable, redundant storage system for objects and files (e.g., VM images, photos, videos, backups). Accessed via an HTTP API.
Networking Neutron Manages all networking aspects of the cloud, including virtual networks, subnets, routers, firewalls, and IP addresses for tenants.
Image Service Glance Manages and stores virtual machine disk images. Nova uses Glance to retrieve images when launching new VMs.
Identity Service Keystone Provides centralized authentication and authorization for all OpenStack services. It manages users, roles, and projects (tenants).
Dashboard Horizon Provides a graphical user interface (GUI) for users and administrators to access, provision, and automate cloud resources.


3. OpenStack Architectural Blueprint

Now that you know the components, let's see how they fit together. The services in OpenStack communicate using a combination of REST APIs and a central message queue.

  • REST APIs: Each service exposes an API endpoint. This allows services to talk to each other and allows users (or the Horizon dashboard) to send requests to the cloud.
  • Message Queue (e.g., RabbitMQ): Used for asynchronous internal communication between the daemons of a service. For example, the nova-api service might place a "create VM" request onto the message queue, which is then picked up by the nova-scheduler service.
  • Database (e.g., MariaDB): A central database stores the state of the cloud, such as the status of VMs, network configurations, and user information.

This diagram shows a more detailed view of the architecture and the communication paths.

OpenStack Architecture Diagram
A detailed architectural view of OpenStack. It illustrates how the core services (Nova, Keystone, Glance, etc.) interact via REST APIs (HTTP), an AMQP message queue, and a shared SQL database. Note the distinction between the Cloud Controller components and the Compute node components.

A typical workflow, like launching a VM, involves multiple components:

  1. A user requests a new VM via the Horizon dashboard.
  2. Horizon sends the request to the Nova API.
  3. Nova contacts Keystone to authenticate the user's token.
  4. Nova retrieves the specified VM image from Glance.
  5. Nova requests networking configuration for the VM from Neutron.
  6. Nova's scheduler determines which physical compute node will host the VM.
  7. The hypervisor on the selected compute node creates the VM. If a persistent volume is requested, Nova communicates with Cinder to attach it.


4. A Deeper Look at Key Service Architectures

For a comprehensive answer in your exams, it is useful to know the internal structure of the most important services. The Red Hat documentation provides detailed diagrams for each.

Chapter 1. Components | Red Hat OpenStack Platform | 11

To gain a deeper understanding, I recommend you now explore the detailed sections for each component in the Red Hat Architecture Guide. Each section contains a specific architecture diagram and a breakdown of its internal parts.

Scan through the following sections and pay special attention to the architecture diagrams and component tables: OpenStack Compute (nova) (Section 1.3.1) OpenStack Block Storage (cinder) (Section 1.2.1) OpenStack Object Storage (swift) (Section 1.2.2) OpenStack Networking (neutron) (Section 1.1.1) OpenStack Image (glance) (Section 1.3.3) OpenStack Identity (keystone) (Section 1.4.1)

The diagrams in the resource above are excellent for exam preparation. For instance, the diagram for Nova (Compute) shows how its internal parts like nova-api, nova-scheduler, and nova-compute work together. Similarly, the Cinder (Block Storage) diagram illustrates its interaction with backend storage devices through different drivers. Familiarizing yourself with the visual layout of these services is highly beneficial.



5. Other Important OpenStack Services

Beyond the core seven, OpenStack has a large ecosystem of optional services. Mentioning these can demonstrate a broader knowledge.

Service Project Name Function
Orchestration Heat Allows you to automate the deployment of entire application stacks using text-based templates. It manages the entire lifecycle of the infrastructure and its software.
Telemetry Ceilometer Collects usage and performance measurements across the cloud. This data is critical for billing, monitoring, and autoscaling.
Bare Metal Ironic Provisions physical hardware (bare metal machines) instead of virtual machines. This is useful for high-performance computing or workloads that cannot be virtualized.
Data Processing Sahara Enables the provisioning and management of data processing frameworks like Hadoop and Spark on top of an OpenStack cloud.


Conclusion

In this lesson, we explored the modular, service-oriented architecture of OpenStack. Unlike Eucalyptus's strict hierarchy, OpenStack is a flexible collection of independent projects that work together to deliver a complete IaaS cloud.

Key Takeaways:

  • OpenStack is an open-source cloud operating system composed of multiple services.
  • Its modular architecture allows for flexibility and independent scaling of its components.
  • Communication is handled via REST APIs and an internal message queue.
  • The core components you must know are:
    • Nova (Compute): Manages VM lifecycles.
    • Cinder (Block Storage): Provides persistent virtual disks.
    • Swift (Object Storage): Stores files and objects.
    • Neutron (Networking): Manages virtual networks.
    • Glance (Image): Stores VM images.
    • Keystone (Identity): Handles authentication and authorization.
    • Horizon (Dashboard): Provides the GUI.
  • Other services like Heat (Orchestration) and Ceilometer (Telemetry) add powerful automation and monitoring capabilities.

Preview of the Next Lesson:

Having now covered two major open-source platforms for building private clouds (Eucalyptus and OpenStack), we will shift our focus to the public cloud landscape. In the next lesson, we will describe and compare the key services offered by the three dominant public cloud providers: Amazon Web Services (AWS), Microsoft Azure, and Google Cloud Platform (GCP).