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

Habitat - Open Source Automation that Travels with the Application

Habitat - Open Source Automation that Travels with the Application

Habitat is a new approach to automation that focuses on the application instead of the infrastructure it runs on. With Habitat, the apps you build, deploy, and manage behave consistently in any runtime — metal, VMs, containers, and PaaS. You'll spend less time on the environment and more time building features. This open source project was recently announced.

This was presented at the DevOps Ireland Meetup - http://www.meetup.com/DevOps-Ireland/events/232051555/

Nathen Harvey

June 27, 2016
Tweet

More Decks by Nathen Harvey

Other Decks in Technology

Transcript

  1. Learning from
    Configuration Management
    Nathen Harvey
    DevOps Ireland
    June 27, 2016

    View full-size slide

  2. Nathen Harvey
    VP, Community Development
    Chef Software, Inc.
    @nathenharvey
    Your Picture
    Goes Here

    View full-size slide

  3. Configuration Management

    View full-size slide

  4. Configuration Management Tools
    •  CFEngine
    •  Puppet
    •  Chef
    •  SaltStack
    •  Ansible
    •  Consul

    View full-size slide

  5. Things that could be better...
    Centralization

    View full-size slide

  6. Immutable Infrastructure
    Things that could be better...

    View full-size slide

  7. Things that could be better...
    Hidden Dependencies

    View full-size slide

  8. Things that could be better...
    Orchestration

    View full-size slide

  9. What we really want
    Choreography

    View full-size slide

  10. Things that could be better...
    Application Release Patterns

    View full-size slide

  11. Things that could be better...
    Toolchains

    View full-size slide

  12. What would it look like
    … if we built for choreography instead of orchestration?

    View full-size slide

  13. What would it look like

    View full-size slide

  14. What would it look like if we built
    •  … for large distributed systems that are topology aware?
    •  … a way to run immutable systems with flexibility and ease?
    •  … a way to strip out hidden dependencies?
    •  … a simplified toolchain?

    View full-size slide

  15. Config Management isn’t dead!

    View full-size slide

  16. Habitat Components

    View full-size slide

  17. Habitat Components
    •  Habitat Studio - an application packager

    View full-size slide

  18. Habitat Components
    •  Habitat Studio - an application packager
    •  Habitat Plans - instructions to download, compile, and install

    View full-size slide

  19. Package Format (.hart)
    Plan Artifact Depot
    Bare Metal
    Containers
    AMI
    VM
    1.  Packaging an application starts with a plan. A Plan is as simple to create as a Dockerfile
    2.  Start by launching the isolated Build environment called a “Studio”
    a.  Enter the studio (hab-studio enter)
    b.  Define your Plan (vim plan.sh) to define the software build from source using standard BASH
    c.  Define the Configuration template for the software, using Mustache (logic-less scripting language)
    d.  Define the Configuration defaults, using TOML (configuration language)
    e.  Define Hooks for supervisor behavior: initializing, running, defining a health check, etc
    f.  Create Signing Keys for your Origin (hab origin key generate myOrigin)
    g.  Build your Artifact (build myOrigin/myPlan)
    3.  Post-process Artifact for target environments: Docker, Rocket, CloudFoundry, Mesos, Kubernetes, etc...
    4.  Run and test Artifact (docker run -ti myOrigin/myPlan)
    Habitat Workflow

    View full-size slide

  20. Habitat Components
    •  Habitat Studio - an application packager
    •  Habitat Plans - instructions to download, compile, and install
    •  Habitat Depot - a place to upload and download your app
    packages

    View full-size slide

  21. Habitat Components
    •  Habitat Studio - an application packager
    •  Habitat Plans - instructions to download, compile, and install
    •  Habitat Depot - a place to upload and download your app
    packages
    •  Habitat Supervisor - an intelligent runtime with deployment
    coordination and service discovery built in

    View full-size slide

  22. Depot Artifact
    Supervisor: An Intelligent Run-Time Supervisor
    w/ REST API (hab-sup)
    Supervisor Supervisor
    Supervisor Supervisor
    Ring
    Leader
    Initializer
    Stand Alone
    Part of an Artifact, the Supervisor manages Application node behavior at runtime, providing automation and intelligence:
    Utilizes predefined Plan to manage application behavior
    Built in service discovery
    Self-organizes with other Supervisor nodes on a Ring into topologies
    Rings have no single point of failure
    Supervisor executes a variety of hooks for defined behavior:
    Init, run, health_check, reconfigure, file_update
    Supervisor is accessible via REST API:
    /config, /health, /status, /gossip, /census, /election
    Habitat Technology

    View full-size slide

  23. Habitat Technology
    Plan Artifact Depot
    Build
    Service
    Supervisor Supervisor
    Supervisor Supervisor
    Ring
    Bare Metal
    Containers
    AMI
    VM
    Depot
    Build Service & Workflow
    Package Format Artifact Distribution
    Server
    Artifact Distribution
    Server
    Intelligent Run-Time Supervisor w/REST API
    Source
    Code
    Repo

    View full-size slide

  24. Applications run as distributed, fully automated, and capable autonomous actors
    Immutable applications, but flexible and easy to manage because automation travels with the
    application
    Bundles what your apps need to run and nothing else
    Embedded automation choreographs application cluster topology/behavior
    A network with no reliance on external services and no single-point-of-failure
    Provides continuous deployment without traditional Application Release Automation (ARA) tooling
    The solution is the same:
    For new and legacy applications
    No matter the application runtime environment
    Habitat’s approach

    View full-size slide

  25. Habitat
    Application automation that enables modern
    application teams to build, deploy, and
    manage any application in any environment -
    from traditional data-centers to containerized
    microservices.

    View full-size slide

  26. 1500 Attendees! 55+ Speakers! Registration Open! Community Celebration!
    CHEFCONF 2016 AT A GLANCE
    Workshops & Chef Training
    Community Summit
    Partner Summit
    Welcome Reception
    Keynotes
    Technical Sessions
    Happy Hour
    Keynotes
    Technical Sessions
    Awesome Chef Awards
    Community Celebration
    DAY 1 // JULY 11 DAY 2 // JULY 12 DAY 3 // JULY 13
    THREE DAYS OF OPPORTUNITY TO ENGAGE THE CHEF CUSTOMERS AND PARTNER ECOSYSTEM
    chefconf.chef.io!
    DAY 1 // JULY 11
    « Workshops & Chef Training
    « Community Summit
    « Partner Summit
    « Welcome Reception
    DAY 2 // JULY 12
    « Keynotes
    « Technical Sessions
    « Happy Hour
    DAY 3 // JULY 13
    « Keynotes
    « Technical Sessions
    « Awesome Chef Awards
    « Community Celebration
    THREE DAYS OF OPPORTUNITY TO ENGAGE THE CHEF CUSTOMERS AND PARTNER ECOSYSTEM

    View full-size slide

  27. LONDON SUMMIT
    OCTOBER 12-13, 2016
    SEATTLE SUMMIT
    OCTOBER 26-27, 2016
    Chef Community Summit is a unique opportunity for users and contributors of all experience levels to
    come together to share, learn, and succeed with Chef.

    View full-size slide

  28. Try Habitat for yourself
    •  https://www.habitat.sh/try
    •  Tutorials
    •  Getting started guide
    •  Extensive documentation
    •  Open Source!
    –  https://github.com/habitat-sh/habitat
    Thank you!
    Q&A

    View full-size slide