stackengine demo - docker austin

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

Upload: boyd-hemphill

Post on 09-Jul-2015

4.548 views

Category:

Technology


1 download

DESCRIPTION

StackEngine describes the problems of running containerized applications in production and the solutions it is offering.

TRANSCRIPT

Page 1: StackEngine Demo - Docker Austin

Managing Docker Applications in Production

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

Page 2: StackEngine Demo - Docker Austin

History - Boyd

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

Page 3: StackEngine Demo - Docker Austin

History - Boyd

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

Started Austin DevOps In 2012

Page 4: StackEngine Demo - Docker Austin

History - Boyd

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 - Docker Austin

History - Boyd

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 - Docker Austin

History - BoydOracle 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.

Working on the first Container Days Austin for late Feb

Page 7: StackEngine Demo - Docker Austin

History - Boyd

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.

Working with Docker for the first Docker Days Austin

Keep an eye on @stackengine to see if we can make it happen!

Page 8: StackEngine Demo - Docker Austin

History -StackEngine

Started in May 2014 to address challenges facing Docker adopters

Page 9: StackEngine Demo - Docker Austin

History -StackEngine

Started in May 2014 to address challenges facing Docker adopters

Funding announcement October

Page 10: StackEngine Demo - Docker Austin

History -StackEngine

Started in May 2014 to address challenges facing Docker adopters

Funding announcement October

Currently in private beta

Page 11: StackEngine Demo - Docker Austin

History -StackEngine

Started in May 2014 to address challenges facing Docker adopters

Funding announcement October

Currently in private beta

[email protected]

Page 12: StackEngine Demo - Docker Austin

Common Ground

Page 13: StackEngine Demo - Docker Austin

What is The Goal of Your

Company?

Page 14: StackEngine Demo - Docker Austin

What is The Goal of Your

Company?Make Money!

Page 15: StackEngine Demo - Docker Austin

So … What is DevOps?

Page 16: StackEngine Demo - Docker Austin

Is DevOps a Process?

Page 17: StackEngine Demo - Docker Austin

Is it an intersection of overlapping concerns?

Page 18: StackEngine Demo - Docker Austin

Is DevOps a Culture?

Page 19: StackEngine Demo - Docker Austin

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 - Docker Austin

Presentation Prelude

Describe the problems StackEngine sees in using containers in production.

Page 21: StackEngine Demo - Docker Austin

The Ideal Containerized Application

Page 22: StackEngine Demo - Docker Austin

Netflix (unicorn)Service Oriented Architecture

Page 23: StackEngine Demo - Docker Austin

Benefits

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

Page 24: StackEngine Demo - Docker Austin

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 25: StackEngine Demo - Docker Austin

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 26: StackEngine Demo - Docker Austin

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 27: StackEngine Demo - Docker Austin

Benefits

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

Page 28: StackEngine Demo - Docker Austin

Today’s Docker Reality

Page 29: StackEngine Demo - Docker Austin

Concerns

This is still very early days for Docker

Page 30: StackEngine Demo - Docker Austin

Concerns

This is still very early days for Docker

It is even earlier for Rocket

Page 31: StackEngine Demo - Docker Austin

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 32: StackEngine Demo - Docker Austin

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 33: StackEngine Demo - Docker Austin

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 34: StackEngine Demo - Docker Austin

Concerns

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

Page 35: StackEngine Demo - Docker Austin

Concerns

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

Laundry Ops: http://stackengine.com/laundryops-practical-devops-at-home/

Page 36: StackEngine Demo - Docker Austin

SDLC

Developers are moving forward

Page 37: StackEngine Demo - Docker Austin

SDLC

Developers are moving forward

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

Page 38: StackEngine Demo - Docker Austin

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 39: StackEngine Demo - Docker Austin

xkcd … er … SDLCOperations panics - no tools or instrumentation

Page 40: StackEngine Demo - Docker Austin

SysAdminDon’t want this guy panicking

Page 41: StackEngine Demo - Docker Austin

Information Architecture

Problem Description

Page 42: StackEngine Demo - Docker Austin

Information Architecture

Problem Description

StackEngine’s work on that problem today

Page 43: StackEngine Demo - Docker Austin

Information Architecture

Problem Description

StackEngine’s work on that problem today

StackEngine’s planned work on that problem for the future

Page 44: StackEngine Demo - Docker Austin

Problem #1 The Final Mile

Page 45: StackEngine Demo - Docker Austin

The Final Mile

Developer uses containers

Page 46: StackEngine Demo - Docker Austin

The Final Mile

Developer uses containers

System is built and images are produced

Page 47: StackEngine Demo - Docker Austin

The Final Mile

Developer uses containers

System is built and images are produced

Images stored in a private registry

Page 48: StackEngine Demo - Docker Austin

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 49: StackEngine Demo - Docker Austin

The Final Mile

So we build a manual solution depending on human behavior

