clocker evolution

25
Clocker Evolu,on Andrew Kennedy, SVDevOps, 09 September 2014

Upload: andrew-kennedy

Post on 29-Nov-2014

113 views

Category:

Technology


0 download

DESCRIPTION

'Clocker Evolution' talk give at SVDevOps Meetup in September 2014

TRANSCRIPT

Page 1: Clocker Evolution

Clocker  Evolu,on  

Andrew  Kennedy,  SVDevOps,  09  September  2014    

Page 2: Clocker Evolution

Introduc>on  •  Andrew  Kennedy  

–  CloudsoA  –  SoAware  Engineer  –  Open  Source  and  Java  –  Cloud  Technologies  

•  Overview  –  Docker  –  Brooklyn  –  Clocker  

Page 3: Clocker Evolution

Docker  •  Popular  –  Huge  Ecosystem  –  Growing  

•  Some  Pain  Points  –  Networking  –  Orchestra>on  –  Applica>ons  

Page 4: Clocker Evolution

Docker  

Page 5: Clocker Evolution

Brooklyn  •  Brooklyn  

–  Applica>on  Management  PlaPorm  –  Autonomic  Compu>ng  

•  Applica>on  Blueprint  –  Services  (En>>es)  –  Configura>on  –  ATributes  (Sensors)  –  Ac>ons  (Effectors)  

Page 6: Clocker Evolution

Brooklyn  •  Deploy  

–  Provisioning  –  Download  –  Install  –  Configure  

•  Manage  –  ATributes  –  Policies  –  Ac>ons  

Page 7: Clocker Evolution

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  

Page 8: Clocker Evolution

Brooklyn  En>>es  •  Service  (Micro?)  •  Many  OSS  and  ASF  Projects  –  Couchbase  –  Cassandra  –  Tomcat  –  Solr  

•  Control  Servers  via  SSH  •  Control  En>>es  via  Effectors  

Page 9: Clocker Evolution

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  

Page 10: Clocker Evolution

Clocker  

Page 11: Clocker Evolution

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,  …)  

Page 12: Clocker Evolution

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  

Page 13: Clocker Evolution

Demonstra>on  

Deploying  Applica>ons  on  Clocker  

Page 14: Clocker Evolution

Clocker  Evolu>on  •  Three  Months  •  Simple  Applica>ons  –  Tomcat  –  Node.JS  –  Ac>veMQ  

•  Strengthening  Core  •  Docker  Driver  for  jclouds  – More  Features  

Page 15: Clocker Evolution

Limita>ons  

Page 16: Clocker Evolution

Limita>ons  •  Docker  –  Seamless  Mul>  Host  Networking  

•  Clocker  –  Complex  Applica>on  Requirements  –  Not  just  a  VM  and  a  service…  

•  Features  –  Requests  from  Users?  

Page 17: Clocker Evolution

Clocker  Roadmap  •  Orchestra>on  

–  Placement  Strategy  

•  More  Intelligence  –  Need  32GiB  Container?  –  Need  32  1GiB  Containers  per  Host?  –  One  Core?  –  16  Cores?  

•  User  Defined  Strategies  

Page 18: Clocker Evolution

Clocker  Roadmap  •  Applica>on  Defini>ons  

–  Use  YAML  Blueprints  –  Include  Dockerfiles  and  Images  –  Docker  Hub  –  Third  Party  Repositories  –  Enterprise  Repositories  

•  Other  Defini>ons  

Page 19: Clocker Evolution

Clocker  Roadmap  •  Networking  – Mul>ple  Hosts  – Mul>ple  Clouds?  

•  Communica>on  –  Port  Forwarding  –  Doesn’t  Always  Work  

•  SoAware  Defined  Networking  – Weave  

Page 20: Clocker Evolution

Clocker  Roadmap  •  Integra>ons  

–  Kubernetes  –  Fig  –  libswarm  –  Decking  –  Panamax  –  Stampede  –  Others?  

Page 21: Clocker Evolution

Summary  •  Docker  Containers  –  En>>es  are  Micro  Services  

•  Limita>ons  – Mul>ple  Hosts  and  Networking  

•  Clocker  Solu>ons  –  Applica>on  Blueprints  –  Orchestra>on  –  Networking  

Page 22: Clocker Evolution

Project  •  GitHub  –  brooklyncentral/clocker  –  Java  Code  –  Apache  2.0  Licensed  

•  Contribu>ons  –  Blueprints?  –  Integra>ons?  –  Documenta>on?  –  Tes>ng?  

Page 23: Clocker Evolution

Audience  Ques>ons  •  Where  do  you  see  Docker  networking  going?  •  What  about  orchestra>on?  •  What  features  would  be  most  useful  to  enhance  Docker  usability?  

Page 24: Clocker Evolution

Thanks  •  Ques>ons?  

Page 25: Clocker Evolution

Web  Resources  

http://clocker.io/  

http://brooklyn.io/  

http://docker.io/  

http://github.com/zettio/weave/  

http://abstractvisitorpattern.co.uk/