$30 off During Our Annual Pro Sale. View Details »

2014 ATL Ruby Meetup - Remote Deployments with Panamax

Rupak Ganguly
November 13, 2014

2014 ATL Ruby Meetup - Remote Deployments with Panamax

Presentation covers intro to Panamax, discussion about new features and focus on Remote Deployments to Kubernetes and CoreOS/Fleet clusters.

Panamax is open-source product from CenturyLink. You can learn how to contribute and stay involved as new features are added.

Rupak Ganguly

November 13, 2014
Tweet

More Decks by Rupak Ganguly

Other Decks in Technology

Transcript

  1. Panamax: Docker Management for Humans
    Develop locally, Deploy to remote clustered infrastructures
    1
    Rupak Ganguly
    Technical Director at CenturyLink Labs
    Atlanta Ruby Meetup, Nov. 12th, 2014
    v0.2.7

    View Slide

  2. Rupak Ganguly
    Work at CenturyLink Labs, Panamax core team
    who am i
    2
    Past worked at HP Cloud Services.
    OpenStack enthusiast and contributor.
    Open-source advocate and contributor.
    Rubyist, API aficionado, cloud savvy.
    Fan of all things virtualization and containerization.
    Follow me @rupakg or find out more at about.me/rupakg

    View Slide

  3. 3
    Recap: What is Docker?
    An open platform for building, shipping and running
    distributed applications inside containers.
    The platform consists of:
    The Docker Engine: a portable, lightweight runtime and
    packaging tool. It is the CLI that we interact with.
    The Docker Hub: A public/private registry for docker images,
    supporting sharing, and automatic builds.
    If it works on your machine, it will work anywhere.
    ensures repeatability
    removes dependency hell

    View Slide

  4. A containerized Docker application, with an intuitive UI,
    for orchestrating multi-container micro-service
    architected applications.
    What is Panamax?
    4
    100% open source project, by CenturyLink
    Panamax provides:
    a Development Workflow for orchestrating apps
    a Deployment plugin architecture to deploy remotely
    an easy-to-use, intuitive user interface
    drag-and-drop orchestration
    one-click deployment to remote clusters
    search integration with Private Registries
    an open-source Docker App Marketplace

    View Slide

  5. 5
    Why Panamax?
    Docker might be the next generation of virtual machines,
    but right now they are very hard to adopt.
    Docker Management for Humans
    Eases end users into building containerized apps using
    Docker, by ‘transparently insulating’ them
    Enables saving applications as templates, and sharing
    them using GitHub repositories
    Allows quick prototyping of complex apps
    by linking various services
    One-click deployment of applications from templates to
    remote Kubernetes or CoreOS/Fleet clusters

    View Slide

  6. Portability
    Develop locally and deploy remotely to clustered platforms
    Loosely coupled
    Easy composition of micro-services based applications
    Collaboration
    Templates make it easy to share and collaborate
    Management
    Manage applications, services, images from a single UI
    Transparency
    Open-source code encourages contribution and involvement from
    the community
    Why do developers care?
    6

    View Slide

  7. 7
    Get Panamax
    Requirements
    VirtualBox 4.2 or higher
    Vagrant 1.6 or higher
    Installation
    $ brew install http://download.panamax.io/installer/brew/panamax.rb
    $ panamax init

    View Slide

  8. 8
    Panamax New Features
    Added management and search of Private Registries
    Added management of Remote Deployment Targets
    Added capability to deploy applications to Remote targets
    Revised Performance Metrics with cAdvisor
    Revamped Application Service Details UI
    Added display of ‘docker run’ command for services
    Added support for showing ‘docker inspect’ for services
    Added support for Mounting Volumes (—-volumes-from)
    Added support for updating Github token
    And lots of bug fixes!
    See the Changelog for more detailed information.

    View Slide

  9. 9
    Application Template Marketplace
    Share containerized applications via Panamax templates.
    Recreate apps instantly using the official public templates shared by
    Panamax, or, by using the templates shared by your friends.
    http://locomotive_cms.ngrok.com/ http://localhost:9080/

    View Slide

  10. 10
    Panamax Demo

    View Slide

  11. 11
    Remote Deployment
    Manage Remote Deployment Targets
    Deploy applications to Remote clustered infrastructures
    Search for a Template and Deploy to a Remote Target directly
    Kubernetes and Fleet Orchestrators supported out-of-the-box

    View Slide

  12. 12
    Remote Deployment Demo
    Drupal/MySql on Kubernetes on GCE
    Drupal/MySql on CoreOS/Fleet on GCE

    View Slide

  13. 13
    A Bird's Eye View

    View Slide

  14. 14
    A Peek Inside
    Panamax is a
    multi-container
    Docker application

    View Slide

  15. 15
    Agent/Adapter Architecture
    The Kubernetes/Fleet adapter in combination with the Panamax
    Remote Agent enables the deployment of a Panamax template
    to a Kubernetes/Fleet cluster.

    View Slide

  16. 16
    How we built it?

    View Slide

  17. 17
    How we run it?
    docker run -it --name panamax-api
    -v /var/panamax/panamax-api:/var/app/panamax-api
    -v /var/run/docker.sock:/run/docker.sock
    -p 8888:3000
    -e "FLEETCTL_ENDPOINT=http://172.17.42.1:4001"
    -e "JOURNAL_ENDPOINT=http://172.17.42.1:19531"
    panamax/ruby
    /bin/bash
    config.vm.network "private_network", ip: "x.x.x.x"
    config.vm.synced_folder "/local/path/panamax", "/var/panamax",
    id:"core", :nfs => true, :mount_options => [‘nolock,vers=3,udp']
    config.vm.network :forwarded_port, guest: 8888, host: 8888
    Vagrantfile

    View Slide

  18. We setup a UserVoice forum to solicit feedback.
    Users like you came in and suggested features.
    We huddled, took the challenge and delivered a dozen features.
    Your Voice is heard
    18
    feedback.panamax.io

    View Slide

  19. We want you to get involved to make Panamax better!
    We can’t do it alone.
    We want Devops, Rubyists, UX/UI Designers, Cloud/Virtualization
    enthusiasts, Docker enthusiasts, Panamax fans, and more…
    How to get involved?
    19
    Contribute to Panamax by:
    installing and testing Panamax against your use cases
    providing feedback, feature requests & raising issues
    participating & voicing opinions in community-wide
    discussions
    enhancing the documentation on the wiki
    submitting code and issuing a pull request

    View Slide

  20. Meet the CenturyLink Labs Team
    An R&D team within CenturyLink
    Blogs, tutorials, videos, podcasts related to Docker
    http://centurylinklabs.com
    Panamax:
    - 12 13 engineers
    - 9 months
    - 3200+ cups of coffee
    20

    View Slide

  21. 21
    What are others saying?
    “Panamax allows developers to go from zero to pre-packaged, multi-container
    docker environments in minutes. The web interface and overall user experience
    is impressive.” – Gabriel Monroy, Creator Of Deis
    “Panamax is an exciting improvement on the Docker user experience.”
    – Jonathan Rudenberg, Creator Of Flynn
    “We’re pleased to see Panamax launched! It’s an exciting project
    that shows the strength and diversity of the Docker ecosystem.”
    – James Turnbull, Vice President Of Docker
    “Docker containers are great, but you need more than just one to run your
    application. The Panamax solution brings application templates and a public
    repository to share and collaborate that is elegant and simple to use.”
    – Borja Burgos, Founder Of Tutum

    View Slide

  22. We will be at RubyConf 2014
    22

    View Slide

  23. 23
    http://youtu.be/xGjBZ0lZG5E
    What is Panamax?
    &
    How is it different than Docker?

    View Slide

  24. We can help!
    Web: http://panamax.io
    IRC: #panamax (freenode)
    Twitter: @panamax_io
    Blog: http://centurylinklabs.com
    Code: http://github.com/CenturyLinkLabs
    24
    Images: CenturyLink on Docker Hub

    View Slide

  25. 25
    Backup

    View Slide

  26. 26
    Containers vs. VMs
    • VMs include a full guest OS with its own memory management, device drivers, etc.,
    while containers just have the app and its dependencies.
    • The containers run as an isolated process on the host OS, and share the kernel with
    other containers.
    • They are more portable and efficient than VMs.
    It’s like sending a zip file of your document and image files
    rather than sending those along with OS on your machine.
    Source: Docker

    View Slide