Running Docker in Production - Using Apache Brooklyn, Clocker and Project Calico. Talk given at ApacheCon CORE Europe in Budapest, Hungary, and at CloudOpen Europe in Dublin, Ireland, both in October 2015
• Distributed Systems Kernel • Cluster Management • Resource Sharing and Placement • Calico SDN Support • Frameworks • Aurora and Marathon • Riak, Spark, Hadoop, Storm et al • Brooklyn Scheduler
Docker Clusters in the Clouds 2. Serves up Containers on Demand 3. Manages Composite Application Deployments Copyright 2015 by Cloudsoft Corporation Limited
Hosts • Swarm Controller • Multi Host and Multi Container Applications • Seamless Networking • Communication Between Services • Orchestration and Clustering • Control of Containers • Container Management Copyright 2015 by Cloudsoft Corporation Limited
Brooklyn Application • Brooklyn Location • What does it provide? • First Class Docker Support in Brooklyn • Optimized Brooklyn Blueprints for Docker • Container Orchestration Copyright 2015 by Cloudsoft Corporation Limited
• TOSCA and Compose in Development • List of Services • NoSQL Database Clusters • Web Servers and Load Balancers • Shell or Python Scripts • Targeting Multiple Destinations • VM, Container, Bare Metal • Sensors, Effectors and Policies Copyright 2015 by Cloudsoft Corporation Limited
Effectors • Brooklyn Policies • Attached to Entities in Application • Nothing Docker Specific • Elastic Scaling and Cluster Resizing • Service Resilience and Replacement Copyright 2015 by Cloudsoft Corporation Limited
Docker Engine on Cloud VM or Bare Metal • Manage TLS Certificates and access credentials • Create and Mount Volumes • Setup Logging and Monitoring • Install SDN and other Agents • Configure local or remote Docker Registry • Manage Capacity or Headroom Copyright 2015 by Cloudsoft Corporation Limited
First-Class Service Type – Placement Strategies for Containers – Create Docker Images and Networks • Manages Docker Engine and Swarm – Deployment and Management – Installation and Configuration – Software-Defined Networking Copyright 2015 by Cloudsoft Corporation Limited
to Host Communication • Same LAN Segment • No Port Forwarding • Natural Application Configuration • Initial Driver was EPMD Applications • Useful for any opinionated applications Copyright 2015 by Cloudsoft Corporation Limited
routing etc. • Similar to Hypervisor in Clouds • Generic Interfaces • Host Component • Service Component (or Endpoint) • Same idea as Docker Network Plugins Copyright 2015 by Cloudsoft Corporation Limited
Create Networks as Required • Also Attach to VMs and Metal • Provide Multiple Networks • Per-Application or Shared • Segmented Private Address Space • Docker Port Forwarding for Ingress Copyright 2015 by Cloudsoft Corporation Limited
Defaults • Allows SDN or Cloud Specific Configuration • Allocate Address Space on Demand • IP Pool Controlled by Clocker -‐ type: brooklyn.networking.VirtualNetwork networkId: database-‐net cidr: 192.168.34.0/24 gateway: 192.168.34.1 dnsServers: -‐ $brooklyn:entity("bind-‐server").attributeWhenReady("host.address") addIptablesRules: true -‐ type: brooklyn.networking.OpenStackVirtualNetwork networkId: couchbase-‐net Copyright 2015 by Cloudsoft Corporation Limited
and Containers • Layer 3 • Uses OS IP routing and forwarding • Configuration in an etcd Cluster • Version 0.4.9 in Clocker • 0.6.0 with libnetwork when Docker stable • Spans VMs and Containers • OpenStack Neutron network driver Copyright 2015 by Cloudsoft Corporation Limited
• VPN or IPIP and NAT configuration • Cross Platform SDN • Both VMs and Containers on one VLAN • Name Resolution and Service Discovery • Contributing to Weave DNS for orchestration • Use traditional external BIND service entity • Brooklyn can inject correct endpoint address Copyright 2015 by Cloudsoft Corporation Limited
SDN • Brooklyn application blueprints deployed with network topology linked to OpenStack using Project Calico • Automated attachment of containers to multiple dynamic networks • Zero Config Multi-Target Deployment Copyright 2015 by Cloudsoft Corporation Limited Features
existing Mesos clusters • Provide Mesos as another Brooklyn endpoint • Run Marathon tasks for Brooklyn entities • Future Possibilities... • Brooklyn as a Mesos framework or scheduler • Integrate with other frameworks like Riak BDP Copyright 2015 by Cloudsoft Corporation Limited