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
  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
  3. “Containers, not Virtual Machines, are the Future Cloud.”

  4. Introduction What is Clocker?

  5. @grkvlt

  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/
  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
  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
  9. @grkvlt Docker Engine Isolation Environment Performance Resource Allocation Composable Huge

    Ecosystem Internal and External Compute Abstraction Process Wrapper Microservices Container Management
  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
  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
  12. @grkvlt Docker Cloud Properties 1. On-demand 2. Multi-Tenant 3. Hardware

    Independent 4. Application Level
  13. @grkvlt Platform Specific Platform Agnostic Application Centric Infrastructure Centric Clocker

    Positioning
  14. Features Adding extra capabilities to applications using Clocker

  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
  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
  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
  18. @grkvlt Application Orchestration Docker Engine Virtual Machine Container Clocker Network

    Segment SDN Provider Cloud Provider Brooklyn Mesos Cluster Marathon Task
  19. Blueprints Defining multi-container applications across multiple target destinations

  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
  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
  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
  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
  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
  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
  26. Demonstration Live application deployment across Docker, Mesos and OpenStack

  27. None
  28. “Clocker solves: Docker Cloud Networking, Container Placement and Provisioning, and

    Composite Application Management.”
  29. Thank you! Andrew Kennedy @grkvlt andrew@cloudsoft.io http://clocker.io/

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