The Core Concept of CDEs
Infrastructure as Code for developer environments using Terraform, OpenTofu, Pulumi, DevContainers, and Kubernetes
The Traditional Approach
Traditionally, developers work like this:
- Clone the repository to their local machine
- Install all dependencies (Node.js, Python, Docker, databases...)
- Configure environment variables and secrets
- Fight with version conflicts and "it works on my machine" issues
- Run everything locally - builds, tests, databases, AI models
This approach worked for simple projects. Today, enterprise development requires Docker containers, Kubernetes orchestration, GPU acceleration for AI/ML workloads, multiple databases, and CI/CD pipelines - all running simultaneously on laptops designed for email. Platform engineering teams need a better solution.
Infrastructure as Code for Developer Environments
Cloud Development Environments transform how platform engineering teams provision developer workspaces:
- Define environments as code using Terraform, OpenTofu, or Pulumi templates, DevContainers, or Kubernetes YAML
- Spin up isolated cloud workspaces on demand with tools like Coder, Ona (formerly Gitpod), or GitHub Codespaces
- Connect via VS Code Remote SSH, JetBrains Gateway, or web-based IDEs
- All developers get identical, pre-configured environments - no more "works on my machine"
- Compute-intensive workloads run on scalable AWS EC2, Azure VMs, or Kubernetes pods
Key Concepts
Environment as Code
Just like you define infrastructure with Terraform, you define development environments with templates. CPU, RAM, OS, tools, extensions - everything is codified and version controlled.
The IaC landscape has expanded significantly. OpenTofu, the Linux Foundation's open-source fork of Terraform, has gained significant adoption since HashiCorp's 2023 license change. It offers native state encryption and full Terraform compatibility.
Pulumi 5.0 enables infrastructure-as-code in general-purpose languages (TypeScript, Python, Go, C#) with AI-assisted generation, giving teams the flexibility to define CDE environments using the same languages they write application code in.
Remote Execution
Code lives and runs on remote servers - your cloud, your VPC, your rules. The developer connects remotely while the heavy lifting happens on powerful infrastructure.
Local Feel
Developers still use their preferred IDE locally - VS Code, IntelliJ, PyCharm. The experience feels local, but compilation, indexing, and execution happen in the cloud.
