SlideShare a Scribd company logo
OPEN335
Nell Shamrell-Harrington
Platform Agnosticism with Habitat
What if you could build software once…
What if you could build software once…
…
What if you could build software once…
…
What if you could build software once…
…
What if you could build software once…
…
What if you could move a legacy application
into the cloud…
What if you could move a legacy application
into the cloud…
What if you could empower your applications
to recover from failure…
What if you could empower your applications
to recover from failure…
You can!
Habitat is Application Automation
Who am I?
Why am I here?
Microsoft <3’s Open Source!
Applications
Management
App Frameworks
Databases & Middleware
Infrastructure
Linux
Our Approach to Open Source in the Cloud
Integrate
Embrace leading Open
Source ecosystems and
integrate Microsoft products
with agility and consistency
Release
Release key Microsoft
technologies into the Open
Source domain to build a
strong ecosystem
Participate
Microsoft engineers to
participate in communities
and contribute to key Open
Source projects
Enable
Enable Linux and Open
Source technology to be first
class citizens on Microsoft
Platforms
Open Source Partners & Ecosystem
R Server
.NET Core
Roslyn
TypeScript
F#
PowerShell
autorest
PowerBI Visuals
Office UI Fabric
Tools plugins
Building and running software is painful!
Building and running software is painful
Building and running software is painful
Building and running software is painful
Habitat builds and runs
modern applications
Modern application
Modern application
Modern application
Modern application
Modern application
Building a modern application
Building a modern application
Source
Code
Repo
Building a modern application
Artifact
Source
Code
Repo
Building a modern application
Artifact
Artifact
Repo
Source
Code
Repo
Building a modern application
Artifact
Bare Metal
Container
Instance
VM
Artifact
Repo
Source
Code
Repo
Habitat is a new technology to
build, deploy, and manage
applications…
…in any environment
from traditional datacenters
to containerized microservices
In Habitat, the application
is the unit of automation
How does it work?
Packaging an Application with Habitat
USER
Packaging an Application with Habitat
USER PLAN
Packaging an Application with Habitat
USER ARTIFACTPLAN
Packaging an Application with Habitat
Packaging an Application with Habitat
USER ARTIFACTPLAN DEPOT
Public Depot
app.habitat.sh
Running an Application with Habitat
Running an Application with Habitat
DEPOT
Running an Application with Habitat
ARTIFACTDEPOT
Running an Application with Habitat
ARTIFACTDEPOT
SERVICE
SUPERVISOR
BARE METAL
SERVICE
SUPERVISOR
CONTAINERS
SERVICE
SUPERVISOR
AMI
SERVICE
SUPERVISOR
VM
Running an Application with Habitat
SERVICE
SUPERVISOR
VM
API
Running an Application with Habitat
SERVICE
SUPERVISOR
VM
API
Load
Balancer
Running an Application with Habitat
SERVICE
SUPERVISOR
VM
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
SERVICE
SUPERVISOR
VM
Running an Application with Habitat
SERVICE
SUPERVISOR
VM
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
SERVICE
SUPERVISOR
VM
Habitat has many parts –
many of which are still
in development
I’m here to talk about
what you can do with
Habitat today
And together we
can shape where
it goes in the future
What we will discuss today
What we will discuss today
What we will discuss today
Habitat supervisor
Habitat supervisor
Habitat supervisor
Habitat supervisor
Habitat supervisor
Habitat supervisor
Habitat supervisor
Habitat supervisor
Habitat supervisor
Habitat supervisor
SERVICE
SUPERVISOR
VM
Habitat supervisor
Habitat supervisor
SERVICE
SUPERVISOR
VM
Habitat supervisor
Running MySQL
SERVICE
SUPERVISOR
VM
Habitat supervisor
Also running
MySQL
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
SERVICE
SUPERVISOR
VM
Habitat supervisor
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
SERVICE
SUPERVISOR
VM
Habitat supervisor
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Let’s elect a leader!
SERVICE
SUPERVISOR
VM
Habitat supervisor
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Leader – receives
write requests
SERVICE
SUPERVISOR
VM
Habitat supervisor
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Leader – receives
write requests
Followers –
receive read
requests
SERVICE
SUPERVISOR
VM
Habitat supervisor
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
SERVICE
SUPERVISOR
VM
Habitat supervisor
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Cannot connect
Habitat supervisor
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Habitat supervisor
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Let’s elect a leader!
Habitat supervisor
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Leader – receives
write requests
Habitat supervisor
SERVICE
SUPERVISOR
VM SERVICE
SUPERVISOR
VM
Follower –
receives read
requests
Habitat assumes that failures
will happen and
are normal
Healthy components will
self-organize and
re-converge
Habitat supervisor
Habitat supervisor
Habitat supervisor
Habitat supervisor
Habitat supervisor
Habitat supervisor
Habitat supervisor
How does the Supervisor
get something to supervise?
Habitat packages
Habitat packages
Habitat packages
Habitat plans use Bash for Packages
that will run on Linux
Habitat can also create plans
for Windows using Powershell
(Preliminary)
Along with running hart
packages with Habitat…
You can also export them
to other formats
Including container images, by
far the most popular is Docker
Getting artifacts to run
anywhere is very difficult
Containers were supposed to
solve this problem, but…
Current Container Pain
Current Container Pain
Current Container Pain
Current Container Pain
Libraries
Operating System
Application
Application
Libraries
Containers with Habitat
Libraries
Operating System
Application
Application
&
Libraries
OS
Containers with Habitat
Containers with Habitat
Containers with Habitat
When you create a container
image with Habitat…
You know exactly what went
into the container and
what is configurable about the
container
Deploying Containers with Habitat
Deploying Containers with Habitat
Deploying Containers with Habitat
Azure Container Services
DC/OS Swarm Kubernetes
DC/OS Swarm Kubernetes
Look for a blog post on using
Habitat with
Azure Container Services
coming soon!
You can build software
once and run it
(almost) anywhere
You can move a legacy
application into the cloud
(without rewriting it)
You can empower your
applications to recover from
failure on their own…
You can do all these things with
Habitat is Application Automation
Why am I here?
How do I get involved?
Who am I?
Who am I?
Thank You!
Who am I?
Any Questions?

