SlideShare a Scribd company logo
1 of 29
Download to read offline
How to Deploy Web Apps with Docker
Daniël van Gils / Developer Advocate
daniel@cloud66.com
@foldingbeauty
I like to build stuff
Tinkering with tech
Create great UX
agenda
• Introduction + setting up development machine - 30’
• Hands-on ‘dev-x’ session - 30’
• Comfort break - 10’
• Docker in production using Cloud 66 - 10’
• Hands-on ‘x-ops’ session - 45’
• Wrap-up & Q+A - 10’
housekeeping notes
For the workshop, you’ll need:



• A laptop or pair-workshopping
• Your Github login
• Your Cloud 66 account
• A DigitalOcean account 

(Please use Promo Code: CLOUD66, to receive a $10 Credit)
Toilets around the counter left and take a right ;-)
mix
match
tech
workflow
dev ops
development production
part 1 workshop part 2 workshop
container definitions
servers
stack
service(s)
container(s)
image(s)codebase
datasources
tools being used
ssh
docker
docker-compose
text editor
git
cx
containers for the win
• mix-match technology
• rapid prototyping
• polyglot approach / choosing the right
development framework for the right job
containers primer
app
java
app
nodejs
dependencies
server server
docker
dependencies
app
java dependencies
app
nodejs
server
app
java
app
java
app
nodejs
app
nodejs
dependencies
setting up the your
development machine in
the cloud
• Steps 1 - 7 (building takes 10 minutes)
Step1:
create DigitalOcean account


go to https://cloud.digitalocean.com/registrations/new
and create a new account
Please use Promo Code: CLOUD66, to receive a $10 Credit.
Step 2:
create Cloud 66 account
go to https://app.cloud66.com/users/sign_up
and create a new account
Step 3:
create a remote
development machine
go to https://cloud.digitalocean.com/droplets/new
use the One-click App tab
choose Docker 1.10.3 on 14:04
choose size $40/month
region London
press create
you’ll get the login information mailed to you

Step 4:
log into development
machine
ssh to your new server
open terminal
use the password in the DigitalOcean email
you will be asked to change your password
$ssh root@<your ip>
Step 5:
install docker-compose


output should be : docker-compose version: 1.6.2


$curl -L https://github.com/docker/compose/releases/download/1.6.2/
docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$chmod +x /usr/local/bin/docker-compose
$docker-compose —version
Step 6:
fork the bakery example
and pull the code


go to Github.com
fork https://github.com/cloud66-samples/microservices_101
create a a home-directory for the app
pull the code


$mkdir /home/app
$cd /home/app


$git clone https://github.com/<your github account>/microservices_101



go to the bakery/bricksandmortar folder
and change the IP address (of your new server) of the API to be used
Step 6½:
change the ip
$vi /home/app/microservices_101/bakery/bricksandmortar/Dockerfile.development


ENV COUNTER_ADDRESS <your ip address>:8000
Step 7:
build all the images


$ cd /home/app/microservices_101/bakery


go to the bakery folder
build all the images (takes approx. 10 minutes)


$docker-compose build
bricksandmortar
counter
chef
Best Bakery
picker
baker minions
(bagel, doughnut, spacecakes)
accountant
Frontend
(static)
API
(ruby)
CMS
Workers
node.js
Php
Java
very special μservice bakery
bricksandmortar
counter
chef
Best Bakery
picker
baker minions
(bagel, doughnut, spacecakes)
accountant
Frontend
(static)
API
(ruby)
CMS
Workers
node.js
Php
Java
very special μservice bakery
Who we Are?
• Founded in 2011
• Specialist in DevOps-as-a-Service
• Help developers build, deploy & manage apps
• Any server and any cloud provider of choice
• A single, integrated toolkit (UI and CLI)
• 7k developers, 8k companies, 4k apps, 78 data centres
2 products:
Cloud 66 for Docker + Cloud 66 for Rails
Cloud 66 for Docker
in production
• Running Docker in production for customers since Jan 2015
• Cloud 66 for Docker used by >500 companies
• 870 Docker production servers
• 1,176 Docker production stacks
is Docker in
production hard?
security
monitoring
datasources
backups
storage
orchestration
scaling
clustering
automation
service discovery
note
• We use service.yml (looks like docker-compose.yml) to tell which
services need to be running on our Docker cluster.
• We have a tool called starter to ‘containerize’ existing codebases or use
the bakery example as a starting point.
• http://help.cloud66.com/building-your-stack/cloud-66-starter
wrap-up
• Thanks for your attention
• And thanks to Digital Ocean for sponsoring some CPU power
• And thanks to WeWork for the nice workshop space
• Any questions?
• Don’t forget about your running servers ;-)

