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

Simplifying Containers with Habitat

Simplifying Containers with Habitat

Presentation I gave at Boulder Docker on Jan 24, 2017

Joshua Timberman

January 25, 2017
Tweet

More Decks by Joshua Timberman

Other Decks in Technology

Transcript

  1. Who are you? • System adminsitrators? • Software developers? •

    Business people? • Running docker in production? • Using Habitat?
  2. LOL

  3. Security Code Quality Container Hosting Peer Discovery Config Changes Supervision

    Monitoring Rolling Deployment Networking Internal Registry Workload Placement Production The Container Learning Cliff Development
  4. 24

  5. 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).
  6. 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 } Simple, Native, and Declarative
  7. 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.
  8. 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.
  9. 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.
  10. Libraries Operating System Application Traditionally the domain of the OS

    Vendor Application Libraries Config Changes Bottom to Top Dependency Resolution
  11. Operable Application Containers • Isolated • Immutable • Configurable •

    Common interface for monitoring health • Rebuild from source • Common packaging • Runtime Independence
  12. Questions? • Slack team - http:/ /slack.habitat.sh/ • Tutorial -

    https:/ /www.habitat.sh/tutorials/ • Public Package Depot - https:/ /app.habitat.sh/ • Habitat projects - https:/ /github.com/habitat-sh • Habitat Blog posts - https:/ /blog.chef.io/?s=habitat • Habitat Forums - https:/ /forums.habitat.sh/ https:/ /www.habitat.sh/