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

Beyond Infrastructure Automation

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/

Nathen Harvey

November 15, 2016
Tweet

More Decks by Nathen Harvey

Other Decks in Technology

Transcript

  1. Beyond Infrastructure
    Automation
    Nathen Harvey | @nathenharvey

    View Slide

  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
    [email protected]

    View Slide

  3. Configuration Management

    View Slide

  4. View Slide

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

    View Slide

  6. Immutable Infrastructure

    View Slide

  7. Dependencies!

    View Slide

  8. Packaging and Deployment

    View Slide

  9. Build
    Deploy
    Manage

    View Slide

  10. Starts with a plan

    View Slide

  11. Simple, native, and declaritive
    pkg_name=redis
    pkg_origin=core
    pkg_version=3.0.7
    pkg_license=('BSD')
    pkg_maintainer="The Habitat Maintainers "
    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

    View Slide

  12. Clean room environment
    Safe by default
    Installs dependences
    Built in a studio

    View Slide

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

    View Slide

  14. Easy pattern
    Shortcuts
    Increasing specificity
    Installed by hab

    View Slide

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

    View Slide

  16. Docker
    ACI
    Mesosphere
    Post-process packages

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  21. Supervisors form a ring
    Peers

    Service Groups

    Gossip

    Availability
    increases with
    scale

    View Slide

  22. Supervisors support topologies
    Dynamic
    configuration

    Service group
    level

    Uses the ring

    View Slide

  23. Supervisors provide update strategies
    Topology
    aware

    Tracks views in
    the depot

    Ideal for
    Continuous
    Delivery

    View Slide

  24. Supervisors provide a REST API
    External Actors

    Health and
    Status

    Supervisor
    Debugging

    View Slide

  25. Operable Applications
    • Isolated
    • Immutable
    • Configurable
    • Common interface for monitoring health
    • Rebuild from source
    • Common packaging
    • Runtime Independence

    View Slide

  26. Automation travels with the
    application

    Existing & Cloud Native Software
    Application Automation

    View Slide

  27. It’s all open source

    Apache License

    View Slide

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

    View Slide