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
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