What is the Platform Orchestrator?
The Platform Orchestrator is the core component that powers your Internal Developer Platform. It removes infrastructure bottlenecks and creates golden paths for developers by automating provisioning and deployment of resources.
The Platform Orchestrator works by integrating with your CI/CD pipeline. When developers push code changes, it reads the Score workload specification to understand what resources are needed to run the application code.
It then provisions those resources by integrating with Drivers, which handle the actual interactions with infrastructure and services. The Platform Orchestrator generates the necessary configurations and executes deployments based on the Score workload definition.
Developers describe their resource requirements in Score files checked into source control. This workload specification allows them to define components like databases, caches, etc. in an environment-agnostic way. The Platform Orchestrator interprets these workload definitions and provisions the required resources.
The Platform Orchestrator removes manual toil for developers and platform teams. It enables self-service provisioning of resources while still giving platform teams control and governance over how resources are configured and deployed.
How does the Platform Orchestrator work?
The Humanitec Platform Orchestrator follows a sequence of steps termed Read, Match, Create, Deploy (RMCD) for every Application Deployment.
In the Match phase, the Orchestrator identifies the Deployment context using the metadata associated with the Deployment. This includes details about the Application, the target Environment, and its Environment Type. This information is then used to align with the appropriate Resource Definitions for the given context.
During the Create phase, the Orchestrator formulates application configurations and initiates the Resource Definitions. This is done with the assistance of the relevant Drivers, which receives the configured Driver Inputs. These Drivers are responsible for resource provisioning and gathering the specified outputs. Since some outputs might serve as inputs elsewhere in the Deployment, certain resources might rely on others. To determine the sequence of resource provisioning, the Orchestrator constructs a Resource Graph and follows it.
In the Deploy phase, the Orchestrator rolls out the actual Workloads. By this stage, all resources that the Workloads depend on have already been provisioned.