clocker( - events.static.linuxfound.org · deploying*complex*applicaons*on*...
TRANSCRIPT
![Page 1: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/1.jpg)
Clocker Deploying Complex Applica3ons on Docker using Apache Brooklyn
![Page 2: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/2.jpg)
Deploying Complex Applica1ons on Docker using Apache Brooklyn
Andrew Kennedy @grkvlt ApacheCon, November 2014
Budapest, Hungary
![Page 3: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/3.jpg)
Introduc1on • Andrew Kennedy – SoHware Engineer – Open Source – github.com/grkvlt
• CloudsoH Corpora1on – ScoMsh (Bri1sh? European!) Company – We’re Hiring…
![Page 4: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/4.jpg)
Introduc1on • Clocker – Docker – Apache Brooklyn – Apache Jclouds – Weave
• Demonstra1on • Roadmap
![Page 5: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/5.jpg)
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 · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/6.jpg)
Docker • Popular – Huge Ecosystem – Growing – Complex
• Containers – Isola1on – Performance – Composable
![Page 7: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/7.jpg)
Docker
![Page 8: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/8.jpg)
Limita3ons… Docker Limita3ons
![Page 9: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/9.jpg)
Docker Limita1ons • Mul1ple Hosts • Networking – Same Issue – Communica1on Between Services
• Orchestra1on and Clustering – Control of Containers – Container Management
![Page 10: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/10.jpg)
Docker Limita1ons • Plugin API will Help • Not standardized yet • Working on it…
• Need to avoid lock-‐in • One size fits all is never good enough
![Page 11: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/11.jpg)
Clocker Project • GitHub • Open Source • Java • Recently Developed • S1ll Beta Status – 0.7.0-‐SNAPSHOT – Release 0.7.0 Tomorrow
![Page 12: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/12.jpg)
Why Clocker • Docker Popularity – Solve Some Limita1ons
• Best of Breed Components • Brooklyn Integra1on – Virtual Machines too Coarse – Container to En1ty Mapping
![Page 13: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/13.jpg)
Clocker Components • Apache Brooklyn – CloudsoH Product – Open Source Java – Donated to the ASF – Incubator Status
![Page 14: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/14.jpg)
Apache Brooklyn • Applica1on Management Pladorm • Autonomic Compu1ng Principles • Deploy, Manage and Monitor Blueprints – Services (En11es) – State (Sensors) – Ac1ons (Effectors)
![Page 15: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/15.jpg)
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 16: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/16.jpg)
Apache Brooklyn • Deployment – Provisioning – Loca1ons – Installa1on and Customiza1on
• Packages, Scripts, Chef, SaltStack • Management – Policies
• AutoScaling, Resilience, Performance, Access
![Page 17: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/17.jpg)
Apache Jclouds • Java Cloud Library • API Agnos1c – CloudStack, OpenStack, AWS EC2, GCE…
• Create Virtual Machines – Return SSH Endpoint – Manage Proper1es
![Page 18: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/18.jpg)
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 19: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/19.jpg)
Weave • SoHware Defined Networking – Ethernet Switch – User Space – Docker Container
• Sniffs Traffic on Host • Forwards over TCP
![Page 20: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/20.jpg)
Weave
![Page 21: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/21.jpg)
What is Clocker?
![Page 22: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/22.jpg)
What is Clocker? • Brooklyn Applica1on – Docker Infrastructure
• Docker Engine • Docker Containers
– Weave Infrastructure • Weave Container
![Page 23: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/23.jpg)
What is Clocker? • Brooklyn Loca1on – Des1na1on for Blueprints
• Added Features – Create Containers – Provision Docker Hosts – Afach to Weave Network – Manage Applica1on
![Page 24: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/24.jpg)
Clocker Architecture
![Page 25: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/25.jpg)
Clocker Architecture
![Page 26: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/26.jpg)
Clocker Features • Applica1on Deployment – Oasis CAMP Blueprint – Same as Core Brooklyn
• Mixed Des1na1ons – Some Virtual Machines – Some Bare Metal – Some Containers
![Page 27: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/27.jpg)
Clocker Features • Applica1on Deployment – Oasis CAMP Blueprint – Same as Core Brooklyn
• Docker Extensions – Container or Image – Placement Strategy – Dockerfile URL
![Page 28: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/28.jpg)
Clocker Placement • Demand Side – New Container
• Supply Side – Where? – Placement Strategy – Provisioning Strategy
![Page 29: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/29.jpg)
Clocker Placement • Placement Strategies – Depth First – Breadth First – CPU Usage – Affinity or An1 Affinity – Memory or CPU Core Availability
![Page 30: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/30.jpg)
Clocker Placement • Provisioning Strategy – New Docker Host Loca1on
• Constraints – Docker Infrastructure Constraints – En1ty or Applica1on Constraints
• User Defined Strategies • Intelligent Container Orchestra1on
![Page 31: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/31.jpg)
Clocker Placement • Determinis1c • 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
![Page 32: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/32.jpg)
Container Management • Sources – Docker Image Defini1on – Docker Hub – Dockerfile – Brooklyn En1ty Defini1on
• Create Image Automa1cally
![Page 33: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/33.jpg)
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 34: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/34.jpg)
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 35: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/35.jpg)
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 36: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/36.jpg)
Networking • S1ll First Steps… • Name Resolu1on – BIND and DNSmasq – Needed for JMX et al
• Enables Many More En11es • But Needs Tested!
![Page 37: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/37.jpg)
Demonstra3on
![Page 38: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/38.jpg)
![Page 39: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/39.jpg)
![Page 40: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/40.jpg)
![Page 41: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/41.jpg)
Roadmap Now • Improvements To Networking – DNS and DNSmasq Integra1on – Work in Progress
• Befer GeMng Started – Self Hos1ng on Localhost – Brooklyn Dockerfile
![Page 42: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/42.jpg)
Roadmap Soon • Befer Integra1on with Repositories – Docker Hub, Ar1factory, Quay.io – Private Repositories
• Easier Applica1on Defini1on – Open Standard? – Kubernetes Pods?
![Page 43: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/43.jpg)
Roadmap Next • Integra1on – Google Kubernetes – ClusterHQ Flocker – Ar1factory
• Improvements – Bootstrapping
![Page 44: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/44.jpg)
Summary • Clocker – Brooklyn + Docker + Jclouds + Weave
• Solves – Docker Networking – Container Placement – Applica1on Defini1on
![Page 45: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/45.jpg)
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 46: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/46.jpg)
Thanks! Ques1ons?
![Page 47: Clocker( - events.static.linuxfound.org · Deploying*Complex*Applicaons*on* Docker*using*Apache*Brooklyn* Andrew*Kennedy*@grkvlt ApacheCon,*November*2014* Budapest,*Hungary*](https://reader034.vdocuments.site/reader034/viewer/2022042302/5ecd0e3bba2cd96faa67787a/html5/thumbnails/47.jpg)
Web Resources
http://clocker.io/
http://brooklyn.io/
http://docker.io/
http://github.com/zettio/weave/
http://abstractvisitorpattern.co.uk/