Habitat by Chef
Jessica DeVita, Evangelist @ubergeekgirl
Trevor Hess, Customer Architect @trevorghess
Agenda
State of the World
An Overview of Habitat
How Habitat Makes Containers Better
Demo
Questions & Answers
>1k
>25k
Company Background
▪ At the forefront of agile, lean, and DevOps movements
▪ Open Source foundation
▪ Tens of millions of machines under management by Chef
▪ 265 employees. Offices in Seattle, San Francisco, London,
Berlin
OUR VISION
The most enduring and transformative
companies use Chef to become fast, efficient,
and innovative software driven organizations
70% of the Fortune 500 tech sector uses Chef
Customers use Chef, including
Alaska Airlines, Disney, Facebook,
Intuit & Target
Organizations using Chef to
improve their speed, efficiency&
risk management
Quick Stats
Chef Customers
1. BMC
2. Splunk
3. IBM
4. HP
5. New Relic
6. AWS
7. Servicenow
8. CA
9. Microsoft
10.Chef
11. Solarwinds
12. Atlassian
Chef has driven the automation revolution
Our platform is a leader in Continuous Automation
Infrastructure Automation
Compliance Automation
Application Automation
Strategic Vendor of F500OSS Leadership
With which vendor do you think you will
be spending the most on IT tools in three
years?
Goldman Sachs Spending Survey, 2016
Key Partners
The Chef Automate Platform
Continuous Automation for High Velocity IT
Workflow • Local development • Integration • Tooling (APIs & SDKs)
COLLABORATE
▪ Package
▪ Test
▪ Approve
BUILD
▪ Provision
▪ Configure
▪ Execute
▪ Update
DEPLOY
▪ Secure
▪ Comply
▪ Audit
▪ Measure
▪ Log
MANAGE
Infrastructure Automation Compliance AutomationApplication Automation
OSS AUTOMATION ENGINES
Increase Speed
▪ Package infrastructure and app
configuration as code
▪ Continuously automate infrastructure
and app updates
Improve Efficiency
▪ Define and execute standard workflows
and automation
▪ Audit and measure effectiveness of
automation
Decrease Risk
▪ Define compliance rules as code
▪ Deliver continuous compliance as part
of standard workflow
Product Software
Development
Quality
Assurance
Operations Security
Enterprise Application LifecycleRUNTIME
Grid PaaS Containers & Discovery Traditional Applications
INFRASTRUCTUR
E
Bare Metal Virtualization Cloud & IaaS OS
Application Delivery
Containers
Cloud & IaaS
PaaS
New World Infrastructure/Architecture
Data Services
VMs
Applications
VMs
Data Services
Container Schedulers
The reality of modern architectures
AWS ECS
Google Container
EngineFor
Containers
For Traditional
Applications
Build
Deploy
Manage
Brent’s Desk
database cluster
Configuration Management
13
The Reality
Application
Concerns
OS
Concerns
How do you...
Build immutable infrastructure but
allow last mile Application config changes?
How do you...
Decouple the application build from
the final production ready container?
How do you...
Orchestrate the application launch
order & topology required?
19
20
What if you could
defer infrastructure
decisions until
runtime?
Automation travels with the application
Existing & Cloud Native Software
Application Automation
For new and legacy
applications.
For stateless and
stateful applications
No matter the runtime
environment
Habitat’s Approach
Confidential & subject to NDA. Patents Pending.
The solution should be the same:
● Applications: portable & responsible for their own automation
● Small OS serves the application
● Make application components aware of each other over a network
● Continuous deployment without traditional “ARA”
Habitat Components
• Habitat Studio - an applicationpackager
Habitat Components
• Habitat Studio - an applicationpackager
• Habitat Plans - instructions todownload, compile,and install
Habitat Components
• Habitat Studio - an applicationpackager
• Habitat Plans - instructions todownload, compile,and install
• Habitat Depot - a place to upload and download your app packages
Habitat Components
• Habitat Studio - an applicationpackager
• Habitat Plans - instructions todownload, compile,and install
• Habitat Depot - a place to upload and download your app packages
• Habitat Supervisor - an intelligent runtime withdeployment coordination
and service discovery built in
How do you...
Decouple the application build from
the final production ready artifact?
Provide a “DSL” to describe the application build
(plan.sh), and provide an isolated environment (studio)
to build the application artifact (Habitat Package).
Starts with a plan
Simple, Native, and Declarative
pkg_origin=core
pkg_name=redis
pkg_version=3.2.1
pkg_license=('BSD')
pkg_maintainer="TheHabitat 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="redis-server $pkg_svc_config_path/redis.config"
pkg_expose=(6379)
do_build() {
make
}
plan.sh
Low abstraction
Complete
dependencies
Declare services
Simple functions
https://github.com/docker-library/redis/blob/master/3.2/Dockerfile
https://github.com/docker-library/redis/blob/master/3.2/Dockerfile
Clean room environment
Safe by default
Installs dependences
Built in a studio
Central location
Publicly hosted
Lightweight channels
Stored in a depot
Easy pattern
Shortcuts
Increasing specificity
Installed by hab
Binaries and Config
Metadata
Side-by-side
Packages Contain
Install automatically
Keep things running
Manage configuration
Supervisors run services
Print config options
12-Factor style
Externally enforced
Environment configuration
More flexible than environment
Universal location
Externally enforced
File configuration
How do you...
Build immutable infrastructure but
allow last mile Application config changes?
Ship the config along side an immutable application artifact.
Provide a supervisor to dynamically update the config based on
environment or service discovery.
Supervisors provide a REST API
External Actors
Health and Status
Supervisor
Debugging
How do you...
Orchestrate the application launch
order & topology required?
Provide config aware, autonomous, self-organizing
peers (supervisors) with built in topologies for
clustering strategies.
Supervisors form a ring
Peers
Service Groups
Gossip
Availability
increases with scale
Supervisors support topologies
Dynamic
configuration
Service group level
Uses the ring
Supervisors provide update strategies
Topology aware
Tracks views in the
depot
Ideal for Continuous
Delivery
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
USER ARTIFACT
How we do it
Packaging Applications
Running Applications
Confidential & subject to NDA. Patents Pending.
PLAN DEPOT
DEPOT ARTIFACT
BARE METAL
CONTAINERS
AMI
VM
How we do it
LEADER
INITIALIZE
R
STAND ALONE
Topologies Update StrategyRunning Applications
Confidential & subject to NDA. Patents Pending.
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
“ALL AT
ONCE”
ARTIFACT DEPOT
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
How we do it
Security
PUB KEY
SYMMETRIC ENCRYPTION
LOAD BALANCER
Build Service
BUILD
SERVICE
USER
SECRET
PAYLOADS
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
SERVICE
SUPERVISOR
ARTIFACTPLAN DEPOT
Confidential & subject to NDA. Patents Pending.
How do you...
Build containers with
the Minimum Viable OS?
Allow applications to declare their runtime
dependencies, and resolve those dependencies from
the application to the infrastructure.
Docker
ACI
Mesosphere
Post-process packages
Habitat + Containers
● Container formats recreate the traditional
model of infrastructure and applications.
● Poor at abstracting the Build + Run aspects
of Applications
Libraries
Operating System
Application
Application &
Libraries
● Habitat builds containers from the
application down
● Small lightweight OS included
● Embedded Supervisor for Application
Management
Application Libraries
Operable ApplicationContainers
•Isolated
•Immutable
•Configurable
•Common interface for monitoring health
•Rebuild from source
•Common packaging
•Runtime Independence
Habitat’s technology
Confidential & subject to NDA. Patents Pending.
● Describes how to build the
software
● Explicit about
dependencies
● Includes what is
configurable about the
application
● Built in service discovery
● Self-organizes into
topologies
● Handles inter-service
discovery through binding
● Has no single point of
failure
BUILD DEPLOY MANAGE
● Encrypted, authenticated
run-time configuration
● Automatic, safe, atomic
software updates
● Dynamic topology
updates
What the modern application team gets
Developers, System Administrators, CIOs; Enterprise and Tech Innovators
▪ Runs the same way in any
environment
▪ Management travels with the
application; no drift
▪ Autonomous and self-
organizing
▪ Legacy and Greenfield
▪ Lets the enterprise modernize
without re-writing the world
▪ Faster to build, easier to
deploy, safer to manage
▪ Easiest way to deploy
containers and microservices
in production
▪ Developers can focus on
building great applications
▪ Systems Administrators can
focus on how thoseapplications
should behave
▪ Gives both a language they can
share, with clear boundaries
Simplification Acceleration Empowerment
Confidential & subject to NDA. Patents Pending.
It’s all open source
Apache License
Support, services, and training
Chef as your partner for success with continuous automation
▪ On Demand.
Chef can provide dedicated
support for your installation
with experts from our customer
success team.
▪ Vibrant Community.
In addition to direct support,
Chef has a huge and active
community ready and willing to
provide guidance and best
practice.
▪ Custom development.
Chef can design and build
configuration cookbooks,
compliance profiles and
application packages using our
in-house experts.
▪ Accelerators.
Our architects and DevOps
practitioners can provide the
experience needed to get to
success quickly
▪ Public and Private Training.
We can deliver in-person and on-
demand training to suit your
needs.
▪ Certification.
Chef can help ensure your team
has the right knowledge for
continued success.
Support from the source Services for outcomes Training for capability
By bringing in Chef, we were able to automate very heterogeneous
infrastructures that included both legacy and new applications
Habitat Community
• Join the Habitat Slack Team - http://slack.habitat.sh/
• Work through the tutorial at https://www.habitat.sh/tutorials/
• Explore Habitat packages on the depot - https://app.habitat.sh/
• Explore the Habitat projects - https://github.com/habitat-sh
• Read Habitat Blog posts - https://blog.chef.io/?s=habitat
• Join the Habitat Forums - https://forums.habitat.sh/
Thank you!

