KEMBAR78
Programming the world with Docker | PPTX
Patrick Chanezon, Docker Inc.
@chanezon
Programming the world
with Docker
My father’s GE :-)
French
Polyglot
Platforms
Software Plumber
San Francisco
Developer Relations
@chanezon
1995 2015
Dreams of my childhood
Dreams of my childhood
The Singularity… in a galaxy far far away
Moore’s Law… hardware only!
“The future is already here —
it's just not very evenly
distributed”
William Gibson, Neuromancer
Programming is changing the world
Platforms & Networks
Platforms & Networks
The world needs
tools of mass innovation
Internet (hardware layer)
Servers Desktops Phones Cars Houses Drones
Network
equipment
Public
transit
TVs
Industrial
facilities
Scientific
instruments
Financial
system
Programmers
Internet (software layer)
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
Internet (hardware layer)
Servers Desktops Phones Cars Houses Drones
Network
equipment
Public
transit
TVs
Industrial
facilities
Scientific
instruments
Financial
system
Programmers
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
App
a software layer to program the internet
PublicHybridPrivate
Ops Devops Developers
18
Research Papers
Hybrid Cloud
2 Pizza teams
Open Source
Portability
Lessons to build your cloud
Google: the story of Urs Hölzle’s Flashlight
Firesword, 3000 Lumens
Google research papers
•Horizontal scalability 2004: Map/Reduce (Hadoop)
•NoSQL 2006: Bigtable (Mongo, Cassandra, HBase, Riak)
•Real Time analytics 2010: Dremel, BigQuery (Impala)
•Horizontally Scalable SQL 2012: Spanner, F1 / Amazon Redshift
•Building High-level Features Using Large Scale Unsupervised
Learning - 2012
Linux Container Ecosystem
flockerglusterfs
weavecalicomidokuracisconuage
Cloud
OS
Plugins
Orchestration
Agility
Agile methodologies (circa 1999)
Low MTBIAMSH
MTBIAMSH (Mean Time Between Idea And Making Stuff Happen)
Agility == $$
Devops
25
Mainframe
Client-Server
26
27
Web
28
Cloud - Devops
Devops
• Cultural movement
• Inspired by agile methods
• People, Processes & Tools
• Continuous delivery
• Infrastructure as code
• Cross silo collaboration
• Small iterations
• Feedback loop, measurement
Image from Patrick Debois
http://www.slideshare.net/jedi4ever/devops-the-war-is-over-if-you-want-it
http://www.slideshare.net/jedi4ever/devopsdays-downundervfinal
Devops: singing Kumbaya?
28
http://highscalability.com/blog/2013/11/19/we-finally-cracked-the-10k-problem-this-time-for-managing-se.html
Server/Sysadmin
1999: 5(Windows) - 50 (Linux)
2015: 10k-20k
x2000
28
https://blog.docker.com/2014/12/dockercon-europe-keynote-continuous-delivery-in-the-enterprise-by-henk-kolk-ing/
Henk Kolk, ING, DockerCon EU 2014
People, Processes, Products
deployment time: 9 months -> 15 min
1500 deployments/week
Docker
Isolation using Linux kernel features
namespaces
 pid
 mnt
 net
 uts
 ipc
 user
cgroups
 memory
 cpu
 blkio
 devices
