Codemotion Rome 2015 - This talk introduces Clocker is an Apache licensed open source Brooklyn application that demonstrates intelligent placement, on-demand provisioning and autonomic management of docker containers across multiple cloud providers. Clocker uses Apache jclouds to provision VMs on any supported cloud provider and containers by consuming Docker Remote API. Clocker extends the standard Docker installation and includes SDN integration with pluggable providers such as Weave and can be deployed anywhere. We will show how to use Clocker to deploy, monitor and scale complex applications on the clouds.
Clocker, the Docker Cloud Maker - Andrea Turli - Codemotion Rome 2015
1. Andrea Turli
Clocker: The Docker Cloud Maker
andrea.turli@cloudsoftcorp.com
@turlinux - Cloudsoft Corporation
ROME 27-28 march 2015
2. ROME 27-28 march 2015 – @turlinux
About me
Andrea Turli
Software Engineer
Open Source passionate
github.com/andreaturli
Open Source Application Management Specialists
We’re Hiring…
3. ROME 27-28 march 2015 – @turlinux
Agenda
Clocker Introduction
What is a Docker Cloud?
Demonstration
Advanced features
5. ROME 27-28 march 2015 – @turlinux
Open Source
Apache 2.0 Licensed
java
http://clocker.io @clockercentral
Status
Started by @grkvlt and @turlinux
~500 total commits
~10 contributors
+37 forks on GitHub
6. ROME 27-28 march 2015 – @turlinux
Where to find it
@clockercentral
#brooklyncentral on IRC freenode
Releases
0.8.0 Developer Preview NOW http://git.io/jGhs
0.8.0 final SOON
0.9.0 WIP
7. ROME 27-28 march 2015 – @turlinux
What does it do?
1. Spins up and Manages Docker Clouds
2. Serves up Containers on Demand
3. Manages Composite Application
Deployments on Docker
8. ROME 27-28 march 2015 – @turlinux
What does it provide?
Multi Host and Multi Container Applications
Seamless Networking
Communication Between Services
Orchestration and Clustering
Control of Containers
Container Management
9. ROME 27-28 march 2015 – @turlinux
Who is using it?
Testing and Proof of Concept Stage
Financial Services
Insurance
Production
Push Technology: Multi-tenant Application Trial
11. ROME 27-28 march 2015 – @turlinux
Standing on the
shoulders of the giants
12. ROME 27-28 march 2015 – @turlinux
Open Source
Apache 2.0 Licensed
Donated to ASF - Incubator Project
http://brooklyn.io @brooklyncentral
Status
Founded by Alex Heneveld and Aled Sage
~11K total commits
~40 contributors
+50 forks on GitHub
13. ROME 27-28 march 2015 – @turlinux
Application Management Platform
Hierarchical autonomic management
Monitor–Analyse–Plan–Execute (MAPE-K) control loop approach for self-adaptive
software systems
Deploy, Manage and Monitor Blueprints
14. ROME 27-28 march 2015 – @turlinux
Blueprint
Capture an application’s initial topology plus policies
Topology
Entity wiring, groupings and management hierarchy
Policy
Governs an app’s behavior e.g. Cluster Management, Resilience
and Failover, Follow the sun
Location
Target environment for blueprint instantiation
16. ROME 27-28 march 2015 – @turlinux
Open Source
Apache 2.0 Licensed
Donated to ASF - Top Level Project
http://jclouds.org
Status
Started on April 2009 by Adrian Cole
+12K total commits
~200 contributors (65 last year)
+200 forks on GitHub
latest stable release 1.8.1
17. ROME 27-28 march 2015 – @turlinux
An open source multi-cloud toolkit for the Java platform
Portable abstractions: Compute, BlobStore, LoadBalancer
19. ROME 27-28 march 2015 – @turlinux
jclouds-docker @turlinux
https://github.com/jclouds/jclouds-labs in 1.8.1 and 1.9.0
This initial work kicked off Clocker
20. ROME 27-28 march 2015 – @turlinux
Open Source
Apache 2.0 Licensed
https://www.docker.com/
Status
Started on March 2015 by Dotcloud
+14K total commits
~840 contributors
+4300 forks on GitHub
22. ROME 27-28 march 2015 – @turlinux
Docker Networking 101
Natively, each container runs isolated
A bridged network is provided by Docker
Exposing ports
Port Forwarding (mapping port) to “external interface”
what if I have a cluster of components that wants to use the same
port?
24. ROME 27-28 march 2015 – @turlinux
Host to Host Communication
Same LAN Segment
No Port Forwarding
Natural Application Configuration
Initial Driver was Erlang Distributed Protocol and
EPMD based Applications
Uses Available Provider
Currently Weave, IBM Dove
Metaswitch Calico in upcoming release
Software Defined Networking
25. ROME 27-28 march 2015 – @turlinux
Software Defined Networking
Overlay Networks
Weave
Ethernet Switch
User Space
Docker Container
Routes TCP Traffic
Forwards over TCP
35. ROME 27-28 march 2015 – @turlinux
Debrief
Orchestrated Docker 1.5.0 deployment with Weave
SDN integration
Automated application deployment over containers
provisioned on multiple Docker Hosts
Automated attachment of containers to multiple
dynamic networks created on-the-fly by the SDN
provider
36. ROME 27-28 march 2015 – @turlinux
Advanced features
Container Management
Container Placement
Provisioning
Headroom
Networks
38. ROME 27-28 march 2015 – @turlinux
Advanced features
Placement Strategies and Headroom
Random, Depth or Breadth First
CPU or Memory Usage
Memory, CPU or Container Limits
Geographic Constraints
39. ROME 27-28 march 2015 – @turlinux
Advanced features
Networking Capabilities
Pluggable Providers
Weave, Metaswitch Calico, IBM OpenDOVE, SocketPlane, …
Multiple Networks provisioning
Single Application or Shared,Private Addresses,Segmented by CIDR
- 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"
40. ROME 27-28 march 2015 – @turlinux
Advanced features
Advanced networking capabilites
IP Pool Controlled by Clocker
Clocker Controls Subnet Allocation
Applications Segmented by CIDR
43. ROME 27-28 march 2015 – @turlinux
Roadmap
Latest Docker 1.5.0 Feature Support
Stats command, Read-only containers, Named Dockerfiles and more
Consume wider range of services
Networking and Storage for volumes management (Flocker?)
Docker Compose (aka Fig) and OASIS TOSCA YAML
Support as alternative blueprinting language
44. ROME 27-28 march 2015 – @turlinux
Roadmap
Networking
DNS and DNSmasq Integration
Rancher Integration
Open vSwitch Integration
Repositories
Docker Enterprise Hub, Bintray, Artifactory, Quay.io
Private Repositories