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

Habitat - Chef Users London Meetup

Habitat - Chef Users London Meetup

A discussion about Habitat 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 was presented by Thom May & Nathen Harvey at the Chef Users London Meetup - http://www.meetup.com/Chef-Users-London/events/231418854/

Nathen Harvey

June 21, 2016
Tweet

More Decks by Nathen Harvey

Other Decks in Technology

Transcript

  1. 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.
  2. What would it look like … if we built for

    choreography instead of orchestration?
  3. 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?
  4. 20

  5. Habitat Components • Habitat Studio - an application packager •

    Habitat Plans - instructions to download, compile, and install
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. • 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
  12. 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.
  13. 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
  14. 33