website-and-documentation/content/en/docs/edp/deployment/basics/orchestration.md
Martin McCaffery 41e3306942
Some checks failed
build / build (push) Failing after 52s
ci / build (push) Successful in 55s
feat(docs): Restructure entire documentation
2025-12-18 10:25:07 +01:00

13 KiB

title linkTitle weight description
Platform Orchestration Platform Orchestration 1 Orchestration in the context of Platform Engineering - coordinating infrastructure, platform, and application delivery.

Overview

Orchestration in the context of Platform Engineering refers to the coordinated automation and management of infrastructure, platform, and application components throughout their entire lifecycle. It is a fundamental concept that bridges the gap between declarative specifications (what should be deployed) and actual execution (how it is deployed).

The Role of Orchestration in Platform Engineering

Platform Engineering has emerged as a discipline to improve developer experience and reduce cognitive load on development teams (CNCF Platforms White Paper). Orchestration is the central mechanism that enables this vision:

  1. Automation of Complex Workflows: Orchestration coordinates multiple steps and dependencies automatically
  2. Consistency and Reproducibility: Guaranteed, repeatable deployments across different environments
  3. Self-Service Capabilities: Developers can independently orchestrate resources and deployments
  4. Governance and Compliance: Centralized control over policies and best practices

What Does Orchestration Do?

Orchestration systems perform the following tasks:

  • Workflow Coordination: Coordination of complex, multi-step deployment processes
  • Dependency Management: Resolution and management of dependencies between components
  • State Management: Continuous monitoring and reconciliation between desired and actual state
  • Resource Provisioning: Automatic provisioning of infrastructure and services
  • Configuration Management: Management of configurations across different environments
  • Health Monitoring: Monitoring the health of deployed resources

Three Layers of Orchestration

In modern Platform Engineering, we distinguish three fundamental layers of orchestration:

Infrastructure Orchestration

Infrastructure Orchestration deals with the lowest level - the physical and virtual infrastructure layer. This includes:

  • Provisioning of compute, network, and storage resources
  • Cloud resource management (VMs, networking, storage)
  • Infrastructure-as-Code deployment (Terraform, etc.)
  • Bare metal and hypervisor management

Target Audience: Infrastructure Engineers, Cloud Architects

Note: Detailed documentation for Infrastructure Orchestration is maintained separately.

More details: Infrastructure Orchestration →

Platform Orchestration

Platform Orchestration focuses on deploying and managing the platform itself - the services and tools that development teams use. This includes:

  • Installation and configuration of Kubernetes clusters
  • Deployment of platform services (GitOps tools, Observability, Security)
  • Management of platform components via Stacks
  • Multi-cluster orchestration

Target Audience: Platform Engineering Teams, SRE Teams

In IPCEI-CIS: Platform orchestration is realized using the CNOE stack concept with ArgoCD and Forgejo.

More details: Platform Orchestration →

Application Orchestration

Application Orchestration concentrates on the deployment and lifecycle management of applications running on the platform. This includes:

  • Deployment of microservices and containerized applications
  • CI/CD pipeline orchestration
  • Configuration management and secrets handling
  • Application health monitoring and auto-scaling

Target Audience: Application Developers, DevOps Engineers

In IPCEI-CIS: Application orchestration uses Forgejo pipelines for CI/CD and ArgoCD for GitOps-based deployment.

More details: Application Orchestration →

GitOps as Orchestration Paradigm

A central approach in modern platform orchestration solutions is GitOps. GitOps uses Git repositories as the single source of truth for declarative infrastructure and applications:

  • Declarative Approach: The desired state is defined in Git
  • Automatic Synchronization: Controllers monitor Git and reconcile the live state
  • Audit Trail: All changes are traceable in Git history
  • Rollback Capability: Easy rollback through Git revert

Continuous Reconciliation

An important concept is continuous reconciliation:

  1. The orchestrator monitors both the source (Git) and the target (e.g., Kubernetes cluster)
  2. Deviations trigger automatic corrective actions
  3. Health checks validate that the desired state has been achieved
  4. Drift detection warns of unexpected changes

Orchestration Tools in IPCEI-CIS

Within the IPCEI-CIS platform, we utilize the CNOE (Cloud Native Operational Excellence) stack concept with the following orchestration components:

ArgoCD

  • Continuous Delivery for Kubernetes based on GitOps
  • Synchronizes Kubernetes manifests from Git repositories
  • Supports Helm Charts, Kustomize, Jsonnet, and plain YAML
  • Multi-cluster deployment capabilities
  • Application Sets for parameterized deployments

Role in IPCEI-CIS: ArgoCD is the central component for GitOps-based deployment management. After the initial bootstrapping phase, ArgoCD takes over the technical coordination of all components.