More Related Content

What's hot

Kubernetes DevOps - Atul - Microsoft - CC18
Kubernetes DevOps - Atul - Microsoft - CC18Kubernetes DevOps - Atul - Microsoft - CC18
Kubernetes DevOps - Atul - Microsoft - CC18
CodeOps Technologies LLP
 
Multi Stage Docker Build
Multi Stage Docker Build Multi Stage Docker Build
Multi Stage Docker Build
Prasenjit Sarkar
 
Docker - Frank Maounis
Docker - Frank MaounisDocker - Frank Maounis
Docker - Frank Maounis
Frank Maounis
 
Build and automate your machine learning application with docker and jenkins
Build and automate your machine learning application with docker and jenkinsBuild and automate your machine learning application with docker and jenkins
Build and automate your machine learning application with docker and jenkins
Knoldus Inc.
 
Akka.Net & .Net Core - .Net Inside 4° MeetUp
Akka.Net & .Net Core - .Net Inside 4° MeetUpAkka.Net & .Net Core - .Net Inside 4° MeetUp
Akka.Net & .Net Core - .Net Inside 4° MeetUp
Alexandre Brandão Lustosa
 
Akka.Net - Implementing distributed systems with Akka.net and .Net Core
Akka.Net - Implementing distributed systems with Akka.net and .Net CoreAkka.Net - Implementing distributed systems with Akka.net and .Net Core
Akka.Net - Implementing distributed systems with Akka.net and .Net Core
Alexandre Brandão Lustosa
 
Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18
Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18
Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18
CodeOps Technologies LLP
 

What's hot (7)

Kubernetes DevOps - Atul - Microsoft - CC18
Kubernetes DevOps - Atul - Microsoft - CC18Kubernetes DevOps - Atul - Microsoft - CC18
Kubernetes DevOps - Atul - Microsoft - CC18
 
Multi Stage Docker Build
Multi Stage Docker Build Multi Stage Docker Build
Multi Stage Docker Build
 
Docker - Frank Maounis
Docker - Frank MaounisDocker - Frank Maounis
Docker - Frank Maounis
 
Build and automate your machine learning application with docker and jenkins
Build and automate your machine learning application with docker and jenkinsBuild and automate your machine learning application with docker and jenkins
Build and automate your machine learning application with docker and jenkins
 
Akka.Net & .Net Core - .Net Inside 4° MeetUp
Akka.Net & .Net Core - .Net Inside 4° MeetUpAkka.Net & .Net Core - .Net Inside 4° MeetUp
Akka.Net & .Net Core - .Net Inside 4° MeetUp
 
Akka.Net - Implementing distributed systems with Akka.net and .Net Core
Akka.Net - Implementing distributed systems with Akka.net and .Net CoreAkka.Net - Implementing distributed systems with Akka.net and .Net Core
Akka.Net - Implementing distributed systems with Akka.net and .Net Core
 
Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18
Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18
Containers and OpenStack - A Happy Marriage - Madhuri - Intel - CC18
 

Viewers also liked

SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by ChefSoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
Trevor Hess
 
Presentations - Zarget CRO meetup 2017
Presentations - Zarget CRO meetup 2017Presentations - Zarget CRO meetup 2017
Presentations - Zarget CRO meetup 2017
ZargetHQ
 
DevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to HabitatDevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to Habitat
Jessica DeVita
 
Packaging Software, Puppet Labs Style - PuppetConf 2014
Packaging Software, Puppet Labs Style - PuppetConf 2014Packaging Software, Puppet Labs Style - PuppetConf 2014
Packaging Software, Puppet Labs Style - PuppetConf 2014
Puppet
 
Reproducible Computational Pipelines with Docker and Nextflow
Reproducible Computational Pipelines with Docker and NextflowReproducible Computational Pipelines with Docker and Nextflow
Reproducible Computational Pipelines with Docker and Nextflow
inside-BigData.com
 
Тишлиева М.Г.
Тишлиева М.Г.Тишлиева М.Г.
Тишлиева М.Г.
peshkova_anastasiya
 
Flashtennis semanario 27 febrero 2017
Flashtennis semanario 27 febrero 2017Flashtennis semanario 27 febrero 2017
Flashtennis semanario 27 febrero 2017
Edgar Gonzalez Allegre
 
Actividad2
Actividad2Actividad2
Actividad2
cursosjjpp
 
Histórias de Vida Volume III - Mulheres do direito, Mulheres no Ministério Pú...
Histórias de Vida Volume III - Mulheres do direito, Mulheres no Ministério Pú...Histórias de Vida Volume III - Mulheres do direito, Mulheres no Ministério Pú...
Histórias de Vida Volume III - Mulheres do direito, Mulheres no Ministério Pú...
Ministério Público de Santa Catarina
 
Direito Administrativo - Princípios Básicos
Direito Administrativo - Princípios BásicosDireito Administrativo - Princípios Básicos
Direito Administrativo - Princípios Básicos
Mentor Concursos
 
6° Período embrionario y Período fetal
6° Período embrionario y Período fetal6° Período embrionario y Período fetal
6° Período embrionario y Período fetal
Felipe Flores
 
Lxd the proper way of runing containers
Lxd   the proper way of runing containersLxd   the proper way of runing containers
Lxd the proper way of runing containers
Marian Marinov
 
Streamlining HPC Workloads with Containers
Streamlining HPC Workloads with ContainersStreamlining HPC Workloads with Containers
Streamlining HPC Workloads with Containers
Dustin Kirkland
 
3° División celular y gametogénesis
3° División celular y gametogénesis3° División celular y gametogénesis
3° División celular y gametogénesis
Felipe Flores
 
Highest Rated Satisfaction (Overall)
Highest Rated Satisfaction (Overall)Highest Rated Satisfaction (Overall)
Highest Rated Satisfaction (Overall)
G2Crowd
 
