Upload
andrew-kennedy
View
188
Download
0
Embed Size (px)
DESCRIPTION
Talk given at OpenStack online meetup on 19 August 2014
Citation preview
Clocker and OpenStack Andrew Kennedy, Dave Nielsen and Andrea Turli
OpenStack Meetup, 19 August 2014
IntroducCon • Speakers
– Andrew Kennedy and Andrea Turli – Dave Neilsen
• Overview – Docker – Brooklyn – Campsite – OpenStack
Docker • IntroducCon • Popularity • History • Ecosystem
Docker
Docker • Technical • Containers • Micro Services • Dockerfiles – ConfiguraCon – Volumes – Composable
Docker • Cloud Usage • OpenStack • Manual Process
– CredenCals and Keys – OperaCng System and Hardware – Download and InstallaCon – ConfiguraCon – Dockerfile per Service
Brooklyn • Brooklyn
– ApplicaCon Management PlaOorm – Autonomic CompuCng
• YAML Blueprint – Services (EnCCes) – ConfiguraCon – ATributes (Sensors) – AcCons (Effectors)
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
Clocker
DemonstraCon
Deploying a Docker Cloud
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, …)
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
DemonstraCon
ApplicaCons on the Docker Cloud
Campsite ApplicaCon • GitHub Repository • Components
– PHP Web ApplicaCon – Node.JS RESTful API – MySQL Database
• Cloud Services – Email – Message Queue – Object Store
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
Campsite Blueprint • Java Components
– CampsiteWebapp PHP EnCty – CampsiteApi Node.JS EnCty
• Campsite ApplicaCon – ConfiguraCon ProperCes – Webapp, API and MySQL Database EnCCes
• YAML Blueprint
DemonstraCon
Campsite Deployment
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
DemonstraCon
Campsite Cluster Blueprint
Summary • Docker Containers – Micro Services
• LimitaCons – MulCple Hosts – Management
• Clocker – ApplicaCon Blueprints – OrchestraCon
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