An open, distributed platform as a service
Python Cucumber Other
Permalink
Failed to load latest commit information.
debian Released 0.57.1 via make release Jan 13, 2017
docs/source update docs on cron schedule Jan 17, 2017
example_cluster Move requirements to build for example cluster Dec 1, 2016
general_itests Bump local-run timeout from 60s->90s for travis (#963) Jan 10, 2017
paasta_itests Merge pull request #943 from Yelp/new_marathon Jan 9, 2017
paasta_tools Released 0.57.1 via make release Jan 13, 2017
tests Merge pull request #881 from Yelp/autoscaler-asg Jan 13, 2017
yelp_package Released 0.57.1 via make release Jan 13, 2017
.coveragerc Removed tron dependency to avoid requirement confliction on Twisted Aug 26, 2016
.dockerignore Move requirements to build for example cluster Dec 1, 2016
.github_changelog_generator Added automatic changelog Nov 20, 2015
.gitignore Fix command quoting issues Jun 15, 2016
.pre-commit-config.yaml Fix logs trying to output unicode (#902) Dec 2, 2016
.travis.yml Enable xenial package uploads to bintray Oct 3, 2016
CHANGELOG.md Released 0.56.17 Jan 6, 2017
LICENSE Update copyright for 2016 May 10, 2016
Makefile Update copyright for 2016 May 10, 2016
README.md Add my OSCON presentation to the README Jul 14, 2016
build-manpages.sh Generate man version of generated docs Aug 26, 2016
comparison.md Switch from readthedocs.org->readthedocs.io Apr 27, 2016
readthedocs.yml Make requirements-dev.txt include requirements.txt May 27, 2016
requirements-dev.txt pin docutils dependency to old version Dec 12, 2016
requirements.txt Use marathon-python compatible with marathon 1.4 Jan 7, 2017
setup.py promote kill_orphaned_docker_containers Jan 5, 2017
tests.py Fix logs trying to output unicode (#902) Dec 2, 2016
tox.ini [WIP] Removed duplication from tox.ini (#921) Dec 8, 2016

README.md

Build Status Coverage Status Download

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.

Components

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.

Documentation

Read the documentation at Read the Docs.

Videos / Talks About PaaSTA

License

PaaSTA is licensed under the Apache License, Version 2.0: http://www.apache.org/licenses/LICENSE-2.0

Contributing

Everyone is encouraged to contribute to PaaSTA by forking the Github repository and making a pull request or opening an issue. You can also join #paasta on irc.freenode.net to discuss PaaSTA with other users.