In this post, we’ll try to examine the current state of developer environments and how can they be improved.
The current state in developer environments
Nowadays, we have a great amount of tooling that allows us to create developer environments. With Docker being the defacto packaging format and runtime, you can create developer environments using tools like Docker compose and with tools like Vagrant, you can configure your local VM the way you like.
Half the truth, twice the pain
While the above scenario works well for small and simple setups, when more complex things come to play and your team grows, managing such environments becomes a pain.
- What happens with services that your application depends on, like that fancy billing API?
- Do you store things to an object store?
- Do you have a microservice architecture with multiple services running and interacting with each other?
- How do you circulate production data back to your developer environments?
The wrong use for staging environments
The above questions bring difficult solutions into the table, leading to leaving out pieces of your application when developing and only testing these in staging. Since this infers staging environment lockouts and slows development cycles, you create more and more staging environments, like the development staging environment, or even staging environments for each team or developer.
Off to the cloud
By moving your developer environment infrastructure to the cloud, you get instant answers to the above questions. Environments that live in the cloud are:
Say hello to managed infrastructure
Never think about managing your developer environment ever again. Get piece of mind and let a machine manage your developer environments for you.
Share the resources with the whole team
All your team works in the same cluster, making the resources reusable and shareable. This means that you can share the same database for all environments, with fresh data, the same backend and when a build is finished, the rest of the developers get the cache for free.
Access your environment from anywhere
With your environments living in the cloud, all you need is a computer, an editor and a way to easily access it.
Goodbye 🐶, hello my dear 🐮
Now that you’re proud that you treat your production servers like cattles, you need to treat you developer environments in the same way. On the cloud, provisioning environments is lightning fast, making the recreation of an environment easier than debugging the bad migration you just did.
Nothing comes for free
As with every nice thing, cloud developer environments have their challenges.
- Easy access - make sure that these environments are easily accessible
- No change in workflow - allow your developers to use their favorite local tools, because no developer is ever happy changing her favorite beta emoji tool she downloaded last night from GitHub
- Offline fallback - give your developers a way out in case they don’t have an Internet connection
All you need to do now, is solve these issues.
Stolos to the rescue
Stolos is a tool that we have developed at SourceLair over the past months, with all the experience we gained from building an online IDE. It moves your developer environments in the cloud, while being as transparent as possible to your developers workflow. You should definitely try it!
Be surrounded with #HappyDevs
Your developers will not need again to worry about their developer environments. That means that they’ll focus on what they do best, coding and be happy!