Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Multi-Container Applications Spanning Docker, Mesos and OpenStack

Multi-Container Applications Spanning Docker, Mesos and OpenStack

Lightning Talk given at DockerCon Europe in Barcelona, November 2015

Andrew Kennedy

November 16, 2015
Tweet

More Decks by Andrew Kennedy

Other Decks in Technology

Transcript

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

    View Slide

  2. Agenda
    Features
    Adding extra capabilities
    to applications using
    Clocker
    Demonstration
    Live application
    deployment across
    Docker, Mesos and
    OpenStack
    Introduction
    What is Clocker?
    Blueprints
    Defining multi-container
    applications across
    multiple target
    destinations

    View Slide

  3. “Containers, not
    Virtual Machines,
    are the Future
    Cloud.”

    View Slide

  4. Introduction
    What is Clocker?

    View Slide

  5. @grkvlt

    View Slide

  6. @grkvlt
    Clocker Statistics
    About the Clocker Project
    Open Source
    1+ Years Old
    822 Commits
    193 Pull Requests
    14 Contributors
    2 External
    19 KLOC
    31 Releases
    Version 1.1.0 available now
    http://www.redotheweb.com/CodeFlower/

    View Slide

  7. @grkvlt
    Application Management Platform
    Define Application using Blueprints
    OASIS CAMP and TOSCA Standards
    Deploy, Manage and Monitor Applications
    Provisioning, Installation and Customization
    Runtime Management and Monitoring
    Policies
    AutoScaling, Resilience, Performance, Security
    Apache Brooklyn

    View Slide

  8. @grkvlt
    Apache jclouds
    Java Cloud Library
    API Agnostic
    OpenStack, SoftLayer, Azure, GCE , AWS EC2, …
    Create Virtual Machines
    Return SSH Endpoint
    Create Containers
    Docker Provider
    Uses REST API
    Configuration
    Execute Commands

    View Slide

  9. @grkvlt
    Docker Engine
    Isolation
    Environment
    Performance
    Resource Allocation
    Composable
    Huge Ecosystem
    Internal and External
    Compute Abstraction
    Process Wrapper
    Microservices
    Container Management

    View Slide

  10. @grkvlt
    Docker Extras
    Integrating More Features and Capabilities into Docker
    Software-Defined Networking
    Project Calico
    Weave
    Storage and Volume Management
    Flocker
    More Being Developed…
    Native Plugins
    Docker Tools
    Swarm
    Compose

    View Slide

  11. @grkvlt
    Apache Mesos
    Distributed Systems Kernel
    Cluster Management
    Resource Sharing and Placement
    Calico SDN Support
    Frameworks
    Aurora, Chronos
    Marathon
    Riak, Spark, Storm
    Hadoop
    Tasks
    Marathon for Docker

    View Slide

  12. @grkvlt
    Docker Cloud Properties
    1. On-demand
    2. Multi-Tenant
    3. Hardware Independent
    4. Application Level

    View Slide

  13. @grkvlt
    Platform
    Specific
    Platform
    Agnostic
    Application
    Centric
    Infrastructure
    Centric
    Clocker Positioning

    View Slide

  14. Features
    Adding extra capabilities to applications
    using Clocker

    View Slide

  15. @grkvlt
    Clocker Features
    1. Spins up and Manages Docker
    Clusters in the Cloud
    2. Deploys Containers and
    Networks on Demand
    3. Manages Multi-Container
    Composite Applications

    View Slide

  16. @grkvlt
    Apache Mesos Integration
    Marathon Framework
    Connect to Existing Mesos Cluster
    Scan for Frameworks
    Marathon Location for Deployment
    Docker Container Entites
    Become Marathon Tasks
    Arbitrary Entities
    Start Marathon Task with Ubuntu Image
    Networking
    Project Calico Network Module Integration

    View Slide

  17. @grkvlt
    Networking Capabilities
    Software-Defined Networking
    Security Policy for Network Traffic
    Inter-Container and External Firewalling
    Wide Area and Multi Region SDN
    VPN or IPIP and NAT Configuration
    Name Resolution and Service Discovery
    Traditional BIND DNS Server via a Brooklyn Entity
    Brooklyn Injects IP Addresses and Port Numbers
    Metaswitch Project Calico
    Layer 3 Internet Protocol Traffic
    Spans VMs, Mesos and Containers
    Internet Scale using BGP

    View Slide

  18. @grkvlt
    Application Orchestration
    Docker
    Engine
    Virtual
    Machine
    Container
    Clocker
    Network
    Segment
    SDN
    Provider
    Cloud
    Provider
    Brooklyn
    Mesos
    Cluster
    Marathon
    Task

    View Slide

  19. Blueprints
    Defining multi-container applications across
    multiple target destinations

    View Slide

  20. @grkvlt
    id: my-application
    location: my-docker-cloud
    services:
    - type: docker:redis:3
    id: redis
    openPorts: 6379
    - type: docker:clockercentral/dnmonster:1.0
    id: dnmonster
    openPorts: 8080
    - type: docker:clockercentral/identidock:1.3
    id: identidock
    portBindings:
    80: 9090
    links:
    - $brooklyn:component("redis")
    - $brooklyn:component("dnmonster")
    Application Blueprint

    View Slide

  21. @grkvlt
    id: my-application
    location: my-docker-cloud
    services:
    - type: docker:redis:3
    id: redis
    openPorts: 6379
    - type: docker:clockercentral/dnmonster:1.0
    id: dnmonster
    openPorts: 8080
    - type: docker:clockercentral/identidock:1.3
    id: identidock
    portBindings:
    80: 9090
    links:
    - $brooklyn:component("redis")
    - $brooklyn:component("dnmonster")
    Application Blueprint

    View Slide

  22. @grkvlt
    id: my-application
    location: my-docker-cloud
    services:
    - type: org.apache.brooklyn.entity.nosql.redis.RedisStore
    id: redis
    install.version: 3.0.0
    - type: docker:clockercentral/dnmonster:1.0
    id: dnmonster
    openPorts: 8080
    - type: docker:clockercentral/identidock:1.3
    id: identidock
    portBindings:
    80: 9090
    links:
    - $brooklyn:component("redis")
    - $brooklyn:component("dnmonster")
    Application Blueprint

    View Slide

  23. @grkvlt
    id: my-application
    services:
    - type: org.apache.brooklyn.entity.nosql.redis.RedisStore
    location: my-openstack-cloud
    id: redis
    install.version: 3.0.0
    - type: docker:clockercentral/dnmonster:1.0
    location: my-docker-cloud
    id: dnmonster
    openPorts: 8080
    - type: docker:clockercentral/identidock:1.3
    location: my-docker-cloud
    id: identidock
    portBindings:
    80: 9090
    links:
    - $brooklyn:component("redis")
    - $brooklyn:component("dnmonster")
    Application Blueprint

    View Slide

  24. @grkvlt
    id: my-application
    services:
    - type: org.apache.brooklyn.entity.nosql.redis.RedisStore
    location: my-openstack-cloud
    id: redis
    install.version: 3.0.0
    - type: docker:clockercentral/dnmonster:1.0
    location: my-mesos-cluster
    id: dnmonster
    openPorts: 8080
    - type: docker:clockercentral/identidock:1.3
    location: my-docker-cloud
    id: identidock
    portBindings:
    80: 9090
    links:
    - $brooklyn:component("redis")
    - $brooklyn:component("dnmonster")
    Application Blueprint

    View Slide

  25. @grkvlt
    id: my-application
    services:
    - type: org.apache.brooklyn.entity.nosql.redis.RedisStore
    location: my-openstack-cloud
    id: redis
    install.version: 3.0.0
    - type: docker:clockercentral/dnmonster:1.0
    location: my-mesos-cluster
    id: dnmonster
    openPorts: 8080
    - type: docker:clockercentral/identidock:1.3
    location: my-docker-cloud
    id: identidock
    portBindings:
    80: 9090
    links:
    - $brooklyn:component("redis")
    - $brooklyn:component("dnmonster")
    Application Blueprint

    View Slide

  26. Demonstration
    Live application deployment across Docker,
    Mesos and OpenStack

    View Slide

  27. View Slide

  28. “Clocker solves: Docker
    Cloud Networking,
    Container Placement and
    Provisioning, and
    Composite Application
    Management.”

    View Slide

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

    View Slide

  30. @grkvlt
    clocker.io
    brooklyn.io
    github.com/brooklyncentral/clocker/
    projectcalico.com
    mesos.apache.org
    blog.abstractvisitorpattern.co.uk
    Web Resources

    View Slide