Using a control plane to manage a platform

The purpose of a control plane is to offer a centralized way of managing a platform. It enables platform engineers to focus on delivering value to customers by centralizing control of resources. A control plane provides command and control of all services running on the platform. As such, a control plane is critical for operating a platform as it provides an interface to create, update, and destroy resources.

A control plane consists of a set of processes, systems, and tools used to automate and orchestrate the deployment, scaling, and maintenance of platform components. It enables the following example scenarios:

  • Provision, configure, maintain and manage underlying infrastructure of a platform.
  • Orchestrate and scale services and applications deployed to a platform.
  • Monitor, observe, and react to the health of a platform.
  • Automation of any of the above.

Control plane characteristics

The characteristics of a control plane are:

Defining desired state with a command interface

An interface or mechanism that allows for commands to be issued to the control plane. These commands execute specific operations on the underlying platform. The commands can be direct, like an API, or indirect, like GitOps. The commands result in defining the desired state of the underlying platform.

State monitoring

The control plane maintains a record of the desired state to ensure it can align the platform's actual state with the intended outcomes of the executed commands (state defines the desired state of the underlying platform).

State reconciliation

The control plane must be able to reconcile the differences between the desired state and the actual state of the underlying platform it is managing. The control plane aims to bring the state of the underlying platform towards the desired state.

Examples

The following examples demonstrate how a control plane can be implemented and leveraged within a larger solution.

A Kubernetes-based control plane to manage platform resources

A cloud-based control plane to manage platform resources

  • Azure Resource Manager (ARM) is Azure's control plane for the provisioning of resources. ARM supports a broad set of command interfaces, including a portal, PowerShell cmdlets, Azure CLI, REST APIs, and SDKs.
  • Non-Azure resources can be managed through Azure by utilizing Azure Arc.

For more information