Docker Enables DevOps
Keep C.A.L.M.S. and Docker On …
Boyd E. Hemphill
@behemphi
Let’s Get Acquainted
Share a Perspective
Background
Oracle Developer,
MySQL DBA, PHP
Developer, System
Architect, DevOps
Director (snickering
encouraged), Evangelist
Background
Oracle Developer,
MySQL DBA, PHP
Developer, System
Architect, DevOps
Director (snickering
encouraged), Evangelist
Founded Austin DevOps
2012. 800+ Members.
Background
Oracle Developer, MySQL
DBA, PHP Developer,
System Architect, DevOps
Director (snickering
encouraged), Evangelist
Founded Austin DevOps
2012. 800+ Members.
DevOps Days Austin
Organizer
Background
Oracle Developer, MySQL
DBA, PHP Developer, System
Architect, DevOps Director
(snickering encouraged),
Evangelist
Founded Austin DevOps 2012.
800+ Members.
DevOps Days Austin Organizer
Lead Docker Austin 2014.
Nearly 500 Members.
Background
Oracle Developer, MySQL DBA,
PHP Developer, System Architect,
DevOps Director (snickering
encouraged), Evangelist
Founded Austin DevOps 2012.
800+ Members.
DevOps Days Austin Organizer
Lead Docker Austin 2014. Nearly
500 Members.
Founded Container Days 2015.
Austin, Boston, San Fran …
DevOps Perspective
Philosophy to Implementation
So … What is DevOps?
Text
Is DevOps a Culture?
Text
Is DevOps Automating all-the-things?
Text
Is DevOps Lean?
Text
Is DevOps Measuring impact?
Text
Is DevOps Sharing?
Text
The Goal of your Company?
Text
The Goal of your Company?
Make Money!
So … What is DevOps?
DevOps is a Philosophy
So … What is DevOps?
DevOps is a Philosophy
All of the previous are
models for the
implementation of that
philosophy
“DevOps is the way in which a technology
organization embeds itself in a business to the
benefit of that business.”
Pillars of Reasoning
From Ivory Tower to Neck Beard
Framework - Thought to
Action
Framework - Thought to
Action
Philosophy
Model
Implementation
Tools
Economic Observation
Economic Observation
P = R - C
Economic Observation
P = R - C
If C = 0, you are out of
business.
Economic Observation
P = R - C
If C = 0, you are out of
business.
R has no ceiling!
Technology vs. Tools
Technology vs. Tools
Tools are only a result of
implementing a DevOps
model
Technology vs. Tools
Tools are only a result of
implementing a DevOps
model
Technology enables the
creation of better tools
“Technology enables new business models and new
DevOps models. Tools are simply an expression of
those models.”
Technology vs. Tools
Virtualization - VMware, AWS, Heroku
Technology vs. Tools
Virtualization - VMware, AWS, Heroku
Config Mgmt - CFEngine, Puppet, Chef
Technology vs. Tools
Virtualization - VMware, AWS, Heroku
Config Mgmt - CFEngine, Puppet, Chef
Continuous Integration - Go, Jenkins, Travis, CircleCI
Technology vs. Tools
Virtualization - VMware, AWS, Heroku
Config Mgmt - CFEngine, Puppet, Chef
Continuous Integration - Go, Jenkins, Travis, CircleCI
Continuous Delivery - Artifactory, Nexus, Docker Hub
Technology vs. Tools
Virtualization - VMware, AWS, Heroku
Config Mgmt - CFEngine, Puppet, Chef
Continuous Integration - Go, Jenkins, Travis, CircleCI
Continuous Delivery - Artifactory, Nexus, Docker Hub
Service Discovery - Zookeeper, etcd, consul
Technology vs. Tools
Virtualization - VMware, AWS, Heroku
Config Mgmt - CFEngine, Puppet, Chef
Continuous Integration - Go, Jenkins, Travis, CircleCI
Continuous Delivery - Artifactory, Nexus, Docker Hub
Service Discovery - Zookeeper, etcd, consul
Containers - Jails, Zones, OpenVZ, LXC, Docker, Rocket
Language Matters
Language Matters
We do ourselves a
disservice by naming
technology with tools
Language Matters
We do ourselves a
disservice by naming
technology with tools
Talk about solving a
configuration
management issue
(model)
Language Matters
We do ourselves a
disservice by naming
technology with tools
Talk about solving a
configuration
management issue
(model)
Don’t talk about writing
Chef code (tool)
Language Matters
We do ourselves a disservice by
naming technology with tools
Talk about solving a
configuration management
issue (model)
Don’t talk about writing Chef
code (tool)
Understanding the nature of the
problem leads to the best
choice of tool
How Language Happens
How Language Happens
Good tools enable
technology use
How Language Happens
Good tools enable
technology use
CFEngine vs. Puppet vs.
Chef
How Language Happens
Good tools enable
technology use
CFEngine vs. Puppet vs.
Chef
VMware vs. Slicehost
vs. AWS
How Language Happens
Good tools enable
technology use
CFEngine vs. Puppet vs.
Chef
VMware vs. Slicehost
vs. AWS
LXC vs. Docker
“Docker enables the use of Linux containers by
mere mortals. Thus, it makes the containerization
technology a viable DevOps model.”
Docker, DevOps and the
Business
Linux Containers for Mere Mortals
Docker and DevOps
Docker and DevOps
Culture
Automation
Lean
Measurement
Sharing
DevOps and the Business
DevOps and the Business
Define an Opportunity
Discuss Benefits
Discuss Concerns
Explore Business
Perspective
Available Tools
Adoptions
Culture
Less Communication, More Features, More
Quality
Micro Services mean Micro
Teams
Definition
Micro Services mean Micro
Teams - Definition
Microservices
Architecture is where
each process has a
single purpose.
Benefits
Micro Services mean Micro
Teams - Benefits
“Code to Interface”
moves to infrastructure
Micro Services mean Micro
Teams - Benefits
“Code to Interface”
moves to infrastructure
Micro team’s service
moves at its own pace
Micro Services mean Micro
Teams - Benefits
“Code to Interface”
moves to infrastructure
Micro team’s service
moves at its own pace
Coordination between
people eased (Mythical
Man Month)
Micro Services mean Micro
Teams - Benefits
“Code to Interface”
moves to infrastructure
Micro team’s service
moves at its own pace
Coordination between
people eased (Mythical
Man Month)
Feature velocity increases
Concerns
Micro Services mean Micro
Teams - Concerns
Few coders understand
“code to the interface”
Micro Services mean Micro
Teams - Concerns
Few coders understand
“code to the interface”
Only Unicorns to reason
from currently
Micro Services mean Micro
Teams - Concerns
Few coders understand
“code to the interface”
Only Unicorns to reason
from currently
Migration of existing
apps is high risk
Business Perspective
Micro Services mean Micro
Teams - Business
Extraordinary increase in
Dev Team velocity
means true competitive
advantage
Micro Services mean Micro
Teams - Business
Extraordinary increase in
Dev Team velocity
means true competitive
advantage
Difficulty of adoption
means advantage is
lasting
Micro Services mean Micro
Teams - Business
Extraordinary increase in
Dev Team velocity means
true competitive
advantage
Difficulty of adoption
means advantage is
lasting
Dip a toe in low risk and
greenfield apps
Tools
Micro Services mean Micro
Teams - Tools
No tools exist to convert
legacy apps to a micro
service architecture
Micro Services mean Micro
Teams - Tools
No tools exist to convert
legacy apps to a micro
service architecture
Stuff it all in a single
container
Micro Services mean Micro
Teams - Tools
No tools exist to convert
legacy apps to a micro
service architecture
Stuff it all in a single
container
Bring in some help
Micro Services mean Micro
Teams - Tools
No tools exist to convert
legacy apps to a micro
service architecture
Stuff it all in a single
container
Bring in some help
http://12factor.net
Adoption
Micro Services mean Micro
Teams - Adoption
Shops are
experimenting with
whole apps in a
container first
Micro Services mean Micro
Teams - Adoption
Shops are
experimenting with
whole apps in a
container first
Greenfield startups are
designing for micro
services
Micro Services mean Micro
Teams - Adoption
Shops are experimenting
with whole apps in a
container first
Greenfield startups are
designing for micro
services
Many service companies
are springing up to help
with “containerization”
Automation
Faster Delivery means More Innovation
Build and Test Grids
Definition
Build and Test Grids -
Definition
Consider the set of all
app versions and
environments
Build and Test Grids -
Definition
Consider the set of all
app versions and
environments
Example: Ruby versions
across Ubuntu 12.04,
14.04 and Centos 6.5,
7.3 and Windows.
Build and Test Grids -
Definition
Consider the set of all app
versions and environments
Example: Ruby versions
across Ubuntu 12.04,
14.04 and Centos 6.5, 7.3
and Windows.
Very important to installed
software and legacy
application management.
Benefits
Build and Test Grids -
Benefits
Containers start in less
than one second - faster
builds
Build and Test Grids -
Benefits
Containers start in less
than one second - faster
builds
Can test more
permutations of the
system
Build and Test Grids -
Benefits
Containers start in less
than one second - faster
builds
Can test more
permutations of the
system
Increase build
parallelism
Build and Test Grids -
Benefits
Containers start in less
than one second - faster
builds
Can test more
permutations of the system
Increase build parallelism
Increases feature velocity
and innovation
Concerns
Build and Test Grids -
Concerns
Is a container based test
bed close enough to
production?
Build and Test Grids -
Concerns
Is a container based test
bed close enough to
production?
Impedance: How does
app get to prod if not via
container?
Business
Build and Test Grids -
Business
Grid density lowers cost
Build and Test Grids -
Business
Grid density lowers cost
Increased innovation
due to build time
decrease
Build and Test Grids -
Business
Grid density lowers cost
Increased innovation
due to build time
decrease
Increased feature
velocity (unicorn
example)
Build and Test Grids -
Business
Grid density lowers cost
Increased innovation due
to build time decrease
Increased feature
velocity (unicorn
example)
Decrease QA Bottleneck
Tools
Build and Test Grids - Tools
Build and test images as
artifacts still immature
Build: Jenkins, CircleCI,
Shippable
Build and Test Grids - Tools
Build and test images as
artifacts still immature
Build: Jenkins, CircleCI,
Shippable
Artifact management still
immature
Artifact: Docker Registry,
Quay.io, Artifactory
Build and Test Grids - Tools
Build and test images as artifacts
still immature
Build: Jenkins, CircleCI, Shippable
Artifact management still
immature
Artifact: Docker Registry, Quay.io,
Artifactory
Delivery is unsolved
StackEngine, CircleCI, Shippable
Adoption
Build and Test Grids -
Adoption
Common adoption path
Build and Test Grids -
Adoption
Common adoption path
Driving legacy apps to
containers (Websphere!)
Build and Test Grids -
Adoption
Common adoption path
Driving legacy apps to
containers (Websphere!)
Production adoption
creates impedance
Build and Test Grids -
Adoption
Common adoption path
Driving legacy apps to
containers (Websphere!)
Production adoption
creates impedance
Done with no impact to
other teams
Configuration Management
Simplification
Definition
Configuration Management
Simplification - Definition
Automate the state of a
single machine
This is not orchestration
Benefits
Configuration Management
Simplification - Benefits
Learning curve of typical
CM tool is extremely
steep
Configuration Management
Simplification - Benefits
Learning curve of typical
CM tool is extremely
steep
Docker obviates need
for most host config
(bakery)
Configuration Management
Simplification - Benefits
Learning curve of typical
CM tool is extremely
steep
Docker obviates need for
most host config (bakery)
Containers are
configured via a simple
bash-like file.
Concerns
Configuration Management
Simplification - Concerns
Is a Dockerfile enough
for complex
applications?
Configuration Management
Simplification - Concerns
Is a Dockerfile enough
for complex
applications?
How to transition from
updating in place to
immutable release
Business
Configuration Management
Simplification - Business
Removal of complexity
lowers release and
administrative risk
Configuration Management
Simplification - Business
Removal of complexity
lowers release and
administrative risk
Scaling issues of most
CM tools are moot.
Tools
Configuration Management
Simplification - Tools
Bakery model for hosts
Configuration Management
Simplification - Tools
Bakery model for hosts
Dockerfile for containers
Configuration Management
Simplification - Tools
Bakery model for hosts
Dockerfile for containers
Multihost image
management:
StackEngine
Adoption
Configuration Management
Simplification - Adoption
Companies who adopt
Docker in production
gradually realize they
need CM less and less
Configuration Management
Simplification - Adoption
Companies who adopt
Docker in production
gradually realize they
need CM less and less
This is true in every case
we have encountered
including our own
Measurement
Function, Performance, Stress, Security
Process Density
Definition
Process Density - Definition
Density increases when
the amount of idle
compute on a host
tends to zero
Benefits
Process Density - Benefits
Reduce host
consumption reduces
cost
Process Density - Benefits
Reduce host
consumption reduces
cost
Reduces power footprint
in large physical setting
Concerns
Process Density - Definition
Spare capacity is no
longer there when
spikes occur
Process Density - Definition
Spare capacity is no
longer there when
spikes occur
Another complexity layer
Process Density - Definition
Spare capacity is no
longer there when
spikes occur
Another complexity layer
Container Sprawl
“Ants not Cattle”
Business
Process Density - Business
Reduced hosts mean
reduced cost (CapEx
and OpEx)
Process Density - Business
Reduced hosts mean
reduced cost (CapEx
and OpEx)
Does not address
revenue growth
Process Density - Business
Reduced hosts mean
reduced cost (CapEx
and OpEx)
Does not address
revenue growth
Probably not a
compelling reason, but
easy to understand
Tools
Process Density - Tools
Basic management
tools for multi host
inventory
Process Density - Tools
Basic management
tools for multi host
inventory
StackEngine, Tutum,
Fleet
Process Density - Tools
Basic management
tools for multi host
inventory
StackEngine, Tutum,
Fleet
Scheduling to help with
usage spikes
Adoption
Process Density - Adoption
Mostly production
concern
Process Density - Adoption
Mostly production
concern
Much talk, little action
Process Density - Adoption
Mostly production
concern
Much talk, little action
Revolution not evolution
Process Density - Adoption
Mostly production
concern
Much talk, little action
Revolution not evolution
Tools for production
management are hard to
use (Kubernetes, Mesos)
Sharing
Faster Features, Fewer Surprises
Disposable Development
Environments
Definition
Disposable Development
Environments - Definition
A fully functional
development
environment that can be
brought up in minutes or
seconds
Benefits
Disposable Development
Environments - Benefits
New team members are
productive their first day
Disposable Development
Environments - Benefits
New team members are
productive their first day
Innovation - try new
things quickly
Disposable Development
Environments - Benefits
New team members are
productive their first day
Innovation - try new
things quickly
Developers share
improvements easily via
familiar tools
Concerns
Disposable Development
Environments - Concerns
Impedance: Config
changes across teams
(Dev, QA, Ops)
Business
Disposable Development
Environments - Business
Increases feature
velocity
Disposable Development
Environments - Business
Increases feature
velocity
Increases innovation
Disposable Development
Environments - Business
Increases feature
velocity
Increases innovation
Local optima
Tools
Disposable Development
Environments - Tools
Virtual Box
Disposable Development
Environments - Tools
Virtual Box
Vagrant
Disposable Development
Environments - Tools
Virtual Box
Vagrant
boot2docker
Disposable Development
Environments - Tools
Virtual Box
Vagrant
boot2docker
kitematic
Disposable Development
Environments - Tools
Virtual Box
Vagrant
boot2docker
kitematic
docker compose
Adoption
Disposable Development
Environments - Adoption
Common adoption path
Disposable Development
Environments - Adoption
Common adoption path
Typically done in lieu of
Vagrant
Disposable Development
Environments - Adoption
Common adoption path
Typically done in lieu of
Vagrant
Often gains traction with
QA!
Food for Thought
Less developed use cases.
Food for Thought
Immutable infrastructure
Food for Thought
Immutable infrastructure
A/B Deployments
Food for Thought
Immutable infrastructure
A/B Deployments
A/B Testing for
Marketing
Future Past
Containers in production are already happening.
Future Past
Pantheon/Rackspace
blog: http://bit.ly/
15a2UIW
Note the date: October
7th, 2013
Docker makes this
easier to consider in our
own context
Text
Robots and Unicorns
Docker makes containers available to mere
mortals.
Closing Thoughts
How do I determine if Docker is worth
investigating?
Business
Business
Developer adoption of Docker is only valuable as a first
step. There is not enough benefit from it alone to justify
the effort, it must inform system architecture and
production operations over time.
Business
Developer adoption of Docker is only valuable as a first
step. There is not enough benefit from it alone to justify
the effort, it must inform system architecture and
production operations over time.
Docker’s system architecture ramifications have the
potential to provide a significant and lasting competitive
advantage
Business
Developer adoption of Docker is only valuable as a first step.
There is not enough benefit from it alone to justify the effort, it
must inform system architecture and production operations
over time.
Docker’s system architecture ramifications have the potential
to provide a significant and lasting competitive advantage
Unlike most ops driven improvements derived from applying
DevOps thinking, this must be developer and QA driven
since the greatest benefit is derived from system architecture
Business
Developer adoption of Docker is only valuable as a first step. There
is not enough benefit from it alone to justify the effort, it must
inform system architecture and production operations over time.
Docker’s system architecture ramifications have the potential to
provide a significant and lasting competitive advantage
Unlike most ops driven improvements derived from applying
DevOps thinking, this must be developer and QA driven since the
greatest benefit is derived from system architecture
Horses are starting to become unicorns. Evolve or die.
DevOps
DevOps
Culture - DevOps thought leaders must determine how
a Docker adoption path looks in their organization
DevOps
Culture - DevOps thought leaders must determine how
a Docker adoption path looks in their organization
Automation - Tools are not there yet. Companies are
showing up with the mission to address this, but it is
very early days.
DevOps
Culture - DevOps thought leaders must determine how
a Docker adoption path looks in their organization
Automation - Tools are not there yet. Companies are
showing up with the mission to address this, but it is
very early days.
Lean - DevOps thought leaders are responsible for the
holistic impact of technology decisions at the business
level.
DevOps
Culture - DevOps thought leaders must determine how a
Docker adoption path looks in their organization
Automation - Tools are not there yet. Companies are showing
up with the mission to address this, but it is very early days.
Lean - DevOps thought leaders are responsible for the holistic
impact of technology decisions at the business level.
Measurement - Empiricism is required if we are to meet our
Measurement obligation. Blackbox thinking could revolutionize
compliance.
DevOps
Culture - DevOps thought leaders must determine how a Docker adoption path
looks in their organization
Automation - Tools are not there yet. Companies are showing up with the
mission to address this, but it is very early days.
Lean - DevOps thought leaders are responsible for the holistic impact of
technology decisions at the business level.
Measurement - Empiricism is required if we are to meet our Measurement
obligation. Blackbox thinking could revolutionize compliance.
Sharing - DevOps thought leaders should be working with peers and
collaborators in their company to determine if they can derive the proposed
business benefits.
Should you be considering a
Docker adoption?
Best Ever DevOps Tool:
audible.com
The Lean Startup - Reis (tech)
The Goal - Goldratt (Theory of Constraints)
It’s not Luck - Goldratt (Theory of Constraints)
Good to Great - Collins (Culture)
The No Asshole Rule - Sutton (Culture)
The Phoenix Project - Kim (*) (tech)
Continuous Deliver - Humble (*) (hardcore tech)
The Lean Enterprise - Humble (*) (tech)

Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...