Clocker and OpenStack

21
Clocker and OpenStack Andrew Kennedy, Dave Nielsen and Andrea Turli OpenStack Meetup, 19 August 2014

description

Talk given at OpenStack online meetup on 19 August 2014

Transcript of Clocker and OpenStack

Page 1: Clocker and OpenStack

Clocker  and  OpenStack  Andrew  Kennedy,  Dave  Nielsen  and  Andrea  Turli  

OpenStack  Meetup,  19  August  2014    

Page 2: Clocker and OpenStack

IntroducCon  •  Speakers  

–  Andrew  Kennedy  and  Andrea  Turli  –  Dave  Neilsen  

•  Overview  –  Docker  –  Brooklyn  –  Campsite  –  OpenStack  

Page 3: Clocker and OpenStack

Docker  •  IntroducCon  •  Popularity  •  History  •  Ecosystem  

Page 4: Clocker and OpenStack

Docker  

Page 5: Clocker and OpenStack

Docker  •  Technical  •  Containers  •  Micro  Services  •  Dockerfiles  –  ConfiguraCon  –  Volumes  –  Composable  

Page 6: Clocker and OpenStack

Docker  •  Cloud  Usage  •  OpenStack  •  Manual  Process  

–  CredenCals  and  Keys  –  OperaCng  System  and  Hardware  –  Download  and  InstallaCon  –  ConfiguraCon  –  Dockerfile  per  Service  

Page 7: Clocker and OpenStack

Brooklyn  •  Brooklyn  

–  ApplicaCon  Management  PlaOorm  –  Autonomic  CompuCng  

•  YAML  Blueprint  –  Services  (EnCCes)  –  ConfiguraCon  –  ATributes  (Sensors)  –  AcCons  (Effectors)  

Page 8: Clocker and OpenStack

Clocker  •  Infrastructure  

–  Apache  jclouds  Supported  Cloud  with  CredenCals  

•  Docker  Host  –  Running  the  Docker  Service  –  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  EnCty  

Page 9: Clocker and OpenStack

Clocker  

Page 10: Clocker and OpenStack

DemonstraCon  

Deploying  a  Docker  Cloud  

Page 11: Clocker and OpenStack

Clocker  •  Demand  Side  

–  Create  a  New  Container  –  Resize  Cluster  of  EnCCes  –  AutoScaler  Policy  ATached  to  Cluster  

•  Supply  Side  –  Placement  Strategies  for  Containers  –  Depth  or  Breadth  First  –  Affinity  Rules  –  Resource  AllocaCon  (CPU  Shares,  Load,  Memory,  …)  

Page 12: Clocker and OpenStack

Clocker  •  ApplicaCon  Deployment  

–  CAMP  Blueprint  in  YAML  –  Java  Classes  –  Mostly  Unchanged  

•  Docker  Specific  ConfiguraCon  –  Affinity  Rules  or  Placement  Strategy  –  Dockerfile  or  Image  ID  –  CPU  or  Memory  Shares  –  Docker  Volumes  

Page 13: Clocker and OpenStack

DemonstraCon  

ApplicaCons  on  the  Docker  Cloud  

Page 14: Clocker and OpenStack

Campsite  ApplicaCon  •  GitHub  Repository  •  Components  

–  PHP  Web  ApplicaCon  –  Node.JS  RESTful  API  –  MySQL  Database  

•  Cloud  Services  –  Email  –  Message  Queue  –  Object  Store  

Page 15: Clocker and OpenStack

Campsite  Blueprint  id:  campsite-­‐application  locations:  -­‐  jclouds:hpcloud-­‐compute  services:  -­‐  serviceType:  brooklyn.entity.database.mysql.MySqlNode  -­‐  serviceType:  brooklyn.campsite.entity.CampsiteWebapp      brooklyn.config:          objectStorage:  AWSObjectStorage          queueService:  AWS_SQS          emailService:  AWS_SES          databaseHost:  $brooklyn:component("mysql").attributeWhenReady("host.name")          databasePort:  $brooklyn:component("mysql").attributeWhenReady("mysql.port")          databaseUser:  "campsite"          databasePassword:  "p4ssw0rd"          domainName:  "campsite.org"  -­‐  serviceType:  brooklyn.campsite.entity.CampsiteApi  

Page 16: Clocker and OpenStack

Campsite  Blueprint  •  Java  Components  

–  CampsiteWebapp  PHP  EnCty  –  CampsiteApi  Node.JS  EnCty  

•  Campsite  ApplicaCon  –  ConfiguraCon  ProperCes  –  Webapp,  API  and  MySQL  Database  EnCCes  

•  YAML  Blueprint  

Page 17: Clocker and OpenStack

DemonstraCon  

Campsite  Deployment  

Page 18: Clocker and OpenStack

Campsite  Cluster  •  Add  Cluster  CapabiliCes  •  No  Extra  Coding  

–  Just  Write  YAML  Blueprint  –  CampsiteWebapp  Already  Set  Up  –  Stateless  Service  (Uses  SQL  Database)  –  Only  Run  Database  Create  and  Install  Once  

•  New  Services  –  Nginx  Load  Balancer  EnCty  –  Rabbit  MQ  Broker  EnCty  

Page 19: Clocker and OpenStack

DemonstraCon  

Campsite  Cluster  Blueprint  

Page 20: Clocker and OpenStack

Summary  •  Docker  Containers  – Micro  Services  

•  LimitaCons  – MulCple  Hosts  – Management  

•  Clocker  –  ApplicaCon  Blueprints  –  OrchestraCon  

Page 21: Clocker and OpenStack

Web  Resources  http://clocker.io/  

http://brooklyn.io/  

https://github.com/brooklyncentral/campsite/  

https://github.com/dnielsen/campapp/  

http://docker.io/  

http://davenielsen.wordpress.com