Search documentation
karat

+

K

Overview

This page provides a high-level description of Apollo's functionality and the components that enable Apollo to accelerate the software deployment and management process.

Apollo architecture diagram

Below is an architecture diagram illustrating the major elements of the Apollo platform.

Platform architecture diagram for Apollo.

Technical overview

There are two types of Environments in the Apollo platform: Hubs and Spokes.

  • Hub Environments receive information and telemetry about Spoke Environments and issue Plans to make changes. Hubs can manage multiple Spoke Environments, and can also be set up to self-manage.
  • Spoke Environments each run a Spoke Control Plane which reports information and telemetry back to the managing Hub and executes Plans issued by the Hub.

Hubs

Each Hub contains an Orchestration Engine which coordinates the system. The Orchestration Engine issues Plans to agents running in each Spoke Environment managed by the Hub. The particular Plan proposed by the Orchestration Engine depends on several key factors.

First, the Orchestration Engine must know the possible Product Releases available in the Product Catalog. The Product catalog also contains other useful information about Releases, including which Release Channel a Release belongs to, whether the Release is recalled due to a bug, dependencies on other Products, and supported database schemas. Releases are added to a specific Release Channel either automatically by a Release promotion pipeline or manually by a Release Channel Contributor.

Second, the Orchestration Engine consumes the settings for the Environment and any Apollo-managed software or infrastructure in the Environment, comprised of the installed Products, Release Channel subscriptions, and other constraints and settings defined by Environment editors. Changes to Environment settings go through the Change Management system and require appropriate approval.

Together, the information consumed from the Product catalog and Environment settings form the rules by which the Orchestration Engine operates. There is no single target state for an Environment or Apollo-managed software or infrastructure; rather than targeting a specific version, for example, Apollo-managed software might be defined with a product and a Release Channel.

The current state of the specific Environment flowing from Central Observability provides the last piece of input. The Orchestration Engine can only propose changes that do not violate any of the constraints.

Spokes

Agents are part of the Spoke Control Plane and are tasked with reporting the observed state back to the Hub (Reported State, Probes, Telemetry & Logs). Agents also poll the Hub for Plans issued by the Orchestration Engine and execute them while reporting the status of the Plan.