Skip to content

stefan-kolb/paasyard

Repository files navigation

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:[email protected]: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.