The Self-Hosting Paradox
Everything is moving to the cloud. Enterprises want to manage their infrastructure. Those two sentences are 180 degree opposites at first glance, but when it comes to remote development environments, there is a paradox which has a compelling, underlying enterprise truth.
It is true that the public cloud is a thing. AWS, Azure, Google Cloud, IBM, Oracle, Digital Ocean and others are ubiquitous in small and very large enterprises. In fact, Coder's first slide in our pitch deck says that enterprise software has moved to the cloud, why is software development still on laptops?
Public Cloud Scale and Innovation
Public clouds offer many advantages over on-premises infrastructure (where an enterprise purchases or leases servers and networking). Public cloud providers are more advanced than enterprises. e.g., AWS and Google Cloud leveraging years of experience maintaining and scaling respective eCommerce, Search and Video services. Public cloud providers also innovate at a much faster rate. e.g., Kubernetes as a public cloud service like AWS EKS, Azure AKS, or Google Cloud GKE, are easier to configure, which is beneficial to remote development platforms like Coder which can run on Kubernetes.
Remote Development Environments in Public Cloud
Coder OSS and Enterprise let enterprises of any size centrally build, manage, and secure development environments on enterprises' public cloud and on-premises infrastructure. As discussed in a previous Coder blog post, enterprises are all in various states of transition from on-premises to public cloud. Coder provides this future-proof approach where both developers still isolated to on-premises infrastructure, and developers already building software that integrates with public cloud, can use one remote development platform to meet the entire enterprises' software development requirements.
I have large enterprise customers explain that isolation of developers by network, vis-a-vis on-premises and public cloud, is normal. One enterprise has signed a multi-year public cloud provider agreement, but shared it will take a couple years for their GitHub Enterprise solution to pass tech risk and information security reviews before developers can even access it. In other words, Coder will initially support all developers in their on-premises and eventually support developers on their public cloud infrastructure.
Contrast Coder's "neutral Switzerland" approach to alternative remote development solutions that only run on public clouds as Software-as-a-Service "SaaS". AWS's Amazon CodeCatalyst, AWS Cloud9, and Amazon WorkSpaces, Google Cloud Workstations, and Microsoft's GitHub Codespaces, Microsoft Dev Box, and Azure Virtual Desktop, all run on their respective public clouds. Some day, GitLab will probably have a SaaS remote development solution and we understand Gitpod is moving completely to single-tenant and multi-tenant public cloud SaaS solutions.
Enterprises with one or more of these clouds will have to learn different solutions. If on-premises is a requirement, another solution will be required for remote development.
By the way, yes that was not a typo, Amazon and Microsoft have multiple remote development solutions.
Self-hosting in a public cloud
Here lies the paradox outlined upfront. Enterprises are moving workloads to public cloud providers. The evidence so far from Coder's large enterprise customers e.g., financial institutions, asset management firms, hedge funds, US government agencies, professional services and outsourcing firms, retailers, insurers, software providers, and more - is that they would like to self-host remote development platforms like Coder in their public clouds.
One reason is control. Their public cloud infrastructure is locked down to meet regulatory and security requirements, where SaaS may not meet their stringent requirements.
Additionally, development environments frequently require access to private networks, storage buckets, or other resources inside an organization’s cloud infrastructure. Coder can run inside private networks, giving developers fast and secure access to cloud resources without opening firewalls.
A second reason is total cost of ownership. Cloud and SaaS remote development offerings are basically cloud-based virtual machines which have higher prices. Controls to limit cost like shutting down or packing development environments closely on VMs are not there, most likely by design. Self-hosting Coder gives enterprises full control over how development environments are sized and how compute is shared. These types of controls can provide more efficient use of public cloud spend.
A third reason is developer tooling choice. Some of these SaaS and public cloud offerings are limited to specific git, IDE, and development environment infrastructure. Coder can work with any git, IDE, or infrastructure e.g., Windows, Linux VMs, Kubernetes pods, or Docker containers.
Coder believes remote development is moving to the public cloud, and enterprises will manage Coder in a self-hosted way for better security and cost control.