Image layers
1.
Developer experience
Let’s eliminate friction in the development cycle
The best tools…
1. Get out of the way
The best tools…
1. Get out of the way
The best tools…
2. Adapt to you
1. Get out of the way
The best tools…
2. Adapt to you
3. Make the
powerful simple
Docker for Mac Docker for Windows
Hypervisor
Framework
vmnet Framework
Docker Container Engine
HyperKit
Linux
VPNKit
DataKit
Client
Libraries
Admin GUI
CLI
Security Sandbox
Making things easy is really hard.
Hypervisor
Framework
vmnet Framework
Docker Container Engine
HyperKit
Linux
VPNKit
DataKit
Client
Libraries
Admin GUI
CLI
Security Sandbox
Making things easy takes a special team.
Making things easy is really hard.
1. Find the best
systems engineers.
Unikernels
http://unikernel.org/
Mobile gaming is 5 years
ahead of us
1. Find the best
systems engineers.
2. Bring designers
back from the future.
Making things easy is really hard.
70,000 beta testers
Thank you!
TLDR: just open it already!
Docker for Mac & Windows Public Beta
docker.com/getdocker
2.
Orchestration
The problem with orchestration:
The tech is solved, but only experts can use it.
Hire an army of experts…
Orchestration for non-experts:
or lock yourself inHire an army of experts…
Orchestration for non-experts:
Introducing the best way to orchestrate Docker: Docker.
Docker 1.12: now with orchestration built-in.
Swarm mode
Service API
Cryptographic node identity
Built-in routing mesh
Docker 1.12: now with orchestration built-in.
Combine your engines in swarms of any scale
Self-organizing, self-healing
No external data store required
No single points of failure
Infrastructure-agnostic topology
Swarm mode
Cryptographic node identity
Government-grade security by default
End-to-end TLS
Built-in government-grade PKI
Automated key rotation
Revoke any node at any time
Desired state reconciliation
Scaling
Rolling updates
Advanced scheduling
Application-specified health checks
Rescheduling on node failure
Docker Service API
Built-in Routing Mesh
Swarm-wide overlay networking
Container-native load-balancing
DNS-based service discovery
No separate cluster to setup
Works with your existing load-balancers
Rock-solid kernel-only data path with IPVS
Docker-native experience
No external dependencies
No single point of failure
Secure by default
Works with your infrastructure
Reverse compatible
Docker 1.12: now with orchestration built-in.
Using the beta? You already have 1.12 installed.
> docker swarm init
> docker service create
3.
Ops experience
beta.docker.com
Docker for AWS Docker for Azure
Deep integration with native load-balancers, templates,
SSH keys, ACLs, scaling groups, firewall rules…
beta.docker.com
Nobody cares about containers
It’s the application that matters!
Nobody cares about containers
Distributed Application Bundle
www.docker.com/dab
A portable format for multi-container applications
Docker CaaS
XaaS Pyramid
Platform As A Service
Infrastructure As A Service
Software
As A Service
5
Goldilocks and the 3 XaaS
Just rightToo highToo low
IaaS PaaS CaaS
5
Goldilocks and the 3 XaaS
Platform As A Service
Infrastructure As A Service
Software
As A Service
Too high
Too low
Just right
Container As A Service
Example
“- When do you guys support FORTRAN?
- Sorry it’s not supported by Cloud Foundry yet”
The Way Forward Requires
+ +
Agility Portability Control
Cloud Zone 1
Cloud Zone 2 Data Center
Development
Center
Headquarters
Containerization: standard containers
on a standardized container engine
Orchestration: build and deploy
complex systems easily
Enterprise: Enable delivery and time
to value across a large, complex,
rapidly evolving enterprise
The Global Enterprise Supply Chain
Containers as a Service (CaaS)
DEVELOPERS IT OPERATIONS
BUILD
Development Environments
SHIP
Secure Content & Collaboration
RUN
Deploy, Manage, Scale
Docker Datacenter Powers CaaS
Docker Universal Control Plane
Integrated
Security
Docker Engine
Container runtime, orchestration, networking, volumes, plugins
Docker Trusted Registry
Operating
Systems Config Mgt Monitoring LoggingCI/CD ..more..Images Networking Volumes
VirtualizationPublic Cloud Physical
Docker UCP 1.1 - DTR 2.0
• HA
• Unified Auth
• Compose deployment
• UI to add nodes
Security scanning in Docker Cloud
Docker Containers as a Service platform
90
BUILD
Developer Workflows
SHIP
Registry Services
RUN
Management
Docker Toolbox Docker Trusted Registry Docker Universal Control Plane
Docker Cloud
Docker Container Engine
Ecosystem Plugins and Integrations
Characteristics of a CaaS
91
Any
Infrastructure
Any Operating
System
Any
Language
Any App
Architecture
Any
Application
Stage
Developers
+ IT Ops
The Power of AND
Open APIs
Broadest Ecosystem Support
Partner Ecosystem
Dev Tools
Operating Systems
Big Data
Service Discovery
Build / Continuous Integration
Configuration Management
Consulting &Training
Management
Storage
Clustering & Scheduling
Networking
Infrastructure & Service Providers
Security
Monitoring & Logging
Dockerized Apps
3,000% Growth in 2 years
Official Repos
20% of all image pulls
460K 100+
Content is King for Applications
Growing user demand for
commercial, supported and
licensed content
The marketplace for validated software and
tools available in Docker format for
businesses and publishers
• Easy search and deploy
• Trusted and compliant
• https://store.docker.com
Docker Store
Docker Store: Calling All Publishers
Docker Use Cases
Docker users already
running in production
60%
Docker in Production
Docker Survey: State of Applications
Q1 2016
Cluster HQ: State of Container Usage
June 2016
Companies running container
technology in production
(500+ employees)
Across the Enterprise
HealthcareMedia Financial Services
…And More
E-commerce / Consumer
Services TechGovernment
Docker Enabling Critical Transformations
80%
Docker is central to
cloud strategy
Docker Survey: State of App development : Q1 - 2016
3 out 4
Top initiatives revolve
around applications
44%
Looking to adopt DevOps
App
Modernization
DevOpsCloud
The Data Shows Hybrid Infrastructure and Applications
2016 Docker Use Cases
Docker Survey: State of App development : Q1 - 2016
Docker Workloads
Big Data example: Zenly Analytics
KAFKA PROXY
TLS
Metal
Use Case: Decentralized CaaS for hybrid and multi cloud portability
Private datacenter for regulated apps
Central Portal
• Provision resources
• RBAC to VPC / datacenter
• Trusted Registry hosted
application templates
Cloud for all other apps
VPC 1 VPC2
App 1 App 2 App
App 1 App 2 App
Cloud
Portability
App
Portability
Use Case: Centralized CaaS for transformation to DevOps and micro services
After
Authorization
App Registration
Session
Management
Marketplace
Integration
Logging
…more
Trusted RegistryApp Service App Service
App A App B
Auth
…more
App Reg
Marketplace
Logging
Auth
Session
…more
App Reg
Logging
Before
App Teams
App BAuth
App Reg Marketplace
Logging
App Service
Universal Control Plane
App AAuth
App Reg Marketplace
Logging
App Service
App BAuth
App Reg Marketplace
Logging
App Service
App AAuth
App Reg Marketplace
Logging
App Service
Portability
• Docker
• docker.com/get-docker
• beta.docker.com
• Slides
• http://www.slideshare.net/chanezon
• http://www.slideshare.net/docker
• Questions
• @chanezon
• Code for demos
• https://github.com/chanezon/docker-tips
• https://github.com/chanezon/spring-doge
Resources
THANK YOU
Demos
Linux X11 Apps on Docker for Mac
https://github.com/chanezon/docker-tips/x11
• Docker Swarm, Compose and networking
• docker 1.11
• swarm 1.1.0
• compose 1.6.0 with networking
• Run/Debug with STS IDE in
a container
Spring Boot App using MongoDB
https://github.com/joshlong/spring-doge
https://github.com/chanezon/docker-tips/orchestration-networking
https://github.com/chanezon/spring-doge
Docker Universal Control Plane
https://github.com/chanezon/docker-tips/tree/master/azure-acs-ucp
ucp-controller
Cloud LB
ucp-node-1 ucp-node-2
Cloud LB
etcd InterlockSwarm ucp-proxy nginx nginx
Configuration
Reconfigures
myapp:314
myapp:42
myapp:1968
myapp.comdocker run myapp
Load balancing in UCP with Interlock
https://github.com/chanezon/docker-tips/orchestration-networking
Interlock
Events
Let’s Dockerize a Neo4J App
https://github.com/neo4j-examples/movies-java-spring-data-neo4j-4
Load balancing in UCP with Interlock
See "Reference Architecture: Service Discovery and Load Balancing with Docker Universal Control Plane (UCP)"
• Service Discovery
• https://github.com/gliderlabs/registrator
• https://github.com/hashicorp/consul-template
• https://github.com/ehazlett/interlock
• Persistent volumes with Swarm and Rex Ray on AWS
• http://blog.emccode.com/2015/11/03/use-docker-swarm-with-a-data-
persistence-layer/
• https://github.com/emccode/rexray
• Kubernetes on Swarm
• https://github.com/docker/swarm-frontends
Orchestration projects
• IPVS, Andrey Sibiryov, http://www.slideshare.net/Docker/kernel-load-
balancing-for-docker-containers-using-ipvs
• DNS Service Discovery for Docker Swarm, Ahmet Alp Balkan,
http://www.slideshare.net/Docker/dns-service-discovery-for-docker-swarm
Load Balancing
• Spring Boot, MongoDB, compose, swarm, networking
• https://github.com/joshlong/spring-doge
• https://github.com/chanezon/docker-tips/orchestration-networking
• Java EE 7 / Angular App with Docker Swarm by @mgreau
Compose for build and deploy, Wildfly, Apache, Angular, Mysql, Redis,
batch and API apps
• https://github.com/mgreau/docker4dev-tennistour-app
• Java EE Docker & Kubernetes by @arun-gupta
• https://github.com/javaee-samples/docker-java
Java Examples
• Docs
https://docs.docker.com/engine/userguide/networking/dockerne
tworks/
• Create a Swarm cluster with networking
https://github.com/chanezon/docker-tips/orchestration-
networking
• Networking in compose
https://github.com/docker/compose/blob/master/docs/networki
ng.md
• Nathan Leclaire Seamless Docker Multihost Overlay Networking
on DigitalOcean With Machine, Swarm, and Compose,
Docker networking
• Using Ansible with Docker Machine to Bootstrap Host Nodes
http://nathanleclaire.com/blog/2015/11/10/using-ansible-with-
docker-machine-to-bootstrap-host-nodes/
• Seamless Docker Multihost Overlay Networking on DigitalOcean
With Machine, Swarm, and Compose, RethinkDB
http://nathanleclaire.com/blog/2015/11/17/seamless-docker-
multihost-overlay-networking-on-digitalocean-with-machine-
swarm-and-compose-ft.-rethinkdb/
Nathan’s tips
UCP Permission Model

Programming the world with Docker

Editor's Notes