+ All Categories
Home > Documents > Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn*...

Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn*...

Date post: 30-May-2020
Category:
Upload: others
View: 9 times
Download: 0 times
Share this document with a friend
43
Clocker Deploying Complex Applica3ons on Docker using Apache Brooklyn
Transcript
Page 1: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Deploying  Complex  Applica3ons  on  Docker  using  Apache  Brooklyn  

Page 2: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Deploying  Complex  Applica1ons  on  Docker  using  Apache  Brooklyn  

Andrew  Kennedy  @grkvlt  CloudOpen  October  2014  

Dusseldörf  Germany  

Page 3: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Introduc1on  •  Andrew  Kennedy  –  SoIware  Engineer  – Open  Source  –  github.com/grkvlt  

•  CloudsoI  Corpora1on  –  ScoMsh  (Bri1sh?  European!)  Company  – We’re  Hiring…  

Page 4: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Introduc1on  •  Clocker  – Docker  – Apache  Brooklyn  – Apache  Jclouds  – Weave  

•  Demonstra1on  •  Roadmap  

Page 5: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Project  •  What  does  it  do?  – Manages  Docker  Infrastructure  – Deploys  Blueprints  to  Docker  

•  What  is  it?  – Brooklyn  Applica1on  – Brooklyn  Loca1on  

Page 6: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Docker  •  Popular  – Huge  Ecosystem  – Growing  – Complex  

•  Containers  –  Isola1on  – Performance  – Composable  

Page 7: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Docker  

Page 8: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Limita3ons…  Docker  Limita3ons  

Page 9: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Docker  Limita1ons  •  Mul1ple  Hosts  •  Networking  –  Same  Issue  –  Communica1on  Between  Services  

•  Orchestra1on  –  Control  of  Containers  –  Container  Management  

Page 10: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Project  •  GitHub  •  Open  Source  •  Java  •  Recently  Developed  •  S1ll  Beta  Status  – 0.7.0-­‐SNAPSHOT  

Page 11: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Why  Clocker  •  Docker  Popularity  – Solve  Some  Limita1ons  

•  Best  of  Breed  Components  •  Brooklyn  Integra1on  – Virtual  Machines  too  Coarse  – Container  to  En1ty  Mapping  

Page 12: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Components  •  Apache  Brooklyn  – CloudsoI  Product  – Open  Source  Java  – Donated  to  the  ASF  –  Incubator  Status  

Page 13: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Apache  Brooklyn  •  Applica1on  Management  Plaborm  •  Autonomic  Compu1ng  Principles  •  Deploy,  Manage  and  Monitor  Blueprints  – Services  (En11es)  – State  (Sensors)  – Ac1ons  (Effectors)  

Page 14: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

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 15: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Apache  Brooklyn  •  Deployment  –  Provisioning  –  Loca1ons  –  Installa1on  and  Customiza1on  

•  Packages,  Scripts,  Chef,  SaltStack  •  Management  –  Policies  

•  AutoScaling,  Resilience,  Performance,  Access  

Page 16: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Apache  Jclouds  •  Java  Cloud  Library  •  API  Agnos1c  – CloudStack,  OpenStack,  AWS  EC2,  GCE…  

•  Create  Virtual  Machines  – Return  SSH  Endpoint  – Manage  Proper1es  

Page 17: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Apache  Jclouds  •  Drivers  for  REST  APIs  •  Docker  Driver  – Wrifen  by  @turlinux  

•  Virtual  Container  – Using  SSH  Daemon  –  Same  Endpoint  Type  as  VM  –  Composi1on  on  any  Image  or  Dockerfile  

Page 18: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Weave  •  SoIware  Defined  Networking  – Ethernet  Switch  – User  Space  – Docker  Container  

•  Sniffs  Traffic  on  Host  •  Forwards  over  TCP  

Page 19: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Weave  

Page 20: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

What  is  Clocker?  

Page 21: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

What  is  Clocker?  •  Brooklyn  Applica1on  – Docker  Infrastructure  

•  Docker  Engine  •  Docker  Containers  

– Weave  Infrastructure  • Weave  Container  

Page 22: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

What  is  Clocker?  •  Brooklyn  Loca1on  – Des1na1on  for  Blueprints  

•  Added  Features  –  Create  Containers  –  Provision  Docker  Hosts  – Afach  to  Weave  Network  – Manage  Applica1on  

Page 23: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Architecture  

Page 24: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Architecture  

Page 25: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Features  •  Applica1on  Deployment  – Oasis  CAMP  Blueprint  –  Same  as  Core  Brooklyn  

•  Mixed  Des1na1ons  –  Some  Virtual  Machines  –  Some  Bare  Metal  –  Some  Containers  

