This document provides an agenda and overview for a presentation on training a Docker cloud using Clocker. The presentation will introduce Clocker and what it does to manage Docker clouds. It will discuss what a Docker cloud is and how Clocker provides multi-host and multi-container applications, networking, and container orchestration. The presentation will demonstrate Clocker's features for deploying applications using blueprints, managing mixed infrastructure including VMs and containers, and extending Brooklyn with Docker-specific capabilities.
1 of 66
More Related Content
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
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
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
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
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
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
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
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
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
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
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
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