StackEngine Demo - Boston

152
Managing Docker Applications in Production Boyd E. Hemphill - @behemphi Mike Raab - @stackengine

Transcript of StackEngine Demo - Boston

Page 1: StackEngine Demo - Boston

Managing Docker Applications in Production

Boyd E. Hemphill - @behemphi Mike Raab - @stackengine

Page 2: StackEngine Demo - Boston

Background

Oracle Developer, MySQL DBA, PHP Developer, System Architect, DevOps Director (snickering encouraged), Evangelist

Page 3: StackEngine Demo - Boston

Background

Oracle Developer, MySQL DBA, PHP Developer, System Architect, DevOps Director (snickering encouraged)

Started Austin DevOps In 2012

Page 4: StackEngine Demo - Boston

Background

Oracle Developer, MySQL DBA, PHP Developer, System Architect, DevOps Director (snickering encouraged)

Started Austin DevOps In 2012

Co-Organizer of DevOps Days Austin

Page 5: StackEngine Demo - Boston

Background

Oracle Developer, MySQL DBA, PHP Developer, System Architect, DevOps Director (snickering encouraged)

Started Austin DevOps In 2012

Co-Organizer of DevOps Days Austin

Became involved in Docker Austin in August.

Page 6: StackEngine Demo - Boston

BackgroundOracle Developer, MySQL DBA, PHP Developer, System Architect, DevOps Director (snickering encouraged)

Started Austin DevOps In 2012

Co-Organizer of DevOps Days Austin

Became involved in Docker Austin in August.

Launching the First Ever Container Days in Austin - http://bit.ly/1CBppRV

Page 7: StackEngine Demo - Boston

History -StackEngine

Started in May 2014 to address challenges facing Docker adopters

Page 8: StackEngine Demo - Boston

History -StackEngine

Started in May 2014 to address challenges facing Docker adopters

Funding announcement October

Page 9: StackEngine Demo - Boston

History -StackEngine

Started in May 2014 to address challenges facing Docker adopters

Funding announcement October

http:/stackengine.com/product/

Page 10: StackEngine Demo - Boston

Common Ground

Page 11: StackEngine Demo - Boston

Common Ground Business

Page 12: StackEngine Demo - Boston

What is The Goal of Your

Company?

Page 13: StackEngine Demo - Boston

What is The Goal of Your

Company?Make Money!

Page 14: StackEngine Demo - Boston

So … What is DevOps?

Page 15: StackEngine Demo - Boston

Common Ground Technology

Page 16: StackEngine Demo - Boston

Is DevOps a Process?

Page 17: StackEngine Demo - Boston

Is it an intersection of overlapping concerns?

Page 18: StackEngine Demo - Boston

Is DevOps a Culture?

Page 19: StackEngine Demo - Boston

DevOps:

DevOps is the way in which a technology organization embeds itself in a business to the benefit of that business.

Page 20: StackEngine Demo - Boston

The Ideal Containerized Application

Page 21: StackEngine Demo - Boston

NetflixService Oriented Architecture

Page 22: StackEngine Demo - Boston

UnicornHuge, scary, difficult to reason about

Page 23: StackEngine Demo - Boston

Pantheon A Grokkable Unicorn

Article on Container Use: http://bit.ly/15a2UIW

Page 24: StackEngine Demo - Boston

Pantheon A Grokkable Unicorn

Article on Container Use: http://bit.ly/15a2UIW

Note the date is October 2013

Page 25: StackEngine Demo - Boston

Pantheon A Grokkable Unicorn

Article on Container Use: http://bit.ly/15a2UIW

Note the date is October 2013

Presentation Containers v. VMs: http://slidesha.re/1kMsSY9

Page 26: StackEngine Demo - Boston

Pantheon A Grokkable Unicorn

Article on Container Use: http://bit.ly/15a2UIW

Note the date is October 2013

Presentation Containers v. VMs: http://slidesha.re/1kMsSY9

Video: http://bit.ly/1L3jjA5

Page 27: StackEngine Demo - Boston

Benefits

Page 28: StackEngine Demo - Boston