LXD Container Hypervisor
LXD Container HypervisorLXD Container Hypervisor
LXD Container Hypervisor
Danial Behzadi
 
What HPC can learn from DevOps?
What HPC can learn from DevOps?What HPC can learn from DevOps?
What HPC can learn from DevOps?
Walid Shaari
 
Taller de Color · Pac 1 · Paquita Ribas
Taller de Color · Pac 1 · Paquita RibasTaller de Color · Pac 1 · Paquita Ribas
Taller de Color · Pac 1 · Paquita Ribas
Paquita Ribas
 
Docker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetupDocker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetup
Walid Shaari
 
экскурсия в библиотеку имени франко
экскурсия в библиотеку имени франкоэкскурсия в библиотеку имени франко
экскурсия в библиотеку имени франко
peshkova_anastasiya
 

Viewers also liked (20)

SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by ChefSoCal DevOps Meetup 1/26/2017 - Habitat by Chef
SoCal DevOps Meetup 1/26/2017 - Habitat by Chef
 
Presentations - Zarget CRO meetup 2017
Presentations - Zarget CRO meetup 2017Presentations - Zarget CRO meetup 2017
Presentations - Zarget CRO meetup 2017
 
DevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to HabitatDevOps LA Meetup Intro to Habitat
DevOps LA Meetup Intro to Habitat
 
Packaging Software, Puppet Labs Style - PuppetConf 2014
Packaging Software, Puppet Labs Style - PuppetConf 2014Packaging Software, Puppet Labs Style - PuppetConf 2014
Packaging Software, Puppet Labs Style - PuppetConf 2014
 
Reproducible Computational Pipelines with Docker and Nextflow
Reproducible Computational Pipelines with Docker and NextflowReproducible Computational Pipelines with Docker and Nextflow
Reproducible Computational Pipelines with Docker and Nextflow
 
Тишлиева М.Г.
Тишлиева М.Г.Тишлиева М.Г.
Тишлиева М.Г.
 
Flashtennis semanario 27 febrero 2017
Flashtennis semanario 27 febrero 2017Flashtennis semanario 27 febrero 2017
Flashtennis semanario 27 febrero 2017
 
Actividad2
Actividad2Actividad2
Actividad2
 
Histórias de Vida Volume III - Mulheres do direito, Mulheres no Ministério Pú...
Histórias de Vida Volume III - Mulheres do direito, Mulheres no Ministério Pú...Histórias de Vida Volume III - Mulheres do direito, Mulheres no Ministério Pú...
Histórias de Vida Volume III - Mulheres do direito, Mulheres no Ministério Pú...
 
Direito Administrativo - Princípios Básicos
Direito Administrativo - Princípios BásicosDireito Administrativo - Princípios Básicos
Direito Administrativo - Princípios Básicos
 
6° Período embrionario y Período fetal
6° Período embrionario y Período fetal6° Período embrionario y Período fetal
6° Período embrionario y Período fetal
 
Lxd the proper way of runing containers
Lxd   the proper way of runing containersLxd   the proper way of runing containers
Lxd the proper way of runing containers
 
Streamlining HPC Workloads with Containers
Streamlining HPC Workloads with ContainersStreamlining HPC Workloads with Containers
Streamlining HPC Workloads with Containers
 
3° División celular y gametogénesis
3° División celular y gametogénesis3° División celular y gametogénesis
3° División celular y gametogénesis
 
Highest Rated Satisfaction (Overall)
Highest Rated Satisfaction (Overall)Highest Rated Satisfaction (Overall)
Highest Rated Satisfaction (Overall)
 
LXD Container Hypervisor
LXD Container HypervisorLXD Container Hypervisor
LXD Container Hypervisor
 
What HPC can learn from DevOps?
What HPC can learn from DevOps?What HPC can learn from DevOps?
What HPC can learn from DevOps?
 
Taller de Color · Pac 1 · Paquita Ribas
Taller de Color · Pac 1 · Paquita RibasTaller de Color · Pac 1 · Paquita Ribas
Taller de Color · Pac 1 · Paquita Ribas
 
Docker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetupDocker Dhahran Nov 2016 meetup
Docker Dhahran Nov 2016 meetup
 
экскурсия в библиотеку имени франко
экскурсия в библиотеку имени франкоэкскурсия в библиотеку имени франко
экскурсия в библиотеку имени франко
 

Similar to Creating Packages that Run Anywhere with Chef Habitat

Keep calms and Docker On ... Innotech
Keep calms and Docker On ... InnotechKeep calms and Docker On ... Innotech
Keep calms and Docker On ... Innotech
Boyd Hemphill
 
Docker Enables DevOps - Boston
Docker Enables DevOps - BostonDocker Enables DevOps - Boston
Docker Enables DevOps - Boston
Boyd Hemphill
 
The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...
Sébastien Portebois
 
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Boyd Hemphill
 
StackEngine Demo - Boston
StackEngine Demo - BostonStackEngine Demo - Boston
StackEngine Demo - Boston
Boyd Hemphill
 
StackEngine Problem Space Demo
StackEngine Problem Space DemoStackEngine Problem Space Demo
StackEngine Problem Space Demo
Boyd Hemphill
 
Introduction Into Docker Ecosystem
Introduction Into Docker EcosystemIntroduction Into Docker Ecosystem
Introduction Into Docker Ecosystem
Alexander Pastukhov, OCPJP, OCPJWSD
 
Immutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentImmutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App Deployment
Axel Fontaine
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
Dr Ganesh Iyer
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
Dr Ganesh Iyer
 
Containers On Azure.
Containers On Azure.Containers On Azure.
Containers On Azure.
Omnia Ismail
 
Higher. Faster. Stronger. Your Applications with Habitat
Higher. Faster. Stronger. Your Applications with HabitatHigher. Faster. Stronger. Your Applications with Habitat
Higher. Faster. Stronger. Your Applications with Habitat
Nell Shamrell-Harrington
 
