PaaSTA

An open, distributed platform as a service

Github stars Tracking Chart

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 years,
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 / Kubernetes for code execution and scheduling (runs Docker containers)
  • Marathon for managing long-running services
  • Tron for running things on a timer (nightly batches)
  • SmartStack / Envoy 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:
Jolt.
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.

Overview

Name With OwnerYelp/paasta
Primary LanguagePython
Program languageMakefile (Language Count: 5)
Platform
License:Apache License 2.0
Release Count2724
Last Release Namev0.224.0 (Posted on )
First Release Namev0.0.2 (Posted on )
Created At2015-10-26 21:35:53
Pushed At2024-04-26 20:52:32
Last Commit At2024-04-26 16:52:32
Stargazers Count1.7k
Watchers Count90
Fork Count237
Commits Count13.6k
Has Issues Enabled
Issues Count0
Issue Open Count0
Pull Requests Count3081
Pull Requests Open Count18
Pull Requests Close Count342
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private
To the top