amplifying docker - alex heneveld
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
AMPlifying DockerDevOps London — 28 May 2014
Alex Heneveld @ahtweetin
• Deployment Patterns • Simplicity — Docker • Complexity — platforms all the way down • Simplicity — Apache Brooklyn & Cloudsoft AMP • Demo
Agenda
Patterns
Bare Metal
The Application
Patterns
Cloud Bare Metal
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker
PaaS
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker
PaaS
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker
PaaS NoSQL
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker
PaaS NoSQL Analytics
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker
PaaS NoSQL API MgmtAnalytics
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker
PaaS NoSQL API MgmtAnalytics
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker LXC
PaaS NoSQL API MgmtAnalytics
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker LXC Waratek
PaaS NoSQL API MgmtAnalytics
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker LXC Waratek Mesos
PaaS NoSQL API MgmtAnalytics
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker LXC Waratek Mesos
PaaS NoSQL API MgmtAnalytics
The Application
Patterns
Cloud Bare Metal
Software Defined{Compute,Storage,Networking}
Real ThingsThat You Plug In
Docker LXC Waratek Mesos
PaaS NoSQL API MgmtAnalytics
The Application
Tools
Tools
Model, Monitor, and Manage:Portable Application Blueprints
Tools
Tools
Tools
The Application
Tools
The Application
IaaS
Tools
IaaS
OpenStack CloudStack
AWS, GCE, SL
Fixed IP
Networking
The Application
Tools
IaaS
Bash Chef Salt
Images
OpenStack CloudStack
AWS, GCE, SL
Fixed IP
Networking
The Application
Tools
IaaS
Graphite / Collectd Logstash / Elasticsearch
Bash Chef Salt
Images
OpenStack CloudStack
AWS, GCE, SL
Fixed IP
Networking
The Application
Policies
Tools
IaaS
Graphite / Collectd Logstash / Elasticsearch
Bash Chef Salt
Images
OpenStack CloudStack
AWS, GCE, SL
Fixed IP
Networking
The Application
Policies
Docker LXC Waratek Mesos
PaaS NoSQL API MgmtAnalytics
Tools
The Application
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
Demo
Demo
Demo
Demo
Demo
Demo
Demo
Demo
Demo
Demo
Demo
Demo
Demo
Demo
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
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
Demo
Demo
To Learn More
Alex Heneveld @ahtweetin
cloudsoftcorp.com
brooklyn.io
github.com/cloudsoft/ brooklyn-docker
github.com/ brooklyncentral/