SlideShare a Scribd company logo
1 of 66
Download to read offline
QCon	
  London	
  2015;	
  Docker	
  Track	
  
Andrew	
  Kennedy	
  @grkvlt	
  
Clocker	
  
How	
  to	
  Train	
  Your	
  Docker	
  Cloud	
  
@grkvlt	
  
Introduc/on	
  
•  Andrew	
  Kennedy	
  
–  Clocker	
  Project	
  Founder	
  and	
  Lead	
  Engineer	
  
–  Open	
  Source	
  and	
  Distributed	
  Systems	
  
–  github.com/grkvlt	
  
•  CloudsoG	
  Corpora/on	
  
–  Open	
  Source	
  Applica/on	
  Management	
  Specialists	
  
–  We’re	
  Hiring…	
  
@grkvlt	
  
Agenda	
  
•  Clocker	
  Introduc/on	
  
•  What	
  is	
  a	
  Docker	
  Cloud?	
  
•  Training	
  a	
  Docker	
  Cloud	
  
•  Demonstra/on	
  
•  Roadmap	
  
Clocker	
  IntroducBon	
  
@grkvlt	
  
What	
  does	
  it	
  do?	
  
1.  Spins	
  up	
  and	
  Manages	
  Docker	
  
Clouds	
  
2.  Serves	
  up	
  Containers	
  on	
  Demand	
  
3.  Manages	
  Composite	
  Applica/on	
  
Deployments	
  on	
  Docker	
  
@grkvlt	
  
What	
  does	
  it	
  provide?	
  
•  Mul/	
  Host	
  and	
  Mul/	
  Container	
  Applica/ons	
  
•  Seamless	
  Networking	
  
– Communica/on	
  Between	
  Services	
  
•  Orchestra/on	
  and	
  Clustering	
  
– Control	
  of	
  Containers	
  
– Container	
  Management	
  
@grkvlt	
  
Who	
  is	
  using	
  it?	
  
•  Tes/ng	
  and	
  Proof	
  of	
  Concept	
  Stage	
  
–  Financial	
  Services	
  
–  Insurance	
  
•  Produc/on	
  
–  Mul/-­‐tenant	
  Applica/on	
  Trial	
  
–  Container	
  per	
  service	
  
–  Via	
  IBM	
  BlueMix	
  
@grkvlt	
  
Where	
  can	
  I	
  find	
  it?	
  
•  Open	
  Source	
  
•  Apache	
  2.0	
  Licensed	
  
