deis, a paas built with docker, docker meetup sao paulo #3 @wayra

Post on 02-Jul-2015

425 Views

Category:

Internet

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

Docker Meetup São Paulo #3 @ Wayra Deis, a PaaS built with Docker ft. @rochacon

TRANSCRIPT

A PaaS built with Docker

Meetup #3 @Wayra18/Nov/2014

BE STRONG

flickr.com/gridview

Strong Philosophy:Shipping

(Portability)

flickr.com/wallyonwater54

Strong Philosophy:Distribution

Grabthar flickr.com/42311564@N00/

Strong Philosophy:Scalability

Samuel Mann flickr.com/21218849@N03/

Strong Philosophy:Twelve Factor

flickr.com/hannahtakespictures

● Rados Gateway○ REST Objects

(S3 e Swift)

● RBD○ Block Storage

● CephFS○ POSIX Sharing

Node 1 Node 2 Node 3 Node 4 Node 5

Fleet

Systemd Systemd Systemd Systemd Systemd

Etcd

Confd Confd Confd Confd Confd

Flannel

eth0 eth0 eth0 eth0 eth0

Fleet

● Fleet

Distributed“Services”

[Unit]

Description=deis-controllerRequires=deis-store-volume.serviceAfter=deis-store-volume.service

[Service]

EnvironmentFile=/etc/environmentTimeoutStartSec=20m

ExecStartPre=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/controller` && docker history $IMAGE >/dev/null || docker pull $IMAGE"ExecStartPre=/bin/sh -c "docker inspect deis-controller >/dev/null && docker rm -f deis-controller || true"

ExecStart=/bin/sh -c "IMAGE=`/run/deis/bin/get_image /deis/controller` && docker run --name deis-controller --rm -p 8000:8000 -e EXTERNAL_PORT=8000 -e HOST=$COREOS_PRIVATE_IPV4 -v /var/run/fleet.sock:/var/run/fleet.sock -v /var/lib/deis/store:/data $IMAGE"

ExecStopPost=-/usr/bin/docker rm -f deis-controller

Restart=on-failureRestartSec=5

[Install]WantedBy=multi-user.target

WWHD (What Would Heroku Do)

● Limitations

$ deisctl config platform \

set domain=mylocalpaas.com

$ deisctl install platform

$ deisctl start platform

● Installation

$ pip install deis

$ deis register http://mylocalpaas.com

$ deis keys:add

● Install client

● Simpler deploy

$ mkdir myapp ; cd myapp$ deis create myapp

$ deis pull rochacon/ifconfigmeCreating build... done, v2

$ curl myapp.mylocalpaas.com192.168.20.219

● Docker deploy

Instead of “docker build”

# create the app

$ deis create myapp

# push it

$ git push deis master

-----> Building Docker image

-----> Pushing image to private registry

-----> Launching...

done, myapp:v1 deployed to Deis

http://myapp.mylocalpaas.com

# use it

$ curl http://myapp.mylocalpaas.com

Hello

● Scale it

$ deis scale cmd=5

Scaling processes... but first, coffee!

..o

done in 25s

=== myapp Processes

--- cmd:

cmd.1 up (v13)

cmd.2 up (v13)

cmd.3 up (v13)

cmd.4 up (v13)

cmd.5 up (v13)

● Heroku App

Available Buildpacks:

● Ruby● Nodejs● Java● Gradle● Grails● Play● Python● Clojure● PHP● Go● Meteorite● Perl● Scala● Dart● Nginx● Apache

● using deis

deis config

● using deis

deis run ( runs in an ephemeral container!)

● using deis

deis limits

● using deis

deis releases / deis rollbacks

● using deis

deis logs

● using deis

deis domains

Thanks!

lorieri @againstty0

ft. @rochacon

flickr.com/time-to-look

top related