Engineers at the business review site Yelp have created a platform as a service based on Docker and Mesos and released it as an Apache-licensed open source product.
Yelp says the new PaaS, dubbed PaaSTA, has been powering its microservices for more than 18 months. PaaSTA, with its loose coupling between components and a common architecture like Docker, takes a contrasting approach to integrated, all-in-one open source PaaSes.
PaaSTA leverages a rogues' gallery of open source projects from the container and microservices world. Docker and Apache Mesos are used for containerizing, deploying, and scheduling software; Marathon and Chronos manage long-running processes and handle batch operations; SmartStack ensures that services can be discovered and registered; Sensu reports back any alert conditions; and Jenkins can be used as a continuous deployment tool.
In a blog post, Yelp engineer Kyle Anderson detailed PaaSTA's methodologies and how the different pieces of the stack hang together. A container is uploaded and marked "to be deployed" by PaaSTA's command-line tool, and is declared with a service definition file using high-level, system-agnostic descriptors (for example, "cpus: 1; instances: 10; mem: 500").
All of the work in deploying software is done by communicating with the existing API sets for the stack's pieces. If problems arise, PaaSTA drops back to the definition files as the baseline for how things should operate.
Written in Python 2.x, PaaSTA contrasts with projects like Cloud Foundry or OpenShift in that it's been built almost entirely with other software. PaaSTA's actual code is simply the glue that binds the various open source components. "We want 'seams'," Anderson wrote, "so we can take a technology and swap it out as we grow and scale. PaaSTA provides a place for these seams."
Yelp takes the view that the pieces involved have enough common ground -- that is, RESTful APIs, Docker containers -- to make combining them worthwhile. "For Yelp infrastructure," wrote Anderson, "we want to take raw, un-opinionated tools and glue them together in a cohesive, opinionated, and sustainable way."
Mesosphere -- backers of Apache Mesos, which is a key part of PaaSTA -- believes PaaSTA is a reflection of a trend where "smart companies are opting to build their own PaaS layers." Twitter's Aurora, also built with Mesos, is an example of such a PaaS, as is Apple's Jarvis.
It's unlikely that everyone who needs a PaaS will use PaaSTA, let alone follow Yelp's example. For many enterprises there's more value in buying a pre-integrated solution with a commercial vendor behind it than in building from scratch using existing components.
That said, the pieces for PaaSes are becoming easier to pull together, thanks to the common ground developing between them: the use of RESTful APIs, for instance, or Docker and its cousins as a common container format and runtime.
PaaSTA might not be an ideal solution for an enterprise that wants to deploy and go, but it might become the basis for a commercial solution that makes it possible.