SlideShare a Scribd company logo
A PaaS built with Docker 
Meetup #3 @Wayra 
18/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
Confd Confd Confd Confd Confd 
Etcd 
Fleet 
Systemd Systemd Systemd Systemd Systemd 
Flannel 
eth0 eth0 eth0 eth0 eth0 
Node 1 Node 2 Node 3 Node 4 Node 5
Fleet
● Fleet 
Distributed 
“Services” 
[Unit] 
Description=deis-controller 
Requires=deis-store-volume.service 
After=deis-store-volume.service 
[Service] 
EnvironmentFile=/etc/environment 
TimeoutStartSec=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-failure 
RestartSec=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/ifconfigme 
Creating build... done, v2 
$ curl myapp.mylocalpaas.com 
192.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)
Deis, a PaaS built with Docker,  Docker Meetup Sao Paulo #3 @Wayra
● 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

More Related Content

PPTX
Into to Docker (Central PA Java User Group - 8/14/2017)
PDF
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
PDF
Kubernetes: training micro-dragons for a serious battle
PDF
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
PDF
Microservices on Kubernetes - The simple way
PPTX
Docker Ecosystem: Part V - Docker Registry
PPTX
Docker Ecosystem: Part III - Machine
PDF
Docker Compose to Production with Docker Swarm
Into to Docker (Central PA Java User Group - 8/14/2017)
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Kubernetes: training micro-dragons for a serious battle
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Microservices on Kubernetes - The simple way
Docker Ecosystem: Part V - Docker Registry
Docker Ecosystem: Part III - Machine
Docker Compose to Production with Docker Swarm

What's hot (20)

