open-source-paas



open-source-paas

0 1


open-source-paas

A Presentation on Intro & Comparison to Open Source PaaS Solutions (Deis / Dokku / Flynn).

On Github dhilipsiva / open-source-paas

Open Source PaaS

Deis | Dokku | Flynn

dhilipsiva

dhilipsiva

@dhilipsiva

http://dhilipsiva.com

Full-Stack, DevOps, iOS, Big Bata, IoT, ML, Father

Jack of All trades, Master of None

Appknox

@appknox

https://www.appknox.com/

Appknox helps developers and enterprises to detect and fix security loopholes within a few minutes

Disclaimer

I have no Idea what I am talking about!!!

Why Open-Source?

No vendor lock-in

Portable (Any cloud / bare-metal)

Hackable

Cheaper

... but

Manual setup & Manintanance

Prerequisites

12 Factor App

Git

Docker

Kuberbetes (only for Deis)

12 Factor Apps

From guys who built heroku & others.

Codebase

One codebase tracked in revision control, many deploys

Dependencies

Explicitly declare and isolate dependencies

Config

Store config in the environment

Backing services

Treat backing services as attached resources

Build, release, run

Strictly separate build and run stages

Processes

Execute the app as one or more stateless processes

Port binding

Export services via port binding

Concurrency

Scale out via the process model

Disposability

Maximize robustness with fast startup and graceful shutdown

Dev/prod parity

Keep development, staging, and production as similar as possible

Logs

Treat logs as event streams

Admin processes

Run admin/management tasks as one-off processes

Heroku

  • Buildpacks
  • Procfile
heroku login
heroku create appknox
heroku addons:create heroku-postgresql:appknox-db
git push heroku master
heroku ps:scale web=2

Dokku

Debian OS (Preferably Ubuntu 14.04)

# On Local
# instance --image "/ubuntu-os-cloud/ubuntu-1404-trusty-v20160406"
# ssh


# On Host
wget https://raw.githubusercontent.com/dokku/dokku/v0.5.6/bootstrap.sh
sudo DOKKU_TAG=v0.5.6 bash bootstrap.sh
dokku apps:create apknox-app
dokku plugin:install https://github.com/dokku/dokku-postgres.git
dokku postgres:create appknox-db
dokku postgres:link appknox-db appknox-app
dokku ps:scale web=2

# On Local
git remote add dokku dokku@dokku.me:appknox-app
git push dokku master # App will be deployed to http://appknox-app.example.com

Services

Through Plugins - https://github.com/dokku

Flynn

# On local Machine
L=/usr/local/bin/flynn && curl -sSL -A "`uname -sp`" https://dl.flynn.io/cli | zcat >$L && chmod +x $L

git clone https://github.com/flynn/nodejs-flynn-example.git
cd nodejs-flynn-example
flynn create example
git push flynn master

# Procfile

# Scale
flynn scale web=3

Deis V1

V1 Had long setup process

http://deis.io/get-deis/

Was not built on top of kuberbetes

Deis V2

Currently Beta3

Buildpacks / Dockerfiles

Expected stable version to release on June 8, 2016: https://github.com/deis/workflow/milestones

# On Local
gcloud container clusters create deis-paas
helm target
helm repo add deis https://github.com/deis/charts
helm fetch deis/workflow-beta3
helm generate -f -x manifests workflow-beta3
helm install workflow-beta3
kubectl get pods --namespace=deis
kubectl --kubeconfig=kubeconfig proxy &

# Client
deis register http://deis.example.com
deis login http://deis.example.com
deis create appknoxp-app --buildpack heroku/python
git push heroku master
deis apps:scale web=2

Comparision

Name Deis Flynn Dokku Cluster Yes Yes No Heroku Buildpacks Yes No Yes Backing Services Kubernetes Docker Plugins Rollback Yes Yes Force Push GUI Setup No Yes No

Which one to use

Deis / Dokku / Flynn

I use Deis - I love it.

Thanks & Questions

@dhilipsiva

Open Source PaaS Deis | Dokku | Flynn dhilipsiva