More Related Content

What's hot

Intro to Github Actions @likecoin
Intro to Github Actions @likecoinIntro to Github Actions @likecoin
Intro to Github Actions @likecoinWilliam Chong
 
GitHub Actions in action
GitHub Actions in actionGitHub Actions in action
GitHub Actions in actionOleksii Holub
 
DevOps with GitHub Actions
DevOps with GitHub ActionsDevOps with GitHub Actions
DevOps with GitHub ActionsNilesh Gule
 
NLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift PrimerNLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift PrimerEric D. Schabell
 
Docker Best Practices Workshop
Docker Best Practices WorkshopDocker Best Practices Workshop
Docker Best Practices WorkshopAhmed AbouZaid
 
Continuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIContinuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIalexanderkiel
 
Opps I deployed it again-ploneconf2010
Opps I deployed it again-ploneconf2010Opps I deployed it again-ploneconf2010
Opps I deployed it again-ploneconf2010Dylan Jay
 
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzEnabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzSteve Hoffman
 
Container based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsContainer based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsCasey Lee
 
Drone CI - Container native continuous Integration / Delivery
Drone CI - Container native continuous Integration / DeliveryDrone CI - Container native continuous Integration / Delivery
Drone CI - Container native continuous Integration / DeliveryPatrick Jahns
 
Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run...
Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run...Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run...
Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run...Mike Splain
 
Why you can't ignore GitLab
Why you can't ignore GitLabWhy you can't ignore GitLab
Why you can't ignore GitLabPivorak MeetUp
 
GitHub Actions demo with mabl
GitHub Actions demo with mablGitHub Actions demo with mabl
GitHub Actions demo with mablBertold Kolics
 
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017Codemotion
 
Git hub actions: Android CI Pipeline
Git hub actions: Android CI PipelineGit hub actions: Android CI Pipeline
Git hub actions: Android CI PipelineQuintin Balsdon
 

What's hot (20)

Intro to Github Actions @likecoin
Intro to Github Actions @likecoinIntro to Github Actions @likecoin
Intro to Github Actions @likecoin
 
GitHub Actions in action
GitHub Actions in actionGitHub Actions in action
GitHub Actions in action
 
Concourse updates
Concourse updatesConcourse updates
Concourse updates
 
DevOps with GitHub Actions
DevOps with GitHub ActionsDevOps with GitHub Actions
DevOps with GitHub Actions
 
NLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift PrimerNLUUG Spring 2012 - OpenShift Primer
NLUUG Spring 2012 - OpenShift Primer
 
Docker Best Practices Workshop
Docker Best Practices WorkshopDocker Best Practices Workshop
Docker Best Practices Workshop
 
Continuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CIContinuous Deployment with Kubernetes, Docker and GitLab CI
Continuous Deployment with Kubernetes, Docker and GitLab CI
 
Opps I deployed it again-ploneconf2010
Opps I deployed it again-ploneconf2010Opps I deployed it again-ploneconf2010
Opps I deployed it again-ploneconf2010
 
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzEnabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
 
Container based CI/CD on GitHub Actions
Container based CI/CD on GitHub ActionsContainer based CI/CD on GitHub Actions
Container based CI/CD on GitHub Actions
 