Forgejo

  • Git Repository Management and source control
  • CI/CD Pipelines via Forgejo Actions (GitHub Actions compatible)
  • Developer Portal Capabilities (initially planned, project discontinued)
  • Package registry and artifact management
  • Integration with ArgoCD for GitOps workflows

Role in IPCEI-CIS: Forgejo serves as the Git repository host and CI/CD engine. It was initially planned as a developer portal (similar to Backstage's role in other stacks) but this aspect was not fully realized before project completion.

Note on Backstage: In typical CNOE implementations, Backstage serves as the developer portal providing golden paths through software templates. IPCEI-CIS initially planned to use Forgejo for this purpose but the project concluded before full implementation.

Terraform

  • Infrastructure-as-Code provisioning
  • Multi-cloud resource management
  • State management for infrastructure
  • Integration with Forgejo pipelines for automated deployment

Role in IPCEI-CIS: Terraform handles infrastructure provisioning at the infrastructure orchestration layer, integrated into automated workflows via Forgejo pipelines.

CNOE Stacks Concept

  • Modular Platform Components bundled as stacks
  • Reusable, composable platform building blocks
  • Version-controlled stack definitions
  • GitOps-based stack deployment via ArgoCD

Role in IPCEI-CIS: The stacks concept from CNOE provides the structural foundation for platform orchestration, enabling modular deployment and management of platform components.

The Orchestration Workflow

A typical orchestration workflow in the IPCEI-CIS platform:

┌─────────────┐     ┌───────────┐     ┌───────────┐     ┌────────────┐
│  Developer  │────▶│  Forgejo  │────▶│    Git    │────▶│   ArgoCD   │
│             │     │  Pipelines│     │Repository │     │            │
└─────────────┘     └───────────┘     └───────────┘     └─────┬──────┘
                                                                │
                                                                ▼
                    ┌───────────────────────────────────────────────┐
                    │                                               │
                    │          Kubernetes Cluster(s)                │
                    │                                               │
                    │  ┌──────────┐  ┌──────────┐  ┌──────────┐  │
                    │  │   Apps   │  │Services  │  │Resources │  │
                    │  └──────────┘  └──────────┘  └──────────┘  │
                    │                                               │
                    └───────────────────────────────────────────────┘
                                         ▲
                                         │
                                    ┌────┴─────┐
                                    │Terraform │
                                    │          │
                                    └──────────┘

Workflow Steps:

  1. Definition: Developer defines application/infrastructure as code
  2. Commit: Changes are committed to Forgejo Git repository
  3. CI Pipeline: Forgejo Actions build, test, and package the application
  4. Sync: ArgoCD detects changes and triggers deployment
  5. Provision: Terraform orchestrates required cloud resources (if needed)
  6. Deploy: Application is deployed to Kubernetes
  7. Monitor: Continuous monitoring and health checks
  8. Reconcile: Automatic correction on drift detection

Benefits of Coordinated Orchestration

The integration of infrastructure, platform, and application orchestration provides crucial advantages:

  • Reduced Complexity: Developers don't need to know all infrastructure details
  • Faster Time-to-Market: Automated workflows accelerate deployments
  • Consistency: Standardized patterns across all teams
  • Governance: Central policies are automatically enforced
  • Scalability: Platform teams can support many application teams
  • Self-Service: Developers can provision services independently
  • Audit and Compliance: Complete traceability through Git history

Best Practices

Successful orchestration follows proven principles (Platform Engineering Principles):

  1. Platform as a Product: Treat the platform as a product with focus on user experience
  2. Self-Service First: Enable developers to use services autonomously
  3. Documentation: Comprehensive documentation of golden paths
  4. Feedback Loops: Continuous improvement through user feedback
  5. Thin Platform Layer: Use managed services where possible instead of building everything
  6. Progressive Disclosure: Offer different abstraction levels
  7. Focus on Common Problems: Solve recurring problems centrally
  8. Treat Glue as Valuable: Integration of different tools is valuable
  9. Clear Mission: Define clear goals and responsibilities

Avoiding Anti-Patterns

Common mistakes in platform orchestration (How to fail at Platform Engineering):

  • Product Misfit: Building platform without involving developers
  • Overly Complex Design: Too many features and unnecessary complexity
  • Swiss Knife Syndrome: Trying to solve all problems with one tool
  • Insufficient Documentation: Missing or outdated documentation
  • Siloed Development: Platform and development teams working in isolation
  • Stagnant Platform: Platform not continuously evolved

Sub-Components

The orchestration component includes the following sub-areas:

Further Resources

Fundamentals

GitOps

Tools

  • CNOE.io - Cloud Native Operational Excellence Framework
  • Forgejo - Self-hosted Git service with CI/CD
  • Terraform - Infrastructure as Code tool