Cloud reference architecture

OpenStack is the leading open cloud platform. Ubuntu is the reference operating system for the OpenStack project, which is why deploying OpenStack with Ubuntu is the best way to ensure a straightforward implementation.

OpenStack logical architecture

Services in virtual machines — high availability
View a large 'Services in virtual machines' image
Services in virtual machines — no high availability
View a large 'Services in virtual machines' image
Services in physical nodes — no high availability
View a large 'Services in physical nodes' image
Services in physical nodes — high availability
View a large 'Services in physical nodes' image


The OpenStack Compute component (codenamed Nova) enables you to provision and manage large networks of virtual machines, creating a redundant and scalable cloud-computing platform. It gives you everything you need to run instances, manage networks and control access through users and projects. Like the rest of the Ubuntu operating system, it supports most standard hardware configurations and well-known hypervisors.


OpenStack Object Storage (codenamed Swift) creates redundant, scalable object storage using clusters of standardised storage servers. Rather than a file system or real-time data storage system, it provides a long-term storage system for more permanent, static data. Examples include virtual machine images, photo storage, email storage and backup archiving. Canonical’s recommended alternative to Swift is Ceph, which provides a more feature-rich experience, and covers both object and block storage (block storage is the component that provides “disks” to the virtual machine).

Image service

The OpenStack Image Service (codenamed Glance) provides discovery, registration and delivery services for virtual disk images. It includes a standard REST interface for identifying them in back-end stores such as OpenStack Object Storage, with new virtual disk images being registered via the Image Service. Administrators can also access information on publicly available disk images and use the client library for streaming virtual disk images.

A multi-format registry, the OpenStack Image Service allows uploads of private and public images in the following formats:

  • Raw
  • VHD (Hyper-V)
  • VDI (VirtualBox)
  • qcow2 (Qemu/KVM)
  • Machine (kernel/ramdisk outside of image, also known as AMI)


The OpenStack Authentication service (codenamed Keystone) provides identity, token, catalogue and policy services for use by OpenStack components. It provides a pluggable back-end that has been designed to support various protocols (e.g. Basic Auth, OAuth, OpenID, PKI) for authentication and authorisation, allowing clients to obtain security tokens to access different cloud services.


The OpenStack management service or dashboard (codenamed Horizon) provides OpenStack users with a web-based user interface with which to control OpenStack’s component services (Nova, Swift, Keystone, Glance) and a single API with which to access them.

There are three central dashboards, covering the core OpenStack applications:

  • A user dashboard
  • A system dashboard
  • A settings dashboard

The Horizon application also ships with a set of API abstractions for the core OpenStack projects, enabling developers to work on OpenStack without intimate knowledge of the APIs of every component.


Ubuntu Server includes open-source hypervisors LXC and Xen, alongside its default option, KVM. All are supported as virtualisation options for Ubuntu OpenStack deployments.

Alternative hypervisors are compatible with OpenStack, however, allowing Ubuntu OpenStack to be deployed in custom configurations with almost any virtualisation technology. Supported options include:

  • KVM (Kernel-based Virtual Machine)
  • LXC (Linux Containers)
  • Xen*
  • VMWare ESX

A complete list of the features that can be controlled through OpenStack, by hypervisor, is available on the OpenStack Wiki.

* Requires the nova-compute service to be installed on DomU

Documentation and help

The fastest and most accurate source of assistance on Ubuntu Cloud is the developer community responsible for the software. You can get help from the Ubuntu community here.

For technical documentation and further information on OpenStack, please visit the OpenStack documentation pages.