# ๐Ÿ—๏ธ Infrastructures in CCP Infrastructures are external computing environments where **Methods** are executed. They define the physical or virtual platforms that host the **runtimes**. --- ## ๐Ÿงพ What is an Infrastructure? Each infrastructure in CCP is defined by: - A unique **ID** - A **name** - A **description** - A **type** (e.g., Docker, LXD, Kubernetes) The infrastructure type determines the containerization or execution strategy used at runtime. --- ## ๐Ÿงฑ Supported Infrastructure Types CCP currently supports: | Type | Description | |------------------|--------------------------------------------| | `docker` | Single-node Docker host | | `docker-swarm` | Multi-node cluster using Docker Swarm | | `lxd-cluster` | LXD-based containerized cluster (Linux OS) | --- ## โš™๏ธ Runtime Compatibility Each infrastructure type supports different sets of runtimes. When designing a Method, you must: 1. Choose an infrastructure where your method can run 2. Select a compatible runtime (e.g. `python:3.9`, `r-base`, etc.) --- ## ๐Ÿ”— Assigning Infrastructures to Executions When a user runs a method: - The platform selects an appropriate **infrastructure** - The **runtime** (Docker image) is scheduled on that infrastructure - Controllers deployed on that infrastructure manage task execution --- ## ๐Ÿ“ก Controllers Each infrastructure have a **controller** agent installed. Controllers: - Poll for incoming tasks - Launch containers or services - Report back status and outputs --- ## ๐Ÿ”— Related Pages - ๐Ÿงฑ [Platform architecture](./01_platform_architecture.md) - ๐Ÿณ [Runtime architecture](./02_runtime_architecture.md) - ๐Ÿ”„ [Execution lifecycle](/05_advanced_topics/02_execution_engine/01_execution_lifecycle.md) - ๐Ÿš€ [Runtimes](/05_advanced_topics/02_execution_engine/04_runtimes.md)