Many cloud strategies rely heavily on proprietary platforms and services. There’s no open source equivalent of a public cloud like AWS or Microsoft Azure, for instance, and it is unlikely that major public cloud vendors will open source their own services. However, there is a variety of open source cloud computing platforms, as well as tools, available.
Open source technologies provide more flexibility and less dependence on proprietary platforms, as well as cost savings. With open source, developers can inspect and modify the source code to fit their needs and requirements.
When looking at what’s available, there are two main categories:
- Open source platforms that build a complete cloud environment.
- Open source tools that manage or administer cloud services running within a proprietary public cloud.
Similar to proprietary services, open source cloud platforms and tools can help IT teams deploy, provision and manage workloads and environments. However, these offerings typically provide deployment and management options that extend beyond the usual menu of proprietary services, as well as offer a wider range of options for implementing and administering the cloud environment. And because some open source cloud tools are free — at least in their core, open source form — enterprises can save money.
Check out some of the top open source cloud platforms and tools available today and see if these proprietary alternatives better fit your strategy.
Open source cloud platforms
If an enterprise prefers to build its cloud on an open source foundation instead of using proprietary public cloud services, there are several open source platforms available.
AppScale uses Eucalyptus to provide open source implementations of the core AWS cloud services, such as Amazon S3 and EC2. AppScale enables IT teams to run those services on their infrastructure. This makes it possible to set up an open source cloud that looks very similar to AWS, and can even be managed using AWS’s native tooling if desired.
Although OpenStack remains widely used in the enterprise market, it has been superseded in recent years to some extent by Kubernetes, the open source orchestration platform. Kubernetes isn’t a platform for building a private cloud per se, but it creates something that resembles a private cloud by binding a collection of servers into a single cluster and deploying applications across them. In addition, developers can set up Kubernetes networking and storage services.
Kubernetes services exist in all of the major public clouds, so placing Kubernetes at the center of a cloud strategy can make it simpler to migrate workloads between an on-premises Kubernetes cluster and the public cloud.
The major drawback of Kubernetes is that it works primarily with containerized workloads, although projects like Google Anthos and VMware’s Project Pacific have made it easier to use Kubernetes to orchestrate VMs.
However, if an IT team would rather not use Kubernetes as the foundation for an entire cloud, it can be useful as an open source orchestration tool. Kubernetes is an effective way of orchestrating some of the workloads running within a public cloud.
OpenStack, which is a platform that creates a private cloud on an enterprise’s infrastructure, is a popular choice. It provides the same core types of cloud services as a public cloud, including compute, storage, serverless functions and containers. All the code behind these services is open source.
OpenStack is also free to download and deploy, although enterprises can choose to pay for its management service from vendors, like Mirantis and Platform9, which simplify OpenStack’s considerable complexity. There are also other vendors that are broadly similar, including:
- Apache CloudStack
Open source cloud tools
In addition to those open source cloud platforms, there are various tools available with more narrow focuses. Think of these open source tools as ways to enhance core public cloud services rather than as alternatives to them. These tools can be broken down into a variety of categories.
There is a large and growing set of open source monitoring tools that help collect and analyze metrics, logs and traces from cloud environments. Some of the top options, in alphabetical order, include:
- ELK Stack uses Elasticsearch, Logstash and Kibana to search and analyze data from any source.
- Grafana, which is also available as a managed service on AWS, provides visualization and analytics features to help monitor cloud applications.
- Nagios monitors performance and availability of cloud workloads.
- OpenTelemetry framework provides a standardized way to collect data from cloud and on-premises environments.
- Zabbix monitors performance and availability as well.
Many of these tools complement, rather than replace, proprietary cloud monitoring services like Amazon CloudWatch and Azure Monitor. They provide data collection options, visualizations and other features that extend beyond what is available from public clouds.
Cost monitoring and optimization
Controlling cloud costs is difficult, given the complexity of public cloud billing models and the ease with which you can spin up workloads in the public cloud and then forget to turn them off. This often leads to paying for resources you don’t need. Most public clouds offer basic cost monitoring tools, like AWS Cost Explorer, to help with this issue. Some closed-source third-party monitoring platforms also have cost-monitoring or capacity-planning features.
Open source cost optimization tools for the cloud are not as well developed, but a few exist, such as Koku and Komiser. These tools are worth exploring if your IT team wants a cost monitoring option that runs independently from your cloud environment itself.
As an alternative to proprietary cloud provisioning services, like AWS CloudFormation, IT teams can use open source infrastructure-as-code tools like Terraform or Ansible. Most of these tools work with all the major public cloud platforms, as well as with on-premises infrastructure. These tools are ideal for an organization with hybrid or multi-cloud architecture that needs one provisioning tool to support all of its environments.