clocker evolution
DESCRIPTION
'Clocker Evolution' talk give at SVDevOps Meetup in September 2014TRANSCRIPT
Clocker Evolu,on
Andrew Kennedy, SVDevOps, 09 September 2014
Introduc>on • Andrew Kennedy
– CloudsoA – SoAware Engineer – Open Source and Java – Cloud Technologies
• Overview – Docker – Brooklyn – Clocker
Docker • Popular – Huge Ecosystem – Growing
• Some Pain Points – Networking – Orchestra>on – Applica>ons
Docker
Brooklyn • Brooklyn
– Applica>on Management PlaPorm – Autonomic Compu>ng
• Applica>on Blueprint – Services (En>>es) – Configura>on – ATributes (Sensors) – Ac>ons (Effectors)
Brooklyn • Deploy
– Provisioning – Download – Install – Configure
• Manage – ATributes – Policies – Ac>ons
Brooklyn Blueprint id: nodejs-‐hello-‐world-‐application name: "Node.JS Hello World Application" origin: "https://github.com/grkvlt/node-‐hello-‐world.git/" locations: -‐ jclouds:softlayer:ams01 services: -‐ serviceType: brooklyn.entity.webapp.nodejs.NodeJsWebAppService id: nodejs name: "Node.JS" brooklyn.config: gitRepoUrl: "https://github.com/grkvlt/node-‐hello-‐world.git" appFileName: app.js appName: node-‐hello-‐world
Brooklyn En>>es • Service (Micro?) • Many OSS and ASF Projects – Couchbase – Cassandra – Tomcat – Solr
• Control Servers via SSH • Control En>>es via Effectors
Clocker • Brooklyn plus Docker • Docker Host
– Docker Engine Installa>on – REST API Access Using jclouds 1.8.0 Docker Driver – Virtual Machine Access Using SSH – Cluster of Containers
• Docker Container – Running Services and Commands for En>ty – Dockerfiles
Clocker
Clocker • Demand Side
– Create a New Container – Resize Cluster of En>>es – AutoScaler Policy ATached to Cluster
• Supply Side – Placement Strategies for Containers – Depth or Breadth First – Affinity Rules – Resource Alloca>on (CPU Shares, Load, Memory, …)
Clocker • Applica>on Deployment
– CAMP Blueprint in YAML – Java Classes – Mostly Unchanged
• Docker Specific Configura>on – Affinity Rules or Placement Strategy – Dockerfile or Image ID – CPU or Memory Shares – Docker Volumes
Demonstra>on
Deploying Applica>ons on Clocker
Clocker Evolu>on • Three Months • Simple Applica>ons – Tomcat – Node.JS – Ac>veMQ
• Strengthening Core • Docker Driver for jclouds – More Features
Limita>ons
Limita>ons • Docker – Seamless Mul> Host Networking
• Clocker – Complex Applica>on Requirements – Not just a VM and a service…
• Features – Requests from Users?
Clocker Roadmap • Orchestra>on
– Placement Strategy
• More Intelligence – Need 32GiB Container? – Need 32 1GiB Containers per Host? – One Core? – 16 Cores?
• User Defined Strategies
Clocker Roadmap • Applica>on Defini>ons
– Use YAML Blueprints – Include Dockerfiles and Images – Docker Hub – Third Party Repositories – Enterprise Repositories
• Other Defini>ons
Clocker Roadmap • Networking – Mul>ple Hosts – Mul>ple Clouds?
• Communica>on – Port Forwarding – Doesn’t Always Work
• SoAware Defined Networking – Weave
Clocker Roadmap • Integra>ons
– Kubernetes – Fig – libswarm – Decking – Panamax – Stampede – Others?
Summary • Docker Containers – En>>es are Micro Services
• Limita>ons – Mul>ple Hosts and Networking
• Clocker Solu>ons – Applica>on Blueprints – Orchestra>on – Networking
Project • GitHub – brooklyncentral/clocker – Java Code – Apache 2.0 Licensed
• Contribu>ons – Blueprints? – Integra>ons? – Documenta>on? – Tes>ng?
Audience Ques>ons • Where do you see Docker networking going? • What about orchestra>on? • What features would be most useful to enhance Docker usability?
Thanks • Ques>ons?
Web Resources
http://clocker.io/
http://brooklyn.io/
http://docker.io/
http://github.com/zettio/weave/
http://abstractvisitorpattern.co.uk/