multi-container apps spanning docker, mesos and openstack

31
Multi-Container Applications Spanning Docker, Mesos and OpenStack Andrew Kennedy Clocker Project Founder Cloudsoft Corporation

Upload: docker-inc

Post on 22-Jan-2018

1.589 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Multi-Container Apps spanning Docker, Mesos and OpenStack

Multi-Container ApplicationsSpanning Docker, Mesos and OpenStack

Andrew KennedyClocker Project FounderCloudsoft Corporation

Page 2: Multi-Container Apps spanning Docker, Mesos and OpenStack

Agenda

FeaturesAdding extra capabilities to applications using Clocker

DemonstrationLive application deployment across Docker, Mesos and OpenStack

IntroductionWhat is Clocker?

BlueprintsDefining multi-container applications across multiple target destinations

Page 3: Multi-Container Apps spanning Docker, Mesos and OpenStack

“Containers, not Virtual Machines,

are the Future Cloud.”

Page 4: Multi-Container Apps spanning Docker, Mesos and OpenStack

IntroductionWhat is Clocker?

Page 5: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Page 6: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Clocker StatisticsAbout the Clocker Project

Open Source1+ Years Old786 Commits183 Pull Requests14 Contributors2 External

15 KLOC31 ReleasesVersion 1.1.0 available now

http://www.redotheweb.com/CodeFlower/

Page 7: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Application Management Platform

Define Application using BlueprintsOASIS CAMP and TOSCA Standards

Deploy, Manage and Monitor ApplicationsProvisioning, Installation and CustomizationRuntime Management and MonitoringPoliciesAutoScaling, Resilience, Performance, Security

Apache Brooklyn

Page 8: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Apache jcloudsJava Cloud Library

API AgnosticOpenStack, SoftLayer, Azure, GCE , AWS EC2, …

Create Virtual MachinesReturn SSH EndpointCreate ContainersDocker ProviderUses REST APIConfigurationExecute Commands

Page 9: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Docker Engine

IsolationEnvironment

PerformanceResource Allocation

ComposableHuge EcosystemInternal and External

Compute AbstractionProcess WrapperMicroservices

Container Management

Page 10: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Docker ExtrasIntegrating More Features and Capabilities into Docker

Software-Defined NetworkingProject CalicoWeave

Storage and Volume ManagementFlocker

More Being Developed…Native PluginsDocker ToolsSwarmCompose

Page 11: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Apache MesosDistributed Systems Kernel

Cluster ManagementResource Sharing and PlacementCalico SDN SupportFrameworksAurora, ChronosMarathonRiak, Spark, StormHadoop

TasksMarathon for Docker

Page 12: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Docker Cloud Properties

1. On-demand

2. Multi-Tenant

3. Hardware Independent

4. Application Level

Page 13: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Platform Specific

Platform Agnostic

Application Centric

Infrastructure Centric

Clocker Positioning

Page 14: Multi-Container Apps spanning Docker, Mesos and OpenStack

FeaturesAdding extra capabilities to applications using Clocker

Page 15: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Clocker Features

1. Spins up and Manages Docker Clusters in the Cloud

2. Deploys Containers and Networks on Demand

3. Manages Multi-Container Application Deployments

Page 16: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Clocker Blueprints

Page 17: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Application Orchestration

Docker Engine

Virtual Machine

Container

Clocker Network Segment

SDNProvider

CloudProviderBrooklyn

Mesos Cluster

Marathon Task

Page 18: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Apache Mesos IntegrationMarathon Framework

Connect to Existing Mesos ClusterScan for FrameworksMarathon Location for DeploymentDocker Container EntitesBecome Marathon Tasks

Arbitrary EntitiesStart Marathon Task with Ubuntu Image

NetworkingProject Calico Network Module Integration

Page 19: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Networking CapabilitiesSecurity Policy for Network TrafficInter-Container and External Firewalling