DevOps Sydney- Building Better Containers with Habitat
DevOps Sydney- Building Better Containers with HabitatDevOps Sydney- Building Better Containers with Habitat
DevOps Sydney- Building Better Containers with Habitat
Matt Ray
 
Automation for the Humans
Automation for the HumansAutomation for the Humans
Automation for the Humans
Rakuten Group, Inc.
 
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
Alexandre Roman
 
Programming the world with Docker
Programming the world with DockerProgramming the world with Docker
Programming the world with Docker
Patrick Chanezon
 
When Developers Operate and Operators Develop
When Developers Operate and Operators DevelopWhen Developers Operate and Operators Develop
When Developers Operate and Operators Develop
Adrian Cockcroft
 
2019 05 - Exploring Container Offerings in Azure
2019 05 - Exploring Container Offerings in Azure2019 05 - Exploring Container Offerings in Azure
2019 05 - Exploring Container Offerings in Azure
Adam Stephensen
 
8 good reasons to learn docker
8 good reasons to learn docker8 good reasons to learn docker
8 good reasons to learn docker
prabhasathya
 
ContainerDayVietnam2016: Become a Cloud-native Developer
ContainerDayVietnam2016: Become a Cloud-native DeveloperContainerDayVietnam2016: Become a Cloud-native Developer
ContainerDayVietnam2016: Become a Cloud-native Developer
Docker-Hanoi
 

Similar to Creating Packages that Run Anywhere with Chef Habitat (20)

Keep calms and Docker On ... Innotech
Keep calms and Docker On ... InnotechKeep calms and Docker On ... Innotech
Keep calms and Docker On ... Innotech
 
Docker Enables DevOps - Boston
Docker Enables DevOps - BostonDocker Enables DevOps - Boston
Docker Enables DevOps - Boston
 
