SlideShare a Scribd company logo
Ceph, Docker, Heroku Slugs, 
CoreOS and Deis Overview 
lorieri Nov/2014 @againstty0
Welcome 
to 
the 
future
“Ceph's main goals are to be completely 
distributed without a single point of failure, 
scalable to the exabyte level, and freely-available”
● 100% distributed 
● CephFS 
○ For POSIX sharing 
○ not really 100% (active-standby) 
● LibRados 
○ RBD 
■ For Blocks 
○ Rados Gateway 
■ For REST Objects 
■ S3 and Swift compatible
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
CephFS
“Build, Ship and Run 
Any App, Anywhere”
● 100% portable 
● Easy API for LXC 
● Public Repository 
● Lightweight, 1 process (ideal) 
● Layers (Union File System) 
○ Shares read-only data 
○ Incremental 
● Volumes (not layered volumes)
● We will only talk about slugs 
○ (and twelve-factor later) 
“A slug is a bundle of your source, 
fetched dependencies, the language 
runtime, and compiled/generated output 
of the build system - ready for execution.”
Slug 
Your App 
Git 
Buildpacks Repo 
$ git push 
Builder 
Runtime 
Code
“Linux for Massive Server Deployments 
CoreOS enables warehouse-scale 
computing on top of a minimal, modern 
operating system.”
● 100% distributed 
● Lightweight 
● cloud-init for every boot 
● Automatic Updates 
○ 2 boot partitions
Etcd 
Locksmithd Confd 
Fleet 
Systemd Systemd Systemd Systemd Systemd Systemd Systemd 
Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7
Distributed database 
Reboot Admin Configuration Manager 
Distributed Init 
New Init New Init New Init New Init New Init New Init New Init 
Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
● Fleet 
Distributed 
Services
“Your PaaS. Your Rules. 
An open source PaaS that makes it easy to 
deploy and manage applications on your 
own servers. Deis builds upon Docker and 
CoreOS to provide a lightweight PaaS 
with a Heroku-inspired workflow.”
Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
● CoresOS + Docker + Ceph + Heroku 
● Twelve-Factor 
○ for Deis: must be stateless (no wordpress) 
● Nginx Router + Wildcard DNS 
● First release using Ceph 
○ more features coming soon 
● Limited 
○ twelve-factor 
○ only HTTP port (non-http soon) 
○ must expose ONLY one port
● Installation: 
○ Install CoreOS and ssh keys then: 
$ export DEISCTL_TUNNEL=coreos01 
$ curl -sSL http://deis.io/deisctl/install.sh | sh 
$ git clone https://github.com/deis/deis.git ; cd deis 
$ deisctl config platform set  
domain=mylocalpaas.com 
$ deisctl install platform && deisctl start platform
Installation will set the domain in 
the distributed database (Etcd) 
then load and run the 
“init” files (Fleet+Systemd) 
into the cluster 
Everything else happens by the help of twelve-factor
● Install client * at deis git directory 
$ pip install ./client/ 
$ deis register http://mylocalpaas.com 
$ deis keys:add
● Create a 
Docker App 
# write some “code” 
$ mkdir ~/myapp ; cd ~/myapp 
$ git init 
$ echo "Hello" > index.html 
# create the Dockerfile 
$ echo 'FROM myregistry/my-tiny-nginx 
ADD ./index.html /usr/share/nginx/www/index.html 
EXPOSE 80 
ENTRYPOINT ["/usr/sbin/nginx"] 
CMD ["-c","/etc/nginx/nginx.conf","-p","/etc/nginx","-g","daemon off;"]'  
> Dockerfile 
# create the app 
$ git commit -a -m "initial" 
$ deis create myapp
● Deploy it 
$ git push deis master 
… 
-----> Building Docker image 
… 
-----> Pushing image to private registry 
… 
-----> Launching... 
done, myapp:v1 deployed to Deis 
http://myapp.mylocalpaas.com 
$ 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)
● Deploy a 
Heroku App 
Available Buildpacks: 
● Ruby 
● Nodejs 
● Java 
● Gradle 
● Grails 
● Play 
● Python 
● Clojure 
● PHP 
● Go 
● Meteorite 
● Perl 
● Scala 
● Dart 
● Nginx 
● Apache
● Create it $ git clone https://github.com/deis/example-ruby-sinatra.git 
$ cd example-ruby-sinatra 
$ deis create myappheroku 
Creating application... done, created myappheroku 
Git remote deis added
● Deploy it 
(suppressed output) 
$ git push deis master 
-----> Ruby app detected 
-----> Compiling Ruby/Rack 
-----> Installing dependencies using 1.5.2 
Using bundler (1.5.2) 
Installing tilt (1.3.6) 
Installing rack (1.5.2) 
Installing rack-protection (1.5.0) 
Installing sinatra (1.4.2) 
Your bundle is complete! 
-----> Compiled slug size is 12M 
-----> Building Docker image 
-----> Pushing image to private registry 
-----> myappheroku deployed to Deis 
http://myappheroku.mylocalpaas.com 
$ curl -s http://myappheroku.mylocalpaas.com 
Powered by Deis!
Thanks! 
lorieri 
@againstty0

