Docker powered (mini) deployment system for PaaS.
Shell Ruby Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config
docker
helpers
provider
test
.dockerignore
.gitignore
LICENSE
Makefile
README.md
deploy
logo.png
paasyard
randname.rb

README.md

PaaSyard

Docker powered (mini) deployment system for PaaS.

Requirements

Any system with a running Docker daemon will do!

Installation

Clone the repository:

$ git clone https://github.com/stefan-kolb/paasyard.git

Configure a config/provider.cfg with your provider credentials (see config/provider.cfg.example).

$ cat mv provider.cfg.example provider.cfg
# Heroku
HEROKU_USERNAME=
HEROKU_PASSWORD=

Build the Docker images and install the paasyard executable:

$ sudo make install

Usage

Supported vendors:

$ paasyard list
bluemix
cloudcontrol
dotcloud
elasticbeanstalk
engineyard
heroku
openshift
pivotal

Define necessary environment variables inside the app folder in a .env file (one per line).

$ cat .env
RAILS_ENV=production
MONGO_URL=mongodb://user:pass@example.com:59938

Deploy

$ paasyard create VENDOR [-a APPNAME]

Update

$ paasyard push VENDOR [-a APPNAME]

Delete

$ paasyard delete VENDOR [-a APPNAME]

Field of application

  • Deployment abstraction
  • Quick deployment tests
  • Isolated deployment measurements
$ time paasyard create heroku
real    6m22.759s
user    0m0.049s
sys 0m0.055s

TODO

  • Beware that it's currently Ruby focused for some vendors (cloudControl, dotCloud, Beanstalk, OpenShift: Ruby 2.0).
  • Only use create -> push...push -> delete workflow for safety now, as SSH keys are pushed on create and removed on delete only at the moment.