Page 50: StackEngine Demo - Docker Austin

The Final Mile

So we build a manual solution depending on human behavior

Someone builds a tool

Page 51: StackEngine Demo - Docker Austin

Crossing the Final Mile - Today

A Simple Solution to Deployment

Page 52: StackEngine Demo - Docker Austin

Deploy My Stuff - TodayCreate a component to represent your registry

Page 53: StackEngine Demo - Docker Austin

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

Page 54: StackEngine Demo - Docker Austin

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

Page 55: StackEngine Demo - Docker Austin

Deploy My Stuff - TodayMagic happens.

Page 56: StackEngine Demo - Docker Austin

Deploy My Stuff - TodayLife is good

Page 57: StackEngine Demo - Docker Austin

Crossing the Final Mile - Future

Heterogeneous, Policy Driven Deployment

Page 58: StackEngine Demo - Docker Austin

Deploy My Stuff - Future

Support other container types

Page 59: StackEngine Demo - Docker Austin

Deploy My Stuff - Future

Support other container types

Policy Based Deployment

Page 60: StackEngine Demo - Docker Austin

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

Page 61: StackEngine Demo - Docker Austin
Page 62: StackEngine Demo - Docker Austin

Problem #2 Container Sprawl

Page 63: StackEngine Demo - Docker Austin

Container Sprawl

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

Page 64: StackEngine Demo - Docker Austin

Container Sprawl

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 65: StackEngine Demo - Docker Austin

Container SprawlFirst 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 66: StackEngine Demo - Docker Austin

Container SprawlFirst 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 67: StackEngine Demo - Docker Austin

Container Sprawl

Containers, Dockerfiles, and Images on VMs

Page 68: StackEngine Demo - Docker Austin

Container Sprawl

Containers, Dockerfiles, and Images on VMs

VMs on physical hardware located in availability zones

Page 69: StackEngine Demo - Docker Austin

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 70: StackEngine Demo - Docker Austin

My Head HurtsContainer Sprawl

Page 71: StackEngine Demo - Docker Austin

Artifact Inventory - Today

A drillable and searchable view of infrastructure

Page 72: StackEngine Demo - Docker Austin

Where’s My Stuff - TodayHosts

Page 73: StackEngine Demo - Docker Austin

Where’s My Stuff - TodayImages

Page 74: StackEngine Demo - Docker Austin

Where’s My Stuff - TodayContainers

Page 75: StackEngine Demo - Docker Austin

Where’s My Stuff - TodayFilters and Build Actions

Page 76: StackEngine Demo - Docker Austin

Where’s My Stuff - TodaySearch

Page 77: StackEngine Demo - Docker Austin

Artifact Inventory - Future

Geographically aware physical topology

Page 78: StackEngine Demo - Docker Austin

Where’s My Stuff - Future

Geographically drillable physical topologies

Page 79: StackEngine Demo - Docker Austin

Where’s My Stuff - Future

Geographically drillable physical topologies

Policy based inventory levels (pull not push)

Page 80: StackEngine Demo - Docker Austin

Where’s My Stuff - FutureHey, why are there two purple stripes?

Page 81: StackEngine Demo - Docker Austin
Page 82: StackEngine Demo - Docker Austin

Problem #3 Telemetry

Page 83: StackEngine Demo - Docker Austin

Telemetry

What does monitoring a containerized app look like?

Page 84: StackEngine Demo - Docker Austin

Telemetry

What does monitoring a containerized app look like?

http://goo.gl/VkAQo4

Page 85: StackEngine Demo - Docker Austin

Telemetry

What does monitoring a containerized app look like?

http://goo.gl/VkAQo4

What does log aggregation look like?

Page 86: StackEngine Demo - Docker Austin

Telemetry

What does monitoring a containerized app look like?

http://goo.gl/VkAQo4

What does log aggregation look like?

http://goo.gl/uNPe9P

Page 87: StackEngine Demo - Docker Austin

Decision Dimensions - TodayHost level metrics to help you manage

running containers.

Page 88: StackEngine Demo - Docker Austin

What’s my stuff doing - Today

I have this much stuff.

Page 89: StackEngine Demo - Docker Austin

What’s my stuff doing - Today

My hosts are not yet stuffed.

Page 90: StackEngine Demo - Docker Austin

What’s my stuff doing - Today

The stuffing in a host is as expected.

Page 91: StackEngine Demo - Docker Austin

What’s my stuff doing - Today

A bit of the stuffing is doing what it should.

Page 92: StackEngine Demo - Docker Austin

What’s my stuff doing - Today

What is the stuff in this image?

Page 93: StackEngine Demo - Docker Austin

What’s my stuff doing - Today

How do I visualize the stuff in an image?

Page 94: StackEngine Demo - Docker Austin

Decision Dimensions - Future

There is never too much information about run time.

Page 95: StackEngine Demo - Docker Austin

What’s My Stuff Doing - Future