More Related Content

PDF
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
PPTX
Hide your development environment and application in a container
Johan Janssen
 
PDF
Docker 101 - from 0 to Docker in 30 minutes
Luciano Fiandesio
 
PDF
The state of the swarm
Mathieu Buffenoir
 
PDF
Delivering Go.CD with Terraform and Docker
Jorrit Salverda
 
PDF
Using Nix and Docker as automated deployment solutions
Sander van der Burg
 
PDF
Docker & FieldAware
Jakub Jarosz
 
PPTX
Scaling Development Environments with Docker
Docker, Inc.
 
[EXTENDED] Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview
Leo Lorieri
 
Hide your development environment and application in a container
Johan Janssen
 
Docker 101 - from 0 to Docker in 30 minutes
Luciano Fiandesio
 
The state of the swarm
Mathieu Buffenoir
 
Delivering Go.CD with Terraform and Docker
Jorrit Salverda
 
Using Nix and Docker as automated deployment solutions
Sander van der Burg
 
Docker & FieldAware
Jakub Jarosz
 
Scaling Development Environments with Docker
Docker, Inc.
 

What's hot (20)

PDF
2015 DockerCon Using Docker in production at bity.com
Mathieu Buffenoir
 
PDF
Running Django on Docker: a workflow and code
Danielle Madeley
 
PDF
Docker Compose to Production with Docker Swarm
Mario IC
 
PDF
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
謝 宗穎
 
PDF
Docker / Ansible
Stephane Manciot
 
PDF
Docker n co
Rohit Jnagal
 
PDF
Docker at Djangocon 2013 | Talk by Ken Cochrane
dotCloud
 
PDF
From zero to Docker
Giovanni Toraldo
 
PDF
Continuous integration with Docker and Ansible
Dmytro Slupytskyi
 
PDF
Docker for mere mortals
Henryk Konsek
 
PDF
Consuming Cinder from Docker
John Griffith
 
PDF
Containerize! Between Docker and Jube.
Henryk Konsek
 
PPTX
Docker DANS workshop
vty
 
PPTX
Docker workshop DevOpsDays Amsterdam 2014
Pini Reznik
 
PPTX
Docker orchestration
Open Source Consulting
 
PDF
Docker Started
Victor S. Recio
 
PPTX
Docker Ecosystem: Part V - Docker Registry
Mario IC
 
PDF
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Erica Windisch
 
PDF
Dokku
Denys Kurets
 
PPTX
Building a Docker v1.12 Swarm cluster on ARM
Team Hypriot
 
2015 DockerCon Using Docker in production at bity.com
Mathieu Buffenoir
 
Running Django on Docker: a workflow and code
Danielle Madeley
 
Docker Compose to Production with Docker Swarm
Mario IC
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
謝 宗穎
 
Docker / Ansible
Stephane Manciot
 
Docker n co
Rohit Jnagal
 
Docker at Djangocon 2013 | Talk by Ken Cochrane
dotCloud
 
From zero to Docker
Giovanni Toraldo
 
Continuous integration with Docker and Ansible
Dmytro Slupytskyi
 
Docker for mere mortals
Henryk Konsek
 
Consuming Cinder from Docker
John Griffith
 
Containerize! Between Docker and Jube.
Henryk Konsek
 
Docker DANS workshop
vty
 
Docker workshop DevOpsDays Amsterdam 2014
Pini Reznik
 
Docker orchestration
Open Source Consulting
 
Docker Started
Victor S. Recio
 
Docker Ecosystem: Part V - Docker Registry
Mario IC
 
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Erica Windisch
 
Building a Docker v1.12 Swarm cluster on ARM
Team Hypriot
 
Ad

Similar to Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview (20)

PDF
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Leo Lorieri
 
PPTX
Docker Ecosystem on Azure
Patrick Chanezon
 
PPTX
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Patrick Chanezon
 
PPTX
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Patrick Chanezon
 
PDF
Shipping Applications to Production in Containers with Docker
Jérôme Petazzoni
 
PPTX
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
Docker, Inc.
 
PDF
presentation @ docker meetup
Daniël van Gils
 
PDF
Dockercon EU 2014
Rafe Colton
 
PDF
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
PPTX
Docker Container As A Service - JAX 2016
Patrick Chanezon
 