Drone CI - Container native continuous Integration / Delivery
Drone CI - Container native continuous Integration / DeliveryDrone CI - Container native continuous Integration / Delivery
Drone CI - Container native continuous Integration / Delivery
 
Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run...
Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run...Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run...
Kubernets Helm - Okay so my cluster's up, how do I manage all the sh*t to run...
 
Concourse webhook
Concourse webhookConcourse webhook
Concourse webhook
 
Why you can't ignore GitLab
Why you can't ignore GitLabWhy you can't ignore GitLab
Why you can't ignore GitLab
 
GitHub Actions demo with mabl
GitHub Actions demo with mablGitHub Actions demo with mabl
GitHub Actions demo with mabl
 
ConcourseCI love Minio
ConcourseCI love MinioConcourseCI love Minio
ConcourseCI love Minio
 
ConcourseCi Dockerimage
ConcourseCi DockerimageConcourseCi Dockerimage
ConcourseCi Dockerimage
 
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017
Nicola Iarocci - Git stories from the front line - Codemotion Milan 2017
 
Workshop - Golang language
Workshop - Golang languageWorkshop - Golang language
Workshop - Golang language
 
Git hub actions: Android CI Pipeline
Git hub actions: Android CI PipelineGit hub actions: Android CI Pipeline
Git hub actions: Android CI Pipeline
 

Viewers also liked

Презентация за млади и успешни лидери
Презентация за млади и успешни лидериПрезентация за млади и успешни лидери
Презентация за млади и успешни лидериtianDe
 
Realstew lépésről lépésre
Realstew lépésről lépésreRealstew lépésről lépésre
Realstew lépésről lépésreBarbara Tilimon
 
Hu_You_Lu_CV
Hu_You_Lu_CVHu_You_Lu_CV
Hu_You_Lu_CVHu Youlu
 
Resume_Ayyaz_Khalid
Resume_Ayyaz_KhalidResume_Ayyaz_Khalid
Resume_Ayyaz_KhalidAyyaz Khalid
 
Basic Fire Fighting Course
Basic Fire Fighting CourseBasic Fire Fighting Course
Basic Fire Fighting CourseHabib Butt
 
Traditional japanese painting art images
Traditional japanese painting art imagesTraditional japanese painting art images
Traditional japanese painting art imagesHikikomoris Tk
 
Нов вид на презенатацийи - Македония
Нов вид на презенатацийи - МакедонияНов вид на презенатацийи - Македония
Нов вид на презенатацийи - МакедонияtianDe
 
Antema celeste salmo 100
Antema celeste salmo 100Antema celeste salmo 100
Antema celeste salmo 100RICARDO PRADO
 
English B1 Phrasal Verbs
English B1 Phrasal VerbsEnglish B1 Phrasal Verbs
English B1 Phrasal Verbsmangaritad
 
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...Ippon
 

Viewers also liked (14)

Презентация за млади и успешни лидери
Презентация за млади и успешни лидериПрезентация за млади и успешни лидери
Презентация за млади и успешни лидери
 
CORE80 EPS 33 - Degas
CORE80 EPS 33 - DegasCORE80 EPS 33 - Degas
CORE80 EPS 33 - Degas
 
Realstew lépésről lépésre
Realstew lépésről lépésreRealstew lépésről lépésre
Realstew lépésről lépésre
 
Hu_You_Lu_CV
Hu_You_Lu_CVHu_You_Lu_CV
Hu_You_Lu_CV
 
Resume_Ayyaz_Khalid
Resume_Ayyaz_KhalidResume_Ayyaz_Khalid
Resume_Ayyaz_Khalid
 
Basic Fire Fighting Course
Basic Fire Fighting CourseBasic Fire Fighting Course
Basic Fire Fighting Course
 
Traditional japanese painting art images
Traditional japanese painting art imagesTraditional japanese painting art images
Traditional japanese painting art images
 
Нов вид на презенатацийи - Македония
Нов вид на презенатацийи - МакедонияНов вид на презенатацийи - Македония
Нов вид на презенатацийи - Македония
 
Antema celeste salmo 100
Antema celeste salmo 100Antema celeste salmo 100
Antema celeste salmo 100
 
