One company taking a Docker-based microservices approach to its IT architecture is Yelp. The recommendation service has released the framework it uses for running its own architecture, called PaaSTA.
In case you’re wondering, PaaSTA stands for Platform-as-a-Service; the Yelpers just tacked on the “TA” so they could say “pasta” whenever talking about their framework. It is Yelp after all, they probably know a few good Italian joints around the Bay Area.
The framework currently powers a great majority of Yelp’s own operations. Before implementing it over a year ago, the company relied on mostly manual processes, as well as the Asgard software developed at Netflix, to push hourly updates of its Web and mobile services to its hosting provider, Amazon Web Services.
Software was packaged in virtual machines, which could take an hour each to build. Running the software on bare metal was another option, though then scalability was limited.
Now, using PaaSTA, developers declare in a configuration file how they want to code to be deployed, and off it goes into the cloud.
“With PaaSTA we can grow and use different tools as we need them, and developers shouldn’t have to change anything. After all, they have already told the system what code to run and how to run it. PaaSTA can figure out the rest,” wrote Kyle Anderson, Yelp site reliability engineer, who authored the blog entry announcing the framework.
In one sense, PaaSTA is a veritable spaghetti of open source tools we all know so well. Here’s the rundown of the different components.
- Docker for code delivery and containment.
- Apache Mesos for code execution and scheduling of the Docker containers.
- Mesosphere’s Marathon for managing long-running services.
- Chronos for running nightly batch jobs on a timer.
- SmartStack for service registration and discovery.
- Sensu for monitoring and alerting.
- Jenkins for continuous deployment.
The developer embeds the app within a Docker container, with instructions on where the app should run. The PaaSTA finds the appropriate place spot to run the app, using Mesos, Marathon, and Chronos. Developers who want to find their apps once they are up and running can then use SmartStack. Monitoring is done through Sensu, which, according to the Yelp engineers, is the only open-source monitoring tool up to the challenge.
“Sensu is super flexible, and allows us to route our alerts in a team-centric way. Then, we let PaaSTA tell Sensu which services own which teams. No ‘Ops’ team has to update the monitoring system when new services are created, Sensu can handle new events on the fly!” Anderson wrote.
Docker is a sponsor of The New Stack.
Feature Image courtesy of Yelp.