Architecture
Overview The OpenStack project is an open source cloud computing platform that supports all types of cloud environments. The project aims for simple implementation, massive scalability, and a rich set of features. Cloud computing experts from around the world contribute to the project. OpenStack provides an Infrastructure-as-a-Service (IaaS) solution through a variety of complemental services. Each service offers an application programming interface (API) that facilitates this integration. The following table provides a list of OpenStack services: This guide describes how to deploy these services in a functional test environment and, by example, teaches you how to build a production environment.
Conceptual architecture Launching a virtual machine or instance involves many interactions among several services. The following diagram provides the conceptual architecture of a typical OpenStack environment.
Conceptual architecture
Example architectures OpenStack is highly configurable to meet different needs with various compute, networking, and storage options. This guide enables you to choose your own OpenStack adventure using a combination of basic and optional services. This guide uses the following example architectures: Three-node architecture with OpenStack Networking (neutron). See . The basic controller node runs the Identity service, Image Service, management portions of Compute and Networking, Networking plug-in, and the dashboard. It also includes supporting services such as a database, message broker, and Network Time Protocol (NTP). Optionally, the controller node also runs portions of Block Storage, Object Storage, Database Service, Orchestration, and Telemetry. These components provide additional features for your environment. The network node runs the Networking plug-in, layer 2 agent, and several layer 3 agents that provision and operate tenant networks. Layer 2 services include provisioning of virtual networks and tunnels. Layer 3 services include routing, NAT , and DHCP. This node also handles external (internet) connectivity for tenant virtual machines or instances. The compute node runs the hypervisor portion of Compute, which operates tenant virtual machines or instances. By default Compute uses KVM as the hypervisor. The compute node also runs the Networking plug-in and layer 2 agent which operate tenant networks and implement security groups. You can run more than one compute node. Optionally, the compute node also runs the Telemetry agent. This component provides additional features for your environment. When you implement this architecture, skip in . To use optional services, you might need to install additional nodes, as described in subsequent chapters.
Three-node architecture with OpenStack Networking (neutron)
Two-node architecture with legacy networking (nova-network). See . The basic controller node runs the Identity service, Image Service, management portion of Compute, and the dashboard necessary to launch a simple instance. It also includes supporting services such as a database, message broker, and NTP. Optionally, the controller node also runs portions of Block Storage, Object Storage, Database Service, Orchestration, and Telemetry. These components provide additional features for your environment. The basic compute node runs the hypervisor portion of Compute, which operates tenant virtual machines or instances. 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. Optionally, the compute node also runs the Telemetry agent. This component provides additional features for your environment. When you implement this architecture, skip in . To use optional services, you might need to install additional nodes, as described in subsequent chapters.
Two-node architecture with legacy networking (nova-network)