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

Beyond Infrastructure Automation

F820550e0c386dcc73b3ca0565a8bfff?s=47 Nathen Harvey
November 15, 2016

Beyond Infrastructure Automation

We focus on our app code as the origin of business value. Anyone that's ever run apps in prod knows that no value is possible without the entire stack. DevOps has taught us to think about our app stacks holistically. It's time we shift our thinking to an app-centric view of the world. This talk will be an introduction to Habitat (https://www.habitat.sh/), the open source projects that let's use build, deploy, and manage applications. The automation is part of and moves with the application.

This talk was given at Configuration Management Camp Berlin - http://cfgmgmtcamp.eu/berlin-2016/

F820550e0c386dcc73b3ca0565a8bfff?s=128

Nathen Harvey

November 15, 2016
Tweet

Transcript

  1. Beyond Infrastructure Automation Nathen Harvey | @nathenharvey

  2. Nathen Harvey VP, Community Development at Chef Co-host of the

    Food Fight Show Podcast Occasional farmer – http://ei.chef.io Love eggs – http://eggs.chef.io #hugops – http://hugops.chef.io @nathenharvey nharvey@chef.io
  3. Configuration Management

  4. None
  5. Modern Applications Source Code Repo Artifact Bare Metal Containers AMI

    VM Artifact Repo
  6. Immutable Infrastructure

  7. Dependencies!

  8. Packaging and Deployment

  9. Build Deploy Manage

  10. Starts with a plan

  11. Simple, native, and declaritive pkg_name=redis pkg_origin=core pkg_version=3.0.7 pkg_license=('BSD') pkg_maintainer="The Habitat

    Maintainers <humans@habitat.sh>" 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="bin/redis-server $pkg_svc_config_path/redis.config" pkg_expose=(6379) do_build() { make } plan.sh Low abstraction Complete dependencies Declare services Simple functions
  12. Clean room environment Safe by default Installs dependences Built in

    a studio
  13. Central location Publicly hosted Lightweight views Stored in a depot

  14. Easy pattern Shortcuts Increasing specificity Installed by hab

  15. Binaries and Config Metadata Side-by-side Packages on disk

  16. Docker ACI Mesosphere Post-process packages

  17. Run on any 64-bit Linux Easily support proprietary software

  18. Installs automatically Keeps things running Manages configuration Supervisor runs services

  19. Print config options 12-Factor style Externally enforced Environment configuration

  20. More flexible than environment Universal location Externally enforced File configuration

  21. Supervisors form a ring Peers Service Groups Gossip Availability increases

    with scale
  22. Supervisors support topologies Dynamic configuration Service group level Uses the

    ring
  23. Supervisors provide update strategies Topology aware Tracks views in the

    depot Ideal for Continuous Delivery
  24. Supervisors provide a REST API External Actors Health and Status

    Supervisor Debugging
  25. Operable Applications • Isolated • Immutable • Configurable • Common interface for monitoring health

    • Rebuild from source • Common packaging • Runtime Independence
  26. Automation travels with the application Existing & Cloud Native Software

    Application Automation
  27. It’s all open source Apache License

  28. https://www.habitat.sh/community/