Benefits

Feature velocity - Increase developer productivity using containers to model application topology

Page 29: StackEngine Demo - Boston

Benefits

Feature velocity - Increase developer productivity using containers to model application topology

Innovation velocity - Decreased build and test times make more time for trying that next great idea!

Page 30: StackEngine Demo - Boston

BenefitsFeature velocity - Increase developer productivity using containers to model application topology

Innovation velocity - Decreased build and test times make more time for trying that next great idea!

Density - Reduce Costs

Page 31: StackEngine Demo - Boston

Benefits

Feature velocity - Increase developer productivity using containers to model application topology

Innovation velocity - Decreased build and test times make more time for trying that next great idea!

Density - Reduce Costs

Separation of Concerns - “Code to an interface” moves to the infrastructure level

Page 32: StackEngine Demo - Boston

Benefits

Taken together a company that can get to the end state has a significant and lasting competitive advantage

Page 33: StackEngine Demo - Boston

Today’s Docker Reality

Page 34: StackEngine Demo - Boston

Concerns

Page 35: StackEngine Demo - Boston

Concerns

This is still very early days for Docker

Page 36: StackEngine Demo - Boston

Concerns

This is still very early days for Docker

It is even earlier for Rocket

Page 37: StackEngine Demo - Boston

Concerns

This is still very early days for Docker

It is even earlier for Rocket

Tools to support containerized applications are immature or do not exist

Page 38: StackEngine Demo - Boston

Concerns

This is still very early days for Docker

It is even earlier for Rocket

Tools to support containerized applications are immature or do not exist

Service oriented architecture is hard

Page 39: StackEngine Demo - Boston

ConcernsThis is still very early days for Docker

It is even earlier for Rocket

Tools to support containerized applications are immature or do not exist

Service oriented architecture is hard

Increasing developer throughput is only a local optima, thus a false economy

Page 40: StackEngine Demo - Boston

Concerns

Docker adoption is the first major DevOps initiative not driven by Ops.

Page 41: StackEngine Demo - Boston

ConcernsDocker adoption is the first major DevOps initiative not driven by Ops.

Laundry Ops: http://bit.ly/1E2gMUS

Page 42: StackEngine Demo - Boston

Software Delivery Life Cycle

Page 43: StackEngine Demo - Boston

SDLC

Developers are moving forward

Page 44: StackEngine Demo - Boston

SDLC

Developers are moving forward

QA sees production modeling, large test grids, more effective integration testing

Page 45: StackEngine Demo - Boston

SDLC

Developers are moving forward

QA sees production modeling, large test grids, more effective integration testing

Build engineers see parallelized build grids for faster feedback and better build quality

Page 46: StackEngine Demo - Boston

xkcd … er … SDLCOperations panics - no tools or instrumentation

Page 47: StackEngine Demo - Boston

SysAdminDon’t want this guy panicking

Page 48: StackEngine Demo - Boston

Information Architecture

Problem Description

Page 49: StackEngine Demo - Boston

Information Architecture

Problem Description

StackEngine’s work on that problem today

Page 50: StackEngine Demo - Boston

Information Architecture

Problem Description

StackEngine’s work on that problem today

StackEngine’s planned work on that problem for the future

Page 51: StackEngine Demo - Boston

Problem #1 The Final Mile

Page 52: StackEngine Demo - Boston

The Final Mile

Developer uses containers

Page 53: StackEngine Demo - Boston

The Final Mile

Developer uses containers

System is built and images are produced

Page 54: StackEngine Demo - Boston

The Final Mile

Developer uses containers

System is built and images are produced

Images stored in a private registry

Page 55: StackEngine Demo - Boston

The Final Mile

Developer uses containers

System is built and images are produced

Images stored in a private registry

Now we need to deploy to a QA environment

Page 56: StackEngine Demo - Boston

The Final Mile

So we build a manual solution depending on human behavior

Page 57: StackEngine Demo - Boston

The Final Mile

So we build a manual solution depending on human behavior

Someone builds a tool

Page 58: StackEngine Demo - Boston

