PaaSTA

An open, distributed platform as a service

Github星跟蹤圖

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.

概覽

名稱與所有者Yelp/paasta
主編程語言Python
編程語言Makefile (語言數: 5)
平台
許可證Apache License 2.0
發布數2724
最新版本名稱v0.224.0 (發布於 )
第一版名稱v0.0.2 (發布於 )
創建於2015-10-26 21:35:53
推送於2024-04-26 20:52:32
最后一次提交2024-04-26 16:52:32
星數1.7k
關注者數90
派生數237
提交數13.6k
已啟用問題?
問題數0
打開的問題數0
拉請求數3081
打開的拉請求數18
關閉的拉請求數342
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?
去到頂部