Octavia is an open source, operator-scale load balancing solution designed to work with OpenStack.
Octavia was born out of the Neutron LBaaS project. Its conception influenced the transformation of the Neutron LBaaS project, as Neutron LBaaS moved from version 1 to version 2. Starting with the Liberty release of OpenStack, Octavia has become the reference implementation for Neutron LBaaS version 2.
Octavia accomplishes its delivery of load balancing services by managing a fleet of virtual machines, containers, or bare metal servers—collectively known as amphorae— which it spins up on demand. This on-demand, horizontal scaling feature differentiates Octavia from other load balancing solutions, thereby making Octavia truly suited “for the cloud.”
Octavia is considered to be as essential as Nova, Neutron, Glance or any other “core” project that enables the essential features of a modern OpenStack cloud.
In accomplishing its role, Octavia makes use of other OpenStack projects:
Nova - For managing amphora lifecycle and spinning up compute resources on demand.
Neutron - For network connectivity between amphorae, tenant environments, and external networks.
Barbican - For managing TLS certificates and credentials, when TLS session termination is configured on the amphorae.
Keystone - For authentication against the Octavia API, and for Octavia to authenticate with other OpenStack projects.
Glance - For storing the amphora virtual machine image.
Oslo - For communication between Octavia controller components, making Octavia work within the standard OpenStack framework and review system, and project code structure.
Taskflow - Is technically part of Oslo; however, Octavia makes extensive use of this job flow system when orchestrating back-end service configuration and management.
Octavia is designed to interact with the components listed above.