Crossing the Final Mile - Today

A Simple Solution to Deployment

Page 59: StackEngine Demo - Boston

Deploy My Stuff - TodayCreate a component to represent your registry

Page 60: StackEngine Demo - Boston

Deploy My Stuff - TodayCreate a component to represent the image you would like to run

Page 61: StackEngine Demo - Boston

Deploy My Stuff - TodayDistribute that image and run it on the hosts in your Mesh.

Page 62: StackEngine Demo - Boston

Deploy My Stuff - TodayMagic happens.

Page 63: StackEngine Demo - Boston

Deploy My Stuff - TodayLife is good

Page 64: StackEngine Demo - Boston

Crossing the Final Mile - Future

Heterogeneous, Policy Driven Deployment

Page 65: StackEngine Demo - Boston

Deploy My Stuff - Future

Support other container types

Page 66: StackEngine Demo - Boston

Deploy My Stuff - Future

Support other container types

Policy Based Deployment

Page 67: StackEngine Demo - Boston

Deploy My Stuff - FutureWe should put another bunny cloud over there …

Page 68: StackEngine Demo - Boston

Problem #2 Container Sprawl

Page 69: StackEngine Demo - Boston

Ants not Cattle

First there was VMware and suddenly a large corps departments could easily spin up environments

Page 70: StackEngine Demo - Boston

Ants not Cattle

First there was VMware and suddenly a large corps departments could easily spin up environments

Then there was the cloud and developers could completely circumvent ops

Page 71: StackEngine Demo - Boston

Ants not CattleFirst there was VMware and suddenly a large corps departments could easily spin up environments

Then there was the cloud and developers could complete circumvent Ops

Now there is Docker and Developers are creating numerous abstractions that are not managed like traditional VMs

Page 72: StackEngine Demo - Boston

Ants not CattleFirst there was VMware and suddenly a large corps departments could easily spin up environments

Then there was the cloud and developers could complete circumvent Ops

Now there is Docker and Developers are creating numerous abstractions that are not managed like traditional VMs

Rocket potentially segments the Market and means different performance, security, runtime and management characteristics

Page 73: StackEngine Demo - Boston

Container Sprawl

Containers, Dockerfiles, and Images on VMs

Page 74: StackEngine Demo - Boston

Container Sprawl

Containers, Dockerfiles, and Images on VMs

VMs on physical hardware located in availability zones

Page 75: StackEngine Demo - Boston

Container Sprawl

Containers, Dockerfiles, and Images on VMs

VMs on physical hardware hardware located in availability zones

AZs in data centers in geographic regions.

Page 76: StackEngine Demo - Boston

My Head HurtsContainer Sprawl

Page 77: StackEngine Demo - Boston

Component Inventory - TodayA drillable and searchable view of

infrastructure

Page 78: StackEngine Demo - Boston

Component Inventory - Today

Hosts

Page 79: StackEngine Demo - Boston

Component Inventory - Today

Images

Page 80: StackEngine Demo - Boston

Component Inventory - Today

Containers

Page 81: StackEngine Demo - Boston

Component Inventory - Today

Filters and Build Actions

Page 82: StackEngine Demo - Boston

Component Inventory - Today

Search

Page 83: StackEngine Demo - Boston

Component Inventory - Future

Geographically aware physical topology

Page 84: StackEngine Demo - Boston

Component Inventory - Future

Geographically drillable physical topologies

Page 85: StackEngine Demo - Boston

Component Inventory - Future

Geographically drillable physical topologies

Policy based inventory levels (pull not push)

Page 86: StackEngine Demo - Boston

Component Inventory - Future

Hey, why are there two purple stripes?

Page 87: StackEngine Demo - Boston

Problem #3 Telemetry

Page 88: StackEngine Demo - Boston

Telemetry

What does monitoring a containerized app look like?

Page 89: StackEngine Demo - Boston

Telemetry

What does monitoring a containerized app look like?

http://goo.gl/VkAQo4

Page 90: StackEngine Demo - Boston

Telemetry

What does monitoring a containerized app look like?

http://goo.gl/VkAQo4

