Download - Container Days NYC Keynote
@behemphi
@stackengine
DO C K E R E N A BL E S DE VOP S
KEEP C . A . L . M . S . A ND DO C KER ON …BOY D E . H EMP H I LL@B EH EM PH I
@behemphi
@stackengine
goo.gl/jRXAsN
W H O A M I ?
• Technologist
@behemphi
@stackengine
goo.gl/jRXAsN
W H O A M I ?
• Technologist• Community Builder
@behemphi
@stackengine
goo.gl/jRXAsN
W H O A M I ?
• Technologist• Community Builder• Extroverted Nerd
@behemphi
@stackengine
goo.gl/jRXAsN
W H O A M I ?
• Technologist• Community Builder• Extroverted Nerd• Evangelist
@behemphi
@stackengine
goo.gl/jRXAsN
- THE OR GA N I Z ER S
“Do one thing each month to make _your_ tech community better.”
@behemphi
@stackengine
goo.gl/jRXAsNTH I S TH I NG O F WH IC H YO U SPE AK?
• Docker Docker Docker
@behemphi
@stackengine
goo.gl/jRXAsNTH I S TH I NG O F WH IC H YO U SPE AK?
• Docker Docker Docker• Orchestration, Service
Discovery, Community
@behemphi
@stackengine
goo.gl/jRXAsNTH I S TH I NG O F WH IC H YO U SPE AK?
• Docker Docker Docker• Orchestration, Service
Discovery, Community• Like what you hear?
Come join the conversation: http://goo.gl/YyyJOx
@behemphi
@stackengine
goo.gl/jRXAsN
- BOB QU I LL I N - C E O
“Buy copious amounts of StackEngine goodness.”
@behemphi
@stackengine
goo.gl/jRXAsN
W H O A R E YO U?
• Have heard of Docker
@behemphi
@stackengine
goo.gl/jRXAsN
W H O A R E YO U?
• Have heard of Docker?• Have experimented
with Docker on the job?
@behemphi
@stackengine
goo.gl/jRXAsN
W H OA R E YO U?
• Have heard of Docker?• Have experimented
with Docker on the job?• Are using Docker in a
production environment?
@behemphi
@stackengine
goo.gl/jRXAsN
- SE C U R I TY HOB B I T S
“Unicorns nothing, Balrogs is more like it!”
@behemphi
@stackengine
S O … W H AT I S DE VO P S ?
@behemphi
@stackengine
I S D E VO P S A C U LT U R E ?
@behemphi
@stackengine
I S D E VO P S AU T O M AT I O N ?
@behemphi
@stackengine
I S D E VO P S L E A N ?
@behemphi
@stackengine
I S DE VOP S M E A SU R E M E N T ?
@behemphi
@stackengine
I S D E VO P S S H A R IN G ?
@behemphi
@stackengine
“DevOps is the way in which a technology organization embeds itself in a business to
the benefit of that business.”
@behemphi
@stackengine
goo.gl/jRXAsN
C O M M O N G R O U N D
• Philosophy
@behemphi
@stackengine
goo.gl/jRXAsN
C O M M O N G R O U N D
• Philosophy• Model
@behemphi
@stackengine
goo.gl/jRXAsN
C O M M O N G R O U N D
• Philosophy• Model• Implementation
@behemphi
@stackengine
goo.gl/jRXAsN
C O M M O N G R O U N D
• Philosophy• Model• Implementation• Tooling
@behemphi
@stackengine
E C O N OM I C OBS E RVAT I O N
@behemphi
@stackengine
E C O N O M I C O BSE RVAT I O N
• P = R - C
@behemphi
@stackengine
E C O N O M I C O BSE RVAT I O N
• P = R - C • If C = 0, you are out of
business.
@behemphi
@stackengine
E C O N O M I C O BSE RVAT I O N
• P = R - C • If C = 0, you are out of
business.• R has no ceiling!
@behemphi
@stackengine
– J OH N N Y A P P L E SE ED
“Focus on system throughput as a way to maximize revenue.”
@behemphi
@stackengine
L A N G U AG E M ATT E R S
• We do ourselves a disservice by naming technology with tools
@behemphi
@stackengine
L A N G U AG E M ATT E R S
• We do ourselves a disservice by naming technology with tools
• Talk about solving a configuration management issue (model)
@behemphi
@stackengine
L A N G U AG E M ATT E R S
• 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)
@behemphi
@stackengine
L A N G U AG E M ATT E R S
• 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
@behemphi
@stackengine
“Docker enables the use of Linux containers by mere mortals. Linux containers enable
more rapid DevOps model adoption.”
@behemphi
@stackengine
CONTA I NE RS 1 01 -VMS VS . O S V I RT U AL I ZAT I ON
• A VM is a full copy of an entire computer running as software on a hypervisor
@behemphi
@stackengine
CONTA I NE RS 1 01 -VMS VS . O S V I RT U AL I ZAT I ON
• A VM is a full copy of an entire computer running as software on a hypervisor
• A container is a slice of the kernel
@behemphi
@stackengine
CONTA I NE RS 1 01 -VMS VS . O S V I RT U AL I ZAT I ON
• A VM is a full copy of an entire computer running as software on a hypervisor
• A container is a slice of a kernel
• Exec Summary: The lack of extra layers means big efficiencies
@behemphi
@stackengine
C O N TA I N E R S 1 0 1 - H I S T O RY
• BSD Jails (2000)
@behemphi
@stackengine
C O N TA I N E R S 1 0 1 - H I S T O RY
• BSD Jails (2000)• Solaris Zones (2004)
@behemphi
@stackengine
C O N TA I N E R S 1 0 1 - H I S T O RY
• BSD Jails (2000)• Solaris Zones (2004)• OpenVZ (2005)
@behemphi
@stackengine
C O N TA I N E R S 1 0 1 - H I S T O RY
• BSD Jails (2000)• Solaris Zones (2004)• OpenVZ (2005)• LXC (2008)
@behemphi
@stackengine
C O N TA I N E R S 1 0 1 - H I S T O RY
• BSD Jails (2000)• Solaris Zones (2004)• OpenVZ (2005)• LXC (2008)• SILENCE
@behemphi
@stackengine
C O N TA I N E R S 1 0 1 - H I S T O RY• BSD Jails (2000)• Solaris Zones (2004)• OpenVZ (2005)• LXC (2008)• SILENCE • Docker (2013)
@behemphi
@stackengine
“Docker isn’t winning because its a better container. It’s winning because it makes
packaging applications in a container easy.”
@behemphi
@stackengine
C U LT U R E
@behemphi
@stackengine
M I C R O S E RV I C E S M E A N M I C R O T E A M S
@behemphi
@stackengine
MI CR O SE RV I CE S ME AN M IC RO TE AM S - DE F I N I T ION
• Microservices Architecture is where each process has a single purpose.
@behemphi
@stackengine
MI CR O SE RV I CE S ME AN M IC RO TE AM S - DE F I N I T ION
• Microservices Architecture is where each process has a single purpose.
• This is SOA recycled - what’s old is new.
@behemphi
@stackengine
B E N E F I T S
@behemphi
@stackengine
MI CRO SE RV I CE S ME AN M I CRO TE AMS - BE NE F IT S
• “Code to Interface” moves to infrastructure
@behemphi
@stackengine
MI CRO SE RV I CE S ME AN M I CRO TE AMS - BE NE F IT S
• “Code to Interface” moves to infrastructure
• Micro team’s service moves at its own pace
@behemphi
@stackengine
MI CRO SE RV I CE S ME AN M I CRO TE AMS - BE NE F IT S
• “Code to Interface” moves to infrastructure
• Micro team’s service moves at its own pace
• Coordination between people eased (Mythical Man Month)
@behemphi
@stackengine
MI CRO SE RV I CE S ME AN M I CRO TE AMS - BE NE F IT S• “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
@behemphi
@stackengine
B U S IN E S S P E R S P E C T IV E
@behemphi
@stackengine
MI CRO SE RV I CE S ME AN M I CRO TE AMS - BU S INE SS
• Extraordinary increase in Dev Team velocity means true competitive advantage
@behemphi
@stackengine
MI CRO SE RV I CE S ME AN M I CRO TE AMS - BU S INE SS
• Extraordinary increase in Dev Team velocity means true competitive advantage
• Difficulty of adoption means advantage is lasting
@behemphi
@stackengine
MI CRO SE RV I CE S ME AN M I CRO TE AMS - BU S INE SS
• 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
@behemphi
@stackengine
MI CRO SE RV I CE S ME AN M I CRO TE AMS - BU S INE SS• 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
• Use the “Strangler Pattern”
@behemphi
@stackengine
“Since the service boundary is now a concrete infrastructure object, SOA becomes
much easier to reason about.”
@behemphi
@stackengine
A UT O M AT I O N
@behemphi
@stackengine
B U IL D A N D T E S T G R I D S
@behemphi
@stackengine
BU IL D AND T E ST GR I DS - DE F I N I T I O N
• Consider the set of all app versions and environments
@behemphi
@stackengine
BU IL D AND T E ST GR I DS - DE F I N I T I O N
• 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.
@behemphi
@stackengine
BU IL D AND T E ST GR I DS - DE F I N I T I O N
• 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.
@behemphi
@stackengine
B E N E F I T S
@behemphi
@stackengine
B U I LD A ND T ES T G R I DS - B E NEF I T S
• Containers start in less than one second - faster builds
@behemphi
@stackengine
B U I LD A ND T ES T G R I DS - B E NEF I T S
• Containers start in less than one second - faster builds
• Can test more permutations of the system
@behemphi
@stackengine
B U I LD A ND T ES T G R I DS - B E NEF I T S
• Containers start in less than one second - faster builds
• Can test more permutations of the system
• Increase build parallelism
@behemphi
@stackengine
B U I LD A ND T ES T G R I DS - B E NEF I T S
• Containers start in less than one second - faster builds
• Can test more permutations of the system
• Increase build parallelism
• Increases feature velocity and innovation
@behemphi
@stackengine
B U S IN E S S P E R S P E C T IV E
@behemphi
@stackengine
BU IL D A ND T E S T GR ID S - BU S IN E S S
• Grid density lowers cost
@behemphi
@stackengine
BU IL D A ND T E S T GR ID S - BU S IN E S S
• Grid density lowers cost
• Increased innovation due to build time decrease
@behemphi
@stackengine
BU IL D A ND T E S T GR ID S - BU S IN E S S
• Grid density lowers cost
• Increased innovation due to build time decrease
• Increased feature velocity (unicorn example)
@behemphi
@stackengine
BU IL D A ND T E S T GR ID S - BU S IN E S S
• Grid density lowers cost
• Increased innovation due to build time decrease
• Increased feature velocity (unicorn example)
• Decrease QA Bottleneck
@behemphi
@stackengine
“According to StackEngines State of Containers survey in Jan 2015, this is the
most common adoption vector.”
@behemphi
@stackengine
CON F I GURAT ION MAN AGEME N T S I MPL I F IC AT I ON
@behemphi
@stackengine
CO NF IG U RAT I ON MA N AG E ME N T S I M PL I F I CAT IO N - DE F IN I T I ON
• Automate the state of a single machine
@behemphi
@stackengine
CO NF IG U RAT I ON MA N AG E ME N T S I M PL I F I CAT IO N - DE F IN I T I ON
• Automate the state of a single machine
• This is not orchestration
@behemphi
@stackengine
B E N E F I T S
@behemphi
@stackengine
CO NF IG U RAT I ON MA N AG E ME N T S I M PL I F I CAT IO N - BE NE F IT S
• Learning curve of typical CM tool is extremely steep
@behemphi
@stackengine
CO NF IG U RAT I ON MA N AG E ME N T S I M PL I F I CAT IO N - BE NE F IT S
• Learning curve of typical CM tool is extremely steep
• Docker obviates need for most host config (bakery)
@behemphi
@stackengine
CO NF IG U RAT I ON MA N AG E ME N T S I M PL I F I CAT IO N - BE NE F IT S
• 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.
@behemphi
@stackengine
B U S IN E S S P E R S P E C T IV E
@behemphi
@stackengine
CO NF IG U RAT I ON MA N AG E ME N T S I M PL I F I CAT IO N - BU S IN E S S
• Removal of complexity lowers release and administrative risk
@behemphi
@stackengine
CO NF IG U RAT I ON MA N AG E ME N T S I M PL I F I CAT IO N - BU S IN E S S
• Removal of complexity lowers release and administrative risk
• Scaling issues of many CM tools are moot.
@behemphi
@stackengine
“The problem of application state becomes a more holistic concern about orchestration instead of configuration management.”
@behemphi
@stackengine
M E A S UR E M E N T
@behemphi
@stackengine
P R O C E S S D E N S I T Y
@behemphi
@stackengine
PR OC E S S D E NS I T Y - D E F I N I T I ON
• Density increases when the amount of idle compute on a host tends to zero
@behemphi
@stackengine
B E N E F I T S
@behemphi
@stackengine
PR OC E S S D E NS I T Y - BE NE F I T S
• Reduce host consumption reduces cost
@behemphi
@stackengine
PR OC E S S D E NS I T Y - BE NE F I T S
• Reduce host consumption reduces cost
• Reduces power footprint in large physical setting
@behemphi
@stackengine
B U S IN E S S P E R S P E C T IV E
@behemphi
@stackengine
PR OC E S S D E NS I T Y - BU S I NE S S
• Reduced hosts mean reduced cost (CapEx and OpEx)
@behemphi
@stackengine
PR OC E S S D E NS I T Y - BU S I NE S S
• Reduced hosts mean reduced cost (CapEx and OpEx)
• Does not address revenue growth
@behemphi
@stackengine
PR OC E S S D E NS I T Y - BU S I NE S S
• Reduced hosts mean reduced cost (CapEx and OpEx)
• Does not address revenue growth
• Probably not a compelling reason, but easy to understand
@behemphi
@stackengine
–S TAC K EN G I N E
“Ants, not Cattle.”
@behemphi
@stackengine
S H A R IN G
@behemphi
@stackengine
D I S P O S A B L E D E V E LO P M E N T EN V I R ON M E N T S
@behemphi
@stackengine
DI S PO S A B LE DE V E LO PM E NT EN V I RON M EN T S - DE F IN I T I ON
• A fully functional development environment that can be brought up in minutes or seconds
@behemphi
@stackengine
B E N E F I T S
@behemphi
@stackengine
DI S PO S A B LE DE V E LO PM E NT EN V I RON M EN T S - BE NE F IT S
• New team members are productive their first day
@behemphi
@stackengine
DI S PO S A B LE DE V E LO PM E NT EN V I RON M EN T S - BE NE F IT S
• New team members are productive their first day
• Innovation - try new things quickly
@behemphi
@stackengine
DI S PO S A B LE DE V E LO PM E NT EN V I RON M EN T S - BE NE F IT S
• New team members are productive their first day
• Innovation - try new things quickly
• Developers share improvements easily via familiar tools
@behemphi
@stackengine
B U S IN E S S P E R S P E C T IV E
@behemphi
@stackengine
DI S PO S A B LE DE V E LO PM E NT EN V I RON M EN T S - BU S IN E S S
• Increases feature velocity
@behemphi
@stackengine
DI S PO S A B LE DE V E LO PM E NT EN V I RON M EN T S - BU S IN E S S
• Increases feature velocity
• Increases innovation
@behemphi
@stackengine
DI S PO S A B LE DE V E LO PM E NT EN V I RON M EN T S - BU S IN E S S
• Increases feature velocity
• Increases innovation• Local optima, but
environment standardization helps in other areas.
@behemphi
@stackengine
“Disposable development environments are likely the single biggest improvement you
can make in your SDLC.”
@behemphi
@stackengine
FO O D F O R T H O UG H T
@behemphi
@stackengine
F O O D F O R TH O U G H T
• Immutable infrastructure
@behemphi
@stackengine
F O O D F O R TH O U G H T
• Immutable infrastructure
• A/B Deployments
@behemphi
@stackengine
F O O D F O R TH O U G H T
• Immutable infrastructure
• A/B Deployments• A/B Testing for
Marketing
@behemphi
@stackengine
C LO S IN G T H O U G H T SHOW DO I DE T ER M I N E I F DOC K ER I S W ORT H I N V ES T I G AT I N G ?
@behemphi
@stackengine
B U S IN E S S
@behemphi
@stackengine
BU S I N E S S
• 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.
@behemphi
@stackengine
BU S I N E S S
• 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
@behemphi
@stackengine
BU S I N E S S
• 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
@behemphi
@stackengine
BU S I N E S S• 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.
@behemphi
@stackengine
DE VO P S
@behemphi
@stackengine
DE VO PS
• Culture - DevOps thought leaders must determine how a Docker adoption path looks in their organization
@behemphi
@stackengine
DE VO PS
• 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.
@behemphi
@stackengine
DE VO PS
• 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.
@behemphi
@stackengine
DE VO PS• 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.
@behemphi
@stackengine
DE VO PS
• 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.
@behemphi
@stackengine
“Should you be considering Containers as a means to provide your business with an
advantage?”
@behemphi
@stackengine
B E S T E V E R D E VO P S T O O L : AU D I B L E . C O M• 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)