PDF
Docker for mere mortals
PPTX
Docker e git lab
PDF
Containerize! Between Docker and Jube.
PDF
Docker in practice
PDF
Docker n co
PDF
Very Early Review - Rocket(CoreOS)
PDF
2015 DockerCon Using Docker in production at bity.com
KEY
Using rbenv in Production
PDF
Fun with containers: Use Ansible to build Docker images
PDF
Docker orchestration using core os and ansible - Ansible IL 2015
PDF
RancherOS - The perfect place to run Docker
PDF
GDG Lima - Docker Compose
PPTX
Toolbox of a Ruby Team
PDF
Clustering Docker with Docker Swarm on openSUSE
PDF
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
PDF
Infrastructure Deployment with Docker & Ansible
PDF
Fabric8 CI/CD
PDF
Docker Compose and Panamax - ContainerDays Boston - June 2015
DOCX
DockerCoreNet
PPTX
Introduction to docker
Docker for mere mortals
Docker e git lab
Containerize! Between Docker and Jube.
Docker in practice
Docker n co
Very Early Review - Rocket(CoreOS)
2015 DockerCon Using Docker in production at bity.com
Using rbenv in Production
Fun with containers: Use Ansible to build Docker images
Docker orchestration using core os and ansible - Ansible IL 2015
RancherOS - The perfect place to run Docker
GDG Lima - Docker Compose
Toolbox of a Ruby Team
Clustering Docker with Docker Swarm on openSUSE
CI/CD with Kubernetes, Helm & Wercker (#madScalability)
Infrastructure Deployment with Docker & Ansible
Fabric8 CI/CD
Docker Compose and Panamax - ContainerDays Boston - June 2015
DockerCoreNet
Introduction to docker
Ad

Viewers also liked (12)

PPTX
Artificial intelligence
PPTX
Containerisation and DEIS
PPTX
Tsuru @ Devops world
PDF
InterCon 2016 - Software as a service usando Go como principal linguagem: os ...
PDF
Deis overview
PDF
Build your own PaaS using Kubernetes and Deis — GDG DevFest NL
PDF
Eclipse IoT - ecosystem
PDF
WildFly Swarm - Rightsize Your Java EE Apps
PDF
오픈소스 기반의 레드햇 클라우드 플랫폼 RhCI & Docker with PaaS
PDF
OpenShift, Docker, Kubernetes: The next generation of PaaS
PDF
Docker PaaSとしての OpenShift, Deis, Flynn比較
PDF
Deis - Building our own PaaS at Springest
Artificial intelligence
Containerisation and DEIS
Tsuru @ Devops world
InterCon 2016 - Software as a service usando Go como principal linguagem: os ...
Deis overview
Build your own PaaS using Kubernetes and Deis — GDG DevFest NL
Eclipse IoT - ecosystem
WildFly Swarm - Rightsize Your Java EE Apps
오픈소스 기반의 레드햇 클라우드 플랫폼 RhCI & Docker with PaaS
OpenShift, Docker, Kubernetes: The next generation of PaaS
Docker PaaSとしての OpenShift, Deis, Flynn比較
Deis - Building our own PaaS at Springest
Ad

Similar to Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra (20)

PPTX
Running Docker in Development & Production (DevSum 2015)
PPTX
Architecting .NET Applications for Docker and Container Based Deployments
PDF
Docker, Kubernetes, and Google Cloud
PPTX
Dockerizing a Symfony2 application
PPTX
Real World Experience of Running Docker in Development and Production
PDF
時代在變 Docker 要會:台北 Docker 一日入門篇
PPTX
Docker for Web Developers: A Sneak Peek
PDF
手把手帶你學Docker 03042017
PDF
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
PDF
Introduction to Docker & CoreOS - Symfony User Group Cologne
 
PDF
手把手帶你學 Docker 入門篇
PDF
Docker workshop 0507 Taichung
PDF
Drone CI/CD 自動化測試及部署
PDF
廣宣學堂: 容器進階實務 - Docker進深研究班
PDF
Docker 進階實務班
PDF
How to create your own hack environment
PDF
Docker & rancher
PDF
Deploying Rails Applications with Capistrano
PPTX
Docker workshop
PPTX
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Running Docker in Development & Production (DevSum 2015)
Architecting .NET Applications for Docker and Container Based Deployments
Docker, Kubernetes, and Google Cloud
Dockerizing a Symfony2 application
Real World Experience of Running Docker in Development and Production
時代在變 Docker 要會:台北 Docker 一日入門篇
Docker for Web Developers: A Sneak Peek
手把手帶你學Docker 03042017
JDD2014: Docker.io - versioned linux containers for JVM devops - Dominik Dorn
Introduction to Docker & CoreOS - Symfony User Group Cologne
 
手把手帶你學 Docker 入門篇
Docker workshop 0507 Taichung
Drone CI/CD 自動化測試及部署
廣宣學堂: 容器進階實務 - Docker進深研究班
Docker 進階實務班
How to create your own hack environment
Docker & rancher
Deploying Rails Applications with Capistrano
Docker workshop
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...

Recently uploaded (20)

PPTX
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PPTX
PptxGenJS_Demo_Chart_20250317130215833.pptx
PDF
Sims 4 Historia para lo sims 4 para jugar
PPT
Design_with_Watersergyerge45hrbgre4top (1).ppt
PPTX
Funds Management Learning Material for Beg
PPTX
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
PPTX
INTERNET------BASICS-------UPDATED PPT PRESENTATION
PPTX
522797556-Unit-2-Temperature-measurement-1-1.pptx
PPTX
Internet___Basics___Styled_ presentation
PPTX
artificial intelligence overview of it and more
PPTX
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
PDF
The Internet -By the Numbers, Sri Lanka Edition
PDF
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
PDF
Unit-1 introduction to cyber security discuss about how to secure a system
PPTX
Digital Literacy And Online Safety on internet
PPTX
Module 1 - Cyber Law and Ethics 101.pptx
PDF
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
PPTX
innovation process that make everything different.pptx
PDF
RPKI Status Update, presented by Makito Lay at IDNOG 10
PDF
💰 𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓 💰
June-4-Sermon-Powerpoint.pptx USE THIS FOR YOUR MOTIVATION
PptxGenJS_Demo_Chart_20250317130215833.pptx
Sims 4 Historia para lo sims 4 para jugar
Design_with_Watersergyerge45hrbgre4top (1).ppt
Funds Management Learning Material for Beg
Introduction about ICD -10 and ICD11 on 5.8.25.pptx
INTERNET------BASICS-------UPDATED PPT PRESENTATION
522797556-Unit-2-Temperature-measurement-1-1.pptx
Internet___Basics___Styled_ presentation
artificial intelligence overview of it and more
CHE NAA, , b,mn,mblblblbljb jb jlb ,j , ,C PPT.pptx
The Internet -By the Numbers, Sri Lanka Edition
APNIC Update, presented at PHNOG 2025 by Shane Hermoso
Unit-1 introduction to cyber security discuss about how to secure a system
Digital Literacy And Online Safety on internet
Module 1 - Cyber Law and Ethics 101.pptx
Best Practices for Testing and Debugging Shopify Third-Party API Integrations...
innovation process that make everything different.pptx
RPKI Status Update, presented by Makito Lay at IDNOG 10
💰 𝐔𝐊𝐓𝐈 𝐊𝐄𝐌𝐄𝐍𝐀𝐍𝐆𝐀𝐍 𝐊𝐈𝐏𝐄𝐑𝟒𝐃 𝐇𝐀𝐑𝐈 𝐈𝐍𝐈 𝟐𝟎𝟐𝟓 💰

Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra

  • 1. A PaaS built with Docker Meetup #3 @Wayra 18/Nov/2014
  • 3. Strong Philosophy: Shipping (Portability) flickr. com/wallyonwater54
  • 4. Strong Philosophy: Distribution Grabthar flickr.com/42311564@N00/
  • 5. Strong Philosophy: Scalability Samuel Mann flickr.com/21218849@N03/
  • 6. Strong Philosophy: Twelve Factor flickr.com/hannahtakespictures
  • 7. ● Rados Gateway ○ REST Objects (S3 e Swift) ● RBD ○ Block Storage ● CephFS ○ POSIX Sharing
  • 8. Confd Confd Confd Confd Confd Etcd Fleet Systemd Systemd Systemd Systemd Systemd Flannel eth0 eth0 eth0 eth0 eth0 Node 1 Node 2 Node 3 Node 4 Node 5
  • 10. ● Fleet Distributed “Services” [Unit] Description=deis-controller Requires=deis-store-volume.service After=deis-store-volume.service [Service] EnvironmentFile=/etc/environment TimeoutStartSec=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-failure RestartSec=5 [Install] WantedBy=multi-user.target
  • 11. WWHD (What Would Heroku Do) ● Limitations
  • 12. $ deisctl config platform set domain=mylocalpaas.com $ deisctl install platform $ deisctl start platform ● Installation
  • 13. $ pip install deis $ deis register http://mylocalpaas.com $ deis keys:add ● Install client
  • 14. ● Simpler deploy $ mkdir myapp ; cd myapp $ deis create myapp $ deis pull rochacon/ifconfigme Creating build... done, v2 $ curl myapp.mylocalpaas.com 192.168.20.219
  • 15. ● 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
  • 16. ● 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)
  • 18. ● Heroku App Available Buildpacks: ● Ruby ● Nodejs ● Java ● Gradle ● Grails ● Play ● Python ● Clojure ● PHP ● Go ● Meteorite ● Perl ● Scala ● Dart ● Nginx ● Apache
  • 19. ● using deis deis config
  • 20. ● using deis deis run ( runs in an ephemeral container!)
  • 21. ● using deis deis limits
  • 22. ● using deis deis releases / deis rollbacks
  • 23. ● using deis deis logs
  • 24. ● using deis deis domains
  • 25. Thanks! lorieri @againstty0 ft. @rochacon flickr.com/time-to-look