Patrick Chanezon
Chief Developer Advocate
@chanezon
The Tao of Docker
French
Polyglot
Platforms
Software Plumber
San Francisco
Developer Relations
@chanezon
“The future is already here — it's
just not very evenly distributed”
William Gibson, Neuromancer
Dreams of my childhood
The Singularity… in a galaxy far far away
Great Science Fiction
Instead, here and now!
Moore’s Law… hardware only!
Developer Productivity
1995 2015
Agility
Agile methodologies (circa 1999)
Low MTBIAMSH
MTBIAMSH (Mean Time Between Idea And Making Stuff Happen)
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
Cloud
Cloud La La Land
Supta Virasana: pose du hero allonge
Le cloud en vrai, ca marche mieux avec des accessoires!
En theorie En pratique
There and back again: a journey to hybrid/multi cloud
PublicHybridPrivate
Ops Devops Developers
Software Containers
History of containerization
• 1960’s mainframe
• 1990’s hardware virtualization
• 1990’s OS virt precursors: BSD Jails, Solaris zones
• 2006 Cloud IaaS
• 2009 platform virtualization (PaaS)
• 2013 Docker
See @bcantrill’s deck http://www.slideshare.net/bcantrill/docker-and-the-future-of-containers-in-production
Isolation using Linux kernel features
namespaces
● pid
● mnt
● net
● uts
● ipc
● user
cgroups
● memory
● cpu
● blkio
● devices
Union File Systems & Image Layers
The Docker Platform
Traditional
Micro
services
ISV / COTS IoT
Big Data
ML
AI
...Serverless
Cloud VM Bare
Metal
Edge
Device
Docker Platform
Docker Momentum
Docker
Hosts
21.0M
Growth in Docker
job listings
77K%
Container
downloads
24B
Industry
Standards
Enterprise Momentum
Portability Agility Security
50% total cost savings
DEVELOPERS OPERATORS
Applications
Infrastructure
The Docker Platform in a nutshell
INDEPENDENCE
OPENNESS
SIMPLICITY
Core Principles of the Docker Platform
Docker Enterprise Edition
Docker Community Edition
containerd
1
2
3
4
The best container
development workflow
The best enterprise
container security and
management
Native Kubernetes
integration provides full
ecosystem
compatibility Industry-standard
container runtime
Docker with Swarm and Kubernetes
Open Source
Standards and
Projects
Docker is building a stack to program the Internet
CE
EEA commercial product,
built on
a development platform,
built on
infrastructure,
built on
standards.
OCI
Moby
Docker Community Edition
Developers EnterpriseContainer Ecosystem
The Docker Innovation Model
Docker Enterprise Edition
9,149 Open Source Contributors 8800 PRs/Year
runc
Notary
Registry LibNetworkVPNKit
DataKit HyperKitCompose
Governance: BDFL -> TSC
https://github.com/moby/tsc
CNCF
containerd
An open and reliable container runtime
containerd 1.0 Dec 2017
https://blog.docker.com/2017/12/cncf-containerd-1-0-ga-announcement/
Early History
APRIL 2016 Containerd “0.2” announced, Docker 1.11
DECEMBER 2016Announce expansion of containerd OSS project, roadmap to 1.0
Management/Supervisor for the OCI runc executor
Containerd 1.0: A core container runtime project for the industry
runc
containerd
Why Containerd 1.0?
▪ Continue projects spun out
from monolithic Docker engine
▪ Expected use beyond Docker
engine (Kubernetes CRI)
▪ Donation to foundation for
broad industry collaboration
▫ Similar to runc/libcontainer and
the OCI
Technical Goals/Intentions
▪ Clean gRPC-based API + client library
▪ Full OCI support (runtime and image spec)
▪ Stability and performance with tight, well-
defined core of container function
▪ Decoupled systems (image, filesystem,
runtime) for pluggability, reuse
Requirements
- A la carte: use only what is required
- Runtime agility: fits into different platforms
- Pass-through container configuration (direct OCI)
- Decoupled
- Use known-good technology
- OCI container runtime and images
- gRPC for API
- Prometheus for Metrics
Use cases
- CURRENT
- Docker (moby)
- Kubernetes (cri-
containerd)
- SwarmKit (experimental)
- LinuxKit
- BuildKit
- FUTURE/POTENTIAL
- IBM Cloud/Bluemix
- OpenFaaS
- {your project here}
containerd 1.0 facts and figures
• 1994 GitHub stars, 401 forks
• 108 contributors
• 8 maintainers from independents and and member companies alike including Docker, Google, IBM, ZTE and ZJU .
• 3030+ commits, 26 releases
Resources
To participate in containerd: github.com/containerd/containerd
• Getting Started with containerd: http://mobyproject.org/blog/2017/08/15/containerd-getting-started/
• Roadmap: https://github.com/containerd/containerd/blob/master/ROADMAP.md
• Scope table: https://github.com/containerd/containerd#scope
• Architecture document: https://github.com/containerd/containerd/blob/master/design/architecture.md
• APIs: https://github.com/containerd/containerd/tree/master/api/.
• Learn more about containerd at KubeCon by attending Justin Cormack’s LinuxKit & Kubernetes talk at Austin Docker Meetup, Patrick Chanezon’s Moby session Phil Estes’ session or the containerd salon
Use Cases for
Containers
Microservice architecture pattern
Chris Richardson http://microservices.io/patterns/microservices.html
Worker Nodes
Docker: a natural platform for microservices
Node
Manager
Node
Worker
Node
Manager
Node
Manager
Node
Worker
Node
Worker
Node
Worker
docker
universal control plane
trusted registry
Modernizing
Traditional
Applications
Image Registry
CI/CD
Security scan
& sign
Traditional
Third Party
Microservices
docker store
DEVELOPERS IT OPERATIONS
Control Plane
Docker EE Platform to Modernize Traditional Apps
And Beyond
The Innovation Challenge
Average IT Spend By Type
INNOVATION
MAINTENANCE
20%
80%
20%
40%
60%
80%
100%
0%
1%
Windows Server 2008
Windows Server 2012
Windows Server 2000
Windows Server 2003
Red Hat, Other Linux, Other OS
Server OS Market Share
Sources: Bank of America, Spiceworks, SolarWinds
18%
45%
24%
12%
The Modernization Journey
App
Existing
Application
Modern
Methodologies
Convert to a
Docker EE
Container
Modern
Infrastructure
Ongoing
Innovation
The Docker Modernize Traditional Apps
POC Program
Partner
Consulting Services
Partner
Infrastructure
Docker
Enterprise
Edition
Portable
Agile
Secure Efficient
< 5 days
+ +
No
Code
Changes
App
Existing
Application
Convert to a
Docker EE
container
Modern
Infrastructure
Reducing total costs by 50%
MTA POC Impact
Hybrid
Cloud-Ready
Portability Agility
2x Faster
Security
Isolation & Integrity
84
KEY CHALLENGES
• Accumulated thousands of apps, 400+ systems of record
and 5 infrastructures over 150 years
• Difficult to innovate with majority of budget spent on
maintenance
SOLUTION
• Leverage Docker MTA program to modernize the email opt-
out app with Docker EE to drive down total costs
Docker EE and MTA create self funding model
for container adoption
-70%
VMs
-67%
Cores
10x
Average CPU
utilization
+ +
-66%
Total Cost of
Ownership
593
Applications
RESULTS
• Modernization of single app completed in 1 day
• Applying model to other apps built with same technology
• Business case forecasts a 66% cost reduction
85
KEY CHALLENGES
• Maintenance costs of managing traditional apps on prem
• Code quality was increasingly difficult with outsource
software house
• App delivery process was too slow for the pace of the
business
SOLUTION
• Leverage Docker MTA program jointly with their trusted
partner Accenture
App Visibility and Consistency at 50% the Cost
RESULTS
• 50% savings across all applications
• Unified architecture for the first time
• New visibility into their outsourced applications
Container as a Service
After
Greenfield CaaS
Case Study: ADP DevOps and microservices transformation
App Service App Service
App A App B
Auth
…more
App Reg
Marketplace
Logging
Auth
Session
…more
App Reg
Logging
Before
App BAuth
App Reg Marketplace
Logging
App Service
Application Teams
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
Authorization
App Registration
Session Management
Marketplace
Integration
Logging
…more
Trusted Registry
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
New Trends in Use Cases
2015
Portable Serverless PlatformsGalactic Fog
Nuclio
Fn
OpenFaaS
OpenWhisk
Observability with service mesh: Istio, Linkerd
Kubernetes in
Docker
What is a container orchestrator?
Management of containers running in one or more container runtimes
Docker Enterprise Edition
Docker Community Edition
containerd
The best container
development workflow
The best enterprise
container security and
management
Docker: Now Powered by Swarm and Kubernetes
Native Kubernetes
integration provides full
ecosystem
compatibility Industry-standard
container runtime
Test locally on Swarm
and Kubernetes
Develop with Docker
Community Edition on
your workstation
Deploy to production in
Swarm
Deploy to production in
Kubernetes
Docker Community Edition
All in one development for Swarm and Kubernetes
Kubernetes in Docker Desktop
Docker EE 2.0: A conformant kubernetes distribution
- Easy High Availability provisioning
- Cryptographic node identity
Features Swarm Support
- Registry
- Content Trust
- Secure
Scanning
- Clean upstream integration
- Full ecosystem compatibility
- Role Based Access Control
- Authorization, Authentication
- Node Segmentation
Secure Cluster Lifecycle
Secure Supply Chain
100% Interoperability
Secure Multi-tenancy
Management Dashboard
Supported and Certified on Windows Server and Major Linux Distributions
Kubernetes Support
Docker Enterprise Edition
Management for Swarm and Kubernetes
The Tao of Docker
之道 Tao, The Way
之道 Tao
无为 Wu-wei, Effortless action
无为 Wu-wei, Effortless action
自然 Ziran, Naturalness
自然 Ziran, Naturalness
container
based
No state
No couplingbounded context
无为 Wu-Wei: Modernize traditional
applications without coding
The Tao (之道) of Docker
自然 Ziran: create microservice applications
with the container platform that started the
container revolution
Penser les transformations
Pour vos applicationsdes Enterprises
@chanezon www.docker.com

