CDE

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.

  • portrait of fictional character Alice

    Most of my tools are automated. Why do I have to spend hours every week fixing my developer environment?

  • portrait of fictional character Bob

    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

  1. Continous Integration

  2. Continous Deployment

  3. 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:

  1. 01

    Ephemeral over long lived

    A fresh disposable development environment for every task.

  2. 02

    Reproducible over cobbled together

    Consistently replicable without manual intervention.

  3. 03

    Effortless over arduous

    With minimal friction and difficulty.

  4. 04

    Abundant over scarce

    Instantaneously obtainable, seemingly infinite.

  5. 05

    Independent over tangled

    Isolated and self-sufficient.

  6. 06

    Powerful over constrained

    Supports the most expansive development activities.

  7. 07

    Equitable over requiring specialized skills

    Lowers the barrier to software development.

  8. 08

    Collaborative over solitary

    Enables collaboration across time, space and practice.

Perspectives

  • 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.
    Kent Beck

    Kent Beck

    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.
    Keith Adams

    Keith Adams

    Former Chief Architect of Slack

  • CDEs are like perfectly configured, high powered developer laptops that you can use and discard as easily as sticky notes. One perfect laptop for every project you work on, so you can say goodbye to dependency collision issues between unrelated projects.

    CDEs are especially powerful in complex environments at large companies. At GitHub we built our own complex setup script to provision developer laptops, always aiming to get new employees committing to main on their first day. It still didn't work 100%. CDEs make it easy.
    Tom Preston-Werner

    Tom Preston-Werner

    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.

Whitepaper

CDEs for enterprises

Curious why many of the largest tech companies are adopting CDEs? Our whitepaper describes 9 measurable benefits of CDEs that are relevant to engineering leaders who want to remove friction from their teams and increase security.

Download Whitepaper

By submitting this form, I confirm that I acknowledge the collection and processing of personal data by Gitpod, as further described in the Privacy Policy.

Get started

Spin up fresh, automated dev environments for each task, in the cloud, in seconds - no credit card required.

Gitpod in a Nutshell Gitpod in a Nutshell