Keep calms and Docker On ... Innotech

Post on 16-Jul-2015

7.644 views 1 download

Tags:

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

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)