What does log aggregation look like?

Page 91: StackEngine Demo - Boston

Telemetry

What does monitoring a containerized app look like?

http://goo.gl/VkAQo4

What does log aggregation look like?

http://goo.gl/uNPe9P

Page 92: StackEngine Demo - Boston

TelemetryWhat does monitoring a containerized app look like?

http://goo.gl/VkAQo4

What does log aggregation look like?

http://goo.gl/uNPe9P

Good telemetry (monitoring and tests) eliminates the need for discussion about the content of an image!

Page 93: StackEngine Demo - Boston

Decision Dimensions - TodayHost level metrics to help you manage

running containers.

Page 94: StackEngine Demo - Boston

What’s my stuff doing - Today

I have this much stuff.

Page 95: StackEngine Demo - Boston

What’s my stuff doing - Today

My hosts are not yet stuffed.

Page 96: StackEngine Demo - Boston

What’s my stuff doing - Today

The stuffing on a host is as expected.

Page 97: StackEngine Demo - Boston

What’s my stuff doing - Today

A bit of the stuffing is doing what it should.

Page 98: StackEngine Demo - Boston

What’s my stuff doing - Today

What is the stuff in this image?

Page 99: StackEngine Demo - Boston

What’s my stuff doing - Today

How do I visualize the stuff in an image?

Page 100: StackEngine Demo - Boston

YOU DID WHAT? WHEN?

Stuff is broken? What just changed?

Page 101: StackEngine Demo - Boston

Enable the Important Conversation

What were you thinking??!!

Page 102: StackEngine Demo - Boston

Decision Dimensions - Future

There is never too much information about run time.

Page 103: StackEngine Demo - Boston

Component Performance - Future

Improve Host Metrics

Page 104: StackEngine Demo - Boston

Component Performance - Future

Improve Host Metrics

Improve Image Metrics

Page 105: StackEngine Demo - Boston

Component Performance - Future

Improve Host Metrics

Improve Image Metrics

Add Container Metrics

Page 106: StackEngine Demo - Boston

Component Performance - Future

Ahh … look … the bunny on the left is happy!

Page 107: StackEngine Demo - Boston
Page 108: StackEngine Demo - Boston

Problem #4 Centralized Control Plane

Page 109: StackEngine Demo - Boston

Centralized Control Plane

The ability to act upon a system from a single point of entry

Page 110: StackEngine Demo - Boston

Centralized Control Plane

The ability to act upon a system from a single point of entry

Actions should happen next to the information causing the action

Page 111: StackEngine Demo - Boston

Centralized Control Plane

The ability to act upon a system from a single point of entry

Actions should happen next to the information causing the action

Actions should happen within the context of inventory

Page 112: StackEngine Demo - Boston

Centralized Control Plane

The ability to act upon a system from a single point of entry

Actions should happen next to the information causing the action

Actions should happen within the context of inventory

UI, API, CLI

Page 113: StackEngine Demo - Boston

Actions - TodayPreventative, automatic, deterministic

Page 114: StackEngine Demo - Boston

Make Stuff do Stuff - Today

Manage Images

Page 115: StackEngine Demo - Boston

Make Stuff do Stuff - Today

Manage Containers

Page 116: StackEngine Demo - Boston

Actions - FutureInitialization, Taxonomy, Corrective

Page 117: StackEngine Demo - Boston

Make Stuff do Stuff - Future

Policy based actions by the Controller

Page 118: StackEngine Demo - Boston

Make Stuff do Stuff - Future

Policy based actions by the Controller

Powerful Control Plane Taxonomy (Tagging)

Page 119: StackEngine Demo - Boston

Make Stuff do Stuff - Future

Blow softly and make the bunnies kiss.

Page 120: StackEngine Demo - Boston
Page 121: StackEngine Demo - Boston

Problem #5 Heterogeneous Service

Providers

Page 122: StackEngine Demo - Boston

Heterogeneous Service Providers

Containers live on services (IaaS, PaaS)

Page 123: StackEngine Demo - Boston

Heterogeneous Service Providers

