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

Multi-Container Applications Spanning Docker, M...

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

    Ecosystem Internal and External Compute Abstraction Process Wrapper Microservices Container Management
  6. @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
  7. @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
  8. @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
  9. @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
  10. @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
  11. @grkvlt Application Orchestration Docker Engine Virtual Machine Container Clocker Network

    Segment SDN Provider Cloud Provider Brooklyn Mesos Cluster Marathon Task
  12. @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
  13. @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
  14. @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
  15. @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
  16. @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
  17. @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