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. Ubuntu OpenStack contains all the current integrated OpenStack projects and some additional technologies beneficial to helping run an OpenStack cloud. What follows is a high level overview of our reference implementation for production use.
Compute — Nova
Nova, the OpenStack Compute component 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.
Storage — Swift or Ceph
Swift, the OpenStack object storage system, creates redundant, scalable object storage using clusters of standardised storage servers. Rather than a file system or real-time data storage system, it provides long-term storage for more permanent, static data like virtual machine images, photos, emails and backup archives. Ceph is used for block storage as part of OpenStack Cinder. It provides a feature-rich experience and is also able to provide Object Storage via a gateway, giving you the option to standardise on a single storage technology, based on your requirements.
Image service — Glance
Glance, the OpenStack Image Service, 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:
- RawVHD (Hyper-V)
- VDI (VirtualBox)
- qcow2 (Qemu/KVM)
- Machine (kernel/ramdisk outside of image, also known as AMI)
Authentication — Keystone
Keystone, the OpenStack Authentication service 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.
Management — Horizon
The OpenStack management service or dashboard known as 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.
Networking — Neutron
Neutron, the networking service, provides an API that lets you define network connectivity and addressing in your OpenStack cloud. Neutron enables operators to leverage different networking technologies supported with Ubuntu OpenStack such as Juniper’s Contrail, Nuage Networks, MidoNet, VMware NSX, PlumGrid, CPlane Networks and Calico from Metaswitch. Standalone, Neutron provides an API to configure and manage a variety of network services ranging from L3 forwarding and NAT to load balancing, edge firewalls, and IPsec VPN.
Metrics — Telemetry
Previously known as Ceilometer, the Telemetry module collects measurements about the OpenStack system and stores it in the form of samples in order to provide data about anything that can be billed. In addition to system measurements, Telemetry also captures event notifications triggered when various actions are executed in the OpenStack system. This data is captured as events and stored alongside metering data.
Juju and MAAS
Juju and MAAS are the fastest and most integrated way to deploy OpenStack on Ubuntu. Using libraries of charms developed from experience at customer sites, Juju makes it easy to deploy, configure and scale out cloud services with only a few simple commands. MAAS is the bare-metal provisioning tool that turns your hardware environment into a cloud in minutes. It takes the pain out of detection and configuration and gets your servers ready for Juju.
Virtualisation — LXD/LXC, KVM, etc
Ubuntu Server includes open-source hypervisors LXD/LXC 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)
- LXD/LXC (Linux Containers)
- VMWare ESXi
A complete list of the features that can be controlled through OpenStack, by hypervisor, is available on the OpenStack Wiki
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 online. For technical documentation and further information on OpenStack, please visit the OpenStack documentation pages. For a detailed listing and build status of all the OpenStack Kilo components, including projects that are not currently part of the Ubuntu reference implementation like Heat, Trove, Sahara and Ironic as well as other useful technologies, visit the cloud archive which is updated nightly.