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

Simplifying Containers with Habitat - SD DevOps

Simplifying Containers with Habitat - SD DevOps

Andre Elizondo

February 15, 2017
Tweet

More Decks by Andre Elizondo

Other Decks in Technology

Transcript

  1. Agenda Current Problems in the World of Containers An overview

    of Habitat How Habitat Makes Containers Better Questions & Answers
  2. Habitat Community • Join the Habitat Slack Team - http://slack.habitat.sh/

    • Work through the tutorial at https://www.habitat.sh/tutorials/ • Explore Habitat packages on the depot - https://app.habitat.sh/ • Explore the Habitat projects - https://github.com/habitat-sh • Read Habitat Blog posts - https://blog.chef.io/?s=habitat • Join the Habitat Forums - https://forums.habitat.sh/
  3. Simple, Native, and Declarative pkg_origin=core pkg_name=redis pkg_version=3.2.1 pkg_license=('BSD') pkg_maintainer="The Habitat

    Maintainers <[email protected]>" pkg_source=http://download.redis.io/releases/${pkg_name}-${pkg_version}.tar.gz pkg_shasum=b2a791c4ea3bb7268795c45c6321ea5abcc24457178373e6a6e3be6372737f23 pkg_bin_dirs=(bin) pkg_build_deps=(core/make core/gcc) pkg_deps=(core/glibc) pkg_svc_run="redis-server $pkg_svc_config_path/redis.config" pkg_expose=(6379) do_build() { make } plan.sh Low abstraction Complete dependencies Declare services Simple functions
  4. How do you... Decouple the application build from the final

    production ready container? Provide a “DSL” to describe the application build (plan.sh), and provide an isolated environment (studio) to build the application artifact (Habitat Package).
  5. How do you... Build immutable infrastructure but allow last mile

    Application config changes? Ship the config along side an immutable application artifact. Provide a supervisor to dynamically update the config based on environment or service discovery.
  6. How do you... Orchestrate the application launch order & topology

    required? Provide config aware, autonomous, self-organizing peers (supervisors) with built in topologies for clustering strategies.
  7. Libraries Operating System Application Traditionally the domain of the OS

    Vendor Application Libraries Config Changes Bottom to Top Dependency Resolution
  8. How do you... Build containers with the Minimum Viable OS?

    Allow applications to declare their runtime dependencies, and resolve those dependencies from the application to the infrastructure.
  9. Operable Application Containers •Isolated •Immutable •Configurable •Common interface for monitoring

    health •Rebuild from source •Common packaging •Runtime Independence
  10. Questions • Join the Habitat Slack Team - http://slack.habitat.sh/ •

    Work through the tutorial at https://www.habitat.sh/tutorials/ • Explore Habitat packages on the depot - https://app.habitat.sh/ • Explore the Habitat projects - https://github.com/habitat-sh • Read Habitat Blog posts - https://blog.chef.io/?s=habitat • Join the Habitat Forums - https://forums.habitat.sh/