The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...The challenge of application distribution - Introduction to Docker (2014 dec ...
The challenge of application distribution - Introduction to Docker (2014 dec ...
 
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
Docker Enables DevOps - Keep C.A.L.M.S. and Docker on ...
 
StackEngine Demo - Boston
StackEngine Demo - BostonStackEngine Demo - Boston
StackEngine Demo - Boston
 
StackEngine Problem Space Demo
StackEngine Problem Space DemoStackEngine Problem Space Demo
StackEngine Problem Space Demo
 
Introduction Into Docker Ecosystem
Introduction Into Docker EcosystemIntroduction Into Docker Ecosystem
Introduction Into Docker Ecosystem
 
Immutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App DeploymentImmutable Infrastructure: the new App Deployment
Immutable Infrastructure: the new App Deployment
 
Demystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data ScientistsDemystifying Containerization Principles for Data Scientists
Demystifying Containerization Principles for Data Scientists
 
Dockers and kubernetes
Dockers and kubernetesDockers and kubernetes
Dockers and kubernetes
 
Containers On Azure.
Containers On Azure.Containers On Azure.
Containers On Azure.
 
Higher. Faster. Stronger. Your Applications with Habitat
Higher. Faster. Stronger. Your Applications with HabitatHigher. Faster. Stronger. Your Applications with Habitat
Higher. Faster. Stronger. Your Applications with Habitat
 
DevOps Sydney- Building Better Containers with Habitat
DevOps Sydney- Building Better Containers with HabitatDevOps Sydney- Building Better Containers with Habitat
DevOps Sydney- Building Better Containers with Habitat
 
Automation for the Humans
Automation for the HumansAutomation for the Humans
Automation for the Humans
 
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
La sécurité avec Kubernetes et les conteneurs Docker (June 19th, 2019)
 
Programming the world with Docker
Programming the world with DockerProgramming the world with Docker
Programming the world with Docker
 
When Developers Operate and Operators Develop
When Developers Operate and Operators DevelopWhen Developers Operate and Operators Develop
When Developers Operate and Operators Develop
 
2019 05 - Exploring Container Offerings in Azure
2019 05 - Exploring Container Offerings in Azure2019 05 - Exploring Container Offerings in Azure
2019 05 - Exploring Container Offerings in Azure
 
8 good reasons to learn docker
8 good reasons to learn docker8 good reasons to learn docker
8 good reasons to learn docker
 
ContainerDayVietnam2016: Become a Cloud-native Developer
ContainerDayVietnam2016: Become a Cloud-native DeveloperContainerDayVietnam2016: Become a Cloud-native Developer
ContainerDayVietnam2016: Become a Cloud-native Developer
 

More from Nell Shamrell-Harrington

This Week in Rust: 400 Issues and Counting!
This Week in Rust: 400 Issues and Counting!This Week in Rust: 400 Issues and Counting!
This Week in Rust: 400 Issues and Counting!
Nell Shamrell-Harrington
 
The Rust Borrow Checker
The Rust Borrow CheckerThe Rust Borrow Checker
The Rust Borrow Checker
Nell Shamrell-Harrington
 
Habitat Service Discovery
Habitat Service DiscoveryHabitat Service Discovery
Habitat Service Discovery
Nell Shamrell-Harrington
 
Web Operations101
Web Operations101Web Operations101
Web Operations101
Nell Shamrell-Harrington
 
Rust Traits And You: A Deep Dive
Rust Traits And You: A Deep DiveRust Traits And You: A Deep Dive
Rust Traits And You: A Deep Dive
Nell Shamrell-Harrington
 
Rust, Redis, and Protobuf - Oh My!
Rust, Redis, and Protobuf - Oh My!Rust, Redis, and Protobuf - Oh My!
Rust, Redis, and Protobuf - Oh My!
Nell Shamrell-Harrington
 
Containers, Virtual Machines, and Bare Metal, Oh My!
Containers, Virtual Machines, and Bare Metal, Oh My!Containers, Virtual Machines, and Bare Metal, Oh My!
Containers, Virtual Machines, and Bare Metal, Oh My!
Nell Shamrell-Harrington
 
Chef Vault: A Deep Dive
Chef Vault: A Deep DiveChef Vault: A Deep Dive
Chef Vault: A Deep Dive
Nell Shamrell-Harrington
 
Open Source Governance 101
Open Source Governance 101Open Source Governance 101
Open Source Governance 101
Nell Shamrell-Harrington
 
DevOps in Politics
DevOps in PoliticsDevOps in Politics
DevOps in Politics
Nell Shamrell-Harrington
 
Open Source Governance - The Hard Parts
Open Source Governance - The Hard PartsOpen Source Governance - The Hard Parts
Open Source Governance - The Hard Parts
Nell Shamrell-Harrington
 
Refactoring terraform
Refactoring terraformRefactoring terraform
Refactoring terraform
Nell Shamrell-Harrington
 
Refactoring Infrastructure Code
Refactoring Infrastructure CodeRefactoring Infrastructure Code
Refactoring Infrastructure Code
Nell Shamrell-Harrington
 
Devops: A History
Devops: A HistoryDevops: A History
Devops: A History
Nell Shamrell-Harrington
 
First Do No Harm: Surgical Refactoring (extended edition)
First Do No Harm: Surgical Refactoring (extended edition)First Do No Harm: Surgical Refactoring (extended edition)
First Do No Harm: Surgical Refactoring (extended edition)
Nell Shamrell-Harrington
 
First Do No Harm: Surgical Refactoring
First Do No Harm: Surgical RefactoringFirst Do No Harm: Surgical Refactoring
First Do No Harm: Surgical Refactoring
Nell Shamrell-Harrington
 
A Supermarket of Your Own: Running a Private Chef Supermarket
A Supermarket of Your Own: Running a Private Chef SupermarketA Supermarket of Your Own: Running a Private Chef Supermarket
A Supermarket of Your Own: Running a Private Chef Supermarket
Nell Shamrell-Harrington
 
Public Supermarket: The Insider's Tour
Public Supermarket: The Insider's TourPublic Supermarket: The Insider's Tour
Public Supermarket: The Insider's Tour
Nell Shamrell-Harrington
 
Beneath the Surface - Rubyconf 2013
Beneath the Surface - Rubyconf 2013Beneath the Surface - Rubyconf 2013
Beneath the Surface - Rubyconf 2013
Nell Shamrell-Harrington
 
Beneath the Surface: Regular Expressions in Ruby
Beneath the Surface: Regular Expressions in RubyBeneath the Surface: Regular Expressions in Ruby
Beneath the Surface: Regular Expressions in Ruby
Nell Shamrell-Harrington
 

More from Nell Shamrell-Harrington (20)

This Week in Rust: 400 Issues and Counting!
This Week in Rust: 400 Issues and Counting!This Week in Rust: 400 Issues and Counting!
This Week in Rust: 400 Issues and Counting!
 
The Rust Borrow Checker
The Rust Borrow CheckerThe Rust Borrow Checker
The Rust Borrow Checker
 
Habitat Service Discovery
Habitat Service DiscoveryHabitat Service Discovery
Habitat Service Discovery
 
Web Operations101
Web Operations101Web Operations101
Web Operations101
 
Rust Traits And You: A Deep Dive
Rust Traits And You: A Deep DiveRust Traits And You: A Deep Dive
Rust Traits And You: A Deep Dive
 
Rust, Redis, and Protobuf - Oh My!
Rust, Redis, and Protobuf - Oh My!Rust, Redis, and Protobuf - Oh My!
Rust, Redis, and Protobuf - Oh My!
 
Containers, Virtual Machines, and Bare Metal, Oh My!
Containers, Virtual Machines, and Bare Metal, Oh My!Containers, Virtual Machines, and Bare Metal, Oh My!
Containers, Virtual Machines, and Bare Metal, Oh My!
 
Chef Vault: A Deep Dive
Chef Vault: A Deep DiveChef Vault: A Deep Dive
Chef Vault: A Deep Dive
 
Open Source Governance 101
Open Source Governance 101Open Source Governance 101
Open Source Governance 101
 
DevOps in Politics
DevOps in PoliticsDevOps in Politics
DevOps in Politics
 
Open Source Governance - The Hard Parts
Open Source Governance - The Hard PartsOpen Source Governance - The Hard Parts
Open Source Governance - The Hard Parts
 
Refactoring terraform
Refactoring terraformRefactoring terraform
Refactoring terraform
 
Refactoring Infrastructure Code
Refactoring Infrastructure CodeRefactoring Infrastructure Code
Refactoring Infrastructure Code
 
Devops: A History
Devops: A HistoryDevops: A History
Devops: A History
 
First Do No Harm: Surgical Refactoring (extended edition)
First Do No Harm: Surgical Refactoring (extended edition)First Do No Harm: Surgical Refactoring (extended edition)
First Do No Harm: Surgical Refactoring (extended edition)
 
First Do No Harm: Surgical Refactoring
First Do No Harm: Surgical RefactoringFirst Do No Harm: Surgical Refactoring
First Do No Harm: Surgical Refactoring
 
A Supermarket of Your Own: Running a Private Chef Supermarket
A Supermarket of Your Own: Running a Private Chef SupermarketA Supermarket of Your Own: Running a Private Chef Supermarket
A Supermarket of Your Own: Running a Private Chef Supermarket
 
Public Supermarket: The Insider's Tour
Public Supermarket: The Insider's TourPublic Supermarket: The Insider's Tour
Public Supermarket: The Insider's Tour
 
Beneath the Surface - Rubyconf 2013
Beneath the Surface - Rubyconf 2013Beneath the Surface - Rubyconf 2013
Beneath the Surface - Rubyconf 2013
 
Beneath the Surface: Regular Expressions in Ruby
Beneath the Surface: Regular Expressions in RubyBeneath the Surface: Regular Expressions in Ruby
Beneath the Surface: Regular Expressions in Ruby
 

Recently uploaded

Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Sreedhar Chowdam
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
obonagu
 
DfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributionsDfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributions
gestioneergodomus
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
gdsczhcet
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
SyedAbiiAzazi1
 
Unbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptxUnbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptx
ChristineTorrepenida1
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
Amil Baba Dawood bangali
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
VENKATESHvenky89705
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
TeeVichai
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation & Control
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
ydteq
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
Kerry Sado
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
aqil azizi
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
Kamal Acharya
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
SUTEJAS
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Teleport Manpower Consultant
 
Water billing management system project report.pdf
Water billing management system project report.pdfWater billing management system project report.pdf
Water billing management system project report.pdf
Kamal Acharya
 
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
ssuser7dcef0
 
The Role of Electrical and Electronics Engineers in IOT Technology.pdf
The Role of Electrical and Electronics Engineers in IOT Technology.pdfThe Role of Electrical and Electronics Engineers in IOT Technology.pdf
The Role of Electrical and Electronics Engineers in IOT Technology.pdf
Nettur Technical Training Foundation
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Christina Lin
 

Recently uploaded (20)

Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&BDesign and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
Design and Analysis of Algorithms-DP,Backtracking,Graphs,B&B
 
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
在线办理(ANU毕业证书)澳洲国立大学毕业证录取通知书一模一样
 
DfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributionsDfMAy 2024 - key insights and contributions
DfMAy 2024 - key insights and contributions
 
Gen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdfGen AI Study Jams _ For the GDSC Leads in India.pdf
Gen AI Study Jams _ For the GDSC Leads in India.pdf
 
14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application14 Template Contractual Notice - EOT Application
14 Template Contractual Notice - EOT Application
 
Unbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptxUnbalanced Three Phase Systems and circuits.pptx
Unbalanced Three Phase Systems and circuits.pptx
 
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
NO1 Uk best vashikaran specialist in delhi vashikaran baba near me online vas...
 
road safety engineering r s e unit 3.pdf
road safety engineering  r s e unit 3.pdfroad safety engineering  r s e unit 3.pdf
road safety engineering r s e unit 3.pdf
 
Railway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdfRailway Signalling Principles Edition 3.pdf
Railway Signalling Principles Edition 3.pdf
 
Water Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdfWater Industry Process Automation and Control Monthly - May 2024.pdf
Water Industry Process Automation and Control Monthly - May 2024.pdf
 
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
一比一原版(UofT毕业证)多伦多大学毕业证成绩单如何办理
 
Hierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power SystemHierarchical Digital Twin of a Naval Power System
Hierarchical Digital Twin of a Naval Power System
 
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdfTutorial for 16S rRNA Gene Analysis with QIIME2.pdf
Tutorial for 16S rRNA Gene Analysis with QIIME2.pdf
 
Final project report on grocery store management system..pdf
Final project report on grocery store management system..pdfFinal project report on grocery store management system..pdf
Final project report on grocery store management system..pdf
 
Understanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine LearningUnderstanding Inductive Bias in Machine Learning
Understanding Inductive Bias in Machine Learning
 
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdfTop 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
Top 10 Oil and Gas Projects in Saudi Arabia 2024.pdf
 
Water billing management system project report.pdf
Water billing management system project report.pdfWater billing management system project report.pdf
Water billing management system project report.pdf
 
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
NUMERICAL SIMULATIONS OF HEAT AND MASS TRANSFER IN CONDENSING HEAT EXCHANGERS...
 
The Role of Electrical and Electronics Engineers in IOT Technology.pdf
The Role of Electrical and Electronics Engineers in IOT Technology.pdfThe Role of Electrical and Electronics Engineers in IOT Technology.pdf
The Role of Electrical and Electronics Engineers in IOT Technology.pdf
 
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming PipelinesHarnessing WebAssembly for Real-time Stateless Streaming Pipelines
Harnessing WebAssembly for Real-time Stateless Streaming Pipelines
 

Creating Packages that Run Anywhere with Chef Habitat

Editor's Notes

  1. I’d like to start with a question…
  2. I have news for you today
  3. I have news for you today
  4. Without the need for a central command and control structure? I have news for you today
  5. With Chef Habitat – a new Open source project from Chef.
  6. Habitat goes beyond infrastructure automation, beyond cloud automation, and into the world of application automation. We’ll go deeper into what the means in just a moment, but first…
  7. Let’s cover who I am
  8. Reason I was asked to speak here today, in the Open Source track…
  9. I’d like to invite Ken Thompson of Microsoft to say a few words about Microsoft’s commitment to Open Source. Thanks Ken! Now you know that Habitat is an Open Source project, and that Microsoft is committed to Open Source in the industry. The next thing we need to cover what exactly Habitat is.
  10. Notes coming soon – please check back on http://aka.ms/opensource for latest version
  11. Thanks Ken! Let’s bring it back to the Habitat open source project in particular and let’s start discussing what, exactly, it is.
  12. But to do that – we first need to understand the “why” of Habitat.
  13. The reason Habitat was created is simple – building and running software is very painful
  14. For example, you need one runtime for a Ruby application and a different runtime for a Java application
  15. You need different packages for Debian Linux vs. Redhat Linux and I don’t even want to go into the difference in packages between Linux and Windows.
  16. And you need different types of packages for bare metal VMs and container images. Habitat seeks to alleviate this pain…
  17. By transforming applications – including legacy applications – into modern applications.
  18. What I mean by a modern application is that it….
  19. Reduces complexity in automating the application, rather than making it more complex
  20. In today’s world, having an application running on one server in your closet is not enough, it needs to be able to scale rapidly.
  21. How you build a modern application starts with…
  22. Storing all code – including the application code and all automation code – in the same source code repository.
  23. We then use that store code to build an artifact – or a software package – that package is then sent to
  24. And artifact repository. This is a place where you can store software artifacts, find other artifacts, and download those artifacts.
  25. The artifacts in that repo can then be deployed to a bare metal server, a container, a cloud instance, or a VM, without needing to change the artifact. That artifact can run anywhere. Habitat was designed with this workflow at the forefront. If you are familiar with the 12 factor app, that is exactly the workflow we are embracing. This is the “why” of Habitat…now that we know the WHY
  26. Now, let’s cover WHAT Habitat is.
  27. Briefly, Habitat is a new technology to build, deploy, and manage applications
  28. That run in ANY environment – from traditional datacenters to containerized microservice – from the legacy infrastructure of 20 years ago to the most bleeding edge infrastructure innovations of today.
  29. The reason for this is that in Habitat the application itself is the unit of automation. That application package we create contains everything needed to deploy, run, and maintain the application.
  30. And that leads us to this question – how exactly does this work? The clearest way to explain this is to look at the workflows for packaging and running an application with Habitat.
  31. Packaging an application with Habitat starts with…
  32. The user – this is you at your workstation. It doesn’t matter if you are using Windows, Mac, or Linux, Habitat works on all of them.
  33. And on your workstation you are going to create a plan. This contains instructions on how the application should be set up wherever it is deployed. When you are creating a package for a Linux system, you would write this plan in bash. If it’s for a Windows system – and we will see a demo of this in just a bit – you would write that in Powershell. The powershell functionality is not quite production ready yet, but it will be soon.
  34. Then you use that plan and the compiled application code to create an artifact that contains everything in one place. That artifact is cryptographically signed with a key so you can verify that the artifact came from the place you expected it to come from. We also use this key when we run the application, and I’ll show you that in just a moment.
  35. And then you can optionally upload that artifact to the public Habitat depot – where you can find Habitat packages by developers all over the world.
  36. And this is what that public depot looks like –you can access it at app.habitat.sh. In this screencap I was searching for a node Habitat package and there are several available, we’ll use the core/node one down there at the bottom in a demo later in this talk. So that is how you package an application with Habitat…
  37. Now let’s go through how you would run that application with Habitat. This is where the magic happens.
  38. If you have your application artifact on the depot, you can find it on that depot.
  39. And pull that artifact from that depot…
  40. Onto wherever you want to run it – whether bare metal, containers, a machine image, or a VM. If you are not using the depot, you can also upload it to wherever you want to run it through scp or whatever method you prefer. You then run that package as a service within the supervisor – we’ll go into what I mean by a service and how it interacts with the supervisor later.
  41. Once you have that application running somewhere – in this example it’s a VM – with the supervisor, you can still get information in and out of it of the application through a restful API.
  42. And this is really useful if you have something like a load balancer that needs to send traffic to that application, run health checks, and more. No matter where that application is running, you can still get information into and out of it.
  43. The real magic of the supervisor comes when you have more than one instance of an application running – let’s say we have four VMS all running the same package. The supervisors on each of these VMs form a ring. They will use that key we used to sign the package to decide whether to allow another VM into the ring. They all have to be signed with the same key in order to communicate with each other
  44. They do this communication over an encrypted GOSSIP protocol which they can then use to self organize into different topologies – we’ll cover those topologies a little later.
  45. When I last spoke to Jamie Winsor – one of the creators of Habitat – he described it as an umbrella over many components, all designed to allow you to build software once and run it anywhere. Many of these components are still in development. Even though they are very promising…
  46. I’m here to talk about what you can do with Habitat today – how you can create and run application packages that can run (nearly) anywhere, move existing applications into the cloud, and give your applications the intelligence to recover from failure on their own, without the need for central supervisor or controller.
  47. I want us to understand what we can do with Habitat today and then together – since this is open source and this project will largely be driven by our community and contributors - we can shape where it goes in the future.
  48. Today, we will first discuss the Habitat Supervisor – which is what you use to run your application packages. I think this is where the true genius of Habitat shines.
  49. Then the Habitat packaging format – this is what you use on your workstation to make that software artifact that can run nearly anywhere. This is what you will run with the Supervisor.
  50. Finally – although you can use Habitat without containers, and we will see that in action, Habitat truly shines when it comes to working with containers. Habitat complements things like Docker and Mesosphere and makes them work even better.
  51. So let’s start with the Habitat supervisor.
  52. Briefly – the Habitat Supervisor is an intelligent runtime with deployment coordination and service discovery – we’ll go deeper into what that means in just a moment.
  53. The supervisor is what allows you to run the application within your hart package natively on HW…
  54. In a VM or Cloud Instance
  55. In a container with or without a Container Management Service like Mesosphere.
  56. One of the main things the supervisor does is act as a process manager…
  57. And what this means is whenever you pull that HART package onto whatever infrastructure you want to run it on, Habitat will start up and monitor that package.
  58. Additionally, it will also receive and implement configuration changes. So if you upload a new version of that package to the public depot – say for a security patch – the supervisor will be monitoring that depot and become aware of it, then pull in that new package, install it, and make whatever configuration changes needed for it.
  59. And it also runs services. Let’s take a closer look by what I mean by services.
  60. A service is one habitat package running under a supervisor…
  61. And the simplest example is 1 supervisor running on service on one piece of infrastructure – whether that’s a server, VM or container.
  62. So one service running would look like this. In this example we have a VM running one service under one supervisor. Let’s take a look of a demo of this simple example.
  63. The examples we just saw where one supervisor running on one service. But one service is pretty limiting, when we go beyond one service when we scale out, we need a supervisor ring.
  64. And let’s look at an example of this. Let’s say we start off with one supervisor on a VM running MySQL.
  65. And we decide we want a MySQL cluster, so we spin up two more VMs and install the MySQL hart package on them. Since that MySQL package on each of them is signed with the same key, they will be allowed to form a supervisor ring.
  66. What the ring allows these VMs to do is to communicate over each other over a GOSSIP protocol – remember, that communication is all encrypted.
  67. With a MySql cluster like this, it’s common to use a leader/follower topology. What this means is once we have those three VMS running that MySQL service, they need to elect a leader. Habitat has a built in algorithm for electing a leader in a cluster such as this. And it’s going to run that election algorithm...
  68. And let’s say this one on the top is elected the leader, that means it will receive the write requests which come to this MySQL cluster. That means…
  69. The other two VMS are designated as followers, and they receive the read requests that come into that cluster.
  70. Now let’s say something goes wrong. Something bad happens and the leader goes offline.
  71. The two other Supervisors will notice this when they cannot connect with the leader over that GOSSIP protocol.
  72. And they will take it out of that supervisor ring. So now we are down to two VMs, and at the moment both are still followers.
  73. They will realize that they don’t have a leader, they are not implementing the topology that they have promised to implement. So they will hold another election with that built in election algorithm.
  74. Let’s say this supervisor wins the election and becomes the leader. It will automatically start receiving write requests.
  75. And that means this supervisor would be the follower and receive read requests.
  76. This illustrates that Habitat assumes that failures will happen and that they are normal. We don’t try to anticipate every edge case in the beginning because, frankly, we can’t. There will always be something unforeseen that happens somewhere in an application’s lifecycle.
  77. The remaining healthy components will self-organize and re-converge on their own. There’s no central coordinate that re-organizes and re-converges them, they have the intelligence to do this on their own.
  78. The Habitat Supervisor supports two different topologies at this time. We just saw this first one – Leader/Follower.
  79. And the other topology is the standalone topology – which assumes that every member of the supervisor ring is working as an individual that is in communication with all the others. And these are based on existing standards for IT infrastructure.
  80. The supervisor is also in charge of handling updates to the package or configuration changes and rolling them out to the rest of the ring.
  81. It’s going to detect when a new release becomes available on the depot…
  82. Then deploy it based on a defined update strategy .
  83. Some of the update strategies that we support or will support soon include all at once – that’s when – whenever a new package becomes available – all the supervisors update to that new package immediately.
  84. Some strategies coming soon include rollout strategy – that means if we have a supervisor ring with, say, four supervisors – one will update, then the next one will update, then the next one. Only one supervisor is updating at any given time.
  85. That’s the Supervisor, which is used to supervise and managed applications packaged with Habitat. Let’s now step back a bit and talk about HOW we make that package for the Supervisor to supervise.
  86. Habitat packages are created through the Habitat Packaging format– this is what you use to create your artifact on your workstation.
  87. Habitat packages are in a format called the HART format – because we heart you. That stands for Habitat Artifact.
  88. And these HART packages contain the source code for the application itself – if for example you had a Ruby on Rails application you were automating, you would have all your Ruby on Rails code within this package…
  89. …along with the application code, these packages also include everything needed to deploy and run the application. This is all kept in one place. Now, enough with the talking about it, let’s see this HART package format in action.
  90. As we just saw, Habitat plans use Bash for packages that will run on Linux…
  91. But Habitat can also create plans in Powershell for installing on Windows infrastructure. This is still in the development stages, but I can give you a bit of a preview of building a package for Windows.
  92. Along with running hart packages with Habitat…
  93. Habitat also allows you to export your hart packages into other formats.
  94. And by far the most popular format people export to is a Docker container image.
  95. Which brings me to Habitat and Containers. Habitat DOES work very well without containers, as we’ve seen, but I think it really shines when we use it WITH containers.
  96. Getting a software package to run anywhere is very difficult. That’s not a new problem, we all know that.
  97. And containers were supposed to solve this problem. But…
  98. There’s still a lot of pain with containers in their current state. Part of this pain is that there is a major learning cliff in between using a container in a development environment and using it in a production environment. Who here uses containers in dev? What about in prod? How long did it take you to get to using them in prod?
  99. The other major issue is that it is easy for containers to become black boxes – where we deploy them to different environments without fully understanding everything that is inside of them.
  100. And, among other things, this can cause serious security issues if a container has something in it with a security flaw, but we don’t know or don’t remember to update it.
  101. Part of the reason for this is traditional containers start by building the operating system, then add in the libraries, then the application libraries, and then finally the application itself at the very end. This adds bloat and complexity to containers.
  102. Habitat, by contrast, turns the traditional container workflow on it’s head. You start with the application. Once you have the application, you add in the libraries to run that application, and then only at the end do you add in a bare minimum operating system that is just enough to run your application and nothing more.
  103. Again, Habitat starts with the application, and then the bare minimum operating system comes in later.
  104. When an app has dependencies, the app itself declares those dependencies and resolves them. We don’t add in those dependencies pre-emptively – the app will pull what it needs and only what it needs.
  105. And, even when that package is within a container, it still has that exposed API we talked about earlier. Other outside services – such as a load balancer – can still interact with the app easily, even though it is in a container.
  106. In summary, when you create a container image with Habitat…
  107. You know exactly what went into the container and exactly what is configurable about the container, it’s not a black box. Now, let’s look at this in action with another demo.
  108. Once you have that container image, you can run it locally, but you’re going to want to deploy it somewhere, it doesn’t do much good just sitting on your workstation.
  109. You can deploy it using a container scheduling service such as Kubernetes and Mesosphere…
  110. Or a Cloud based container service, like AWS ECS or Azure Container Services. We’re going to look at a demo of deploying our container image to Azure Container Service, but before we do I’d like to bring Ken Thompson back to say a few words about Azure Container Service.
  111. ADD TRANSITION
  112. Now let’s see this in action, let’s deploy our image to Azure container services
  113. As we come to the end of this talk, there’s a few things I would like you to take with you…
  114. You CAN build software ONCE and run it almost ANYWHERE
  115. You CAN move a legacy application into the cloud without rewriting it
  116. You can EMPOWER you applications to recover from failure on their own
  117. With Chef Habitat – a new Open source product from Chef.
  118. The key to understanding what Habitat is is to realize that it is not Infrastructure automation, it’s not Contain Automation, it’s Application Automation. The application itself is what we are automating.
  119. And Habitat is 100% Open Source. Where it goes from here is going to be driven largely by our community of users and contributors.
  120. If you’d like to get involved – and I hope you do! – check out habitat.sh/community and stop by the Chef booth in the exhibit hall! And with that…
  121. Again, I’m Nell Shamrell-Harrington, a Sr. Engineer at Chef Software. That’s my contact info…
  122. Are there any questions?
  123. Are there any questions?