SlideShare ist ein Scribd-Unternehmen logo
1 von 119
Downloaden Sie, um offline zu lesen
Deploy services 
reliably & consistently 
• If it works locally, it will work on the server 
• With exactly the same behavior 
• Regardless of versions 
• Regardless of distros 
• Regardless of dependencies
Just like the real thing 
• Work in dev environment 
• Other services (databases etc.) in containers 
• Whenever you want to test « for real »: 
• Build in seconds 
• Run instantly
Better! 
Faster! 
Stronger!
15 Months Later: An Incredible Platform and Ecosystem 
Community 
460+ Contributors 250+ Meetups on Docker 
2.75M Downloads 6.7K Projects on GitHub 
Official Repos & 14K+ Dockerized Apps 
Support 
Enterprise Support 
Robust Documentation 
Implementation, Integration, Training 
Network of Partners 
The Docker Platform 
! 
Docker Engine 
Docker Hub 
! 
Build, Ship, and Run 
Partners 
Content 
Users
55 People and a Turtle 
Now up to 55 
people 
(and our pet 
turtle, Gordon)
…to Build, Ship, and Run 
Docker Hub 
Build Ship 
Run 
Source 
Dev 
QA 
Staging 
Linux OS 
Doocckkeerr 
Linux OS 
Linux OS 
Doocckkeerr 
Infrastructure Management 
Physical 
Infrastructure Management 
Virtual 
Cloud 
Source Code 
Repository 
DockerFile 
Docker 
Boot2Docker 
Linux OS 
Doocckkeerr 
TEST TEST 
TEST TEST 
TEST 
GCE RAX IBM 
Mac/Win Dev 
Machine 
Analytics 
DB 
Prod Machine 
Doocckkeerr 
++ 
Users Collab 
Provenance Policy 
Registries 
Public Curated Private 
Docker Hub API 
Third Party Tools 
Prod Machine 
Prod Machine 
VM 
DoDcokcekrer 
VM 
DoDcokcekrer 
VM 
DoDcokcekrer 
QA Machine
An Open Platform… 
API 
Engine Hub 
open source software at the heart 
of the Docker platform 
cloud-based platform services for distributed 
applications 
API
An Introduction to 
the Docker Engine
It’s an image builder.
Quagga Quagga 
Haproxy Haproxy 
HTTP Service HTTP Service HTTP Service 
Database 
BGP / OSPF 
Database 
{ 
{ 
{ 
image #1: 
your-favorite-lb 
image #2: 
apache, nginx, etc 
image #3: 
mysql, zookeeper, etc
BGP / OSPF 
Quagga Quagga 
HTTP Service HTTP Service HTTP Service 
Zookeeper 
Haproxy Haproxy 
Zookeeper 
{ 
{ 
image #1: 
your-favorite-lb 
image #2: 
consensus-web-service 
Zookeeper
Do it! 
‣ Satisfied with your local build? 
‣ Push it to a registry (public or private) 
‣ Run it (automatically!) in CI/CD 
‣ Run it in production 
‣ Happiness! 
‣ Something goes wrong? Rollback painlessly!
Demo!
Installing Docker on EC2 
#!/bin/bash -x 
aws ec2 run-instances  
--image-id ami-e55a648c  
--key-name mykey  
--user-data  
”#include https://get.docker.io"
#!/bin/bash -x 
aws ec2 run-instances  
--image-id ami-e55a648c  
--key-name my-key  
--user-data "#include https://get.docker.io” 
ip=$(aws ec2 describe-instances  
--output json  
--filter Name=instance-state-name,Values=running | python  
-c 'import json; import sys; print json.load(sys.stdin) 
[“Reservations”][0]["Instances"][0]["PublicIpAddress"]') 
ssh ubuntu@$ip sudo docker run cirros
An ecosystem 
libcontainer libchan 
Engine + + DockerHub 
libswarm
libcontainer… 
a story of Linux 
namespaces
libcontainer… 
• Standalone project 
• Contributors: 
• RedHat 
• Google 
• Parallels (OpenVZ) 
• Ubuntu / LXC
User namespace
Security
misconceptions 
• Docker is not secure 
• Docker should be compared to VM security
a security product 
• Docker Engine is a security product. 
• It provides a wrapper around processes 
• Provides a path toward attestation of arbitrary 
processes (Trusted Compute) 
• You can use VMs to wrap containers
a work in progress… 
That said… 
Security was not a priority for the 1.0 release 
Security is a priority post-1.0 
Big issues are still be discovered at a rapid clip… 
Big issues are being resolved at a rapid clip.
libchan 
a lightweight communication 
protocol for distributed systems 
Tuesday, June 10, 14 25
libchan 
Like Go channels over the network 
Simple message passing 
Synchronization d 
without sharing state 
Raw socket passing: channels as 
gateways to any other protocol 
Nesting: channels can send channels 
Tuesday, June 10, 14 26
libchan 
Available transports: 
SPDY/TLS, 
websocket, 
raw TCP, 
high-perf unix sockets (with fd passing), 
in-memory go channels. 
Designed to be simple and portable 
Tuesday, June 10, 14 27
libswarm 
A minimalist toolkit 
to compose network services 
Tuesday, June 10, 14 39
libswarm 
A standard interface to combine and organize 
services in a distributed system. 
Compose complex architectures from standard 
building blocks 
Avoid vendor lock-in by swapping any service out 
with another 
Pick services from a built-in library, or write your own 
with a simple API. 
Tuesday, June 10, 14 40
or Consul or Helios or Centurion 
Shipper or Geard or Mesos or Coreos/Fleet 
EC2 Rackspace GCE Orchard Tutum 
Tuesday, June 10, 14 38
Images… 
and a new way of looking 
at infrastructure
Images on HW 
is usually mutable 
Hardware 
Image 
Linux 
Installs Chef 
Chef 
Image' 
Linux 
Chef 
Creates 
Replaces 
Runs
Ephemeral environments 
are (somewhat) immutable. 
Hypervisor 
Image 
Linux 
Chef 
Runs 
Image' 
Linux 
Chef 
Chef 
Runs 
Configures 
VM 
Accesses 
COW
Containers are like ephemeral VMs 
Docker 
Image 
Linux 
Chef 
Runs 
Image' 
Linux 
Chef 
Chef 
Runs 
Configures 
Container 
Accesses 
COW 
Hypervisor 
Image 
Linux 
Chef 
Runs 
Image' 
Linux 
Chef 
Chef 
Runs 
Configures 
VM 
Accesses 
COW 
Hypervisor 
VM 
Docker 
Container
Chef-for-runtime 
$ cat Dockerfile 
FROM fedora 
RUN yum update;  
yum -y install chef 
ADD http://x/receipes.tar.gz /opt/chef" 
ADD solo.rb /etc/chef/solo.rb" 
CMD chef-solo -c /etc/chef/solo.rb ; ! 
apachectl start
Containers 
are 
THINGS
X
X
Pets vs Cattle 
Servers vs Things
LET US 
BAKE 
IMAGES! 
Let us 
images!
Burning configuration 
into images. 
Image 
Linux 
Docker Initiates Creates Container 
Chef 
Build Creates 
Runs 
Chef 
Configures
Bakery Chef 
$ cat Dockerfile 
FROM fedora 
RUN yum update;  
yum -y install chef" 
ADD http://x/receipes.tar.gz /opt/chef" 
ADD solo.rb /etc/chef/solo.rb" 
RUN chef-solo -c /etc/chef/solo.rb
Expanded view: 
Burning configuration into 
images. 
Docker Initiates Image tag 
Image' 
Linux 
Chef 
Chef 
Build 
Creates 
Image 
Linux 
Chef 
Creates 
Runs Creates 
References 
1 
2
Anatomy of a Docker 
+Chef build & run 
Image 
Linux 
Docker Initiates Creates Container 
Chef 
Chef 
Runs 
Configures 
Build Creates 
Runs 
Chef 
Configures 
Stage 1 
Stage 2
For All The Things! 
$ cat Dockerfile 
FROM fedora 
RUN yum update;  
yum -y install chef 
ADD http://x/receipes.tar.gz /opt/chef" 
ADD solo-stage1.rb /etc/chef/solo-stage1.rb" 
ADD solo-stage2.rb /etc/chef/solo-stage2.rb" 
RUN chef-solo -c /etc/chef/solo-stage1.rb" 
CMD chef-solo -c /etc/chef/solo-stage2.rb; " 
apachectl start
Does it converge? 
$ docker build —rm . 
$ echo $? # pass or fail 
(This is great use of Docker as an 
alternative to VMs for testing Chef recipes 
targeting non-Docker production systems)
Managing Docker 
at scale
Creating Containers 
is Easy
Managing them 
SUCKS 
needs improvement
Management Ecosystem 
Mesos 
ClusterHQ Clocker Flynn
PaaS ecosystem
Configuration / Infrastructure 
Management 
• Chef 
• Puppet 
• Salt 
• Ansible 
• CFEngine 
• etc…
Container Inventory 
• discoverd / sdutil 
• serf 
• skydock 
• others?
Change 
Management Tools
Chef 
# using https://github.com/bflad/chef-docker 
$ cat cookbooks/docker-registry/default.rb 
# Pull latest image 
docker_image 'samalba/docker-registry' 
! 
# Run container exposing ports 
docker_container 'samalba/docker-registry' do 
detach true 
port '5000:5000' 
env 'SETTINGS_FLAVOR=local' 
volume '/mnt/docker:/docker-storage' 
end 
$ knife ec2 server create # yada yada yada
Chef container 
$ knife container docker init docker 
-r 'recipe[apache2]' -z -b
Puppet 
docker::run { 'helloworld': 
image => 'base', 
command => '/bin/sh -c "while true; do echo 
hello world; sleep 1; done"', 
ports => ['4444', '4555'], 
links => ['mysql:db'], 
use_name => true, 
volumes => ['/var/lib/couchdb', '/var/log'], 
volumes_from => '6446ea52fbc9', 
memory_limit => 10485760, # bytes 
username => 'example', 
hostname => 'example.com', 
env => ['FOO=BAR', 'FOO2=BAR2'], 
dns => ['8.8.8.8', '8.8.4.4'], 
restart_service => true, 
}
Ansible 
- hosts: web 
sudo: yes 
tasks: 
- name: ensure redis container is running 
docker: image=crosbymichael/redis name=redis 
- name: ensure redis_ambassador container is running 
docker: image=svendowideit/ambassador 
ports=6379:6379 links=redis:redis 
name=redis_ambassador_ansible
Orchestration
fig - local orchestration 
——fig.yml—— 
web: 
build: . 
command: python app.py 
ports: 
- "5000:5000" 
volumes: 
- .:/code 
links: 
- redis 
redis: 
image: orchardup/redis
figleaf - containerized fig 
Testing / dev: 
$ docker run --privileged -v $PWD:/opt/figapp ewindisch/figleaf 
Production - image generation: 
$ echo “FROM ewindisch/figleaf” >> Dockerfile 
$ docker build -t my_img . 
$ docker run —privileged my_img 
figleaf images may be plugged 
into “dumb” orchestration.
Orchestration 7KH'RFNHUSOXJLQIRU+HDW 
for Docker 
%XVLQJWKHSOXJLQ+HDWFDQWDONGLUHFWOWR'RFNHU 
with OpenStack Heat 
DockerInc::Docker: 
:Container 
VMs 
Baremetal
Heat Workflow 
Heat API 
VM 
Docker 
Nova resource Nova 
Docker resource 
Container1 
Container2 
Container3 
HOT
heat_template_version: 2013-05-23 
description: shared volumes example 
resources: 
my_instance: 
type: OS::Nova::Server 
properties: 
key_name: ewindisch_key 
image: ubuntu-precise 
flavor: m1.large 
user_data: #include https://get.docker.io 
ftp_container: 
type: DockerInc::Docker::Container 
properties: 
docker_endpoint: { get_attr: 
[my_instance, first_address] } 
image: mikz/vsftpd 
ports: [ “21:21” ] 
volumes: [ “/ftp” ] 
name: “FTP” 
apache_container: 
type: DockerInc::Docker::Container 
properties: 
docker_endpoint: { get_attr: 
[my_instance, first_address] } 
image: fedora/apache 
ports: [ “80:80” ] 
volumes-from: “FTP” 
cmd: “rm -rf /var/www; 
ln -s /ftp /var/www; 
/run-apache.sh”
OpenStack’s new 
container service… 
nova-api 
nova-compute 
instance 
instance 
keystone 
docker 
containers-api 
swarm-proxy 
docker 
neutron 
User
OpenStack’s new 
container service… 
nova-api 
nova-compute 
instance 
instance 
keystone 
docker 
containers-api 
swarm-proxy 
docker 
neutron 
User
OpenStack’s new 
container service… 
nova-api 
nova-compute 
instance 
instance 
keystone 
docker 
containers-api 
swarm-proxy 
docker 
neutron 
User 
swarmd
OSC%Client%Use%Case% 
$%source%./openrc% 
$%osc%containerIcreate%IIport%pub:222:22%IIdaemon%II 
image%uuid%IIcmd%“/usr/sbin/sshd%–D”% 
$%osc%containerIshow%DEADBEEF%|%grep%ports% 
ports:%[12.34.56.78:222]% 
$%ssh%Ip%222%12.34.56.78% 
foo$% 
From: https://wiki.openstack.org/w/images/5/51/Containers_Proposal.pdf
Docker%Client%Use%Case% 
$%source%./openrc% 
$%export%DOCKER_SERVER=h:ps://…% 
$%docker%run%Ip%pub:222:22%Id%foo%/usr/sbin/sshd%ID% 
DEADBEEF% 
$%osc%containerIshow%DEADBEEF%|%grep%ports% 
ports:%[12.34.56.78:222]% 
$%ssh%Ip%222%12.34.56.78% 
foo$% 
From: https://wiki.openstack.org/w/images/5/51/Containers_Proposal.pdf
insert here 
Mesos, 
Clocker, 
Fleet, 
Flynn, 
Deis, 
Kubernetes, 
etc
Conclusion…
X
X
Containers 
are 
THINGS
Docker is a valuable 
component in your 
security story.
Q  A 
@ewindisch

Weitere ähnliche Inhalte

Was ist angesagt?

Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with DockerGeeta Vinnakota
 
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGHDeploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGHErica Windisch
 
Continuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudContinuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudIdeato
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Arun prasath
 
Docker在豆瓣的实践 刘天伟-20160709
Docker在豆瓣的实践 刘天伟-20160709Docker在豆瓣的实践 刘天伟-20160709
Docker在豆瓣的实践 刘天伟-20160709Tianwei Liu
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionBen Hall
 
Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017Chris Tankersley
 
Docker Basics & Alfresco Content Services
Docker Basics & Alfresco Content ServicesDocker Basics & Alfresco Content Services
Docker Basics & Alfresco Content ServicesSujay Pillai
 
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Carlos Sanchez
 
CoreOS Overview and Current Status
CoreOS Overview and Current StatusCoreOS Overview and Current Status
CoreOS Overview and Current StatusSreenivas Makam
 
Testing Distributed Micro Services. Agile Testing Days 2017
Testing Distributed Micro Services. Agile Testing Days 2017Testing Distributed Micro Services. Agile Testing Days 2017
Testing Distributed Micro Services. Agile Testing Days 2017Carlos Sanchez
 
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and ChefScaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chefbridgetkromhout
 
Learn basic ansible using docker
Learn basic ansible using dockerLearn basic ansible using docker
Learn basic ansible using dockerLarry Cai
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境謝 宗穎
 
Solving Real World Production Problems with Docker
Solving Real World Production Problems with DockerSolving Real World Production Problems with Docker
Solving Real World Production Problems with DockerMarc Campbell
 

Was ist angesagt? (20)

Docker
DockerDocker
Docker
 
Getting Started with Docker
Getting Started with DockerGetting Started with Docker
Getting Started with Docker
 
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGHDeploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
Deploying Docker (Provisioning /w Docker + Chef/Puppet) - DevopsDaysPGH
 
Continuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in CloudContinuous Integration: SaaS vs Jenkins in Cloud
Continuous Integration: SaaS vs Jenkins in Cloud
 
Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment Docker - Demo on PHP Application deployment
Docker - Demo on PHP Application deployment
 
Exploring Docker Security
Exploring Docker SecurityExploring Docker Security
Exploring Docker Security
 
Docker在豆瓣的实践 刘天伟-20160709
Docker在豆瓣的实践 刘天伟-20160709Docker在豆瓣的实践 刘天伟-20160709
Docker在豆瓣的实践 刘天伟-20160709
 
Real World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and ProductionReal World Experience of Running Docker in Development and Production
Real World Experience of Running Docker in Development and Production
 
Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017Docker for Developers - php[tek] 2017
Docker for Developers - php[tek] 2017
 
Docker Basics & Alfresco Content Services
Docker Basics & Alfresco Content ServicesDocker Basics & Alfresco Content Services
Docker Basics & Alfresco Content Services
 
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
Infrastructure testing with Jenkins, Puppet and Vagrant - Agile Testing Days ...
 
Docker by Example - Basics
Docker by Example - Basics Docker by Example - Basics
Docker by Example - Basics
 
CoreOS Overview and Current Status
CoreOS Overview and Current StatusCoreOS Overview and Current Status
CoreOS Overview and Current Status
 
Testing Distributed Micro Services. Agile Testing Days 2017
Testing Distributed Micro Services. Agile Testing Days 2017Testing Distributed Micro Services. Agile Testing Days 2017
Testing Distributed Micro Services. Agile Testing Days 2017
 
The state of the swarm
The state of the swarmThe state of the swarm
The state of the swarm
 
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and ChefScaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
Scaling Next-Generation Internet TV on AWS With Docker, Packer, and Chef
 
Learn basic ansible using docker
Learn basic ansible using dockerLearn basic ansible using docker
Learn basic ansible using docker
 
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
Docker summit 2015: 以 Docker Swarm 打造多主機叢集環境
 
Docker orchestration
Docker orchestrationDocker orchestration
Docker orchestration
 
Solving Real World Production Problems with Docker
Solving Real World Production Problems with DockerSolving Real World Production Problems with Docker
Solving Real World Production Problems with Docker
 

Ähnlich wie The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration

Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Azure Bootcamp 2016 - Docker Orchestration on Azure with RancherAzure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Azure Bootcamp 2016 - Docker Orchestration on Azure with RancherKarim Vaes
 
Docker module 1
Docker module 1Docker module 1
Docker module 1Liang Bo
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Dockernklmish
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...Codemotion
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014Carlo Bonamico
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for DevelopmentChris Tankersley
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerJérôme Petazzoni
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessDocker-Hanoi
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Partner S.A.
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with dockerMichelle Liu
 
PDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoPDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoHannes Hapke
 
Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationSuresh Balla
 
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Productiondevopsdaysaustin
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Paul Chao
 
手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇Philip Zheng
 
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...Puppet
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇Philip Zheng
 

Ähnlich wie The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration (20)

Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Azure Bootcamp 2016 - Docker Orchestration on Azure with RancherAzure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
Azure Bootcamp 2016 - Docker Orchestration on Azure with Rancher
 
Docker module 1
Docker module 1Docker module 1
Docker module 1
 
Detailed Introduction To Docker
Detailed Introduction To DockerDetailed Introduction To Docker
Detailed Introduction To Docker
 
Docker Ecosystem on Azure
Docker Ecosystem on AzureDocker Ecosystem on Azure
Docker Ecosystem on Azure
 
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...Why everyone is excited about Docker (and you should too...) -  Carlo Bonamic...
Why everyone is excited about Docker (and you should too...) - Carlo Bonamic...
 
codemotion-docker-2014
codemotion-docker-2014codemotion-docker-2014
codemotion-docker-2014
 
Killer Docker Workflows for Development
Killer Docker Workflows for DevelopmentKiller Docker Workflows for Development
Killer Docker Workflows for Development
 
Shipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with DockerShipping Applications to Production in Containers with Docker
Shipping Applications to Production in Containers with Docker
 
Sheep it
Sheep itSheep it
Sheep it
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small business
 
Agile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: IntroductionAgile Brown Bag - Vagrant & Docker: Introduction
Agile Brown Bag - Vagrant & Docker: Introduction
 
Up and running with docker
Up and running with dockerUp and running with docker
Up and running with docker
 
PDXPortland - Dockerize Django
PDXPortland - Dockerize DjangoPDXPortland - Dockerize Django
PDXPortland - Dockerize Django
 
Docker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualizationDocker, a new LINUX container technology based light weight virtualization
Docker, a new LINUX container technology based light weight virtualization
 
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
2016 - Easing Your Way Into Docker: Lessons From a Journey to Production
 
Docker workshop 0507 Taichung
Docker workshop 0507 Taichung Docker workshop 0507 Taichung
Docker workshop 0507 Taichung
 
手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇手把手帶你學 Docker 入門篇
手把手帶你學 Docker 入門篇
 
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
PuppetConf 2017: What’s in the Box?!- Leveraging Puppet Enterprise & Docker- ...
 
時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇時代在變 Docker 要會:台北 Docker 一日入門篇
時代在變 Docker 要會:台北 Docker 一日入門篇
 
Docker intro
Docker introDocker intro
Docker intro
 

Mehr von Erica Windisch

Debugging & Profiling of AWS Lambda: ServerlessConf - IOpipe
Debugging & Profiling of AWS Lambda: ServerlessConf - IOpipeDebugging & Profiling of AWS Lambda: ServerlessConf - IOpipe
Debugging & Profiling of AWS Lambda: ServerlessConf - IOpipeErica Windisch
 
Embracing Serverless Ops (Lightning Talk)
Embracing Serverless Ops (Lightning Talk)Embracing Serverless Ops (Lightning Talk)
Embracing Serverless Ops (Lightning Talk)Erica Windisch
 
Ops for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless AppsOps for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless AppsErica Windisch
 
Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe Erica Windisch
 
Patterns for Secure Containerized Applications (Docker)
Patterns for Secure Containerized Applications (Docker)Patterns for Secure Containerized Applications (Docker)
Patterns for Secure Containerized Applications (Docker)Erica Windisch
 
Orchestrating Docker with OpenStack
Orchestrating Docker with OpenStackOrchestrating Docker with OpenStack
Orchestrating Docker with OpenStackErica Windisch
 
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQDocker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQErica Windisch
 
Things will Change - Usenix Keynote UCMS'14
Things will Change - Usenix Keynote UCMS'14Things will Change - Usenix Keynote UCMS'14
Things will Change - Usenix Keynote UCMS'14Erica Windisch
 
Practical Docker for OpenStack (Juno Summit - May 15th, 2014)
Practical Docker for OpenStack (Juno Summit - May 15th, 2014)Practical Docker for OpenStack (Juno Summit - May 15th, 2014)
Practical Docker for OpenStack (Juno Summit - May 15th, 2014)Erica Windisch
 
Provisioning & Deploying with Docker
Provisioning & Deploying with DockerProvisioning & Deploying with Docker
Provisioning & Deploying with DockerErica Windisch
 
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)Erica Windisch
 
Docker OpenStack - 3/27/2014
Docker OpenStack - 3/27/2014Docker OpenStack - 3/27/2014
Docker OpenStack - 3/27/2014Erica Windisch
 

Mehr von Erica Windisch (12)

Debugging & Profiling of AWS Lambda: ServerlessConf - IOpipe
Debugging & Profiling of AWS Lambda: ServerlessConf - IOpipeDebugging & Profiling of AWS Lambda: ServerlessConf - IOpipe
Debugging & Profiling of AWS Lambda: ServerlessConf - IOpipe
 
Embracing Serverless Ops (Lightning Talk)
Embracing Serverless Ops (Lightning Talk)Embracing Serverless Ops (Lightning Talk)
Embracing Serverless Ops (Lightning Talk)
 
Ops for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless AppsOps for NoOps - Operational Challenges for Serverless Apps
Ops for NoOps - Operational Challenges for Serverless Apps
 
Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe Building Composable Serverless Apps with IOpipe
Building Composable Serverless Apps with IOpipe
 
Patterns for Secure Containerized Applications (Docker)
Patterns for Secure Containerized Applications (Docker)Patterns for Secure Containerized Applications (Docker)
Patterns for Secure Containerized Applications (Docker)
 
Orchestrating Docker with OpenStack
Orchestrating Docker with OpenStackOrchestrating Docker with OpenStack
Orchestrating Docker with OpenStack
 
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQDocker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
Docker for Developers: Dev, Test, Deploy @ BucksCo Devops at MeetMe HQ
 
Things will Change - Usenix Keynote UCMS'14
Things will Change - Usenix Keynote UCMS'14Things will Change - Usenix Keynote UCMS'14
Things will Change - Usenix Keynote UCMS'14
 
Practical Docker for OpenStack (Juno Summit - May 15th, 2014)
Practical Docker for OpenStack (Juno Summit - May 15th, 2014)Practical Docker for OpenStack (Juno Summit - May 15th, 2014)
Practical Docker for OpenStack (Juno Summit - May 15th, 2014)
 
Provisioning & Deploying with Docker
Provisioning & Deploying with DockerProvisioning & Deploying with Docker
Provisioning & Deploying with Docker
 
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
Practical Docker for OpenStack - NYC / PHL OpenStack meetup (4-23-2014)
 
Docker OpenStack - 3/27/2014
Docker OpenStack - 3/27/2014Docker OpenStack - 3/27/2014
Docker OpenStack - 3/27/2014
 

Kürzlich hochgeladen

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Hr365.us smith
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfFerryKemperman
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...OnePlan Solutions
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureDinusha Kumarasiri
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based projectAnoyGreter
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Mater
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 

Kürzlich hochgeladen (20)

Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)Recruitment Management Software Benefits (Infographic)
Recruitment Management Software Benefits (Infographic)
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Introduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdfIntroduction Computer Science - Software Design.pdf
Introduction Computer Science - Software Design.pdf
 
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
Tech Tuesday - Mastering Time Management Unlock the Power of OnePlan's Timesh...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Implementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with AzureImplementing Zero Trust strategy with Azure
Implementing Zero Trust strategy with Azure
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
MYjobs Presentation Django-based project
MYjobs Presentation Django-based projectMYjobs Presentation Django-based project
MYjobs Presentation Django-based project
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)Ahmed Motair CV April 2024 (Senior SW Developer)
Ahmed Motair CV April 2024 (Senior SW Developer)
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 

The Docker "Gauntlet" - Introduction, Ecosystem, Deployment, Orchestration

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9. Deploy services reliably & consistently • If it works locally, it will work on the server • With exactly the same behavior • Regardless of versions • Regardless of distros • Regardless of dependencies
  • 10.
  • 11. Just like the real thing • Work in dev environment • Other services (databases etc.) in containers • Whenever you want to test « for real »: • Build in seconds • Run instantly
  • 13. 15 Months Later: An Incredible Platform and Ecosystem Community 460+ Contributors 250+ Meetups on Docker 2.75M Downloads 6.7K Projects on GitHub Official Repos & 14K+ Dockerized Apps Support Enterprise Support Robust Documentation Implementation, Integration, Training Network of Partners The Docker Platform ! Docker Engine Docker Hub ! Build, Ship, and Run Partners Content Users
  • 14. 55 People and a Turtle Now up to 55 people (and our pet turtle, Gordon)
  • 15. …to Build, Ship, and Run Docker Hub Build Ship Run Source Dev QA Staging Linux OS Doocckkeerr Linux OS Linux OS Doocckkeerr Infrastructure Management Physical Infrastructure Management Virtual Cloud Source Code Repository DockerFile Docker Boot2Docker Linux OS Doocckkeerr TEST TEST TEST TEST TEST GCE RAX IBM Mac/Win Dev Machine Analytics DB Prod Machine Doocckkeerr ++ Users Collab Provenance Policy Registries Public Curated Private Docker Hub API Third Party Tools Prod Machine Prod Machine VM DoDcokcekrer VM DoDcokcekrer VM DoDcokcekrer QA Machine
  • 16. An Open Platform… API Engine Hub open source software at the heart of the Docker platform cloud-based platform services for distributed applications API
  • 17. An Introduction to the Docker Engine
  • 18. It’s an image builder.
  • 19. Quagga Quagga Haproxy Haproxy HTTP Service HTTP Service HTTP Service Database BGP / OSPF Database { { { image #1: your-favorite-lb image #2: apache, nginx, etc image #3: mysql, zookeeper, etc
  • 20. BGP / OSPF Quagga Quagga HTTP Service HTTP Service HTTP Service Zookeeper Haproxy Haproxy Zookeeper { { image #1: your-favorite-lb image #2: consensus-web-service Zookeeper
  • 21.
  • 22. Do it! ‣ Satisfied with your local build? ‣ Push it to a registry (public or private) ‣ Run it (automatically!) in CI/CD ‣ Run it in production ‣ Happiness! ‣ Something goes wrong? Rollback painlessly!
  • 23. Demo!
  • 24. Installing Docker on EC2 #!/bin/bash -x aws ec2 run-instances --image-id ami-e55a648c --key-name mykey --user-data ”#include https://get.docker.io"
  • 25. #!/bin/bash -x aws ec2 run-instances --image-id ami-e55a648c --key-name my-key --user-data "#include https://get.docker.io” ip=$(aws ec2 describe-instances --output json --filter Name=instance-state-name,Values=running | python -c 'import json; import sys; print json.load(sys.stdin) [“Reservations”][0]["Instances"][0]["PublicIpAddress"]') ssh ubuntu@$ip sudo docker run cirros
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. An ecosystem libcontainer libchan Engine + + DockerHub libswarm
  • 35. libcontainer… a story of Linux namespaces
  • 36. libcontainer… • Standalone project • Contributors: • RedHat • Google • Parallels (OpenVZ) • Ubuntu / LXC
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 53. misconceptions • Docker is not secure • Docker should be compared to VM security
  • 54.
  • 55. a security product • Docker Engine is a security product. • It provides a wrapper around processes • Provides a path toward attestation of arbitrary processes (Trusted Compute) • You can use VMs to wrap containers
  • 56. a work in progress… That said… Security was not a priority for the 1.0 release Security is a priority post-1.0 Big issues are still be discovered at a rapid clip… Big issues are being resolved at a rapid clip.
  • 57. libchan a lightweight communication protocol for distributed systems Tuesday, June 10, 14 25
  • 58. libchan Like Go channels over the network Simple message passing Synchronization d without sharing state Raw socket passing: channels as gateways to any other protocol Nesting: channels can send channels Tuesday, June 10, 14 26
  • 59. libchan Available transports: SPDY/TLS, websocket, raw TCP, high-perf unix sockets (with fd passing), in-memory go channels. Designed to be simple and portable Tuesday, June 10, 14 27
  • 60. libswarm A minimalist toolkit to compose network services Tuesday, June 10, 14 39
  • 61. libswarm A standard interface to combine and organize services in a distributed system. Compose complex architectures from standard building blocks Avoid vendor lock-in by swapping any service out with another Pick services from a built-in library, or write your own with a simple API. Tuesday, June 10, 14 40
  • 62. or Consul or Helios or Centurion Shipper or Geard or Mesos or Coreos/Fleet EC2 Rackspace GCE Orchard Tutum Tuesday, June 10, 14 38
  • 63. Images… and a new way of looking at infrastructure
  • 64. Images on HW is usually mutable Hardware Image Linux Installs Chef Chef Image' Linux Chef Creates Replaces Runs
  • 65. Ephemeral environments are (somewhat) immutable. Hypervisor Image Linux Chef Runs Image' Linux Chef Chef Runs Configures VM Accesses COW
  • 66. Containers are like ephemeral VMs Docker Image Linux Chef Runs Image' Linux Chef Chef Runs Configures Container Accesses COW Hypervisor Image Linux Chef Runs Image' Linux Chef Chef Runs Configures VM Accesses COW Hypervisor VM Docker Container
  • 67. Chef-for-runtime $ cat Dockerfile FROM fedora RUN yum update; yum -y install chef ADD http://x/receipes.tar.gz /opt/chef" ADD solo.rb /etc/chef/solo.rb" CMD chef-solo -c /etc/chef/solo.rb ; ! apachectl start
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 75. X
  • 76. X
  • 77.
  • 78. Pets vs Cattle Servers vs Things
  • 79. LET US BAKE IMAGES! Let us images!
  • 80. Burning configuration into images. Image Linux Docker Initiates Creates Container Chef Build Creates Runs Chef Configures
  • 81.
  • 82. Bakery Chef $ cat Dockerfile FROM fedora RUN yum update; yum -y install chef" ADD http://x/receipes.tar.gz /opt/chef" ADD solo.rb /etc/chef/solo.rb" RUN chef-solo -c /etc/chef/solo.rb
  • 83. Expanded view: Burning configuration into images. Docker Initiates Image tag Image' Linux Chef Chef Build Creates Image Linux Chef Creates Runs Creates References 1 2
  • 84.
  • 85.
  • 86. Anatomy of a Docker +Chef build & run Image Linux Docker Initiates Creates Container Chef Chef Runs Configures Build Creates Runs Chef Configures Stage 1 Stage 2
  • 87. For All The Things! $ cat Dockerfile FROM fedora RUN yum update; yum -y install chef ADD http://x/receipes.tar.gz /opt/chef" ADD solo-stage1.rb /etc/chef/solo-stage1.rb" ADD solo-stage2.rb /etc/chef/solo-stage2.rb" RUN chef-solo -c /etc/chef/solo-stage1.rb" CMD chef-solo -c /etc/chef/solo-stage2.rb; " apachectl start
  • 88. Does it converge? $ docker build —rm . $ echo $? # pass or fail (This is great use of Docker as an alternative to VMs for testing Chef recipes targeting non-Docker production systems)
  • 91. Managing them SUCKS needs improvement
  • 92. Management Ecosystem Mesos ClusterHQ Clocker Flynn
  • 94. Configuration / Infrastructure Management • Chef • Puppet • Salt • Ansible • CFEngine • etc…
  • 95. Container Inventory • discoverd / sdutil • serf • skydock • others?
  • 97. Chef # using https://github.com/bflad/chef-docker $ cat cookbooks/docker-registry/default.rb # Pull latest image docker_image 'samalba/docker-registry' ! # Run container exposing ports docker_container 'samalba/docker-registry' do detach true port '5000:5000' env 'SETTINGS_FLAVOR=local' volume '/mnt/docker:/docker-storage' end $ knife ec2 server create # yada yada yada
  • 98. Chef container $ knife container docker init docker -r 'recipe[apache2]' -z -b
  • 99. Puppet docker::run { 'helloworld': image => 'base', command => '/bin/sh -c "while true; do echo hello world; sleep 1; done"', ports => ['4444', '4555'], links => ['mysql:db'], use_name => true, volumes => ['/var/lib/couchdb', '/var/log'], volumes_from => '6446ea52fbc9', memory_limit => 10485760, # bytes username => 'example', hostname => 'example.com', env => ['FOO=BAR', 'FOO2=BAR2'], dns => ['8.8.8.8', '8.8.4.4'], restart_service => true, }
  • 100. Ansible - hosts: web sudo: yes tasks: - name: ensure redis container is running docker: image=crosbymichael/redis name=redis - name: ensure redis_ambassador container is running docker: image=svendowideit/ambassador ports=6379:6379 links=redis:redis name=redis_ambassador_ansible
  • 102. fig - local orchestration ——fig.yml—— web: build: . command: python app.py ports: - "5000:5000" volumes: - .:/code links: - redis redis: image: orchardup/redis
  • 103. figleaf - containerized fig Testing / dev: $ docker run --privileged -v $PWD:/opt/figapp ewindisch/figleaf Production - image generation: $ echo “FROM ewindisch/figleaf” >> Dockerfile $ docker build -t my_img . $ docker run —privileged my_img figleaf images may be plugged into “dumb” orchestration.
  • 104. Orchestration 7KH'RFNHUSOXJLQIRU+HDW for Docker %XVLQJWKHSOXJLQ+HDWFDQWDONGLUHFWOWR'RFNHU with OpenStack Heat DockerInc::Docker: :Container VMs Baremetal
  • 105. Heat Workflow Heat API VM Docker Nova resource Nova Docker resource Container1 Container2 Container3 HOT
  • 106. heat_template_version: 2013-05-23 description: shared volumes example resources: my_instance: type: OS::Nova::Server properties: key_name: ewindisch_key image: ubuntu-precise flavor: m1.large user_data: #include https://get.docker.io ftp_container: type: DockerInc::Docker::Container properties: docker_endpoint: { get_attr: [my_instance, first_address] } image: mikz/vsftpd ports: [ “21:21” ] volumes: [ “/ftp” ] name: “FTP” apache_container: type: DockerInc::Docker::Container properties: docker_endpoint: { get_attr: [my_instance, first_address] } image: fedora/apache ports: [ “80:80” ] volumes-from: “FTP” cmd: “rm -rf /var/www; ln -s /ftp /var/www; /run-apache.sh”
  • 107. OpenStack’s new container service… nova-api nova-compute instance instance keystone docker containers-api swarm-proxy docker neutron User
  • 108. OpenStack’s new container service… nova-api nova-compute instance instance keystone docker containers-api swarm-proxy docker neutron User
  • 109. OpenStack’s new container service… nova-api nova-compute instance instance keystone docker containers-api swarm-proxy docker neutron User swarmd
  • 110. OSC%Client%Use%Case% $%source%./openrc% $%osc%containerIcreate%IIport%pub:222:22%IIdaemon%II image%uuid%IIcmd%“/usr/sbin/sshd%–D”% $%osc%containerIshow%DEADBEEF%|%grep%ports% ports:%[12.34.56.78:222]% $%ssh%Ip%222%12.34.56.78% foo$% From: https://wiki.openstack.org/w/images/5/51/Containers_Proposal.pdf
  • 111. Docker%Client%Use%Case% $%source%./openrc% $%export%DOCKER_SERVER=h:ps://…% $%docker%run%Ip%pub:222:22%Id%foo%/usr/sbin/sshd%ID% DEADBEEF% $%osc%containerIshow%DEADBEEF%|%grep%ports% ports:%[12.34.56.78:222]% $%ssh%Ip%222%12.34.56.78% foo$% From: https://wiki.openstack.org/w/images/5/51/Containers_Proposal.pdf
  • 112. insert here Mesos, Clocker, Fleet, Flynn, Deis, Kubernetes, etc
  • 114. X
  • 115. X
  • 117. Docker is a valuable component in your security story.
  • 118.
  • 119. Q A @ewindisch