Fuse webinar
Fuse webinarFuse webinar
Fuse webinar
 
English B1 Phrasal Verbs
English B1 Phrasal VerbsEnglish B1 Phrasal Verbs
English B1 Phrasal Verbs
 
Amazon S3 Deep Dive
Amazon S3 Deep DiveAmazon S3 Deep Dive
Amazon S3 Deep Dive
 
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
Système d’Information à l’Apec : un nouveau coeur de métier mis en place avec...
 
Internet of things cisco
Internet of things   ciscoInternet of things   cisco
Internet of things cisco
 

Similar to Deploy Web Apps with Docker

habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker budMandi Walls
 
Future of Development and Deployment using Docker
Future of Development and Deployment using DockerFuture of Development and Deployment using Docker
Future of Development and Deployment using DockerTamer Abdul-Radi
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development WorkflowVũ Nguyễn
 
High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014Oliver N
 
Containerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with KubernetesContainerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with KubernetesCodemotion Tel Aviv
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2Docker, Inc.
 
Making a small QA system with Docker
Making a small QA system with DockerMaking a small QA system with Docker
Making a small QA system with DockerNaoki AINOYA
 
DevOps Practices @Pipedrive
DevOps Practices @PipedriveDevOps Practices @Pipedrive
DevOps Practices @PipedriveRenno Reinurm
 
Mihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate EverythingMihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate EverythingMihai Criveti
 
Microservices DevOps on Google Cloud Platform
Microservices DevOps on Google Cloud PlatformMicroservices DevOps on Google Cloud Platform
Microservices DevOps on Google Cloud PlatformSunnyvale
 
Ci/CD - Stop wasting time, Automate your deployments
Ci/CD  - Stop wasting time, Automate your deploymentsCi/CD  - Stop wasting time, Automate your deployments
Ci/CD - Stop wasting time, Automate your deploymentsJerry Jalava
 
Docker Containers for Continuous Delivery
Docker Containers for Continuous DeliveryDocker Containers for Continuous Delivery
Docker Containers for Continuous DeliverySynerzip
 
The App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxThe App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxNebulaworks
 
DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2Vincent Mercier
 
Fast C++ Web Servers
Fast C++ Web ServersFast C++ Web Servers
Fast C++ Web ServersTroy Miles
 
Automate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon ViennaAutomate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon ViennaPantheon
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationGiacomo Vacca
 
Priming Your Teams For Microservice Deployment to the Cloud
Priming Your Teams For Microservice Deployment to the CloudPriming Your Teams For Microservice Deployment to the Cloud
Priming Your Teams For Microservice Deployment to the CloudMatt Callanan
 

Similar to Deploy Web Apps with Docker (20)

habitat at docker bud
habitat at docker budhabitat at docker bud
habitat at docker bud
 
Future of Development and Deployment using Docker
Future of Development and Deployment using DockerFuture of Development and Deployment using Docker
Future of Development and Deployment using Docker
 
High Productivity Web Development Workflow
High Productivity Web Development WorkflowHigh Productivity Web Development Workflow
High Productivity Web Development Workflow
 
High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014High productivity web development workflow - JavaScript Meetup Saigon 2014
High productivity web development workflow - JavaScript Meetup Saigon 2014
 
Containerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with KubernetesContainerised ASP.NET Core apps with Kubernetes
Containerised ASP.NET Core apps with Kubernetes
 
DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2DockerCon 15 Keynote - Day 2
DockerCon 15 Keynote - Day 2
 
Making a small QA system with Docker
Making a small QA system with DockerMaking a small QA system with Docker
Making a small QA system with Docker
 
DevOps Practices @Pipedrive
DevOps Practices @PipedriveDevOps Practices @Pipedrive
DevOps Practices @Pipedrive
 
Mihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate EverythingMihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate Everything
 
Microservices DevOps on Google Cloud Platform
Microservices DevOps on Google Cloud PlatformMicroservices DevOps on Google Cloud Platform
Microservices DevOps on Google Cloud Platform
 
