multi-container apps spanning docker, mesos and openstack

Post on 22-Jan-2018

1.592 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Multi-Container ApplicationsSpanning Docker, Mesos and OpenStack

Andrew KennedyClocker Project FounderCloudsoft Corporation

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

“Containers, not Virtual Machines,

are the Future Cloud.”

IntroductionWhat is Clocker?

@grkvlt

@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/

@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

@grkvlt

Apache jcloudsJava Cloud Library

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

Create Virtual MachinesReturn SSH EndpointCreate ContainersDocker ProviderUses REST APIConfigurationExecute Commands

@grkvlt

Docker Engine

IsolationEnvironment

PerformanceResource Allocation

ComposableHuge EcosystemInternal and External

Compute AbstractionProcess WrapperMicroservices

Container Management

@grkvlt

Docker ExtrasIntegrating More Features and Capabilities into Docker

Software-Defined NetworkingProject CalicoWeave

Storage and Volume ManagementFlocker

More Being Developed…Native PluginsDocker ToolsSwarmCompose

@grkvlt

Apache MesosDistributed Systems Kernel

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

TasksMarathon for Docker

@grkvlt

Docker Cloud Properties

1. On-demand

2. Multi-Tenant

3. Hardware Independent

4. Application Level

@grkvlt

Platform Specific

Platform Agnostic

Application Centric

Infrastructure Centric

Clocker Positioning

FeaturesAdding extra capabilities to applications using Clocker

@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

@grkvlt

Clocker Blueprints

@grkvlt

Application Orchestration

Docker Engine

Virtual Machine

Container

Clocker Network Segment

SDNProvider

CloudProviderBrooklyn

Mesos Cluster

Marathon Task

@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

@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

@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

@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

BlueprintsDefining multi-container applications across multiple target destinations

@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

@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

@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

@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

DemonstrationLive application deployment across Docker, Mesos and OpenStack

“Clocker solves: Docker Cloud Networking,

Container Placement and Provisioning, and

Composite Application Management.”

Thank you!Andrew Kennedy@grkvltandrew@cloudsoft.iohttp://clocker.io/

@grkvlt

clocker.io

brooklyn.io

github.com/brooklyncentral/clocker/

projectcalico.com

mesos.apache.org

blog.abstractvisitorpattern.co.uk

Web Resources

top related