Cloud Native PaaS Tools
Alfred David
Tech Innovation Alchemist | AI-to-Blockchain Strategist | Building World-Class Engineering Teams | Future-First Leader
I recently was in a meeting with my organisations technology boffins and the discussion veered around the trend of how enterprises were looking to engage boutique provisioners who would fashion cloud native PaaS platforms; A one stop shop where a platform agnostic PaaS could be provisioned along with their application built to specification and enabled on the same; All this would be possible with the right set of tools; This is Darth Vader country and the galaxy is large and far far away and I need my very own millennium falcon to bridge this gap.
The Players:
The cloud native mantra has echoed for quite sometime which has made PaaS a very fast-moving field with many players and at the moment there are host of tooling options. Now the question that arises which of these tools are really worth investigating. I’ve been working on cloud based PaaS platforms offers by AWS, Azure, Salesforce, which are tight knit vendor tied in platforms but I wanted to digress from my comfort zone and explore what is out there in the open source world, which I must say currently is slightly fragmented with products in the space sometimes not holistically confirming to all the tenants of a full fledged PaaS.
Paas tools cannot be compared on similar types and also against equivalent features. For instance, Cloud Foundry is a fully-featured PaaS, whereas Mesos is a cluster-management system. While Mesos on its own has a number of PaaS features, but it does not meet a combination of a very key criteria such as "developer self-service" and "multi-tenancy" (e.g. no authentication, access control).
Mesos is an intriguing technology and previously have used to run Hadoop over it, The best way to utilise it was in finding ways to combine it with other technologies which offer a myriad of other features, which Mesos inherently lacks to be a full fledged PaaS tool. The logical combinations of technologies based on what were common combinations across other enterprises were Mesos + Aurora, and Mesos + Marathon + Chronos (Mesosphere).
So there are full fledged PaaS tools and also there are half baked tools which cannot be holisticaly deemed as a PaaS tool but allow themselves to be combined with other synergising tools to provide a full featured PaaS tools.
I’m sure there are lot more tools out there but these are the ones that I could figure out and list
- CloudFoundry 2.0.0
- Tsuru
- Deis 1.3.1
- Flynn
- Apcera
- Mesos + Aurora
- Mesosphere (there is no open source version of Mesosphere, but the underlying components it uses such as: Mesos , Marathon 0.8.0, Chronos 2.3.2 are open source and can be put through the paces)
- Kubernetes + CoreOS
- OpenShift 3.0
- Panamax + CoreOS
- Rancher
Face off Criteria:
The four main criteria that standout for A PaaS tool would have to be
- Being Multi-Tenant
- Ability to do Self-Service
- Allow application developer support
- Ability to run on multiple public clouds.
These criteria allowed me to weed out some tools (e.g: a number of PaaS tools only run on AWS like convox/rack ). There are some further must-have criteria.
Must have Criteria:
- Multi-vendor capabilities
- Developer self-service model
- Support for scaling application instances with ease (elastic scaling, manual, self serve)
- Support for Linux
- Ability to choose application language
- Ability to recover from failure of all hosts
- Ability to maximise the application availability during underlying host failure
- Zero downtime deploys
- Some multi-tenancy capabilities
- Access to raw stdout / stderr logs
Key Questions:
- What is involved in deploying applications to this PaaS?
- How easy is the maintenance/operation for the team maintaining the platform?
- Is there a hosted option available?
- Could the unit of deployment be used without the PaaS?
- How well documented is the PaaS? Do they keep their documentation up to date?
- What type of multi-tenancy support is offered?
- Is there commercial support/consulting available?
- What different levels of access permissions does the PaaS support?
- Is it open source?
- Does the PaaS provide any database service?
- What is the language/tech?
- What APIs are available to enable application developers to manage their own applications?
- Is this technology production-ready now?
- Is there a cost associated with this and what is it?
- How do we get data on which application is using which resources?
- Is it possible to back up data from the PaaS itself?
Cloud Foundry:
- handles scaling easily and effortlessly, performing well under a heavy load
- has a mature team management model and an authentication engine
- it has a mature service broker framework, It comes packaged with many services already implemented (e.g. MySQL) for Cloud Foundry;
- has a very large user community with plenty of opportunities for feature improvement, sharing tools, recruiting specialists, and sharing knowledge
- It is Open Source
Tsuru:
- It has a very simple architecture and is easy to set up and maintain
- it has a mature service broker framework
- uses commonly understood components like MongoDB and Redis
- It provides mechanism to easily swap some of the components for others; the wy offering a very customized entity e.g. A Hipache router can be replaced with a Vulcan one.
- It is Open Source
Deis:
- It provides developers a self service platform
- It has tools like Helm as a package manager for containers and Tiller for tracking and managing the same.
- workflow integrations.
- Minio (in-cluster, ephemeral object storage) provides storage for Registry, Database and Logger components also has support for Amazon Simple Storage Service (S3), Google Cloud Storage (GCS), OpenShift Swift, and Azure Blob Storage.
- Migration and production for existing non PaaS applications.
- It is Open Source
Flynn:
- It has built in support for multiple databases such as Postgres, MySQL, and MongoDB with safe, automatic high availability
- A built-in service discovery to connect microservices
- Provides a code interface as opposed to configuration to build custom stacks
- Open Source and free
Apcera:
- It has robust multi-tenant support governed by a policy-driven model that allows granular control of resources, including networks and services, packages, versions and even regions
- It has fine-grained control, which makes detailed auditing easier
- Not Open Source but proprietary
All of the tools mentioned above can be anybody’s cloud native panacea; As different environments and enterprises have their own set of challenges, compliance, skill competency, budgets, scale, appetite for change etc to name a few.
I’m of the belief that tools should ultimately serve their purpose of bringing relief to complex tasks in a easy affordable way, with least barrier to entry both in terms of learning/operationalising it and also requiring some complex hardware & software combinations to make it viable.
Keeping that in mind I felt Tsuru was the right tool in ease of use, followed closely with Deis especially for managing a host of containers using kubernetes (PaaS on kubernetes); Flynn is certainly a very interesting new tool and has piqued my interest but is still some distance away to garner a vibrant user community; Cloud foundry of course can be deemed as the leader in this space, mainly because of the versatility it brings along with the maturity and the size of its community.