Keep calms and Docker On ... Innotech
-
Upload
boyd-hemphill -
Category
Technology
-
view
7.644 -
download
1
Transcript of Keep calms and Docker On ... Innotech
Docker Enables DevOpsKeep C.A.L.M.S. and Docker On … Boyd E. Hemphill @behemphi
Let’s Get AcquaintedShare 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.
BackgroundOracle Developer, MySQL DBA, PHP Developer, System Architect, DevOps Director (snickering encouraged), Evangelist
Founded Austin DevOps 2012. 800+ Members.
DevOps Days Austin Organizer
BackgroundOracle 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.
BackgroundOracle 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 PerspectivePhilosophy 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 ReasoningFrom 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. ToolsVirtualization - 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 MattersWe 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 MattersWe 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 HappensGood 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 BusinessLinux Containers for Mere Mortals
Docker and DevOps
What is a Container?
A VM is a full copy of on an entire computer running as software via a hypervisor
What is a Container?
A VM is a full copy of on an entire computer running as software via a hypervisor
A container is a slice of the kernel
What is a Container?A VM is a full copy of on an entire computer running as software via a hypervisor
A container is a slice of the kernel
Executive Summary: The lack of extra layers means big efficiency savings
Docker and DevOps
Culture
Automation
Lean
Measurement
Sharing
DevOps and the Business
DevOps and the BusinessDefine an Opportunity
Discuss Benefits
Discuss Concerns
Explore Business Perspective
Available Tools
Adoptions
CultureLess 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”
AutomationFaster 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 - ToolsBuild 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 - ToolsBuild 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
MeasurementFunction, 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 - BusinessReduced 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 - AdoptionMostly production concern
Much talk, little action
Revolution not evolution
Tools for production management are hard to use (Kubernetes, Mesos)
SharingFaster 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 ThoughtLess 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 PastContainers in production are already happening.
Future Past
Pantheon/Rackspace blog: http://goo.gl/93steF
Note the date: October 7th, 2013
Future PastPantheon/Rackspace blog: http://goo.gl/93steF
Note the date: October 7th, 2013
Amazing video presentation: http://goo.gl/gRkKGN
Future PastPantheon/Rackspace blog: http://goo.gl/93steF
Note the date: October 7th, 2013
Amazing video presentation: http://goo.gl/gRkKGN
Docker makes this easier to consider in our own context
Text
Robots and UnicornsDocker makes containers available to mere mortals.
Closing ThoughtsHow 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
BusinessDeveloper 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
BusinessDeveloper 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.
DevOpsCulture - 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.
DevOpsCulture - 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.
DevOpsCulture - 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)