•  h[p://clocker.io	
  	
  
•  Status	
  
•  0.7.0	
  Beta	
  Release	
  
•  0.8.0-­‐SNAPSHOT	
  Development	
  
What	
  is	
  a	
  Docker	
  Cloud?	
  
@grkvlt	
  
Clocker	
  and	
  Brooklyn	
  
•  What	
  is	
  it?	
  
– Brooklyn	
  Applica/on	
  
– Brooklyn	
  Loca/on	
  
•  What	
  does	
  it	
  provide?	
  
– First	
  Class	
  Docker	
  Support	
  in	
  Brooklyn	
  
– Op/mized	
  Brooklyn	
  Blueprints	
  for	
  Docker	
  
Apache	
  Brooklyn	
  
•  Apache	
  Brooklyn	
  
– Open	
  Source	
  
– Java	
  
– Donated	
  to	
  the	
  Apache	
  SoGware	
  Founda/on	
  
– ASF	
  Incubator	
  Status	
  
@grkvlt	
  
Apache	
  Brooklyn	
  
•  Applica/on	
  Management	
  Pla_orm	
  
•  Deploy,	
  Manage	
  and	
  Monitor	
  Blueprints	
  
•  Provisioning,	
  Installa/on	
  and	
  Customiza/on	
  
•  Management	
  
– AutoScaling,	
  Resilience,	
  Performance,	
  Security	
  
Apache	
  jclouds	
  
•  Java	
  Cloud	
  Library	
  
•  API	
  Agnos/c	
  
– CloudStack,	
  OpenStack,	
  AWS	
  EC2,	
  GCE…	
  
•  Create	
  Virtual	
  Machines	
  
– Return	
  SSH	
  Endpoint	
  
– Manage	
  Proper/es	
  
@grkvlt	
  
Apache	
  jclouds	
  
•  Drivers	
  for	
  REST	
  APIs	
  
•  Docker	
  Driver	
  
–  Wri[en	
  by	
  @turlinux	
  
•  Virtual	
  Container	
  
–  Using	
  SSH	
  Daemon	
  
–  Same	
  Endpoint	
  Type	
  as	
  VM	
  
–  Composi/on	
  on	
  any	
  Image	
  or	
  Dockerfile	
  
@grkvlt	
  
Docker	
  
•  Popular	
  
– Large	
  Ecosystem	
  
– Growing	
  
– Complex	
  
•  Containers	
  
– Isola/on	
  
– Performance	
  
– Composable	
  
@grkvlt	
  
Docker	
  
@grkvlt	
  
Brooklyn	
  Blueprints	
  
•  Describe	
  Applica/ons	
  
•  OASIS	
  CAMP	
  Standard	
  
•  List	
  of	
  Services	
  
•  Tree	
  Structure	
  
•  Sensors,	
  Effectors	
  and	
  Policies	
  
@grkvlt	
  
Blueprint	
  Example	
  
name:	
  appserver-­‐w-­‐policy	
  
services:	
  
-­‐	
  type:	
  brooklyn.entity.webapp.ControlledDynamicWebAppCluster	
  
	
  	
  initialSize:	
  1	
  
	
  	
  memberSpec:	
  
	
  	
  	
  	
  $brooklyn:entitySpec:	
  
	
  	
  	
  	
  	
  	
  type:	
  brooklyn.entity.webapp.jboss.JBoss7Server	
  
	
  	
  	
  	
  	
  	
  brooklyn.config:	
  
	
  	
  	
  	
  	
  	
  	
  	
  wars.root:	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-­‐example-­‐hello-­‐world-­‐sql-­‐webapp/0.6.0/brooklyn-­‐example-­‐hello-­‐world-­‐sql-­‐
webapp-­‐0.6.0.war	
  
	
  	
  	
  	
  	
  	
  	
  	
  http.port:	
  8080+	
  
	
  	
  	
  	
  	
  	
  	
  	
  java.sysprops:	
  	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  brooklyn.example.db.url:	
  $brooklyn:formatString("jdbc:%s%s?user=%s&password=%s",	
  
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  component("db").attributeWhenReady("datastore.url"),	
  "visitors",	
  "brooklyn",	
  "br00k11n")	
  
	
  	
  brooklyn.policies:	
  
	
  	
  -­‐	
  policyType:	
  brooklyn.policy.autoscaling.AutoScalerPolicy	
  
	
  	
  	
  	
  brooklyn.config:	
  
	
  	
  	
  	
  	
  	
  metric:	
  $brooklyn:sensor("brooklyn.entity.webapp.DynamicWebAppCluster",	
  "webapp.reqs.perSec.windowed.perNode")	
  
	
  	
  	
  	
  	
  	
  metricLowerBound:	
  10	
  
	
  	
  	
  	
  	
  	
  metricUpperBound:	
  100	
  
	
  	
  	
  	
  	
  	
  minPoolSize:	
  1	
  
	
  	
  	
  	
  	
  	
  maxPoolSize:	
  5	
  
-­‐	
  type:	
  brooklyn.entity.database.mysql.MySqlNode	
  
	
  	
  id:	
  db	
  
	
  	
  name:	
  DB	
  HelloWorld	
  Visitors	
  
	
  	
  brooklyn.config:	
  
	
  	
  	
  	
  datastore.creation.script.url:	
  
	
  	
  	
  	
  	
  	
  https://github.com/apache/incubator-­‐brooklyn/raw/master/usage/launcher/src/test/resources/visitors-­‐creation-­‐script.sql	
  
@grkvlt	
  
Applica/on	
  Management	
  
•  Policies	
  
•  Sensor	
  Data	
  Driven	
  
•  Auto	
  Scaling	
  
•  Cluster	
  Management	
  
•  Resilience	
  and	
  Failover	
  
•  Follow	
  the	
  Sun	
  
@grkvlt	
  
Docker	
  Cloud	
  
•  Brooklyn	
  Blueprint	
  for	
  Docker	
  Cluster	
  
•  Docker	
  Engine	
  on	
  Cloud	
  VM	
  
– Configura/on	
  for	
  TLS	
  Cer/ficates	
  
– Setup	
  Volumes	
  (Logging?)	
  
– Install	
  Agents	
  (Security?	
  SDN?)	
  
@grkvlt	
  
Docker	
  Cloud	
  
1.  On-­‐demand	
  
2.  Mul/-­‐Tenant	
  
3.  Hardware	
  Independent	
  
4.  Applica/on	
  Level	
  
@grkvlt	
  
Architecture	
  
@grkvlt	
  
Clocker	
  Features	
  
•  Applica/on	
  Deployment	
  
–  Oasis	
  CAMP	
  YAML	
  Blueprint	
  
–  TOSCA	
  in	
  Development	
  
–  Same	
  as	
  Core	
  Brooklyn	
  
•  Mixed	
  Des/na/ons	
  
–  Some	
  Virtual	
  Machines	
  
–  Some	
  Bare	
  Metal	
  
–  Some	
  Containers	
  
@grkvlt	
  
Clocker	
  Features	
  
•  Docker	
  Extensions	
  to	
  Brooklyn	
  
–  Dockerfile	
  or	
  Image	
  Specifica/on	
  for	
  Installa/on	
  
–  Placement	
  Strategies	
  for	
  Containers	
  
–  Create	
  Docker	
  Images	
  and	
  Networks	
  
•  Manages	
  Docker	
  Engine	
  
–  Deployment	
  and	
  Management	
  
–  Installa/on	
  and	
  Configura/on	
  
–  SoGware-­‐Defined	
  Networking	
  
@grkvlt	
  
Clocker	
  Orchestra/on	
  
Docker	
  
Engine	
  
Virtual	
  
Machine	
  
Container	
  Clocker	
  
Network	
  
Segment	
  
SDN	
  
Cloud	
  
Training	
  a	
  Docker	
  Cloud	
  
@grkvlt	
  
Training…?	
  
•  Container	
  Management	
  
•  Placement	
  and	
  Provisioning	
  
•  Autonomics	
  
– Policies	
  and	
  Scaling	
  
•  Headroom	
  
•  Networks	
  
@grkvlt	
  
Container	
  Management	
  
•  Sources	
  
–  Docker	
  Image	
  Defini/on	
  
–  Docker	
  Hub	
  
–  Dockerfile	
  
–  Brooklyn	
  En/ty	
  Defini/on	
  
•  Create	
  Image	
  Automa/cally	
  
–  Commit	
  or	
  Push	
  for	
  Reuse	
  
@grkvlt	
  
Container	
  Management	
  
•  Installa/on	
  of	
  Services	
  
–  Defined	
  by	
  Brooklyn	
  or	
  Dockerfile	
  
–  Common	
  to	
  all	
  En/ty	
  Instances	
  
•  Commit	
  Image	
  
–  Available	
  for	
  next	
  En/ty	
  
•  Push	
  Image	
  
–  Available	
  for	
  all	
  Hosts	
  
@grkvlt	
  
Container	
  Management	
  
id:	
  dockerfile-­‐mysql	
  
name:	
  "Docker	
  Hub	
  MySQL	
  Database"	
  
origin:	
  "https://registry.hub.docker.com/_/mysql/"	
  
locations:	
  
-­‐	
  my-­‐docker-­‐cloud	
  
services:	
  
-­‐	
  type:	
  brooklyn.entity.container.docker.application.DockerfileApplication	
  
	
  	
  id:	
  mysql	
  
	
  	
  name:	
  "MySQL"	
  
	
  	
  brooklyn.config:	
  
	
  	
  	
  	
  docker.dockerfile.url:	
  
	
  	
  	
  	
  	
  	
  "https://s3-­‐eu-­‐west-­‐1.amazonaws.com/brooklyn-­‐clocker/mysql-­‐5.6.tgz"	
  
	
  	
  	
  	
  docker.container.environment:	
  
	
  	
  	
  	
  	
  	
  MYSQL_ROOT_PASSWORD:	
  "s3cr3t”	
  
	
  
@grkvlt	
  
Container	
  Management	
  
id:	
  dockerfile-­‐mysql	
  
name:	
  "Docker	
  Hub	
  LAMP	
  Stack"	
  
locations:	
  
-­‐	
  my-­‐docker-­‐cloud	
  
services:	
  
-­‐	
  type:	
  docker:mysql:5.7.5	
  
	
  	
  id:	
  mysql	
  
	
  	
  env:	
  
	
  	
  	
  	
  MYSQL_ROOT_PASSWORD:	
  "s3cr3t"	
  
-­‐	
  type:	
  docker:grkvlt/myapp:latest	
  
	
  	
  id:	
  application	
  
	
  	
  env:	
  
	
  	
  	
  	
  MYSQL_HOST:	
  
	
  	
  	
  	
  	
  	
  component(”mysql").attributeWhenReady("host.hostname")	
  
	
  
@grkvlt	
  
Container	
  Placement	
  
•  Demand	
  
–  Adding	
  an	
  Applica/on	
  
–  Scaling	
  exis/ng	
  Applica/on	
  
•  Requirements	
  
–  Host	
  Loca/on	
  
–  Service	
  Resources	
  
–  CPU,	
  Memory 	
  	
  
@grkvlt	
  
Container	
  Placement	
  
•  Supply	
  
– Choose	
  a	
  Host	
  from	
  available	
  
– Create	
  new	
  Host	
  
•  Start	
  Container	
  
–  Set	
  CPU	
  and	
  Memory	
  
–  A[ach	
  to	
  Network	
  
@grkvlt	
  
Container	
  Placement	
  
•  Placement	
  Strategies	
  
–  Filter	
  Hosts	
  
–  Sort	
  Hosts	
  
•  Informa/on	
  from	
  
–  Docker	
  
–  Underlying	
  Machine	
  
–  Cloud	
  Environment	
  
–  En/ty	
  or	
  Service	
  
@grkvlt	
  
Container	
  Placement	
  
•  Placement	
  Strategies	
  
–  Random,	
  Depth	
  or	
  Breadth	
  First	
  
–  CPU	
  or	
  Memory	
  Usage	
  
–  Memory,	
  CPU	
  or	
  Container	
  Limits	
  
–  Geographic	
  Constraints	
  
•  User	
  Defined	
  
–  Java	
  Predicate	
  
@grkvlt	
  
Placement	
  Strategy	
  
•  Determinis/c	
  
•  Simple	
  
– Predicate	
  and	
  Comparator	
  
docker.container.strategies:	
  
	
  	
  -­‐	
  $brooklyn:object:	
  
	
  	
  	
  	
  	
  	
  type:	
  "brooklyn.location.docker.strategy.MaxContainersPlacementStrategy”	
  
	
  	
  	
  	
  	
  	
  brooklyn.config:	
  
	
  	
  	
  	
  	
  	
  	
  	
  maxContainers:	
  16	
  
	
  	
  -­‐	
  $brooklyn:object:	
  
	
  	
  	
  	
  	
  	
  type:	
  "brooklyn.location.docker.strategy.CpuUsagePlacementStrategy”	
  
	
  	
  	
  	
  	
  	
  brooklyn.config:	
  
	
  	
  	
  	
  	
  	
  	
  	
  maxCpu:	
  0.75	
  
@grkvlt	
  
Container	
  Provisioning	
  
•  Provisioning	
  Strategy	
  
–  New	
  Docker	
  Host	
  Loca/on	
  
•  Constraints	
  
–  Docker	
  Infrastructure	
  Constraints	
  
–  En/ty	
  or	
  Applica/on	
  Constraints	
  
•  User	
  Defined	
  Strategies	
  
•  Intelligent	
  Container	
  Orchestra/on	
  
@grkvlt	
  
Autonomics	
  
•  Brooklyn	
  Policies	
  
•  A[ached	
  to	
  En//es	
  in	
  Applica/on	
  
– Nothing	
  Docker	
  Specific	
  
•  Elas/c	
  Scaling	
  
– Cluster	
  Resizing	
  
– Sensor	
  Driven	
  
	
  
@grkvlt	
  
Applica/on	
  Resilience	
  
•  Service	
  Resilience	
  and	
  Replacement	
  
– Restart	
  Service	
  and	
  Container	
  
– Applica/on	
  Level,	
  Not	
  Infrastructure	
  
– Same	
  as	
  Cloud	
  
•  Could	
  be	
  Integrated	
  Further	
  
– Snapshot	
  Running	
  Container	
  for	
  Restart	
  
@grkvlt	
  
Headroom	
  
•  Ensure	
  resources	
  available	
  
•  Based	
  on	
  MaxContainers	
  strategy	
  limit	
  
–  Or	
  Percentage	
  U/lisa/on	
  
–  Or	
  CPU	
  and	
  RAM	
  alloca/on	
  
•  Scale	
  Docker	
  Host	
  Cluster	
  Automa/cally	
  	
  
–  Add	
  new	
  Docker	
  hosts	
  
–  Remove	
  empty	
  Docker	
  hosts	
  
@grkvlt	
  
SoGware-­‐Defined	
  Networking	
  
•  Needed	
  for	
  Seamless	
  Provisioning	
  
•  Host	
  to	
  Host	
  Communica/on	
  
– Same	
  LAN	
  Segment	
  
– No	
  Port	
  Forwarding	
  
– Natural	
  Applica/on	
  Configura/on	
  
•  Ini/al	
  Driver	
  was	
  EPMD	
  Applica/ons	
  
@grkvlt	
  
Networking	
  Providers	
  
•  Standardized	
  Interfaces	
  
•  Pluggable	
  Providers	
  
– Weave	
  
– Metaswitch	
  Calico	
  
– IBM	
  OpenDOVE	
  
– Others?	
  
@grkvlt	
  
Networking	
  Providers	
  
•  Implementa/on	
  Agnos/c	
  
– L2	
  over	
  L3	
  etc.	
  
– Similar	
  to	
  Hypervisor	
  in	
  Clouds	
  
•  Generic	
  Interfaces	
  
– Host	
  Component	
  
– Service	
  Component	
  (or	
  Endpoint)	
  
@grkvlt	
  
Networking	
  Capabili/es	
  
•  Provide	
  Mul/ple	
  Networks	
  
– Single	
  Applica/on	
  or	
  Shared	
  
– Private	
  Addresses	
  
– Segmented	
  by	
  CIDR	
  
•  Docker	
  Port	
  Forwarding	
  Access	
  
– Debug	
  Mechanism	
  
@grkvlt	
  
Clocker	
  Networking	
  
Container	
  Host	
  
SDN	
  
Bridge	
  
Container	
  
Internet	
  
SDN	
  
Gateway	
  
@grkvlt	
  
Networking	
  Capabili/es	
  
•  IP	
  Pool	
  Controlled	
  by	
  Clocker	
  
•  Clocker	
  Controls	
  Subnet	
  Alloca/on	
  
– Applica/ons	
  Segmented	
  by	
  CIDR	
  
•  Delegate	
  to	
  SDN	
  or	
  Cloud	
  
– Bring	
  your	
  own	
  IP	
  
•  Docker	
  Port	
  Forwarding	
  Access	
  
@grkvlt	
  
Future	
  Capabili/es	
  
•  Adding	
  More	
  SDN	
  Providers	
  
•  Name	
  Resolu/on	
  
– BIND	
  and	
  DNSmasq	
  or	
  Weave	
  DNS	
  
– Needed	
  for	
  JMX	
  et	
  al	
  
– Enables	
  Many	
  More	
  En//es	
  
•  Adding	
  More	
  Supported	
  Blueprints	
  
@grkvlt	
  
Virtual	
  Network	
  En/ty	
  
•  New	
  Clocker	
  En/ty	
  
•  Provisions	
  a	
  Virtual	
  Network	
  
•  Looks	
  for	
  NetworkProvisioningExtension	
  
– Registered	
  in	
  DockerLoca/on	
  by	
  SDN	
  Provider	
  
– Could	
  also	
  add	
  to	
  JcloudsLoca/on	
  for	
  Clouds	
  
•  Part	
  of	
  Applica/on	
  Blueprint	
  
@grkvlt	
  
Network	
  Provisioning	
  
•  Create	
  Named	
  Virtual	
  Networks	
  
•  Uses	
  Available	
  Provider	
  
–  Currently	
  Weave,	
  Calico	
  and	
  IBM	
  Supported	
  
	
  
-­‐	
  type:	
  brooklyn.networking.VirtualNetwork	
  
	
  	
  networkId:	
  my-­‐application	
  
	
  	
  cidr:	
  192.168.12.0/24	
  
	
  	
  gateway:	
  192.168.12.1	
  
	
  	
  dnsServers:	
  
	
  	
  -­‐	
  8.8.8.8	
  
	
  	
  brooklyn.config:	
  
	
  	
  	
  	
  sdn.example.securityGroup:	
  "my-­‐security-­‐group"	
  
@grkvlt	
  
Network	
  Provisioning	
  
•  Allow	
  Minimal	
  (Zero!)	
  Configura/on	
  
•  Use	
  Sensible	
  Defaults	
  
–  Also	
  SDN	
  Specific	
  Configura/on	
  
•  Allocate	
  Address	
  Space	
  on	
  Demand	
  
	
  
-­‐	
  type:	
  brooklyn.networking.VirtualNetwork	
  
	
  	
  networkId:	
  database-­‐net	
  
	
  	
  cidr:	
  192.168.34.0/24	
  
-­‐	
  type:	
  brooklyn.networking.VirtualNetwork	
  
	
  	
  networkId:	
  couchbase-­‐net	
  
@grkvlt	
  
Network	
  Provisioning	
  
•  A[ach	
  Containers	
  to	
  Networks	
  
	
  
	
  	
  brooklyn.config:	
  
	
  	
  	
  	
  network.list:	
  
	
  	
  	
  	
  -­‐	
  couchbase-­‐net	
  
	
  	
  	
  	
  -­‐	
  management-­‐net	
  
	
  
•  Create	
  Networks	
  as	
  Required	
  
•  Also	
  A[ach	
  to	
  VMs	
  and	
  Metal	
  
– Where	
  Supported	
  
	
  
DemonstraBon	
  
@grkvlt	
  
Features	
  
•  Orchestrated	
  Docker	
  1.5.0	
  deployment	
  with	
  
Weave	
  SDN	
  integra/on	
  
•  Automated	
  a[achment	
  of	
  containers	
  to	
  
mul/ple	
  dynamic	
  networks	
  
•  Brooklyn	
  applica/on	
  blueprints	
  with	
  network	
  
topology	
  
Clocker	
  Roadmap	
  
@grkvlt	
  
Roadmap	
  
•  Latest	
  Docker	
  1.5.0	
  Feature	
  Support	
  
–  Stats	
  command,	
  Read-­‐only	
  containers,	
  Named	
  Dockerfiles	
  and	
  more	
  
•  Swarm	
  
–  Add	
  Clocker	
  as	
  an	
  extension	
  to	
  Swarm	
  itself?	
  
–  Or	
  add	
  features	
  to	
  exis/ng	
  jclouds	
  driver?	
  
•  Compose	
  
–  Support	
  as	
  alterna/ve	
  blueprin/ng	
  language	
  
@grkvlt	
  
Roadmap	
  
•  Networking	
  
– DNS	
  and	
  DNSmasq	
  Integra/on	
  
– Rancher	
  Integra/on	
  
– Open	
  vSwitch	
  Integra/on	
  
•  Gemng	
  Started	
  
– Clocker	
  Dockerfile	
  
@grkvlt	
  
Roadmap	
  
•  Repositories	
  
–  Docker	
  Enterprise	
  Hub	
  
–  Bintray,	
  Ar/factory,	
  Quay.io	
  
–  Private	
  Repositories	
  
•  Applica/on	
  Defini/on	
  
–  TOSCA	
  
–  Docker	
  Compose	
  
@grkvlt	
  
Roadmap	
  
•  Plugin	
  API	
  will	
  be	
  helpful	
  
•  Also	
  projects	
  like	
  Powerstrip	
  
•  Provide	
  services	
  to	
  Docker	
  this	
  way	
  
•  Orchestra/on	
  
•  Policies	
  
•  Consume	
  wider	
  range	
  of	
  services	
  
•  Networking	
  and	
  Storage	
  
@grkvlt	
  
Summary	
  
•  Clocker	
  
–  Brooklyn	
  +	
  jclouds	
  +	
  Docker	
  +	
  Weave	
  +	
  …	
  
–  @clockercentral	
  
•  Solves	
  
–  Composite	
  Applica/on	
  Management	
  
–  Docker	
  Cloud	
  Networking	
  
–  Container	
  Placement	
  and	
  Provisioning	
  
QuesBons?	
  
@grkvlt	
  
Web	
  Resources	
  
http://clocker.io/	
  
http://brooklyn.io/	
  
http://docker.io/	
  
http://github.com/zettio/weave/	
  
http://abstractvisitorpattern.co.uk/	
  
@clockercentral	
  @brooklyncentral	
  @cloudsoft	
  

More Related Content

What's hot

What's hot (20)

Introduction to Kubernetes
Introduction to KubernetesIntroduction to Kubernetes
Introduction to Kubernetes
 
Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021Nugwc k8s session-16-march-2021
Nugwc k8s session-16-march-2021
 
Intro to kubernetes
Intro to kubernetesIntro to kubernetes
Intro to kubernetes
 
Your journey into the serverless world
Your journey into the serverless worldYour journey into the serverless world
Your journey into the serverless world
 
Kubernetes your next application server
Kubernetes  your next application serverKubernetes  your next application server
Kubernetes your next application server
 
Secrets in Kubernetes
Secrets in KubernetesSecrets in Kubernetes
Secrets in Kubernetes
 
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and KubelessBuilding Cloud-Native Applications with Kubernetes, Helm and Kubeless
Building Cloud-Native Applications with Kubernetes, Helm and Kubeless
 
Kubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of ContainersKubernetes - Sailing a Sea of Containers
Kubernetes - Sailing a Sea of Containers
 
Docker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup SlidesDocker Datacenter Overview and Production Setup Slides
Docker Datacenter Overview and Production Setup Slides
 
How kubernetes works community, velocity, and contribution - osls 2017 (1)
How kubernetes works  community, velocity, and contribution - osls 2017 (1)How kubernetes works  community, velocity, and contribution - osls 2017 (1)
How kubernetes works community, velocity, and contribution - osls 2017 (1)
 
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation SlidesKubernetes Concepts And Architecture Powerpoint Presentation Slides
Kubernetes Concepts And Architecture Powerpoint Presentation Slides
 
fabric8 ... and Docker, Kubernetes & OpenShift
fabric8 ... and Docker, Kubernetes & OpenShiftfabric8 ... and Docker, Kubernetes & OpenShift
fabric8 ... and Docker, Kubernetes & OpenShift
 
Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)Why kubernetes for Serverless (FaaS)
Why kubernetes for Serverless (FaaS)
 
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
2016 - Continuously Delivering Microservices in Kubernetes using Jenkins
 
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
A Hitchhiker’s Guide to the Cloud Native Stack. #CDS17
 
Service Discovery In Kubernetes
Service Discovery In KubernetesService Discovery In Kubernetes
Service Discovery In Kubernetes
 
Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!Platform Clouds, Containers, Immutable Infrastructure Oh My!
Platform Clouds, Containers, Immutable Infrastructure Oh My!
 
The path to a serverless-native era with Kubernetes
The path to a serverless-native era with KubernetesThe path to a serverless-native era with Kubernetes
The path to a serverless-native era with Kubernetes
 
Top 3 reasons why you should run your Enterprise workloads on GKE
Top 3 reasons why you should run your Enterprise workloads on GKETop 3 reasons why you should run your Enterprise workloads on GKE
Top 3 reasons why you should run your Enterprise workloads on GKE
 
Kubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive OverviewKubernetes - A Comprehensive Overview
Kubernetes - A Comprehensive Overview
 

Viewers also liked

Amigos Cheveres
Amigos CheveresAmigos Cheveres
Amigos Cheveres
joanvinpa
 
Traffic Calming In Fort Worth
Traffic Calming In Fort WorthTraffic Calming In Fort Worth
Traffic Calming In Fort Worth
Justin Flowers
 
Infofinal Presentation_re
Infofinal Presentation_reInfofinal Presentation_re
Infofinal Presentation_re
Bockit
 

Viewers also liked (20)

The World of OpenSpime - Infrastructure For An Open Internet Of Things
The World of OpenSpime - Infrastructure For An Open Internet Of ThingsThe World of OpenSpime - Infrastructure For An Open Internet Of Things
The World of OpenSpime - Infrastructure For An Open Internet Of Things
 
30 Internet Marketing Tips You Should Do RIGHT NOW
30 Internet Marketing Tips You Should Do RIGHT NOW30 Internet Marketing Tips You Should Do RIGHT NOW
30 Internet Marketing Tips You Should Do RIGHT NOW
 
Srt File
Srt FileSrt File
Srt File
 
Badajoz
BadajozBadajoz
Badajoz
 
Creating Friend Lists on Facebook
Creating Friend Lists on FacebookCreating Friend Lists on Facebook
Creating Friend Lists on Facebook
 
Seminariotecnologia2010
Seminariotecnologia2010Seminariotecnologia2010
Seminariotecnologia2010
 
database diklat
database diklatdatabase diklat
database diklat
 
One Trick Ponies Get Shot, for SEOs
One Trick Ponies Get Shot, for SEOsOne Trick Ponies Get Shot, for SEOs
One Trick Ponies Get Shot, for SEOs
 
Scuola Madre Teresa India
Scuola Madre Teresa IndiaScuola Madre Teresa India
Scuola Madre Teresa India
 
Blogging Best practices: 40 tips in 40 minutes
Blogging Best practices: 40 tips in 40 minutesBlogging Best practices: 40 tips in 40 minutes
Blogging Best practices: 40 tips in 40 minutes
 
Fallas
FallasFallas
Fallas
 
Amigos Cheveres
Amigos CheveresAmigos Cheveres
Amigos Cheveres
 
American Independent Writers Going Freelance Workshop Nov 7 2009
American Independent Writers   Going Freelance Workshop Nov 7 2009American Independent Writers   Going Freelance Workshop Nov 7 2009
American Independent Writers Going Freelance Workshop Nov 7 2009
 
Search and Social Media
Search and Social MediaSearch and Social Media
Search and Social Media
 
I Problemi Adolescenziali
I Problemi AdolescenzialiI Problemi Adolescenziali
I Problemi Adolescenziali
 
Traffic Calming In Fort Worth
Traffic Calming In Fort WorthTraffic Calming In Fort Worth
Traffic Calming In Fort Worth
 
Infofinal Presentation_re
Infofinal Presentation_reInfofinal Presentation_re
Infofinal Presentation_re
 
Introduction to Cloud Computing
Introduction to Cloud ComputingIntroduction to Cloud Computing
Introduction to Cloud Computing
 
MiT6 - Melanie E.S. Kohnen
MiT6 - Melanie E.S. KohnenMiT6 - Melanie E.S. Kohnen
MiT6 - Melanie E.S. Kohnen
 
IT strategy discussion
IT strategy discussionIT strategy discussion
IT strategy discussion
 

Similar to Clocker - How to Train your Docker Cloud

Similar to Clocker - How to Train your Docker Cloud (20)

Clocker - The Docker Cloud Maker
Clocker - The Docker Cloud MakerClocker - The Docker Cloud Maker
Clocker - The Docker Cloud Maker
 
Simulating Production with Clocker
Simulating Production with ClockerSimulating Production with Clocker
Simulating Production with Clocker
 
Clocker: Managing Container Networking and Placement
Clocker: Managing Container Networking and PlacementClocker: Managing Container Networking and Placement
Clocker: Managing Container Networking and Placement
 
Bringing Docker to the Cloud
Bringing Docker to the CloudBringing Docker to the Cloud
Bringing Docker to the Cloud
 
Using Clocker with Project Calico - Running Production Workloads in the Cloud
Using Clocker with Project Calico - Running Production Workloads in the CloudUsing Clocker with Project Calico - Running Production Workloads in the Cloud
Using Clocker with Project Calico - Running Production Workloads in the Cloud
 
Running Docker in Production
Running Docker in ProductionRunning Docker in Production
Running Docker in Production
 
Clocker, Calico and Docker
Clocker, Calico and DockerClocker, Calico and Docker
Clocker, Calico and Docker
 
Sebastien goasguen cloud stack and docker
Sebastien goasguen   cloud stack and dockerSebastien goasguen   cloud stack and docker
Sebastien goasguen cloud stack and docker
 
ContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small businessContainerDayVietnam2016: Dockerize a small business
ContainerDayVietnam2016: Dockerize a small business
 
On CloudStack, Docker, Kubernetes, and Big Data…Oh my ! By Sebastien Goasguen...
On CloudStack, Docker, Kubernetes, and Big Data…Oh my ! By Sebastien Goasguen...On CloudStack, Docker, Kubernetes, and Big Data…Oh my ! By Sebastien Goasguen...
On CloudStack, Docker, Kubernetes, and Big Data…Oh my ! By Sebastien Goasguen...
 
Best Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker ContainersBest Practices for Running Kafka on Docker Containers
Best Practices for Running Kafka on Docker Containers
 
Docker and CloudStack
Docker and CloudStackDocker and CloudStack
Docker and CloudStack
 
Jclouds Intro
Jclouds IntroJclouds Intro
Jclouds Intro
 
Clocker Now and Next
Clocker Now and NextClocker Now and Next
Clocker Now and Next
 
Getting Started with MariaDB with Docker
Getting Started with MariaDB with DockerGetting Started with MariaDB with Docker
Getting Started with MariaDB with Docker
 
Clocker: Docker in the Cloud
Clocker: Docker in the CloudClocker: Docker in the Cloud
Clocker: Docker in the Cloud
 
Microservices with docker swarm and consul
Microservices with docker swarm and consulMicroservices with docker swarm and consul
Microservices with docker swarm and consul
 
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on AzureDocker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
Docker Seattle Meetup April 2015 - The Docker Orchestration Ecosystem on Azure
 
RICON 2014 Running Riak in a Docker Cloud using Apache Brooklyn
RICON 2014 Running Riak in a Docker Cloud using Apache BrooklynRICON 2014 Running Riak in a Docker Cloud using Apache Brooklyn
RICON 2014 Running Riak in a Docker Cloud using Apache Brooklyn
 
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
MongoDB SoCal 2020: Using MongoDB Services in Kubernetes: Any Platform, Devel...
 

More from Andrew Kennedy

More from Andrew Kennedy (15)

Hyperledger Lightning Talk
Hyperledger Lightning TalkHyperledger Lightning Talk
Hyperledger Lightning Talk
 
Orchestraing the Blockchain Using Containers
Orchestraing the Blockchain Using ContainersOrchestraing the Blockchain Using Containers
Orchestraing the Blockchain Using Containers
 
Multi-Container Applications Spanning Docker, Mesos and OpenStack
Multi-Container Applications Spanning Docker, Mesos and OpenStackMulti-Container Applications Spanning Docker, Mesos and OpenStack
Multi-Container Applications Spanning Docker, Mesos and OpenStack
 
Containers: Beyond the Basics
Containers: Beyond the BasicsContainers: Beyond the Basics
Containers: Beyond the Basics
 
Introducing the Open Container Project
Introducing the Open Container ProjectIntroducing the Open Container Project
Introducing the Open Container Project
 
Docker Networking with Project Calico
Docker Networking with Project CalicoDocker Networking with Project Calico
Docker Networking with Project Calico
 
Clocker 1.0.0 Preview
Clocker 1.0.0 PreviewClocker 1.0.0 Preview
Clocker 1.0.0 Preview
 
Metaswitch Project Calico
Metaswitch Project CalicoMetaswitch Project Calico
Metaswitch Project Calico
 
Docker Networking with Clocker and Weave
Docker Networking with Clocker and WeaveDocker Networking with Clocker and Weave
Docker Networking with Clocker and Weave
 
Deploying Complex Applications on Docker using Apache Brooklyn
Deploying Complex Applications on Docker using Apache BrooklynDeploying Complex Applications on Docker using Apache Brooklyn
Deploying Complex Applications on Docker using Apache Brooklyn
 
Deploying Complex Applications on Docker using Apache Brooklyn
Deploying Complex Applications on Docker using Apache BrooklynDeploying Complex Applications on Docker using Apache Brooklyn
Deploying Complex Applications on Docker using Apache Brooklyn
 
Clocker Evolution
Clocker EvolutionClocker Evolution
Clocker Evolution
 
Clocker and OpenStack
Clocker and OpenStackClocker and OpenStack
Clocker and OpenStack
 
Introducing Clocker
Introducing ClockerIntroducing Clocker
Introducing Clocker
 
Global Scale ESB with Mule
Global Scale ESB with MuleGlobal Scale ESB with Mule
Global Scale ESB with Mule
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 

Recently uploaded (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 

Clocker - How to Train your Docker Cloud

  • 1. QCon  London  2015;  Docker  Track   Andrew  Kennedy  @grkvlt   Clocker   How  to  Train  Your  Docker  Cloud  
  • 2. @grkvlt   Introduc/on   •  Andrew  Kennedy   –  Clocker  Project  Founder  and  Lead  Engineer   –  Open  Source  and  Distributed  Systems   –  github.com/grkvlt   •  CloudsoG  Corpora/on   –  Open  Source  Applica/on  Management  Specialists   –  We’re  Hiring…  
  • 3. @grkvlt   Agenda   •  Clocker  Introduc/on   •  What  is  a  Docker  Cloud?   •  Training  a  Docker  Cloud   •  Demonstra/on   •  Roadmap  
  • 5.
  • 6. @grkvlt   What  does  it  do?   1.  Spins  up  and  Manages  Docker   Clouds   2.  Serves  up  Containers  on  Demand   3.  Manages  Composite  Applica/on   Deployments  on  Docker  
  • 7. @grkvlt   What  does  it  provide?   •  Mul/  Host  and  Mul/  Container  Applica/ons   •  Seamless  Networking   – Communica/on  Between  Services   •  Orchestra/on  and  Clustering   – Control  of  Containers   – Container  Management  
  • 8. @grkvlt   Who  is  using  it?   •  Tes/ng  and  Proof  of  Concept  Stage   –  Financial  Services   –  Insurance   •  Produc/on   –  Mul/-­‐tenant  Applica/on  Trial   –  Container  per  service   –  Via  IBM  BlueMix  
  • 9. @grkvlt   Where  can  I  find  it?   •  Open  Source   •  Apache  2.0  Licensed   •  h[p://clocker.io     •  Status   •  0.7.0  Beta  Release   •  0.8.0-­‐SNAPSHOT  Development  
  • 10. What  is  a  Docker  Cloud?  
  • 11. @grkvlt   Clocker  and  Brooklyn   •  What  is  it?   – Brooklyn  Applica/on   – Brooklyn  Loca/on   •  What  does  it  provide?   – First  Class  Docker  Support  in  Brooklyn   – Op/mized  Brooklyn  Blueprints  for  Docker  
  • 12. Apache  Brooklyn   •  Apache  Brooklyn   – Open  Source   – Java   – Donated  to  the  Apache  SoGware  Founda/on   – ASF  Incubator  Status  
  • 13. @grkvlt   Apache  Brooklyn   •  Applica/on  Management  Pla_orm   •  Deploy,  Manage  and  Monitor  Blueprints   •  Provisioning,  Installa/on  and  Customiza/on   •  Management   – AutoScaling,  Resilience,  Performance,  Security  
  • 14. Apache  jclouds   •  Java  Cloud  Library   •  API  Agnos/c   – CloudStack,  OpenStack,  AWS  EC2,  GCE…   •  Create  Virtual  Machines   – Return  SSH  Endpoint   – Manage  Proper/es  
  • 15. @grkvlt   Apache  jclouds   •  Drivers  for  REST  APIs   •  Docker  Driver   –  Wri[en  by  @turlinux   •  Virtual  Container   –  Using  SSH  Daemon   –  Same  Endpoint  Type  as  VM   –  Composi/on  on  any  Image  or  Dockerfile  
  • 16. @grkvlt   Docker   •  Popular   – Large  Ecosystem   – Growing   – Complex   •  Containers   – Isola/on   – Performance   – Composable  
  • 18. @grkvlt   Brooklyn  Blueprints   •  Describe  Applica/ons   •  OASIS  CAMP  Standard   •  List  of  Services   •  Tree  Structure   •  Sensors,  Effectors  and  Policies  
  • 19. @grkvlt   Blueprint  Example   name:  appserver-­‐w-­‐policy   services:   -­‐  type:  brooklyn.entity.webapp.ControlledDynamicWebAppCluster      initialSize:  1      memberSpec:          $brooklyn:entitySpec:              type:  brooklyn.entity.webapp.jboss.JBoss7Server              brooklyn.config:                  wars.root:                      http://search.maven.org/remotecontent?filepath=io/brooklyn/example/brooklyn-­‐example-­‐hello-­‐world-­‐sql-­‐webapp/0.6.0/brooklyn-­‐example-­‐hello-­‐world-­‐sql-­‐ webapp-­‐0.6.0.war                  http.port:  8080+                  java.sysprops:                        brooklyn.example.db.url:  $brooklyn:formatString("jdbc:%s%s?user=%s&password=%s",                              component("db").attributeWhenReady("datastore.url"),  "visitors",  "brooklyn",  "br00k11n")      brooklyn.policies:      -­‐  policyType:  brooklyn.policy.autoscaling.AutoScalerPolicy          brooklyn.config:              metric:  $brooklyn:sensor("brooklyn.entity.webapp.DynamicWebAppCluster",  "webapp.reqs.perSec.windowed.perNode")              metricLowerBound:  10              metricUpperBound:  100              minPoolSize:  1              maxPoolSize:  5   -­‐  type:  brooklyn.entity.database.mysql.MySqlNode      id:  db      name:  DB  HelloWorld  Visitors      brooklyn.config:          datastore.creation.script.url:              https://github.com/apache/incubator-­‐brooklyn/raw/master/usage/launcher/src/test/resources/visitors-­‐creation-­‐script.sql  
  • 20. @grkvlt   Applica/on  Management   •  Policies   •  Sensor  Data  Driven   •  Auto  Scaling   •  Cluster  Management   •  Resilience  and  Failover   •  Follow  the  Sun  
  • 21. @grkvlt   Docker  Cloud   •  Brooklyn  Blueprint  for  Docker  Cluster   •  Docker  Engine  on  Cloud  VM   – Configura/on  for  TLS  Cer/ficates   – Setup  Volumes  (Logging?)   – Install  Agents  (Security?  SDN?)  
  • 22. @grkvlt   Docker  Cloud   1.  On-­‐demand   2.  Mul/-­‐Tenant   3.  Hardware  Independent   4.  Applica/on  Level  
  • 24. @grkvlt   Clocker  Features   •  Applica/on  Deployment   –  Oasis  CAMP  YAML  Blueprint   –  TOSCA  in  Development   –  Same  as  Core  Brooklyn   •  Mixed  Des/na/ons   –  Some  Virtual  Machines   –  Some  Bare  Metal   –  Some  Containers  
  • 25. @grkvlt   Clocker  Features   •  Docker  Extensions  to  Brooklyn   –  Dockerfile  or  Image  Specifica/on  for  Installa/on   –  Placement  Strategies  for  Containers   –  Create  Docker  Images  and  Networks   •  Manages  Docker  Engine   –  Deployment  and  Management   –  Installa/on  and  Configura/on   –  SoGware-­‐Defined  Networking  
  • 26. @grkvlt   Clocker  Orchestra/on   Docker   Engine   Virtual   Machine   Container  Clocker   Network   Segment   SDN   Cloud  
  • 27. Training  a  Docker  Cloud  
  • 28. @grkvlt   Training…?   •  Container  Management   •  Placement  and  Provisioning   •  Autonomics   – Policies  and  Scaling   •  Headroom   •  Networks  
  • 29. @grkvlt   Container  Management   •  Sources   –  Docker  Image  Defini/on   –  Docker  Hub   –  Dockerfile   –  Brooklyn  En/ty  Defini/on   •  Create  Image  Automa/cally   –  Commit  or  Push  for  Reuse  
  • 30. @grkvlt   Container  Management   •  Installa/on  of  Services   –  Defined  by  Brooklyn  or  Dockerfile   –  Common  to  all  En/ty  Instances   •  Commit  Image   –  Available  for  next  En/ty   •  Push  Image   –  Available  for  all  Hosts  
  • 31. @grkvlt   Container  Management   id:  dockerfile-­‐mysql   name:  "Docker  Hub  MySQL  Database"   origin:  "https://registry.hub.docker.com/_/mysql/"   locations:   -­‐  my-­‐docker-­‐cloud   services:   -­‐  type:  brooklyn.entity.container.docker.application.DockerfileApplication      id:  mysql      name:  "MySQL"      brooklyn.config:          docker.dockerfile.url:              "https://s3-­‐eu-­‐west-­‐1.amazonaws.com/brooklyn-­‐clocker/mysql-­‐5.6.tgz"          docker.container.environment:              MYSQL_ROOT_PASSWORD:  "s3cr3t”    
  • 32. @grkvlt   Container  Management   id:  dockerfile-­‐mysql   name:  "Docker  Hub  LAMP  Stack"   locations:   -­‐  my-­‐docker-­‐cloud   services:   -­‐  type:  docker:mysql:5.7.5      id:  mysql      env:          MYSQL_ROOT_PASSWORD:  "s3cr3t"   -­‐  type:  docker:grkvlt/myapp:latest      id:  application      env:          MYSQL_HOST:              component(”mysql").attributeWhenReady("host.hostname")    
  • 33. @grkvlt   Container  Placement   •  Demand   –  Adding  an  Applica/on   –  Scaling  exis/ng  Applica/on   •  Requirements   –  Host  Loca/on   –  Service  Resources   –  CPU,  Memory    
  • 34. @grkvlt   Container  Placement   •  Supply   – Choose  a  Host  from  available   – Create  new  Host   •  Start  Container   –  Set  CPU  and  Memory   –  A[ach  to  Network  
  • 35. @grkvlt   Container  Placement   •  Placement  Strategies   –  Filter  Hosts   –  Sort  Hosts   •  Informa/on  from   –  Docker   –  Underlying  Machine   –  Cloud  Environment   –  En/ty  or  Service  
  • 36. @grkvlt   Container  Placement   •  Placement  Strategies   –  Random,  Depth  or  Breadth  First   –  CPU  or  Memory  Usage   –  Memory,  CPU  or  Container  Limits   –  Geographic  Constraints   •  User  Defined   –  Java  Predicate  
  • 37. @grkvlt   Placement  Strategy   •  Determinis/c   •  Simple   – Predicate  and  Comparator   docker.container.strategies:      -­‐  $brooklyn:object:              type:  "brooklyn.location.docker.strategy.MaxContainersPlacementStrategy”              brooklyn.config:                  maxContainers:  16      -­‐  $brooklyn:object:              type:  "brooklyn.location.docker.strategy.CpuUsagePlacementStrategy”              brooklyn.config:                  maxCpu:  0.75  
  • 38. @grkvlt   Container  Provisioning   •  Provisioning  Strategy   –  New  Docker  Host  Loca/on   •  Constraints   –  Docker  Infrastructure  Constraints   –  En/ty  or  Applica/on  Constraints   •  User  Defined  Strategies   •  Intelligent  Container  Orchestra/on  
  • 39. @grkvlt   Autonomics   •  Brooklyn  Policies   •  A[ached  to  En//es  in  Applica/on   – Nothing  Docker  Specific   •  Elas/c  Scaling   – Cluster  Resizing   – Sensor  Driven    
  • 40. @grkvlt   Applica/on  Resilience   •  Service  Resilience  and  Replacement   – Restart  Service  and  Container   – Applica/on  Level,  Not  Infrastructure   – Same  as  Cloud   •  Could  be  Integrated  Further   – Snapshot  Running  Container  for  Restart  
  • 41. @grkvlt   Headroom   •  Ensure  resources  available   •  Based  on  MaxContainers  strategy  limit   –  Or  Percentage  U/lisa/on   –  Or  CPU  and  RAM  alloca/on   •  Scale  Docker  Host  Cluster  Automa/cally     –  Add  new  Docker  hosts   –  Remove  empty  Docker  hosts  
  • 42. @grkvlt   SoGware-­‐Defined  Networking   •  Needed  for  Seamless  Provisioning   •  Host  to  Host  Communica/on   – Same  LAN  Segment   – No  Port  Forwarding   – Natural  Applica/on  Configura/on   •  Ini/al  Driver  was  EPMD  Applica/ons  
  • 43. @grkvlt   Networking  Providers   •  Standardized  Interfaces   •  Pluggable  Providers   – Weave   – Metaswitch  Calico   – IBM  OpenDOVE   – Others?  
  • 44. @grkvlt   Networking  Providers   •  Implementa/on  Agnos/c   – L2  over  L3  etc.   – Similar  to  Hypervisor  in  Clouds   •  Generic  Interfaces   – Host  Component   – Service  Component  (or  Endpoint)  
  • 45. @grkvlt   Networking  Capabili/es   •  Provide  Mul/ple  Networks   – Single  Applica/on  or  Shared   – Private  Addresses   – Segmented  by  CIDR   •  Docker  Port  Forwarding  Access   – Debug  Mechanism  
  • 46. @grkvlt   Clocker  Networking   Container  Host   SDN   Bridge   Container   Internet   SDN   Gateway  
  • 47. @grkvlt   Networking  Capabili/es   •  IP  Pool  Controlled  by  Clocker   •  Clocker  Controls  Subnet  Alloca/on   – Applica/ons  Segmented  by  CIDR   •  Delegate  to  SDN  or  Cloud   – Bring  your  own  IP   •  Docker  Port  Forwarding  Access  
  • 48. @grkvlt   Future  Capabili/es   •  Adding  More  SDN  Providers   •  Name  Resolu/on   – BIND  and  DNSmasq  or  Weave  DNS   – Needed  for  JMX  et  al   – Enables  Many  More  En//es   •  Adding  More  Supported  Blueprints  
  • 49. @grkvlt   Virtual  Network  En/ty   •  New  Clocker  En/ty   •  Provisions  a  Virtual  Network   •  Looks  for  NetworkProvisioningExtension   – Registered  in  DockerLoca/on  by  SDN  Provider   – Could  also  add  to  JcloudsLoca/on  for  Clouds   •  Part  of  Applica/on  Blueprint  
  • 50. @grkvlt   Network  Provisioning   •  Create  Named  Virtual  Networks   •  Uses  Available  Provider   –  Currently  Weave,  Calico  and  IBM  Supported     -­‐  type:  brooklyn.networking.VirtualNetwork      networkId:  my-­‐application      cidr:  192.168.12.0/24      gateway:  192.168.12.1      dnsServers:      -­‐  8.8.8.8      brooklyn.config:          sdn.example.securityGroup:  "my-­‐security-­‐group"  
  • 51. @grkvlt   Network  Provisioning   •  Allow  Minimal  (Zero!)  Configura/on   •  Use  Sensible  Defaults   –  Also  SDN  Specific  Configura/on   •  Allocate  Address  Space  on  Demand     -­‐  type:  brooklyn.networking.VirtualNetwork      networkId:  database-­‐net      cidr:  192.168.34.0/24   -­‐  type:  brooklyn.networking.VirtualNetwork      networkId:  couchbase-­‐net  
  • 52. @grkvlt   Network  Provisioning   •  A[ach  Containers  to  Networks        brooklyn.config:          network.list:          -­‐  couchbase-­‐net          -­‐  management-­‐net     •  Create  Networks  as  Required   •  Also  A[ach  to  VMs  and  Metal   – Where  Supported    
  • 54.
  • 55.
  • 56.
  • 57.
  • 58. @grkvlt   Features   •  Orchestrated  Docker  1.5.0  deployment  with   Weave  SDN  integra/on   •  Automated  a[achment  of  containers  to   mul/ple  dynamic  networks   •  Brooklyn  applica/on  blueprints  with  network   topology  
  • 60. @grkvlt   Roadmap   •  Latest  Docker  1.5.0  Feature  Support   –  Stats  command,  Read-­‐only  containers,  Named  Dockerfiles  and  more   •  Swarm   –  Add  Clocker  as  an  extension  to  Swarm  itself?   –  Or  add  features  to  exis/ng  jclouds  driver?   •  Compose   –  Support  as  alterna/ve  blueprin/ng  language  
  • 61. @grkvlt   Roadmap   •  Networking   – DNS  and  DNSmasq  Integra/on   – Rancher  Integra/on   – Open  vSwitch  Integra/on   •  Gemng  Started   – Clocker  Dockerfile  
  • 62. @grkvlt   Roadmap   •  Repositories   –  Docker  Enterprise  Hub   –  Bintray,  Ar/factory,  Quay.io   –  Private  Repositories   •  Applica/on  Defini/on   –  TOSCA   –  Docker  Compose  
  • 63. @grkvlt   Roadmap   •  Plugin  API  will  be  helpful   •  Also  projects  like  Powerstrip   •  Provide  services  to  Docker  this  way   •  Orchestra/on   •  Policies   •  Consume  wider  range  of  services   •  Networking  and  Storage  
  • 64. @grkvlt   Summary   •  Clocker   –  Brooklyn  +  jclouds  +  Docker  +  Weave  +  …   –  @clockercentral   •  Solves   –  Composite  Applica/on  Management   –  Docker  Cloud  Networking   –  Container  Placement  and  Provisioning  
  • 66. @grkvlt   Web  Resources   http://clocker.io/   http://brooklyn.io/   http://docker.io/   http://github.com/zettio/weave/   http://abstractvisitorpattern.co.uk/   @clockercentral  @brooklyncentral  @cloudsoft