Ci/CD - Stop wasting time, Automate your deployments
Ci/CD  - Stop wasting time, Automate your deploymentsCi/CD  - Stop wasting time, Automate your deployments
Ci/CD - Stop wasting time, Automate your deployments
 
Docker Containers for Continuous Delivery
Docker Containers for Continuous DeliveryDocker Containers for Continuous Delivery
Docker Containers for Continuous Delivery
 
The App Developer's Kubernetes Toolbox
The App Developer's Kubernetes ToolboxThe App Developer's Kubernetes Toolbox
The App Developer's Kubernetes Toolbox
 
R meetup 20161011v2
R meetup 20161011v2R meetup 20161011v2
R meetup 20161011v2
 
DevOPS training - Day 2/2
DevOPS training - Day 2/2DevOPS training - Day 2/2
DevOPS training - Day 2/2
 
DevOps demystified
DevOps demystifiedDevOps demystified
DevOps demystified
 
Fast C++ Web Servers
Fast C++ Web ServersFast C++ Web Servers
Fast C++ Web Servers
 
Automate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon ViennaAutomate Your Automation | DrupalCon Vienna
Automate Your Automation | DrupalCon Vienna
 
Docker and Puppet for Continuous Integration
Docker and Puppet for Continuous IntegrationDocker and Puppet for Continuous Integration
Docker and Puppet for Continuous Integration
 
Priming Your Teams For Microservice Deployment to the Cloud
Priming Your Teams For Microservice Deployment to the CloudPriming Your Teams For Microservice Deployment to the Cloud
Priming Your Teams For Microservice Deployment to the Cloud
 

More from Cloud 66

An introduction to Starter (Updated Content)
An introduction to Starter (Updated Content) An introduction to Starter (Updated Content)
An introduction to Starter (Updated Content) Cloud 66
 
How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?Cloud 66
 
Cloud66 workshop handouts
Cloud66 workshop handoutsCloud66 workshop handouts
Cloud66 workshop handoutsCloud 66
 
Docker at Digital Ocean
Docker at Digital OceanDocker at Digital Ocean
Docker at Digital OceanCloud 66
 
An introduction to habitus
An introduction to habitusAn introduction to habitus
An introduction to habitusCloud 66
 
An introduction to starter
An introduction to starterAn introduction to starter
An introduction to starterCloud 66
 
Introduction to the Container Networking and Security
Introduction to the Container Networking and SecurityIntroduction to the Container Networking and Security
Introduction to the Container Networking and SecurityCloud 66
 

More from Cloud 66 (7)

An introduction to Starter (Updated Content)
An introduction to Starter (Updated Content) An introduction to Starter (Updated Content)
An introduction to Starter (Updated Content)
 
How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?How the hell do I run my microservices in production, and will it scale?
How the hell do I run my microservices in production, and will it scale?
 
Cloud66 workshop handouts
Cloud66 workshop handoutsCloud66 workshop handouts
Cloud66 workshop handouts
 
Docker at Digital Ocean
Docker at Digital OceanDocker at Digital Ocean
Docker at Digital Ocean
 
An introduction to habitus
An introduction to habitusAn introduction to habitus
An introduction to habitus
 
An introduction to starter
An introduction to starterAn introduction to starter
An introduction to starter
 
Introduction to the Container Networking and Security
Introduction to the Container Networking and SecurityIntroduction to the Container Networking and Security
Introduction to the Container Networking and Security
 

Recently uploaded

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 

Recently uploaded (20)

Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 

