We recommend reading about the core concepts of Apollo before proceeding with this documentation.
This documentation explains how changes in Spoke Environments flow through the system in the form of Plans. The documentation covers:
The Apollo Hub uses Environment settings information to manage Environments and Entities. Refer to the relevant documentation to read more about Environment settings and Managed Entity settings.
For more information about viewing or editing the Environment settings, see Managing Environments and Managing Entities.
Agents running in managed Spokes gather information about all Managed Entities including running deployed version, current configuration, liveness and readiness and other metadata and send it back to the Apollo Hub. This information is called the Reported State for an Entity. For more information, see Entity Reported State.
Constraints are preconditions which Plans must satisfy before they can be executed by an Agent. Apollo evaluates constraints to ensure that Plans only run when it is safe and acceptable to do so. See Constraints for more information.
The Orchestration Engine is responsible for the release promotion process for Product Releases and also issues Plans for agents running in Spoke Environments.
To decide when a release should be promoted between Release Channels, the Orchestration Engine continuously evaluates whether a release already passed or failed the health promotion criteria using the information coming from the Reported State.
If the evaluation is successful, the release will be added to the next Release Channel configured in the release channel promotion pipeline.
In cases where the evaluation fails the criteria, the Orchestration Engine will automatically recall the release to ensure all Environments are rolled off that version.
The Orchestration Engine evaluates what Plans to issue for agents running in the Control Plane in Spoke Environments as described in the Plan Lifecycle.
Note that Apollo does not have a specific target state for Environments or Entities. Instead, Apollo proposes Plans which satisfy the configured constraints for Environments or Entities. As an example, an Entity is defined with a Product and a Release Channel but not a specific version.
Agents running in the Spoke's Control Plane continuously poll the Orchestration Engine for new Plans. Once a Plan passes all the relevant Constraints, the Orchestration Engine will issue the Plan for the relevant agent in the Environment to execute.
Once the agent has executed the Plan, the agent will report back whether the Plan was successful or not. If the Plan failed and the state of the Environment differs from the state prior to the start of the Plan, the Orchestration Engine will issue a rollback Plan to restore the state prior to the start of the Plan.