Post on 14-Sep-2014
description
Using Apache Brooklyn and Docker in the Cloud
Introducing Clocker
Andrew Kennedy Andrea Turli Sam Corbett
CloudStack Meetup, 26 June 2014
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 2
Introduction
• New Project • Clocker
• Apache Brooklyn • Apache Jclouds • Docker
• Demonstrations
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 3
Apache Brooklyn
• Open Source • GitHub • Apache Incubator
• Autonomic Computing • Control Plane • Application Management • Entities
• Sensors • Effectors
• Locations 26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 4
Apache Jclouds
• Cloud Library • Provider/API Agnostic • Providers
• Softlayer • Amazon EC2 • Rackspace ...
• API • CloudStack • OpenStack • vSphere …
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 5
Docker
• Containers • LXC • Solaris Zones • BSD Jails
• Lightweight Virtual Machines • Dockerfiles
• Composable
• Docker Hub • Canonical Images • User or Vendor Contributed
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 6
Virtual Containers
• Jclouds Driver • Virtual Machine • Nodes • Access over SSH
• Any Underlying Provider • Add SSH Service • Docker Host Access
• Command Line • REST API
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 7
Infrastructure
• Brooklyn Entity
• Docker Cloud
• Resizable Clusters • Hosts • Containers
• Installs Docker
• Creates Location
• Interception
• Forwards Ports
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 8
Architecture
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 9
Simple Architecture
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 10
Application
• Brooklyn Blueprints • YAML • Java Classes
• Entity Tree • SSH Commands • No Changes Needed
• Dockerfiles • Docker Configuration
• Automation
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 11
Configuration
id: tomcat-‐application name: "Tomcat Web Application" locations: -‐ my-‐docker-‐cloud services: -‐ serviceType: brooklyn.entity.webapp.tomcat.TomcatServer brooklyn.config: docker.dockerfile.url: "https://s3-‐eu-‐west-‐1.amazonaws.com/brooklyn-‐clocker/UsesJavaDockerfile" wars.root: "https://s3-‐eu-‐west-‐1.amazonaws.com/brooklyn-‐clocker/hello-‐world.war" version: "7.0.53" jmx.enabled: true jmx.agent.mode: "JMXMP" jmx.direct.port: "30000+"
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 12
Demonstration
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 13
Complex Applications
• Service Composition
• Multiple Entities
• Linking via Attributes
• Clusters and Groups
• Enrichers and Policies
• Example • Cassandra Multi-Region Deployment • Global Three-Tier Webapp • Apache Usergrid • OpenGamma
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 14
Placement
• Adding New Containers
• Choose Hosts Intelligently
• Placement Strategy
• Availability Zone • Docker Host
• Choices • Breadth First • Depth First • Minimum CPU Usage
• Affinity • DSL or API
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 15
Policy
• Data Based • Autoscaling • High Availability
• Entity Sensors • Cluster Aggregates
• Windowed Rolling Average • Too Hot or Cold • Fixed Limits
• Time Based • Follow The Sun
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 16
Demonstration
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 17
Roadmap
• Version 0.5.0 • Affinity Rules • Docker Hub Integration • CPU and Memory Shares • Volumes
• Version 0.6.0 • Software Defined Networking • Smart Import of Existing Hosts
• Future… • Libswarm? • Kubernetes? • You tell us!
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 18
Summary
• What is Clocker? • Brooklyn Docker Integration • Cloud Agnostic • CAMP Application Blueprints • Intelligent Placement • Automated Orchestration
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 19
Questions
• Thanks For Listening!
• Questions?
• Web Resources
https://github.com/brooklyncentral/clocker/releases/0.4.0/ https://github.com/brooklyncentral/clocker/fork http://www.cloudsoftcorp.com/blog/2014/06/clocker-‐creating-‐a-‐docker-‐
cloud-‐with-‐apache-‐brooklyn/ http://abstractvisitorpattern.blogspot.co.uk/ http://github.com/apache/incubating-‐brooklyn/ http://twitter.com/grkvlt
26/06/2014 Copyright 2014 by Cloudsoft Corporation Limited Page: 20