Improve Host Metrics

Page 96: StackEngine Demo - Docker Austin

What’s My Stuff Doing - Future

Improve Host Metrics

Improve Image Metrics

Page 97: StackEngine Demo - Docker Austin

What’s My Stuff Doing - Future

Improve Host Metrics

Improve Image Metrics

Add Container Metrics

Page 98: StackEngine Demo - Docker Austin

What’s My Stuff Doing - Future

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

Page 99: StackEngine Demo - Docker Austin
Page 100: StackEngine Demo - Docker Austin

Problem #4 Centralized Control Plane

Page 101: StackEngine Demo - Docker Austin

Centralized Control Plane

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

Page 102: StackEngine Demo - Docker Austin

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 103: StackEngine Demo - Docker Austin

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 104: StackEngine Demo - Docker Austin

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 105: StackEngine Demo - Docker Austin

Actions - TodayPreventative, automatic, deterministic

Page 106: StackEngine Demo - Docker Austin

Make Stuff do Stuff - Today

Manage Images

Page 107: StackEngine Demo - Docker Austin

Make Stuff do Stuff - Today

Manage Containers

Page 108: StackEngine Demo - Docker Austin

Actions - FutureInitialization, Taxonomy, Corrective

Page 109: StackEngine Demo - Docker Austin

Make Stuff do Stuff - Future

Policy based actions by the Controller

Page 110: StackEngine Demo - Docker Austin

Make Stuff do Stuff - Future

Policy based actions by the Controller

Powerful Control Plane Taxonomy (Tagging)

Page 111: StackEngine Demo - Docker Austin

Make Stuff do Stuff - Future

Policy based actions by the Controller

Powerful Control Plane Taxonomy (Tagging)

Ants not Cattle

Page 112: StackEngine Demo - Docker Austin

Make Stuff do Stuff - Future

Blow really hard and make the bunnies kiss.

Page 113: StackEngine Demo - Docker Austin
Page 114: StackEngine Demo - Docker Austin

Problem #5 Heterogeneous Service

Providers

Page 115: StackEngine Demo - Docker Austin

Heterogeneous Service Providers

Containers live on services (IaaS, PaaS)

Page 116: StackEngine Demo - Docker Austin

Heterogeneous Service Providers

Containers live on services (IaaS, PaaS)

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

Page 117: StackEngine Demo - Docker Austin

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)

Page 118: StackEngine Demo - Docker Austin

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)

Persistent Data stores present their own unique problem as a service

Page 119: StackEngine Demo - Docker Austin

Components - Today

Abstractions for Control Plane Operation

Page 120: StackEngine Demo - Docker Austin

Building Apps with My StuffComponents are infrastructure service abstractions

Page 121: StackEngine Demo - Docker Austin

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

physical infrastructure.

Page 122: StackEngine Demo - Docker Austin

Building Apps with My Stuff

Start the db

Page 123: StackEngine Demo - Docker Austin

Building Apps with My Stuff

Start the web server

Page 124: StackEngine Demo - Docker Austin

Building Apps with My Stuff

Run the application server

Page 125: StackEngine Demo - Docker Austin

Building Apps with My Stuff

Run the Cache

Page 126: StackEngine Demo - Docker Austin

Components - Future

More and varied components

Page 127: StackEngine Demo - Docker Austin

Building Apps with My Stuff - Future

More component types is like having more varied Lego bricks

Page 128: StackEngine Demo - Docker Austin

Building Apps with My Stuff - Future

More component types is like having more varied Lego bricks

Pluggable component architecture

Page 129: StackEngine Demo - Docker Austin

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

Page 130: StackEngine Demo - Docker Austin
Page 131: StackEngine Demo - Docker Austin

Roadmap

Page 132: StackEngine Demo - Docker Austin

Problem #6 Service Discovery

Page 133: StackEngine Demo - Docker Austin

Service Discovery

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

Page 134: StackEngine Demo - Docker Austin

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 135: StackEngine Demo - Docker Austin

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 136: StackEngine Demo - Docker Austin

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 137: StackEngine Demo - Docker Austin

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 138: StackEngine Demo - Docker Austin

Roadmap

User Management

Page 139: StackEngine Demo - Docker Austin

Roadmap

User Management

Addition of new Components

Page 140: StackEngine Demo - Docker Austin

Roadmap

User Management

Addition of new Components

Better telemetry

Page 141: StackEngine Demo - Docker Austin

Roadmap

User Management

Addition of new Components

Better telemetry

Scheduling

Page 142: StackEngine Demo - Docker Austin

Roadmap

User Management

Addition of new Components

Better telemetry

Scheduling

A/B Deployment support

Page 143: StackEngine Demo - Docker Austin

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

Page 144: StackEngine Demo - Docker Austin

Live Product DemoAl Gore and his gremlins willing

Page 145: StackEngine Demo - Docker Austin

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

Thank You for Your Time and Comments.