Matt Ray - Infrastructure Agnostic Application Automation

Matt Ray - Infrastructure Agnostic Application Automation

Infrastructure Agnostic Application Automation

Application and operations teams are at a crossroads of bring applications into “traditional” infrastructure and containerized applications. Much of the effort of configuration management is dealing with the shortcomings of packages and the underlying operating systems. With the rush to move everything to containers, operational concerns are often overlooked. Applications need to standardize their builds, their packaging, and how they are instrumented for observability.

The open source Habitat project (https://habitat.sh) wants to make it easier to build, manage and deploy applications into containers and traditional operating systems. Habitat is a system for building, packaging and making applications more manageable. Habitat answers the question ““what’s in the box?”” and complements container orchestrators like Kubernetes and Docker Swarm while providing a path for bringing new and legacy Linux and Windows applications into modern environments (not just containers!). This session will discuss the evolution of application management, provide an overview of Habitat and a demonstration of building and packaging multi-node applications.

Why would this talk be a good fit for the DevOpsDays audience?
Managing applications in hybrid environments is an ongoing struggle.
DevOpsDays Singapore 2017

Cc6ffa01992b5fa13e1bb5091a202b77?s=128

DevOpsDays Singapore

October 25, 2017
Tweet

Transcript

  1. Infrastructure Agnostic Application Automation Matt Ray @mattray

  2. Application automation that enables modern application teams to build, deploy,

    and manage any application in any environment - from traditional to cloud native architectures. What is Habitat?
  3. None
  4. Security Code Quality Container Hosting Peer Discovery Config Changes Supervision

    Monitoring Rolling Deployment Networking Internal Registry Workload Placement Production The Container Learning Cliff Development
  5. None
  6. hab plan init Standardized build and packaging templates ▪ Go

    ▪ Java ▪ Node.js ▪ Ruby ▪ …and more
  7. plan.sh FOO ▪ BAR

  8. hab studio enter Builds an immutable artifact ▪ Disposable, reproducible

    build environment ▪ Produces a signed, timestamped .hart file with runtime dependencies and manifest ▪ Push to package depo
  9. hab pkg export docker <origin>/<package> Application & Libraries Minimized OS

    Top to Bottom Dependency Resolution
  10. hab pkg export Same immutable packages deployed everywhere ▪ ACI

    ▪ Cloud Foundry ▪ Docker ▪ Mesos ▪ Tar
  11. Configuration Configuration from the Environment ▪ default.toml ▪ docker run

    -e HAB_REDIS='tcp-backlog=128' mattray/redis ▪ echo “port=6380” | hab config apply redis.prod 3
  12. Managing Applications Automated Application Supervision ▪ Start, Stop, Reconfigure, etc.

    ▪ RESTful API ▪ Artifact updates ▪ Encrypted discovery service
  13. Managing Services Supervisor Service Groups ▪ Clustering Topologies ▪ Update

    Strategies ▪ Service Group Bindings SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR
  14. Target Kubernetes apiVersion: habitat.sh/v1 kind: ServiceGroup metadata: name: exampleapp spec:

    image: kinvolk/nodejs-hab count: 1 habitat: topology: standalone group: nodejs config: user-toml-secret
  15. Habitat Builder SaaS-based build service ▪ GitHub integration ▪ Automated

    builds and dependency rebuilds ▪ Public and private origins ▪ Release channels for Continuous Delivery ▪ Container publishing to Docker Hub ▪ > 500 packages for common applications and libraries https://bldr.habitat.sh
  16. Windows Support Build, deploy and manage Habitat packages on Windows

    ▪ plan.ps1 ▪ Native Windows Supervisor ▪ ASP.NET Core, .NET Core, Node, and more
  17. 12 Factor/Cloud Native Implements 12 Factor application patterns ▪ Decouples

    the app from operating system dependencies ▪ Separates concerns of ‘build’ from ‘deploy’ ▪ Provides declarative deployment capabilities ▪ Configuration from the environment ▪ Immutable artifacts https://12factor.net
  18. For Developers Works on my machine ▪ Any language ▪

    Automatic builds on commit ▪ Explicit dependency declarations ▪ Stable & unstable release channels
  19. For Operators Works the same everywhere ▪ Automated container builds

    ▪ Immutable build artifacts ▪ Release channels for CD workflow ▪ Consistent management of any application on any platform
  20. Open Source Community https://habitat.sh Apache Licensed! ▪ https://github.com/habitat-sh ▪ This

    year: • 1458 Pull Requests - 189 From Non Chef Employees • 106 Authors - 37 Non Chef Employees • 25 Habitat Releases • 6174 Core Package Releases
  21. Matt Ray @mattray