An open, distributed platform as a service
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
debian Released 0.83.10 via make release Feb 22, 2019
docs/source Removed dumb-init recommendation Feb 15, 2019
example_cluster Specify instance name in stop command Nov 29, 2018
general_itests Update paasta status to use http api when needed Sep 26, 2018
paasta_itests Skip paasta native itests Oct 24, 2018
paasta_tools Released 0.83.10 via make release Feb 22, 2019
stubs/marathon Update stubs/marathon and fix parameter type of summarize_unused_offers Oct 17, 2017
tests Filter non-tron monitoring keys Feb 21, 2019
yelp_package Released 0.83.10 via make release Feb 22, 2019
.dockerignore Remove coverage accounting Sep 24, 2018
.github_changelog_generator Added automatic changelog Nov 20, 2015
.gitignore Remove coverage accounting Sep 24, 2018
.pre-commit-config.yaml Ignore flake8 W503/W504 Jan 18, 2019
.secrets.baseline Add detect-secrets pre-commit hook Jul 7, 2018
.travis.yml run py36-linux in travisci Jan 19, 2019 updated changelog for 0.78.0 Aug 7, 2018
Jenkinsfile Merge branch 'bionic' May 8, 2018
LICENSE Upgrade pre-commit and hooks Jul 13, 2017 More mypy Dec 19, 2018
Makefile pin pip, venv and tox to new versions Jan 19, 2019 Remove coverage accounting Sep 24, 2018 Switch from> Apr 27, 2016
extra-linux-requirements.txt pin cryptography to version without deprecation warning on trusty Nov 27, 2018
mypy.ini Make filter_tasks_in_smartstack need a task to be up on more than one… Aug 30, 2018
requirements-dev-minimal.txt Remove coverage accounting Sep 24, 2018
requirements-dev.txt pin pip, venv and tox to new versions Jan 19, 2019
requirements-docs.txt Remove coverage accounting Sep 24, 2018
requirements-minimal.txt Remote Python interpreter for `paasta-api` Oct 2, 2018
requirements.txt Bump pysensu-yelp, add more monitoring options Jan 23, 2019 Add entrypoints for setup_cr and setup_crd Feb 4, 2019
tox.ini make test passes on macos Jan 19, 2019

Build Status Download Documentation Status

PaaSTA - Build, Deploy, Connect, and Monitor Services

PaaSTA Logo

PaaSTA is a highly-available, distributed system for building, deploying, and running services using containers and Apache Mesos!

Want to know more about the opinions behind what makes PaaSTA special? Check out the PaaSTA Principles.

Note: PaaSTA has been running in production at Yelp for more than a year, and has a number of "Yelpisms" still lingering in the codebase. We have made efforts to excise them, but there are bound to be lingering issues. Please help us by opening an issue or better yet a pull request.


Note: PaaSTA is an opinionated platform that uses a few un-opinionated tools. It requires a non-trivial amount of infrastructure to be in place before it works completely:

  • Docker for code delivery and containment
  • Mesos for code execution and scheduling (runs Docker containers)
  • Marathon for managing long-running services
  • Chronos for running things on a timer (nightly batches)
  • SmartStack for service registration and discovery
  • Sensu for monitoring/alerting
  • Jenkins (optionally) for continuous deployment

The main advantage to having a PaaS composed of components like these is you get to reuse them for other purposes. For example at Yelp Sensu is not just for PaaSTA, it can be used to monitor all sorts of things. Also Mesos can be re-used for things like custom frameworks. For example at Yelp we use the Mesos infrastructure to run our large-scale testing framework: Seagull. SmartStack is used at Yelp for service discovery for Non-PaaSTA things as well, like databases, legacy apps, and Puppet-defined apps. Most PaaS's do not allow for this type of component re-use.

On the other hand, requiring lots of components means lots of infrastructure to setup before PaaSTA is fully baked. If you are looking for a project that doesn't require external components, we encourage you to look at the doc comparing PaaSTA to other tools.

Design Goals

  • Declarative, rather than imperative, control
  • Fault tolerance
  • Service isolation
  • Efficient use of resources
  • No single points of failure
  • Pleasant interface

PaaSTA is an opinionated platform, and it is not designed to interoperate with every possible backend service out there.

Think of it as an example of how we have integrated these technologies together to build a cohesive PaaS. It is not a turn-key PaaS solution.

Getting Started

See the getting started documentation for how to deploy PaaSTA.


Read the documentation at Read the Docs.

Videos / Talks About PaaSTA


PaaSTA is licensed under the Apache License, Version 2.0:


Everyone is encouraged to contribute to PaaSTA by forking the Github repository and making a pull request or opening an issue.