Chapter 1. Architecture

This install guide offers a few of the many ways to install OpenStack components and have them work together. It is meant as a "choose your own adventure" guide, not a comprehensive guide. The OpenStack Configuration Reference lists every option in all OpenStack services. Before you begin an installation adventure, here are some things you should know about OpenStack concepts.

 The OpenStack project is an open source cloud computing platform for all types of clouds, which aims to be simple to implement, massively scalable, and feature rich. Developers and cloud computing technologists from around the world create the OpenStack project.

 OpenStack provides an Infrastructure as a Service (IaaS) solution through a set of interrelated services. Each service offers an application programming interface (API) that facilitates this integration. Depending on your needs, you can install some or all services.

 The following table describes the OpenStack services that make up the OpenStack architecture:

Table 1.1. OpenStack services
Service Project name Description
Dashboard Horizon Provides a web-based self-service portal to interact with underlying OpenStack services, such as launching an instance, assigning IP addresses and configuring access controls.
Compute Nova Manages the lifecycle of compute instances in an OpenStack environment. Responsibilities include spawning, scheduling and decomissioning of machines on demand.
Networking Neutron Enables network connectivity as a service for other OpenStack services, such as OpenStack Compute. Provides an API for users to define networks and the attachments into them. Has a pluggable architecture that supports many popular networking vendors and technologies.
Storage
Object Storage Swift Stores and retrieves arbitrary unstructured data objects via a RESTful, HTTP based API. It is highly fault tolerant with its data replication and scale out architecture. Its implementation is not like a file server with mountable directories.
Block Storage Cinder Provides persistent block storage to running instances. Its pluggable driver architecture facilitates the creation and management of block storage devices.
Shared services
Identity Service Keystone Provides an authentication and authorization service for other OpenStack services. Provides a catalog of endpoints for all OpenStack services.
Image Service Glance Stores and retrieves virtual machine disk images. OpenStack Compute makes use of this during instance provisioning.
Telemetry Ceilometer Monitors and meters the OpenStack cloud for billing, benchmarking, scalability, and statistical purposes.
Higher-level services
Orchestration Heat Orchestrates multiple composite cloud applications by using either the native HOT template format or the AWS CloudFormation template format, through both an OpenStack-native REST API and a CloudFormation-compatible Query API.

 Conceptual architecture

The following diagram shows the relationships among the OpenStack services:

 

Figure 1.1. OpenStack conceptual architecture


 Logical architecture

To design, install, and configure a cloud, cloud administrators must understand the logical architecture.

OpenStack modules are one of the following types:

  • Daemon. Runs as a daemon. On Linux platforms, a daemon is usually installed as a service.

  • Script. Installs and tests of a virtual environment. For example, the run_tests.sh script installs and optionally tests a virtual environment for a service.

  • Command-line interface (CLI). Enables users to submit API calls to OpenStack services through easy-to-use commands.

The following diagram shows the most common, but not the only, architecture for an OpenStack cloud:

 

Figure 1.2. Logical architecture


As in Figure 1.1, “OpenStack conceptual architecture”, end users can interact through the dashboard, CLIs, and APIs. All services authenticate through a common Identity Service and individual services interact with each other through public APIs, except where privileged administrator commands are necessary.

 Example architectures

This guide enables you to choose your own OpenStack adventure. OpenStack is highly configurable to meet different needs with various compute, networking, and storage options.

This guide uses the following example architectures:

  • Basic architecture with legacy networking

    • The controller node runs the Identity Service, Image Service, dashboard, and management portion of Compute. It also contains the associated API services, MySQL databases, and messaging system.

    • The compute node runs the hypervisor portion of Compute, which operates tenant virtual machines. By default, Compute uses KVM as the hypervisor. Compute also provisions and operates tenant networks and implements security groups. You can run more than one compute node.

    • When implementing this architecture, skip Chapter 9, Install the Networking service.

     

    Figure 1.3. Basic architecture with legacy networking


  • Basic architecture with OpenStack Networking (Neutron)

    • The controller node runs the Identity Service, Image Service, dashboard, and management portions of Compute and Networking. It also contains the associated API services, MySQL databases, and messaging system.

    • The network node runs the Networking plug-in agent and several layer 3 agents that provision tenant networks and provide services to them, including routing, NAT, and DHCP. It also handles external (internet) connectivity for tenant virtual machines.

    • The compute node runs the hypervisor portion of Compute, which operates tenant virtual machines. By default, Compute uses KVM as the hypervisor. The compute node also runs the Networking plug-in agent, which operates tenant networks and implements security groups. You can run more than one compute node.

    • When implementing this architecture, skip the section called “Enable Networking”.

     

    Figure 1.4. Basic architecture with OpenStack Networking (Neutron)


You can add nodes that run Block Storage or Object Storage to either of these architectures.

Log a bug against this page


loading table of contents...