DevOps LA Meetup Intro to Habitat

  • 1.
    Habitat by Chef JessicaDeVita, Evangelist @ubergeekgirl Trevor Hess, Customer Architect @trevorghess
  • 2.
    Agenda State of theWorld An Overview of Habitat How Habitat Makes Containers Better Demo Questions & Answers
  • 3.
    >1k >25k Company Background ▪ Atthe forefront of agile, lean, and DevOps movements ▪ Open Source foundation ▪ Tens of millions of machines under management by Chef ▪ 265 employees. Offices in Seattle, San Francisco, London, Berlin OUR VISION The most enduring and transformative companies use Chef to become fast, efficient, and innovative software driven organizations 70% of the Fortune 500 tech sector uses Chef Customers use Chef, including Alaska Airlines, Disney, Facebook, Intuit & Target Organizations using Chef to improve their speed, efficiency& risk management Quick Stats
  • 4.
  • 5.
    1. BMC 2. Splunk 3.IBM 4. HP 5. New Relic 6. AWS 7. Servicenow 8. CA 9. Microsoft 10.Chef 11. Solarwinds 12. Atlassian Chef has driven the automation revolution Our platform is a leader in Continuous Automation Infrastructure Automation Compliance Automation Application Automation Strategic Vendor of F500OSS Leadership With which vendor do you think you will be spending the most on IT tools in three years? Goldman Sachs Spending Survey, 2016 Key Partners
  • 6.
    The Chef AutomatePlatform Continuous Automation for High Velocity IT Workflow • Local development • Integration • Tooling (APIs & SDKs) COLLABORATE ▪ Package ▪ Test ▪ Approve BUILD ▪ Provision ▪ Configure ▪ Execute ▪ Update DEPLOY ▪ Secure ▪ Comply ▪ Audit ▪ Measure ▪ Log MANAGE Infrastructure Automation Compliance AutomationApplication Automation OSS AUTOMATION ENGINES Increase Speed ▪ Package infrastructure and app configuration as code ▪ Continuously automate infrastructure and app updates Improve Efficiency ▪ Define and execute standard workflows and automation ▪ Audit and measure effectiveness of automation Decrease Risk ▪ Define compliance rules as code ▪ Deliver continuous compliance as part of standard workflow
  • 7.
    Product Software Development Quality Assurance Operations Security EnterpriseApplication LifecycleRUNTIME Grid PaaS Containers & Discovery Traditional Applications INFRASTRUCTUR E Bare Metal Virtualization Cloud & IaaS OS Application Delivery
  • 8.
    Containers Cloud & IaaS PaaS NewWorld Infrastructure/Architecture Data Services VMs Applications VMs Data Services Container Schedulers
  • 9.
    The reality ofmodern architectures AWS ECS Google Container EngineFor Containers For Traditional Applications
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
    How do you... Buildimmutable infrastructure but allow last mile Application config changes?
  • 16.
    How do you... Decouplethe application build from the final production ready container?
  • 17.
    How do you... Orchestratethe application launch order & topology required?
  • 19.
  • 20.
  • 22.
    What if youcould defer infrastructure decisions until runtime?
  • 24.
    Automation travels withthe application Existing & Cloud Native Software Application Automation
  • 25.
    For new andlegacy applications. For stateless and stateful applications No matter the runtime environment Habitat’s Approach Confidential & subject to NDA. Patents Pending. The solution should be the same: ● Applications: portable & responsible for their own automation ● Small OS serves the application ● Make application components aware of each other over a network ● Continuous deployment without traditional “ARA”
  • 26.
    Habitat Components • HabitatStudio - an applicationpackager
  • 27.
    Habitat Components • HabitatStudio - an applicationpackager • Habitat Plans - instructions todownload, compile,and install
  • 28.
    Habitat Components • HabitatStudio - an applicationpackager • Habitat Plans - instructions todownload, compile,and install • Habitat Depot - a place to upload and download your app packages
  • 29.
    Habitat Components • HabitatStudio - an applicationpackager • Habitat Plans - instructions todownload, compile,and install • Habitat Depot - a place to upload and download your app packages • Habitat Supervisor - an intelligent runtime withdeployment coordination and service discovery built in
  • 30.
    How do you... Decouplethe application build from the final production ready artifact? Provide a “DSL” to describe the application build (plan.sh), and provide an isolated environment (studio) to build the application artifact (Habitat Package).
  • 31.
  • 32.
    Simple, Native, andDeclarative pkg_origin=core pkg_name=redis pkg_version=3.2.1 pkg_license=('BSD') pkg_maintainer="TheHabitat 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="redis-server $pkg_svc_config_path/redis.config" pkg_expose=(6379) do_build() { make } plan.sh Low abstraction Complete dependencies Declare services Simple functions
  • 33.
  • 34.
  • 35.
    Clean room environment Safeby default Installs dependences Built in a studio
  • 37.
  • 41.
  • 42.
  • 44.
    Install automatically Keep thingsrunning Manage configuration Supervisors run services
  • 45.
    Print config options 12-Factorstyle Externally enforced Environment configuration
  • 46.
    More flexible thanenvironment Universal location Externally enforced File configuration
  • 47.
    How do you... Buildimmutable infrastructure but allow last mile Application config changes? Ship the config along side an immutable application artifact. Provide a supervisor to dynamically update the config based on environment or service discovery.
  • 48.
    Supervisors provide aREST API External Actors Health and Status Supervisor Debugging
  • 49.
    How do you... Orchestratethe application launch order & topology required? Provide config aware, autonomous, self-organizing peers (supervisors) with built in topologies for clustering strategies.
  • 50.
    Supervisors form aring Peers Service Groups Gossip Availability increases with scale
  • 51.
  • 52.
    Supervisors provide updatestrategies Topology aware Tracks views in the depot Ideal for Continuous Delivery
  • 53.
    SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR USER ARTIFACT How wedo it Packaging Applications Running Applications Confidential & subject to NDA. Patents Pending. PLAN DEPOT DEPOT ARTIFACT BARE METAL CONTAINERS AMI VM
  • 54.
    How we doit LEADER INITIALIZE R STAND ALONE Topologies Update StrategyRunning Applications Confidential & subject to NDA. Patents Pending. SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR “ALL AT ONCE” ARTIFACT DEPOT SERVICE SUPERVISOR
  • 55.
    SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR How we doit Security PUB KEY SYMMETRIC ENCRYPTION LOAD BALANCER Build Service BUILD SERVICE USER SECRET PAYLOADS SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR SERVICE SUPERVISOR ARTIFACTPLAN DEPOT Confidential & subject to NDA. Patents Pending.
  • 56.
    How do you... Buildcontainers with the Minimum Viable OS? Allow applications to declare their runtime dependencies, and resolve those dependencies from the application to the infrastructure.
  • 57.
  • 58.
    Habitat + Containers ●Container formats recreate the traditional model of infrastructure and applications. ● Poor at abstracting the Build + Run aspects of Applications Libraries Operating System Application Application & Libraries ● Habitat builds containers from the application down ● Small lightweight OS included ● Embedded Supervisor for Application Management Application Libraries
  • 59.
    Operable ApplicationContainers •Isolated •Immutable •Configurable •Common interfacefor monitoring health •Rebuild from source •Common packaging •Runtime Independence
  • 60.
    Habitat’s technology Confidential &subject to NDA. Patents Pending. ● Describes how to build the software ● Explicit about dependencies ● Includes what is configurable about the application ● Built in service discovery ● Self-organizes into topologies ● Handles inter-service discovery through binding ● Has no single point of failure BUILD DEPLOY MANAGE ● Encrypted, authenticated run-time configuration ● Automatic, safe, atomic software updates ● Dynamic topology updates
  • 61.
    What the modernapplication team gets Developers, System Administrators, CIOs; Enterprise and Tech Innovators ▪ Runs the same way in any environment ▪ Management travels with the application; no drift ▪ Autonomous and self- organizing ▪ Legacy and Greenfield ▪ Lets the enterprise modernize without re-writing the world ▪ Faster to build, easier to deploy, safer to manage ▪ Easiest way to deploy containers and microservices in production ▪ Developers can focus on building great applications ▪ Systems Administrators can focus on how thoseapplications should behave ▪ Gives both a language they can share, with clear boundaries Simplification Acceleration Empowerment Confidential & subject to NDA. Patents Pending.
  • 62.
    It’s all opensource Apache License
  • 63.
    Support, services, andtraining Chef as your partner for success with continuous automation ▪ On Demand. Chef can provide dedicated support for your installation with experts from our customer success team. ▪ Vibrant Community. In addition to direct support, Chef has a huge and active community ready and willing to provide guidance and best practice. ▪ Custom development. Chef can design and build configuration cookbooks, compliance profiles and application packages using our in-house experts. ▪ Accelerators. Our architects and DevOps practitioners can provide the experience needed to get to success quickly ▪ Public and Private Training. We can deliver in-person and on- demand training to suit your needs. ▪ Certification. Chef can help ensure your team has the right knowledge for continued success. Support from the source Services for outcomes Training for capability By bringing in Chef, we were able to automate very heterogeneous infrastructures that included both legacy and new applications
  • 64.
    Habitat Community • Jointhe Habitat Slack Team - http://slack.habitat.sh/ • Work through the tutorial at https://www.habitat.sh/tutorials/ • Explore Habitat packages on the depot - https://app.habitat.sh/ • Explore the Habitat projects - https://github.com/habitat-sh • Read Habitat Blog posts - https://blog.chef.io/?s=habitat • Join the Habitat Forums - https://forums.habitat.sh/
  • 65.