Chapter 3. Designing for Cloud Controllers and Cloud Management

OpenStack is designed to be massively horizontally scalable, which allows all services to be distributed widely. However, to simplify this guide, we have decided to discuss services of a more central nature, using the concept of a cloud controller. A cloud controller is just a conceptual simplification. In the real world, you design an architecture for your cloud controller that enables high availability so that if any node fails, another can take over the required tasks. In reality, cloud controller tasks are spread out across more than a single node.

The cloud controller provides the central management system for OpenStack deployments. Typically, the cloud controller manages authentication and sends messaging to all the systems through a message queue.

For many deployments, the cloud controller is a single node. However, to have high availability, you have to take a few considerations into account, which we’ll cover in this chapter.

The cloud controller manages the following services for the cloud:

Databases

Tracks current information about users and instances, for example, in a database, typically one database instance managed per service

Message queue services

All AMQP—Advanced Message Queue Protocol—messages for services are received and sent according to the queue broker

Conductor services

Proxy requests to a database

Authentication and authorization for identity management

Indicates which users can do what actions on certain ...

Get OpenStack Operations Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.