Amplifying Docker - Alex Heneveld

48
AMPlifying Docker DevOps London — 28 May 2014 Alex Heneveld @ahtweetin

description

In this talk we look at the challenges of taking docker and using it as the basis for a cloud platform. We highlight the work done by one of our own Cloudsoft engineers Andrea Turli who has contributed an Apache jclouds provider for Docker and integrated this with the open source project Brooklyn. Andrea has written about this in a recent blog post AMP for Docker and so using this as a starting point we show how we are building on this to create a lightweight dynamic Docker cloud and compare and contrast this with work we are doing with our latest partner Waratek to help them create a similar lightweight dynamic Java cloud using their Java application container technology.

Transcript of Amplifying Docker - Alex Heneveld

Page 1: Amplifying Docker - Alex Heneveld

AMPlifying DockerDevOps London — 28 May 2014

Alex Heneveld @ahtweetin

Page 2: Amplifying Docker - Alex Heneveld

• Deployment Patterns • Simplicity — Docker • Complexity — platforms all the way down • Simplicity — Apache Brooklyn & Cloudsoft AMP • Demo

Agenda

Page 3: Amplifying Docker - Alex Heneveld

Patterns

Bare Metal

The Application

Page 4: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

The Application

Page 5: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

The Application

Page 6: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker

The Application

Page 7: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker

PaaS

The Application

Page 8: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker

PaaS

The Application

Page 9: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker

PaaS NoSQL

The Application

Page 10: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker

PaaS NoSQL Analytics

The Application

Page 11: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker

PaaS NoSQL API MgmtAnalytics

The Application

Page 12: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker

PaaS NoSQL API MgmtAnalytics

The Application

Page 13: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker LXC

PaaS NoSQL API MgmtAnalytics

The Application

Page 14: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker LXC Waratek

PaaS NoSQL API MgmtAnalytics

The Application

Page 15: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker LXC Waratek Mesos

PaaS NoSQL API MgmtAnalytics

The Application

Page 16: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker LXC Waratek Mesos

PaaS NoSQL API MgmtAnalytics

The Application

Page 17: Amplifying Docker - Alex Heneveld

Patterns

Cloud Bare Metal

Software Defined{Compute,Storage,Networking}

Real ThingsThat You Plug In

Docker LXC Waratek Mesos

PaaS NoSQL API MgmtAnalytics

The Application

Page 18: Amplifying Docker - Alex Heneveld

Tools

Page 19: Amplifying Docker - Alex Heneveld

Tools

Model, Monitor, and Manage:Portable Application Blueprints

Page 20: Amplifying Docker - Alex Heneveld

Tools

Page 21: Amplifying Docker - Alex Heneveld

Tools

Page 22: Amplifying Docker - Alex Heneveld

Tools

The Application

Page 23: Amplifying Docker - Alex Heneveld

Tools

The Application

IaaS

Page 24: Amplifying Docker - Alex Heneveld

Tools

IaaS

OpenStack CloudStack

AWS, GCE, SL

Fixed IP

Networking

The Application

Page 25: Amplifying Docker - Alex Heneveld

Tools

IaaS

Bash Chef Salt

Images

OpenStack CloudStack

AWS, GCE, SL

Fixed IP

Networking

The Application

Page 26: Amplifying Docker - Alex Heneveld

Tools

IaaS

Graphite / Collectd Logstash / Elasticsearch

Bash Chef Salt

Images

OpenStack CloudStack

AWS, GCE, SL

Fixed IP

Networking

The Application

Page 27: Amplifying Docker - Alex Heneveld

Policies

Tools

IaaS

Graphite / Collectd Logstash / Elasticsearch

Bash Chef Salt

Images

OpenStack CloudStack

AWS, GCE, SL

Fixed IP

Networking

The Application

Page 28: Amplifying Docker - Alex Heneveld

Policies

Docker LXC Waratek Mesos

PaaS NoSQL API MgmtAnalytics

Tools

The Application

Page 29: Amplifying Docker - Alex Heneveld

Policies

Docker LXC Waratek Mesos

PaaS NoSQL API MgmtAnalytics

Tools

The Application

Graphite / Collectd / statsd !Logstash / Elasticsearch

Bash Chef Salt

Images

OpenStack CloudStack

AWS, GCE, SL

Fixed IP

Networking

Page 30: Amplifying Docker - Alex Heneveld

Demo

Page 31: Amplifying Docker - Alex Heneveld

Demo

Page 32: Amplifying Docker - Alex Heneveld

Demo

Page 33: Amplifying Docker - Alex Heneveld

Demo

Page 34: Amplifying Docker - Alex Heneveld

Demo

Page 35: Amplifying Docker - Alex Heneveld

Demo

Page 36: Amplifying Docker - Alex Heneveld

Demo

Page 37: Amplifying Docker - Alex Heneveld

Demo

Page 38: Amplifying Docker - Alex Heneveld

Demo

Page 39: Amplifying Docker - Alex Heneveld

Demo

Page 40: Amplifying Docker - Alex Heneveld

Demo

Page 41: Amplifying Docker - Alex Heneveld

Demo

Page 42: Amplifying Docker - Alex Heneveld

Demo

Page 43: Amplifying Docker - Alex Heneveld

Demo

Page 44: Amplifying Docker - Alex Heneveld

name: MyWebClusterservices:- type: WebAppCluster brooklyn.config: wars.root: hello-db.war http.port: 8080+ java.sysprops: db.url: $brooklyn:component("db"). attributeWhenReady(“database.url") policies: - type: AutoScaler sensor: webapp.reqs.sec range: [100,200]- type: MySqlNode id: db brooklyn.config: creation.script: hello-db.sql!location: my-docker-cloud

Demo

Page 45: Amplifying Docker - Alex Heneveld

name: cassandra-cluster-app!services:- type: brooklyn.entity.nosql.cassandra.CassandraCluster name: Cassandra Cluster brooklyn.config: cluster.initial.size: 5 cluster.initial.quorumSize: 3 provisioning.properties: minCores: 4 minRam: 8192!location: softlayer:sjc01

Demo

Page 46: Amplifying Docker - Alex Heneveld

Demo

Page 47: Amplifying Docker - Alex Heneveld

Demo

Page 48: Amplifying Docker - Alex Heneveld

To Learn More

Alex Heneveld @ahtweetin

cloudsoftcorp.com

brooklyn.io

github.com/cloudsoft/ brooklyn-docker

github.com/ brooklyncentral/