Docker Enterprise Workshop - Intro

Editor's Notes

  • #67 This is compared to “container systems of the past” that were monolithic and tightly coupled Example: hard to reuse components; e.g. take a Docker graphdriver and use it to implement a volume driver
  • #87 Towards a Docker Containers as a Service application environment that provides a common interface but separation of concerns for your developers and IT operations team to work together to build, ship and run distributed apps
  • #88 ADP operates in a more traditional centralized IT model where IT manages and operates the application and environment ongoing. ADP looked at Docker as they began their transition to DevOps. They were interested in gaining more efficiencies and reuse of code by moving to a shared services model instead of monoliths with a lot of repeat services. ADP has OpenStack for their private cloud and AWS for their public cloud. As part of the transition, ADP would will setup a central marketplace where the shared services apps are available for the app teams. In the ADP example both the environment and ongoing management remains centralized. Use Cases - Transition to Micro services - Enable Dev Ops - CI/CD Why Docker? Need app portability so they can choose to move across AWS / Openstack Agility Streamline lifecycle time to move apps from dev to prod Enable a central repository of “app templates” for common services Portability Support AWS cloud and OpenStack private cloud environments Control Centralized management and control of images, apps and infrastructure Enable secure content lifecycle with integrated image signing and verification
  • #90 Towards a Docker Containers as a Service application environment that provides a common interface but separation of concerns for your developers and IT operations team to work together to build, ship and run distributed apps
  • #113 George decides to consider his career like a startup