Containers live on services (IaaS, PaaS)

Images come from different places (Docker Hub, Quay.io)

Page 124: StackEngine Demo - Boston

Heterogeneous Service ProvidersContainers live on services (IaaS, PaaS)

Images come from different places (Docker Hub, Quay.io)

Within an IaaS service provider are other services (Databases, load balancers, queues)

Page 125: StackEngine Demo - Boston

Heterogeneous Service ProvidersContainers live on services (IaaS, PaaS)

Images come from different places (Docker Hub, Quay.io)

Within an IaaS service provider are other services (Databases, load balancers, queues)

Persistent Data stores present their own unique problem as a service

Page 126: StackEngine Demo - Boston

Components - Today

Abstractions for Control Plane Operation

Page 127: StackEngine Demo - Boston

Building Apps with My StuffComponents are infrastructure service abstractions

Page 128: StackEngine Demo - Boston

Building Apps with My StuffComponents can be arranged in logical ways to represent

physical infrastructure.

Page 129: StackEngine Demo - Boston

Building Apps with My Stuff

Start the db

Page 130: StackEngine Demo - Boston

Building Apps with My Stuff

Start the web server

Page 131: StackEngine Demo - Boston

Building Apps with My Stuff

Run the application server

Page 132: StackEngine Demo - Boston

Building Apps with My Stuff

Run the Cache

Page 133: StackEngine Demo - Boston

Components - Future

More and varied components

Page 134: StackEngine Demo - Boston

Building Apps with My Stuff - Future

More component types is like having more varied Lego bricks

Page 135: StackEngine Demo - Boston

Building Apps with My Stuff - Future

More component types is like having more varied Lego bricks

Pluggable component architecture

Page 136: StackEngine Demo - Boston

Building Apps with My StuffWhat else could we make with bunnies and rainbows?

Page 137: StackEngine Demo - Boston
Page 138: StackEngine Demo - Boston

Roadmap

Page 139: StackEngine Demo - Boston

Problem #6 Service Discovery

Page 140: StackEngine Demo - Boston

Service Discovery

Allows multiple deployments of the same service on the same host.

Page 141: StackEngine Demo - Boston

Service Discovery

Allows multiple deployments of the same service on the same host.

Containers register themselves upon startup and are found by tags rather than URI’s, fixed ports, etc.

Page 142: StackEngine Demo - Boston

Service Discovery

Allows multiple deployments of the same service on the same host.

Containers register themselves upon startup and are found by tags rather than URI’s, fixed ports, etc.

We favor something like consul with a search interface like the chef server.

Page 143: StackEngine Demo - Boston

Service DiscoveryAllows multiple deployments of the same service on the same host.

Containers register themselves upon startup and are found by tags rather than URI’s, fixed ports, etc.

We favor something like consul with a search interface like the chef server.

A step towards cattle containers instead of pet containers

Page 144: StackEngine Demo - Boston

Service DiscoveryAllows multiple deployments of the same service on the same host.

Containers register themselves upon startup and are found by tags rather than URI’s, fixed ports, etc.

We favor something like consul with a search interface like the chef server.

A step towards cattle containers instead of pet containers

Ultimate goal is “ants not cattle”

Page 145: StackEngine Demo - Boston

Roadmap

User Management

Page 146: StackEngine Demo - Boston

Roadmap

User Management

Addition of new Components

Page 147: StackEngine Demo - Boston

Roadmap

User Management

Addition of new Components

Better telemetry

Page 148: StackEngine Demo - Boston

Roadmap

User Management

Addition of new Components

Better telemetry

Scheduling

Page 149: StackEngine Demo - Boston

Roadmap

User Management

Addition of new Components

Better telemetry

Scheduling

A/B Deployment support

Page 150: StackEngine Demo - Boston

StackEngine is the StuffIt’s easier to dream with StackEngine.

Page 151: StackEngine Demo - Boston

Live Product DemoAl Gore and his gremlins willing

Page 152: StackEngine Demo - Boston

Boyd E. Hemphill - @behemphi Mike Raab - @stackengine

Thank You for Your Time and Comments.