Python Gherkin Other
Switch branches/tags
Clone or download
solarkennedy Merge pull request #1939 from Yelp/local-run-tron-again
Added paasta local-run support for tron actions
Latest commit 43d42c7 Aug 14, 2018
Permalink
Failed to load latest commit information.
debian Released 0.78.2 via make release Aug 13, 2018
docs/source Released 0.78.2 via make release Aug 13, 2018
example_cluster Fix example cluster api config Apr 10, 2018
general_itests Added paasta local-run support for tron actions Aug 14, 2018
paasta_itests Autospec all the things Aug 8, 2018
paasta_tools Merge pull request #1939 from Yelp/local-run-tron-again Aug 14, 2018
stubs/marathon Update stubs/marathon and fix parameter type of summarize_unused_offers Oct 17, 2017
tests Fix k8s paasta stop/start Aug 14, 2018
yelp_package Released 0.78.2 via make release Aug 13, 2018
.coveragerc gevent proof of concept for the service autoscaling Mar 21, 2017
.dockerignore Run the api server in the itests, at http://paasta_api:5054 Jun 30, 2017
.github_changelog_generator Added automatic changelog Nov 20, 2015
.gitignore [tron tools] correctly skip deployment of unchanged tron namespaces Jun 7, 2018
.pre-commit-config.yaml Autospec all the things Aug 8, 2018
.secrets.baseline Add detect-secrets pre-commit hook Jul 7, 2018
.travis.yml Attempt to fix build Aug 13, 2018
CHANGELOG.md 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
MANIFEST.in Switch from package_data to manifest file Jun 20, 2017
Makefile Upgrade tox-pip-extensions Apr 17, 2018
README.md Added docs badge Jul 17, 2018
build-manpages.sh We need to set +u for the venv due to an unset PS1 Mar 28, 2017
comparison.md Switch from readthedocs.org->readthedocs.io Apr 27, 2016
extra-linux-requirements.txt Only install pyinotify on linux May 4, 2017
mypy.ini Add type annotations for k8s modules Jul 2, 2018
requirements-dev-minimal.txt Use the correct pre-commit version May 30, 2018
requirements-dev.txt Merge branch 'master' of github.com:Yelp/paasta into status_paralleli… May 31, 2018
requirements-docs.txt Upgrade docutils to try to fix doc building Jul 10, 2018
requirements-minimal.txt Merge branch 'master' of github.com:Yelp/paasta into status_paralleli… May 31, 2018
requirements.txt Also pin mrjob Aug 13, 2018
setup.py Merge pull request #1879 from Yelp/slack_channels Jul 6, 2018
tox.ini replace httpdrain code with python equivalent Jul 30, 2018

README.md

Build Status Coverage 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.

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.