3 approaches to leveraging open source in the cloud

The cloud and open source software have long been enemies at best. Although a number of public cloud services are based, at least in part, on open source platforms or tools, the cloud services themselves are largely not open source.
That doesn’t mean that using the cloud means missing out on the benefits of open source, though. With the right approach, you can enjoy both open source and the convenience of cloud computing.
Open Source and Cloud: a turbulent history
When cloud computing first emerged, it caused more than a little trepidation among free and open source software advocates.
GNU founder Richard Stallman, for example, warned that cloud platforms “give someone else power over your computer.”
The point he was making was that when you use a cloud service or software as a service (SaaS) application, you are using a computing environment controlled by an external vendor. Cloud providers very rarely release the source code of their services and applications. Even if they did, users couldn’t modify the code to change how the service works, control how it handles their data, or take advantage of other fundamental freedoms associated with running open source software on their own computers. or server.
Open source and private clouds
One way to solve this dilemma is to build a private cloud using an open source platform, such as OpenStack or CloudStack.
This is a great idea if you have the resources to set up and manage a cloud computing environment yourself. But it’s a fair amount of work. It also requires you to acquire your own hosting infrastructure. You’re missing out on the convenience, unlimited scalability, and CapEx-free nature of public cloud.
Running open source software on public clouds
There is another approach to running open source software in the cloud that provides most of the benefits of open source and most of the benefits of the public cloud: using public cloud infrastructure to host open source software that you manage yourself. -same.
In other words, you can run whatever open source applications you want, such as an Apache, WordPress, or Elasticsearch HTTP server, on an AWS EC2 instance or an Azure virtual machine.
You won’t fully control the underlying infrastructure, of course. You also cannot prevent the public cloud provider from collecting data about what you do on their servers. In these respects, you won’t be exploiting as much privacy and extensibility as if you were running open source on your own private server.
The trade-off, however, is that you can scale your host infrastructure virtually without limit. Plus, you only pay for the hosting resources you actually use, and you don’t need to purchase servers upfront to run your applications.
Open Source as a Managed Service
A third approach is to run open source software in the cloud using a managed service from a cloud provider. For example, you can run Kubernetes through AWS EKS or Azure AKS. Or, you can use AWS OpenSearch instead of configuring Elasticsearch (and related software) yourself.
The advantage of open source as a managed service in the public cloud is that it is simple and convenient. You don’t need to provision the infrastructure or install open source on it yourself.
On the other hand, you lose all the flexibility that open source would otherwise confer. You may only use your software in a manner supported by your cloud provider. Your ability to modify the configuration of the software is generally limited. You certainly cannot modify the source code of the software. In other words, you end up with the kind of “software as a service substitute” scenario that people like Stallman warn against.
On the positive side, one could argue that using open source as a managed service in the public cloud could be a stepping stone to using the same open source platforms in ways that give users more freedom. If you’re running EKS, for example, you might end up deciding to deploy Kubernetes yourself, instead of relying on a managed service. Or you might one day switch from OpenSearch to a self-managed ELK stack.
Conclusion
Whichever way you slice it, running open source in the cloud — as opposed to your own private infrastructure — has some downsides. This may require more effort than other cloud-based deployment options. And you may have less control over your software and data.
But given the different deployment approaches, it’s usually possible to run open source in the cloud in a way that allows you to achieve most of your goals, while minimizing the inconvenience. You just need to select the right strategy.