Page 26: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Features  •  Applica1on  Deployment  – Oasis  CAMP  Blueprint  –  Same  as  Core  Brooklyn  

•  Docker  Extensions  –  Container  or  Image  –  Placement  Strategy  – Dockerfile  URL  

Page 27: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Placement  •  Demand  Side  – New  Container  

•  Supply  Side  – Where?  – Placement  Strategy  – Provisioning  Strategy  

Page 28: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Placement  •  Placement  Strategies  – Depth  First  – Breadth  First  – CPU  Usage  – Affinity  or  An1  Affinity  – Memory  or  CPU  Core  Availability  

Page 29: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Placement  •  Provisioning  Strategy  – New  Docker  Host  Loca1on  

•  Constraints  – Docker  Infrastructure  Constraints  –  En1ty  or  Applica1on  Constraints  

•  User  Defined  Strategies  •  Intelligent  Container  Orchestra1on  

Page 30: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Clocker  Placement  •  Determinis1c  •  Simple  – Predicate  and  Comparator  

docker.container.strategies:      -­‐  $brooklyn:object:              type:  "brooklyn.location.docker.strategy.BreadthFirstPlacementStrategy”              brooklyn.config:                  maxContainers:  16      -­‐  $brooklyn:object:              type:  "brooklyn.location.docker.strategy.CpuUsagePlacementStrategy”              brooklyn.config:                  maxCpuUsage:  0.75  

Page 31: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Container  Management  •  Sources  – Docker  Image  Defini1on  – Docker  Hub  – Dockerfile  – Brooklyn  En1ty  Defini1on  

•  Create  Image  Automa1cally  

Page 32: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Container  Management  id:  dockerfile-­‐mysql  name:  "Docker  Hub  MySQL  Application"  origin:  "https://registry.hub.docker.com/_/mysql/"  locations:  -­‐  my-­‐docker-­‐cloud  services:  -­‐  serviceType:          brooklyn.entity.container.docker.application.DockerfileApplication      id:  mysql      name:  "MySQL"      brooklyn.config:          docker.dockerfile.url:              file://Users/grkvlt/Git/docker-­‐library/mysql/5.6/          env:              MYSQL_ROOT_PASSWORD:  "s3cr3t"      

Page 33: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Container  Management  •  Installa1on  of  Services  – Defined  by  Brooklyn  or  Dockerfile  –  Common  to  all  En1ty  Instances  

•  Commit  Image  – Available  for  next  En1ty  

•  Push  Image  – Available  for  all  Hosts  

Page 34: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Networking  •  Shared  Weave  LAN  – Common  to  All  Containers  – Private  (Link  Local)  Addresses  

•  Clocker  Controls  IP  Alloca1on  – Applica1ons  Segmented  by  CIDR  

•  Docker  Port  Forwarding  Access  

Page 35: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Networking  •  S1ll  First  Steps…  •  Name  Resolu1on  – BIND  and  DNSmasq  – Needed  for  JMX  et  al  

•  Enables  Many  More  En11es  •  But  Needs  Tested!  

Page 36: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Demonstra3on  

Page 37: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Roadmap  Now  •  Improvements  To  Networking  – DNS  and  DNSmasq  Integra1on  – Work  in  Progress  

•  Befer  GeMng  Started  – Self  Hos1ng  on  Localhost  – Brooklyn  Dockerfile  

Page 38: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Roadmap  Soon  •  Befer  Integra1on  with  Repositories  – Docker  Hub,  Ar1factory,  Quay.io  – Private  Repositories  

•  Easier  Applica1on  Defini1on  – Open  Standard?  – Kubernetes  Pods?  

Page 39: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Roadmap  Next  •  Integra1on  – Google  Kubernetes  – ClusterHQ  Flocker  – Ar1factory  

•  Improvements  – Bootstrapping  

Page 40: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Summary  •  Clocker  – Brooklyn  +  Docker  +  Jclouds  +  Weave  

•  Solves  – Docker  Networking  – Container  Placement  – Applica1on  Defini1on  

Page 41: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Audience  Ques1ons?  

1.  Where  do  you  see  Docker  networking  going?  

2.  What  about  orchestra1on?  3.  What  features  would  be  most  useful  

to  enhance  Docker  usability?  

Page 42: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Thanks!  Ques1ons?  

Page 43: Clocker( - events.static.linuxfound.org...Introduc1on* • Clocker* – Docker* – Apache*Brooklyn* – Apache*Jclouds* – Weave* • Demonstraon* • Roadmap*

Web  Resources  

http://clocker.io/  

http://brooklyn.io/  

http://docker.io/  

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

http://abstractvisitorpattern.co.uk/  


Recommended