Wide Area and Multi Region SDNVPN or IPIP and NAT Configuration

Cross Platform SDNBoth VMs and Containers on a Private Network

Name Resolution and Service DiscoveryWeave DNS or Similar Lightweight DNS ImplementationTraditional BIND DNS Server via a Brooklyn EntityBrooklyn Injects Endpoint IP Addresses and Port Numbers

Page 20: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Metaswitch Project CalicoLayer 3 Software-Defined Networking

Runs on Bare Metal, VMs and ContainersUses OS IP routing and forwardingInternet Scale using BGP

Centralised configuration with etcdUses libnetwork in Docker 1.9.0Spans VMs, Mesos and ContainersCalico OpenStack Neutron DriverCalico Docker Networking PluginCalico Network Module for Mesos

Page 21: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

Container 172.16.1.1

Host 10.1.1.1

SDN Controller

Container 172.16.1.2

Internet SDN Gateway

Host 10.1.1.2

SDN Agent

SDN Agent

Clocker Networking

Page 22: Multi-Container Apps spanning Docker, Mesos and OpenStack

BlueprintsDefining multi-container applications across multiple target destinations

Page 23: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

id: my-applicationlocation: my-docker-cloudservices:- type: docker:redis:3id: redisopenPorts: 6379

- type: docker:amouat/dnmonster:1.0id: dnmonsteropenPorts: 8080

- type: docker:amouat/identidock:1.0id: identidockportBindings:

80: 9090links:- $brooklyn:component("redis")- $brooklyn:component("dnmonster")

Application Blueprint One

Page 24: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

id: my-applicationlocation: my-docker-cloudservices:- type: org.apache.brooklyn.entity.nosql.redis.RedisStoreid: redisinstall.version: 3.0.0

- type: docker:amouat/dnmonster:1.0id: dnmonsteropenPorts: 8080

- type: docker:amouat/identidock:1.0id: identidockportBindings:

80: 9090links:- $brooklyn:component("redis")- $brooklyn:component("dnmonster")

Application Blueprint Two

Page 25: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

id: my-applicationservices:- type: org.apache.brooklyn.entity.nosql.redis.RedisStorelocation: my-openstack-cloudid: redisinstall.version: 3.0.0

- type: docker:amouat/dnmonster:1.0location: my-docker-cloudid: dnmonsteropenPorts: 8080

- type: docker:amouat/identidock:1.0location: my-docker-cloudid: identidockportBindings:

80: 9090links:- $brooklyn:component("redis")- $brooklyn:component("dnmonster")

Application Blueprint Three

Page 26: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

id: my-applicationservices:- type: org.apache.brooklyn.entity.nosql.redis.RedisStorelocation: my-openstack-cloudid: redisinstall.version: 3.0.0

- type: docker:amouat/dnmonster:1.0location: my-mesos-clusterid: dnmonsteropenPorts: 8080

- type: docker:amouat/identidock:1.0location: my-docker-cloudid: identidockportBindings:

80: 9090links:- $brooklyn:component("redis")- $brooklyn:component("dnmonster")

Application Blueprint Four

Page 27: Multi-Container Apps spanning Docker, Mesos and OpenStack

DemonstrationLive application deployment across Docker, Mesos and OpenStack

Page 28: Multi-Container Apps spanning Docker, Mesos and OpenStack
Page 29: Multi-Container Apps spanning Docker, Mesos and OpenStack

“Clocker solves: Docker Cloud Networking,

Container Placement and Provisioning, and

Composite Application Management.”

Page 30: Multi-Container Apps spanning Docker, Mesos and OpenStack

Thank you!Andrew Kennedy@[email protected]://clocker.io/

Page 31: Multi-Container Apps spanning Docker, Mesos and OpenStack

@grkvlt

clocker.io

brooklyn.io

github.com/brooklyncentral/clocker/

projectcalico.com

mesos.apache.org

blog.abstractvisitorpattern.co.uk

Web Resources