-
Notifications
You must be signed in to change notification settings - Fork 241
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Added first pass at getting started doc #12
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,7 +18,7 @@ docs: | |
tox -e docs | ||
|
||
test: | ||
rm -rf .tox | ||
# rm -rf .tox | ||
tox | ||
|
||
itest: test | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
Getting Started | ||
=============== | ||
|
||
**Warning**: PaaSTA is an opinionated way to integrate a collection of open source components in a holistic way to build a PaaS. It is not optimized to be simple to deploy for operators. It is optimized to not reinvent the wheel and utilized existing solutions to problems where possible. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. utilizes There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. or utilize, depending on your tense. |
||
|
||
PaaSTA has many dependencies. This document provides documentation on installing some of these dependencies, but some of them are left up as an exercise to the reader. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. left as |
||
|
||
|
||
soa-configs | ||
----------- | ||
|
||
soa-configs are the shared configuration storage that PaaSTA uses to hold the description and configuration of what services exist and how they should be deployed and monitored. | ||
|
||
This directory needs to be deployed globally in the same location to every server that runs any PaaSTA component. We recommend using a git-based distribution mechanism for access control and auditing. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Strange recommendation since we don't use git for distribution (and it's not clear to me what a "git-based distribution mechanism" is). I would either expand a bit on how we do soa-configs (git for revision control, gitolite for access control, rsync for distribution) or just strike this sentence and not discuss this issue. |
||
|
||
PaaSTA reads particular config files for each service in the soa-configs directory. There is one folder per service. Here is an example tree:: | ||
|
||
soa-configs | ||
├── web | ||
│ ├── deploy.yaml | ||
│ ├── marathon-dev.yaml | ||
│ ├── marathon-prod.yaml | ||
│ ├── monitoring.yaml | ||
│ ├── service.yaml | ||
│ └── smartstack.yaml | ||
├── api | ||
│ ├── deploy.yaml | ||
│ ├── marathon-dev.yaml | ||
│ ├── marathon-prod.yaml | ||
│ ├── monitoring.yaml | ||
│ ├── service.yaml | ||
│ └── smartstack.yaml | ||
... | ||
|
||
For the `soa-configs documentation <yelpsoa-configs>`_ for more information about the structure and contents of these files. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. See the |
||
|
||
For more information about why we chose this method of config distribution, see watch `this talk on Yelp's soa-config and how they are used <https://vimeo.com/141231345>`_. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. s/see// (or s/watch//) There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. how it is used |
||
|
||
Docker and a Docker Registry | ||
---------------------------- | ||
|
||
PaaSTA uses Docker to build and distribute code for each service. PaaSTA assumes that a single registry is available and that the associated components (Docker commands, unix users, mesos slaves, etc) have the correct credentials to use it. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Link to Docker project There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Not sure what you're after by saying "a single registry". Delete single? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We currently cannot handle different registries. Other docker-based deployment systems just pull from where you set it (nginx:latest), but paasta only supports a single registry. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ok then how about "PaaSTA uses exactly one registry..." and go from there? |
||
|
||
The docker registry needs to be defined in a config file in ``/etc/paasta/``. PaaSTA merges all json files in ``/etc/paasta/`` together, so the actual filename is irrelevant, but here would be an example ``/etc/paasta/docker.json``:: | ||
|
||
{ | ||
"docker_registry": "private-docker-registry.example.com:443" | ||
} | ||
|
||
There are many registries available to use, or you can `host your own <https://docs.docker.com/registry/>`_. | ||
|
||
Mesos | ||
----- | ||
|
||
TBD | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. As a first pass at least fill in links to these projects? |
||
|
||
Marathon | ||
-------- | ||
|
||
TBD | ||
|
||
Chronos | ||
------- | ||
|
||
TBD | ||
|
||
SmartStack | ||
---------- | ||
|
||
TBD | ||
|
||
Sensu | ||
----- | ||
|
||
TBD | ||
|
||
Jenkins / Build Orchestration | ||
----------------------------- | ||
|
||
Jenkins is the suggested method for orchestrating build pipelines for services, but it is not a hard requirement. The actual method that Yelp uses to integrate Jenkins with PaaSTA is not open source. | ||
|
||
In practice, each organization will have to decide how they want to actually run the ``paasta`` cli tool to kick off the building and deploying of images. This may be something as simple as a bash script:: | ||
|
||
#!/bin/bash | ||
service=my_service | ||
sha=$(git rev-parse HEAD) | ||
paasta itest --service $service --commit $sha | ||
paasta push-to-registry --service $service --commit $sha | ||
paasta mark-for-deployment --git-url $(git config --get remote.origin.url) --commit $sha --clusterinstance prod.main --service $service | ||
|
||
We designed PaaSTA to use normal command line tools so it could be integrated with opinionated existing workflows. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. delete opinionated or I guess "existing opinionated workflows" but I don't really know what you're talking about in this context. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this is deliberate, just delete the line.