PDF
Using Docker with OpenStack - Hands On!
Adrian Otto
 
PDF
Docker Online Meetup #3: Docker in Production
Docker, Inc.
 
PPTX
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Patrick Chanezon
 
PDF
Shipping NodeJS with Docker and CoreOS
Ross Kukulinski
 
PDF
Mesos on coreOS
충섭 김
 
PDF
Developer workflow with docker
Lalatendu Mohanty
 
PDF
Dockerize or die
Create Digital
 
PPTX
Weave User Group Talk - DockerCon 2017 Recap
Patrick Chanezon
 
PDF
Docker module 1
Liang Bo
 
Deis, a PaaS built with Docker, Docker Meetup Sao Paulo #3 @Wayra
Leo Lorieri
 
Docker Ecosystem on Azure
Patrick Chanezon
 
Docker New York Meetup May 2015 - The Docker Orchestration Ecosystem on Azure
Patrick Chanezon
 
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Patrick Chanezon
 
Shipping Applications to Production in Containers with Docker
Jérôme Petazzoni
 
The Tale of a Docker-based Continuous Delivery Pipeline by Rafe Colton (ModCl...
Docker, Inc.
 
presentation @ docker meetup
Daniël van Gils
 
Dockercon EU 2014
Rafe Colton
 
Docker 0.11 at MaxCDN meetup in Los Angeles
Jérôme Petazzoni
 
Docker Container As A Service - JAX 2016
Patrick Chanezon
 
Using Docker with OpenStack - Hands On!
Adrian Otto
 
Docker Online Meetup #3: Docker in Production
Docker, Inc.
 
Docker San Francisco Meetup April 2015 - The Docker Orchestration Ecosystem o...
Patrick Chanezon
 
Shipping NodeJS with Docker and CoreOS
Ross Kukulinski
 
Mesos on coreOS
충섭 김
 
Developer workflow with docker
Lalatendu Mohanty
 
Dockerize or die
Create Digital
 
Weave User Group Talk - DockerCon 2017 Recap
Patrick Chanezon
 
Docker module 1
Liang Bo
 
Ad

Recently uploaded (20)

PPT
Activate_Methodology_Summary presentatio
annapureddyn
 
PPTX
Presentation about variables and constant.pptx
safalsingh810
 
PPTX
Presentation about variables and constant.pptx
kr2589474
 
PDF
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
PPTX
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
PPTX
oapresentation.pptx
mehatdhavalrajubhai
 
PDF
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
PDF
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
PDF
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
PDF
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
PDF
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
PDF
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
PPTX
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
PPTX
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
PPTX
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
PPTX
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
PPTX
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
PDF
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
PPTX
Role Of Python In Programing Language.pptx
jaykoshti048
 
PPTX
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 
Activate_Methodology_Summary presentatio
annapureddyn
 
Presentation about variables and constant.pptx
safalsingh810
 
Presentation about variables and constant.pptx
kr2589474
 
Generating Union types w/ Static Analysis
K. Matthew Dupree
 
classification of computer and basic part of digital computer
ravisinghrajpurohit3
 
oapresentation.pptx
mehatdhavalrajubhai
 
New Download FL Studio Crack Full Version [Latest 2025]
imang66g
 
Teaching Reproducibility and Embracing Variability: From Floating-Point Exper...
University of Rennes, INSA Rennes, Inria/IRISA, CNRS
 
advancepresentationskillshdhdhhdhdhdhhfhf
jasmenrojas249
 
Balancing Resource Capacity and Workloads with OnePlan – Avoid Overloading Te...
OnePlan Solutions
 
New Download MiniTool Partition Wizard Crack Latest Version 2025
imang66g
 
ShowUs: Pharo Stream Deck (ESUG 2025, Gdansk)
ESUG
 
Odoo Integration Services by Candidroot Solutions
CandidRoot Solutions Private Limited
 
Can You Build Dashboards Using Open Source Visualization Tool.pptx
Varsha Nayak
 
Web Testing.pptx528278vshbuqffqhhqiwnwuq
studylike474
 
GALILEO CRS SYSTEM | GALILEO TRAVEL SOFTWARE
philipnathen82
 
The-Dawn-of-AI-Reshaping-Our-World.pptxx
parthbhanushali307
 
Download iTop VPN Free 6.1.0.5882 Crack Full Activated Pre Latest 2025
imang66g
 
Role Of Python In Programing Language.pptx
jaykoshti048
 
PFAS Reporting Requirements 2026 Are You Submission Ready Certivo.pptx
Certivo Inc
 

Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview

  • 1. Ceph, Docker, Heroku Slugs, CoreOS and Deis Overview lorieri Nov/2014 @againstty0
  • 2. Welcome to the future
  • 3. “Ceph's main goals are to be completely distributed without a single point of failure, scalable to the exabyte level, and freely-available”
  • 4. ● 100% distributed ● CephFS ○ For POSIX sharing ○ not really 100% (active-standby) ● LibRados ○ RBD ■ For Blocks ○ Rados Gateway ■ For REST Objects ■ S3 and Swift compatible
  • 7. “Build, Ship and Run Any App, Anywhere”
  • 8. ● 100% portable ● Easy API for LXC ● Public Repository ● Lightweight, 1 process (ideal) ● Layers (Union File System) ○ Shares read-only data ○ Incremental ● Volumes (not layered volumes)
  • 9. ● We will only talk about slugs ○ (and twelve-factor later) “A slug is a bundle of your source, fetched dependencies, the language runtime, and compiled/generated output of the build system - ready for execution.”
  • 10. Slug Your App Git Buildpacks Repo $ git push Builder Runtime Code
  • 11. “Linux for Massive Server Deployments CoreOS enables warehouse-scale computing on top of a minimal, modern operating system.”
  • 12. ● 100% distributed ● Lightweight ● cloud-init for every boot ● Automatic Updates ○ 2 boot partitions
  • 13. Etcd Locksmithd Confd Fleet Systemd Systemd Systemd Systemd Systemd Systemd Systemd Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7
  • 14. Distributed database Reboot Admin Configuration Manager Distributed Init New Init New Init New Init New Init New Init New Init New Init Node 1 Node 2 Node 3 Node 4 Node 5 Node 6 Node 7
  • 17. “Your PaaS. Your Rules. An open source PaaS that makes it easy to deploy and manage applications on your own servers. Deis builds upon Docker and CoreOS to provide a lightweight PaaS with a Heroku-inspired workflow.”
  • 19. ● CoresOS + Docker + Ceph + Heroku ● Twelve-Factor ○ for Deis: must be stateless (no wordpress) ● Nginx Router + Wildcard DNS ● First release using Ceph ○ more features coming soon ● Limited ○ twelve-factor ○ only HTTP port (non-http soon) ○ must expose ONLY one port
  • 20. ● Installation: ○ Install CoreOS and ssh keys then: $ export DEISCTL_TUNNEL=coreos01 $ curl -sSL http://deis.io/deisctl/install.sh | sh $ git clone https://github.com/deis/deis.git ; cd deis $ deisctl config platform set domain=mylocalpaas.com $ deisctl install platform && deisctl start platform
  • 21. Installation will set the domain in the distributed database (Etcd) then load and run the “init” files (Fleet+Systemd) into the cluster Everything else happens by the help of twelve-factor
  • 22. ● Install client * at deis git directory $ pip install ./client/ $ deis register http://mylocalpaas.com $ deis keys:add
  • 23. ● Create a Docker App # write some “code” $ mkdir ~/myapp ; cd ~/myapp $ git init $ echo "Hello" > index.html # create the Dockerfile $ echo 'FROM myregistry/my-tiny-nginx ADD ./index.html /usr/share/nginx/www/index.html EXPOSE 80 ENTRYPOINT ["/usr/sbin/nginx"] CMD ["-c","/etc/nginx/nginx.conf","-p","/etc/nginx","-g","daemon off;"]' > Dockerfile # create the app $ git commit -a -m "initial" $ deis create myapp
  • 24. ● Deploy it $ git push deis master … -----> Building Docker image … -----> Pushing image to private registry … -----> Launching... done, myapp:v1 deployed to Deis http://myapp.mylocalpaas.com $ curl http://myapp.mylocalpaas.com Hello
  • 25. ● 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)
  • 26. ● Deploy a Heroku App Available Buildpacks: ● Ruby ● Nodejs ● Java ● Gradle ● Grails ● Play ● Python ● Clojure ● PHP ● Go ● Meteorite ● Perl ● Scala ● Dart ● Nginx ● Apache
  • 27. ● Create it $ git clone https://github.com/deis/example-ruby-sinatra.git $ cd example-ruby-sinatra $ deis create myappheroku Creating application... done, created myappheroku Git remote deis added
  • 28. ● Deploy it (suppressed output) $ git push deis master -----> Ruby app detected -----> Compiling Ruby/Rack -----> Installing dependencies using 1.5.2 Using bundler (1.5.2) Installing tilt (1.3.6) Installing rack (1.5.2) Installing rack-protection (1.5.0) Installing sinatra (1.4.2) Your bundle is complete! -----> Compiled slug size is 12M -----> Building Docker image -----> Pushing image to private registry -----> myappheroku deployed to Deis http://myappheroku.mylocalpaas.com $ curl -s http://myappheroku.mylocalpaas.com Powered by Deis!