Almost all DevOps tools and processes run in the cloud, while software development itself still remains on local machines. At Coder, we see this as the lone holdout preventing developers from creating efficient, well-integrated workflows.
In a previous post, we reviewed early attempts at migrating to cloud IDEs and detailed why they may have not worked for professional development. Here, we're going to focus on the benefits that cloud development provides.
Cloud development eliminates the need to focus on hardware — that’s up to your cloud provider. Need more processing power? Add more cores to your instance. Need lightspeed access to your services? Provision an environment in the same network as your buckets.
Instead of buying a more expensive laptop, a faster internet connection, or more GPUs, you can just provision dev environments for your specific needs.
One time this summer, I found myself coding on my Chromebook with only an LTE connection. However, I could still access my remote development environment exactly as I would from my PC back at home.
While that in particular is an odd use case, having a low-powered device and slow network did not hold me back in any meaningful way, since all of the processing power was handled remotely. All that is needed is a modern web browser and a stable connection. Switching devices is easier than ever, since there’s no need to reconfigure anything.
Developing alongside (or even inside) your infrastructure makes it significantly easier to access any resources you have hosted there. If you need to hook into a staging database or API server, you won’t need to reproduce it locally or reconfigure environment variables since the services are living “next door” to your dev environment in your cloud.
Setting up development environments can be time-consuming and updating them can lead engineers down rabbit holes that shouldn’t be there in the first place. Through the power of VMs, containers, or even Kubernetes, you can standardize the dev environments for everybody on your team, packaged with all the tools and dependencies needed for a given project. We use Docker images for this.
Adding integrations, firewalls, security scans, and collaboration tools into the dev environment is much smoother when it is hosted in your cloud. Not only is it easier to configure, but the tools in your pipeline will not be bottlenecked if they are in the same place as you develop, with sufficient resources.
An ActiveState study found that over 50% of developers struggle with issues in their build pipelines around security, stability, and dependencies. Cloud development allows organizations to “shift left” a lot of these policies into the development step, detecting these problems in real-time or even preventing them from happening in the first place.
For example, automated package vulnerability scanning can run as you’re writing code, instead of later during a commit/build. This simplifies the process for the developer while also increasing the scope of security for the organization.
Developer tools are easier to implement (or even build yourself) inside cloud environments. Team members can share their code without having to open up firewalls or wait for a pipeline to finish. There are a ton of possibilities here!
For the last two decades, all sorts of software have been moving into the cloud for the same reasons: speed, accessibility, and automation.
As developers continue to adopt the mindset of “focus on the code, not the infrastructure,” migrating to cloud development takes this one step further. By nature, it eliminates a lot of the existing friction that typically comes when writing code, while also introducing a smooth developer experience, integrations, and security at a scale that previously wouldn’t be possible.