Build your own cloud and save millions!
There are so many things to take care of, such as server space, development environments, security, software stacks, software updates, hardware maintenance, that the whole platform maintenance costs tend to be overwhelming. Companies that develop and deploy applications need to allocate lots of its resources to keep the platform running –resources that could otherwise be leveraged for software development purposes.
That’s why the need for cloud platform solutions arose. These solutions employ a cloud computing model to provide everything the developers need to do their work, from hosted development environments and database tools, to complete application management capabilities. Developers working within a cloud platform have access to all the resources they need to build, deploy, and launch software applications. For companies, the cloud platform could provide a scalable base for new applications that need to be delivered in short terms. With a pay-as-you-grow model, there’s no need for long-term investments in on-premises platforms.
Why open source?
Now that we stated the benefits of cloud versus traditional, on-premises platforms, the next question to ask is why an open-source cloud platform is a better option than a proprietary cloud platform. The most obvious answer is the cost: the licenses of proprietary solutions always involve higher price tags. Another important advantage is the flexibility and freedom to choose from a wide variety of frameworks, clouds, and services.
Proprietary platforms, on the other side, may tie you to the tools and services they own. In exchange, they offer certain advantages, such as commitment to SLAs (service-level agreements) and relieving you from hurdles such as testing and integration, but those advantages hardly overweight the benefits of openness.
Below you will find a selection of the open-source cloud platforms for the enterprise that rule today’s market.
Originally developed by VMware (now owned by Pivotal Software), Cloud Foundry outstands for being available as an open-source, stand-alone software application, which makes it independent of cloud providers. It can be deployed on VMware vSphere or other cloud infrastructures, such as HP Helion, Azure or AWS. Or you could even choose to host it yourself on your OpenStack server.
Through the use of buildpacks, Cloud Foundry facilitates runtime and framework support. Whenever you push an app, the Cloud Foundry Application Runtime chooses the most convenient buildpack for it. Then, the buildpack takes care of compiling the app and preparing it for launch.
Cloud Foundry is designed to offer fast application development and deployment through a highly scalable architecture and DevOps-friendly workflows. Its language support includes Python, Ruby, PHP, Java, and Go, between many others. However, to fit adequately in Cloud Foundry is recommended that your project follows the Twelve-Factor application standard: a methodology specially designed for developing optimal software-as-a-service (SaaS) apps.
Udemy got a nice course on developing for the cloud with Cloud Foundry.
If you work intensely on SOA, you must surely deal with a lot of internal and external APIs. That is the scenario where WSO2 shines, thanks to its API Manager, which is capable of handling the full API lifecycle. WSO2 provides compliance with most of the requirements your clients could put forward, including versioning, API documentation, and SSL offloading.
WSO2 uses a store concept in which developers can find, try, and rate APIs. The deployment is simple and straightforward, providing many options to control the flow of the API. It also offers an auto-recovery feature, in case an endpoint suspension occurs. All these qualities aim to reduce time-to-market, simplify the cost management and, overall, improve business process agility.
A big plus of WSO2 API Manager is its easy integration with WSO2 Identity Server, an API-driven IAM (Identity and access manager) solution. This integration offers a friendly platform for authentication across cloud environments.
Cloudify is an orchestration framework designed to model applications and services while automating their lifecycles. This includes the ability to deploy on any cloud environment or data center and perform continuous maintenance. It also offers tools to monitor all aspects of the deployed applications, detecting failure conditions, and solving them, either manually or automatically.
One of Cloudify’s most notable features is TOSCA-based blueprint modeling. This innovation lets developers use YAML to create blueprints of the application’s topologies. YAML is a human-readable data serialization language, used for writing definitions based on the TOSCA specification, which gives developers a standardized way to describe interconnections between applications, systems, and cloud infrastructure components.
Cloudify cloud orchestration provides a solid base for IT governance and security, letting users apply access restrictions with different roles and permission levels. To communicate with external services, like Kubernetes containers, cloud services (AWS, Azure, vSphere, OpenStack), and configuration management tools (Puppet, Ansible, Chef), Cloudify uses its set of official plugins, while many other services are supported by generic existing plugins.
OpenShift is a Kubernetes-based platform, with a flexible and very fast installer and extensive API support, which allows developers to expand the platform according to their needs. It is built with security in mind, which is illustrated by an example: containers are expected to run as non-root users, and when that’s not the case, OpenShift requires an explicit override to run the container.
Its use of Kubernetes requires a considerable server count, and it takes a certain learning curve to master it. That is why this platform is not well-suited for small deployments unless they could turn into a larger deployment in the near future.
OpenShift users highlight its fast installation and configuration procedures, as well as it is easy to maintain modules and gears. Another plus is the fact of having its own Git repo. What they don’t like too much is the difficulty of reading and interpret logs. In particular, when there is a failure while uploading a project, it is hard to understand where the problem is.
Learning OpenShift is easy.
Rede Globo, the second-largest commercial TV network worldwide, launched Tsuru as a Docker-based PaaS (platform as a service) product capable of orchestrating and running applications in a production environment. It is an open-source multi-provisioner platform that supports sites with millions of users, developed by Globo.com.
Tsuru users affirm that it improves substantially the time to market without giving up simplicity, high availability, security, or stability. It can be run in a variety of cloud infrastructures, whether they are public or private, as long as they are supported by a Docker machine. It also supports almost every programming language available, which gives the developers the freedom to choose according to their preferences.
With Tsuru, you can use diverse data stores, including SQL or NoSQL databases, or in-memory alternatives, such as Memcached or Redis. You just select the one of your preference and plug it to your app. To manage the app, you can choose between using the command line or a web interface and later deploy via Git. The Tsuru infrastructure will take care of all the nitty-gritty details.
Stackato is a polyglot PaaS product based on Cloud Foundry and Docker that runs on top of your cloud infrastructure and serves as a launching platform for your applications. Stackato users say that it provides an agile and robust application platform that helps to improve the productivity of both cloud administrators and developers. It is well-suited form enterprise cloud deployments, combining the flexibility of accessing directly to the VM in the cloud infrastructure with the automated configuration provided by a full-featured PaaS. The supported cloud infrastructures include HP Cloud Services, Citrix XenServer, AWS, OpenStack, VMware, between others.
In Stackato, each application has its own Linux container (LXC), which guarantees an efficient and secure sharing of resources. Its range of services is composed of: Helion Control Plane, which Stackato uses to communicate with the underlying cloud and to manage service lifecycles; Helion Service Manager, a repository of add-in services available to applications; Helion Cloud Foundry, an elastic runtime designed to simplify app hosting and development; Helion Code Engine, a continuous delivery service integrated with Git repositories, either private or public and Helion Stackato Console, a web interface to manage all of the Helion Cloud features.
Although it is hardly mentioned when talking about open-source cloud platforms and PaaS, the Alibaba Cloud computing business has been growing at a meteoric rate, having already conquered 50% of the Chinese public cloud market and conscientiously learning how to serve markets outside of China. For example, they are beginning to provide billing support in US dollars across 168 countries and designing services specially tailored for overseas markets.
The cloud platform services included in Alibaba’s offering encompass many free features, including container services for Docker and Kubernetes, Container Registry, Auto Scaling, and DataWorks, a secure environment for offline data development. Its services are well documented and accompanied with everything you may need to start migrating your apps to the cloud right away, such as many tutorial videos. Following a few simple steps and without investing a dollar, Alibaba invites you to start building in no time.
Luckily enough for all developers, openness rules the cloud world. A couple of years ago, competing for container technologies (Docker, Kubernetes, Mesos, Nomad, ECS, to name a few) threatened to divide the market into watertight compartments, generating considerable risks whenever you needed to pick a platform. But, although nowadays there are more platforms to choose from, the differences between today’s open-source choices are only on the details: different cost schemes, different management tools, different approaches to security. In other words, if you pick an open-source cloud platform today and you’re not satisfied, you can go to another one tomorrow, and the costs will not kill you.
With the information we gave you here, you will hopefully be able to choose the platform that better suits your needs and lets you forget about headaches such as server capacity, middleware, frameworks, virtual machines, data stores, and so on. Once you have freed yourself of all that, you will be able to put all your resources and all your attention on the one thing that really matters to you: deliver your kick-ass application to your users as fast as possible, and keep them happy while using it.