分布式的系统用于构建,部署和运行服务:PaaSTA
PaaSTA是一个高度可用的,分布式的系统用于构建,部署和运行服务使用容器和Apache Mesos。
组件
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.
设计目标
- 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.