Slide 1

Slide 1 text

Infrastructure Agnostic Application Automation Matt Ray @mattray

Slide 2

Slide 2 text

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?

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

Security Code Quality Container Hosting Peer Discovery Config Changes Supervision Monitoring Rolling Deployment Networking Internal Registry Workload Placement Production The Container Learning Cliff Development

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

hab plan init Standardized build and packaging templates ▪ Go ▪ Java ▪ Node.js ▪ Ruby ▪ …and more

Slide 7

Slide 7 text

plan.sh FOO ▪ BAR

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

hab pkg export docker / Application & Libraries Minimized OS Top to Bottom Dependency Resolution

Slide 10

Slide 10 text

hab pkg export Same immutable packages deployed everywhere ▪ ACI ▪ Cloud Foundry ▪ Docker ▪ Mesos ▪ Tar

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Managing Applications Automated Application Supervision ▪ Start, Stop, Reconfigure, etc. ▪ RESTful API ▪ Artifact updates ▪ Encrypted discovery service

Slide 13

Slide 13 text

Managing Services Supervisor Service Groups ▪ Clustering Topologies ▪ Update Strategies ▪ Service Group Bindings SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

Windows Support Build, deploy and manage Habitat packages on Windows ▪ plan.ps1 ▪ Native Windows Supervisor ▪ ASP.NET Core, .NET Core, Node, and more

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

For Developers Works on my machine ▪ Any language ▪ Automatic builds on commit ▪ Explicit dependency declarations ▪ Stable & unstable release channels

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

Matt Ray @mattray