Deploy Web Apps with Docker

  • 1. How to Deploy Web Apps with Docker Daniël van Gils / Developer Advocate daniel@cloud66.com @foldingbeauty
  • 2. I like to build stuff Tinkering with tech Create great UX
  • 3. agenda • Introduction + setting up development machine - 30’ • Hands-on ‘dev-x’ session - 30’ • Comfort break - 10’ • Docker in production using Cloud 66 - 10’ • Hands-on ‘x-ops’ session - 45’ • Wrap-up & Q+A - 10’
  • 4. housekeeping notes For the workshop, you’ll need:
 
 • A laptop or pair-workshopping • Your Github login • Your Cloud 66 account • A DigitalOcean account 
 (Please use Promo Code: CLOUD66, to receive a $10 Credit) Toilets around the counter left and take a right ;-)
  • 9. containers for the win • mix-match technology • rapid prototyping • polyglot approach / choosing the right development framework for the right job
  • 10. containers primer app java app nodejs dependencies server server docker dependencies app java dependencies app nodejs server app java app java app nodejs app nodejs dependencies
  • 11. setting up the your development machine in the cloud • Steps 1 - 7 (building takes 10 minutes)
  • 12. Step1: create DigitalOcean account 
 go to https://cloud.digitalocean.com/registrations/new and create a new account Please use Promo Code: CLOUD66, to receive a $10 Credit.
  • 13. Step 2: create Cloud 66 account go to https://app.cloud66.com/users/sign_up and create a new account
  • 14. Step 3: create a remote development machine go to https://cloud.digitalocean.com/droplets/new use the One-click App tab choose Docker 1.10.3 on 14:04 choose size $40/month region London press create you’ll get the login information mailed to you

  • 15. Step 4: log into development machine ssh to your new server open terminal use the password in the DigitalOcean email you will be asked to change your password $ssh root@<your ip>
  • 16. Step 5: install docker-compose 
 output should be : docker-compose version: 1.6.2 
 $curl -L https://github.com/docker/compose/releases/download/1.6.2/ docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose $chmod +x /usr/local/bin/docker-compose $docker-compose —version
  • 17. Step 6: fork the bakery example and pull the code 
 go to Github.com fork https://github.com/cloud66-samples/microservices_101 create a a home-directory for the app pull the code 
 $mkdir /home/app $cd /home/app 
 $git clone https://github.com/<your github account>/microservices_101

  • 18. 
 go to the bakery/bricksandmortar folder and change the IP address (of your new server) of the API to be used Step 6½: change the ip $vi /home/app/microservices_101/bakery/bricksandmortar/Dockerfile.development 
 ENV COUNTER_ADDRESS <your ip address>:8000
  • 19. Step 7: build all the images 
 $ cd /home/app/microservices_101/bakery 
 go to the bakery folder build all the images (takes approx. 10 minutes) 
 $docker-compose build
  • 20. bricksandmortar counter chef Best Bakery picker baker minions (bagel, doughnut, spacecakes) accountant Frontend (static) API (ruby) CMS Workers node.js Php Java very special μservice bakery
  • 21. bricksandmortar counter chef Best Bakery picker baker minions (bagel, doughnut, spacecakes) accountant Frontend (static) API (ruby) CMS Workers node.js Php Java very special μservice bakery
  • 22. Who we Are? • Founded in 2011 • Specialist in DevOps-as-a-Service • Help developers build, deploy & manage apps • Any server and any cloud provider of choice • A single, integrated toolkit (UI and CLI) • 7k developers, 8k companies, 4k apps, 78 data centres 2 products: Cloud 66 for Docker + Cloud 66 for Rails
  • 23. Cloud 66 for Docker in production • Running Docker in production for customers since Jan 2015 • Cloud 66 for Docker used by >500 companies • 870 Docker production servers • 1,176 Docker production stacks
  • 24. is Docker in production hard? security monitoring datasources backups storage orchestration scaling clustering automation service discovery
  • 25.
  • 26.
  • 27.
  • 28. note • We use service.yml (looks like docker-compose.yml) to tell which services need to be running on our Docker cluster. • We have a tool called starter to ‘containerize’ existing codebases or use the bakery example as a starting point. • http://help.cloud66.com/building-your-stack/cloud-66-starter
  • 29. wrap-up • Thanks for your attention • And thanks to Digital Ocean for sponsoring some CPU power • And thanks to WeWork for the nice workshop space • Any questions? • Don’t forget about your running servers ;-)