Cloud development environments (CDEs)
CDEs bring the creative workflow of writing software to the cloud.
Why does it have to be this way?
Local development environments are history-dependent, static, and cobbled together.
Most of my tools are automated. Why do I have to spend hours every week fixing my developer environment?
It works on my machine but not on anyone else's. Why is it so difficult to share and collaborate on my projects?
Our journey towards CDEs
Cloud Development Environments
Twenty-five years ago software engineers started the journey to continuous
integration; centralised and automated it made all of us more efficient.
Fifteen years later we started the journey to continuous deployment which gave teams agency, the power to experiment and learn quickly.
Today we find ourselves on another transformational journey towards “continuous development”; from static and brittle development environments to consistently reproducible, instant, ephemeral and disposable Cloud Development Environments.
Principles of CDEs
Cloud Development Environments value the following principles:
Ephemeral over long lived
A fresh disposable development environment for every task.
Reproducible over cobbled together
Consistently replicable without manual intervention.
Effortless over arduous
With minimal friction and difficulty.
Abundant over scarce
Instantaneously obtainable, seemingly infinite.
Independent over tangled
Isolated and self-sufficient.
Powerful over constrained
Supports the most expansive development activities.
Equitable over requiring specialized skills
Lowers the barrier to software development.
Collaborative over solitary
Enables collaboration across time, space and practice.
- The first advantage of CDEs for developers is the time they save. I’ve seen different numbers for the current cost of keeping a development environment working, but it’s certainly tens of percent of working time.
More important, will be all the programs that folks will try writing because they are no longer afraid of wasting another 4 hours before giving up. One of those programs that wouldn’t have been started will turn out to be exceedingly valuable.
signatory of Agile Manifesto and re-creator of Test-Driven Development
- Gitpod is the most exciting developer tool I have encountered since, I don’t know, telnet maybe? Unix? It’s been a while.
Former Chief Architect of Slack
- I am a power user of Gitpod myself and am convinced CDEs are on their way to change how the world writes software
Founder of GitHub
The benefit for all software developers
Following these principles produces characteristics which benefit all software developers:
No more configuration drift
CDEs are automatically created afresh for every task. This way code and development environment always align, and all contributors operate from a consistent configuration. No more “works on my machine”.
Peace of mind
CDEs are independent of each other. Breaking one has no effect on others. Because CDEs are ephemeral, mistakes are no longer costly. No more struggling to “fix your laptop” after upgrading to the latest version of something.
Parallelism and multi-track development
Cloud Development Environments are plentiful. Quickly reviewing the change of someone else no longer means you have to “stash” or replace what you’re currently working on. Parallel activities can coexist independently. Inviting peers to what you’re currently doing does not break their current work stream.
Space to learn and play
Cloud Development Environments remove barriers to play, learn and experiment with code, projects and repositories. Because there is no setup effort, and no risk of breaking the environment you’re working in, CDEs offer a great space to explore and learn about new technologies.
Safe and Secure
Cloud Development Environments are short-lived, which shortens the attack windows in which resources, secrets or infrastructure could be at risk. Because CDEs are ephemeral, secrets and other credentials should be tightly scoped and short-lived, i.e. should they get compromised they would not be of much use for long. Continuous development environments are isolated from other work which reduces the impact of supply chain attacks. E.g. arbitrary code execution as part of a software build can only affect what’s in the CDE, and not everything that’s running on your laptop.
CDEs for large engineering orgs
Curious why many of the largest tech companies are adopting CDEs? Our whitepaper explores a business perspective on CDEs and their benefits for engineering teams.