devops la meetup intro to habitat

65
Habitat by Chef Jessica DeVita, Evangelist @ubergeekgirl Trevor Hess, Customer Architect @trevorghess

Upload: jessica-devita

Post on 13-Apr-2017

74 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: DevOps LA Meetup Intro to Habitat

Habitat by ChefJessica DeVita, Evangelist @ubergeekgirlTrevor Hess, Customer Architect @trevorghess

Page 2: DevOps LA Meetup Intro to Habitat

Agenda

State of the WorldAn Overview of HabitatHow Habitat Makes Containers BetterDemoQuestions & Answers

Page 3: DevOps LA Meetup Intro to Habitat

>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

Page 4: DevOps LA Meetup Intro to Habitat

Chef Customers

Page 5: DevOps LA Meetup Intro to Habitat

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 revolutionOur platform is a leader in Continuous Automation

Infrastructure Automation

Compliance Automation

Application Automation

Strategic Vendor of F500OSS LeadershipWith which vendor do you think you will be spending the most on IT tools in three years?

Goldman Sachs Spending Survey, 2016

Key Partners

Page 6: DevOps LA Meetup Intro to Habitat

The Chef Automate PlatformContinuous 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

Page 7: DevOps LA Meetup Intro to Habitat

Product SoftwareDevelopment

QualityAssurance

Operations Security

Enterprise Application LifecycleR

UN

TIM

E

Grid PaaS Containers & Discovery Traditional Applications

INFR

AST

RU

CT

UR

E

Bare Metal Virtualization Cloud & IaaS OS

Application Delivery

Page 8: DevOps LA Meetup Intro to Habitat

Containers

Cloud & IaaS

PaaS

New World Infrastructure/Architecture

Data Services

VMs

Applications

VMs

Data Services

Container Schedulers

Page 9: DevOps LA Meetup Intro to Habitat

The reality of modern architectures

AWS ECS

Google Container EngineFor

ContainersFor Traditional Applications

Page 10: DevOps LA Meetup Intro to Habitat

BuildDeployManage

Page 11: DevOps LA Meetup Intro to Habitat

Brent’s Desk

database cluster

Page 12: DevOps LA Meetup Intro to Habitat

Configuration Management

Page 13: DevOps LA Meetup Intro to Habitat

13

The Reality

Page 14: DevOps LA Meetup Intro to Habitat

Application Concerns

OS Concerns

Page 15: DevOps LA Meetup Intro to Habitat

How do you...

Build immutable infrastructure but allow last mile Application config changes?

Page 16: DevOps LA Meetup Intro to Habitat

How do you...

Decouple the application build from the final production ready container?

Page 17: DevOps LA Meetup Intro to Habitat

How do you...

Orchestrate the application launch order & topology required?

Page 18: DevOps LA Meetup Intro to Habitat
Page 19: DevOps LA Meetup Intro to Habitat

19

Page 20: DevOps LA Meetup Intro to Habitat

20

Page 21: DevOps LA Meetup Intro to Habitat
Page 22: DevOps LA Meetup Intro to Habitat

What if you could defer infrastructure

decisions until runtime?

Page 23: DevOps LA Meetup Intro to Habitat
Page 24: DevOps LA Meetup Intro to Habitat

Automation travels with the application

Existing & Cloud Native Software

Application Automation

Page 25: DevOps LA Meetup Intro to Habitat

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”

Page 26: DevOps LA Meetup Intro to Habitat

Habitat Components

• Habitat Studio - an application packager

Page 27: DevOps LA Meetup Intro to Habitat

Habitat Components

• Habitat Studio - an application packager

• Habitat Plans - instructions to download, compile, and install

Page 28: DevOps LA Meetup Intro to Habitat

Habitat Components

• Habitat Studio - an application packager

• Habitat Plans - instructions to download, compile, and install

• Habitat Depot - a place to upload and download your app packages

Page 29: DevOps LA Meetup Intro to Habitat

Habitat Components

• Habitat Studio - an application packager

• Habitat Plans - instructions to download, compile, and install

• Habitat Depot - a place to upload and download your app packages

• Habitat Supervisor - an intelligent runtime with deployment coordination and service discovery built in

Page 30: DevOps LA Meetup Intro to Habitat

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

Page 31: DevOps LA Meetup Intro to Habitat

Starts with a plan

Page 32: DevOps LA Meetup Intro to Habitat

Simple, Native, and Declarative

pkg_origin=corepkg_name=redispkg_version=3.2.1pkg_license=('BSD')pkg_maintainer="The Habitat Maintainers <[email protected]>"pkg_source=http://download.redis.io/releases/${pkg_name}-${pkg_version}.tar.gzpkg_shasum=b2a791c4ea3bb7268795c45c6321ea5abcc24457178373e6a6e3be6372737f23pkg_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

Page 33: DevOps LA Meetup Intro to Habitat

https://github.com/docker-library/redis/blob/master/3.2/Dockerfile

Page 34: DevOps LA Meetup Intro to Habitat

https://github.com/docker-library/redis/blob/master/3.2/Dockerfile

Page 35: DevOps LA Meetup Intro to Habitat

Clean room environmentSafe by default

Installs dependences

Built in a studio

Page 36: DevOps LA Meetup Intro to Habitat
Page 37: DevOps LA Meetup Intro to Habitat

Central locationPublicly hosted

Lightweight channels

Stored in a depot

Page 38: DevOps LA Meetup Intro to Habitat
Page 39: DevOps LA Meetup Intro to Habitat
Page 40: DevOps LA Meetup Intro to Habitat
Page 41: DevOps LA Meetup Intro to Habitat

Easy patternShortcuts

Increasing specificity

Installed by hab

Page 42: DevOps LA Meetup Intro to Habitat

Binaries and ConfigMetadata

Side-by-side

Packages Contain

Page 43: DevOps LA Meetup Intro to Habitat
Page 44: DevOps LA Meetup Intro to Habitat

Install automaticallyKeep things running

Manage configuration

Supervisors run services

Page 45: DevOps LA Meetup Intro to Habitat

Print config options12-Factor style

Externally enforced

Environment configuration

Page 46: DevOps LA Meetup Intro to Habitat

More flexible than environmentUniversal location

Externally enforced

File configuration

Page 47: DevOps LA Meetup Intro to Habitat

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.

Page 48: DevOps LA Meetup Intro to Habitat

Supervisors provide a REST API

External Actors

Health and Status

Supervisor Debugging

Page 49: DevOps LA Meetup Intro to Habitat

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.

Page 50: DevOps LA Meetup Intro to Habitat

Supervisors form a ring

Peers

Service Groups

Gossip

Availability increases with scale

Page 51: DevOps LA Meetup Intro to Habitat

Supervisors support topologies

Dynamic configuration

Service group level

Uses the ring

Page 52: DevOps LA Meetup Intro to Habitat

Supervisors provide update strategies

Topology aware

Tracks views in the depot

Ideal for Continuous Delivery

Page 53: DevOps LA Meetup Intro to Habitat

SERVICE

SUPERVISOR

SERVICE

SUPERVISOR

SERVICE

SUPERVISOR

SERVICE

SUPERVISOR

USER ARTIFACT

How we do itPackaging Applications

Running Applications

Confidential & subject to NDA. Patents Pending.

PLAN DEPOT

DEPOT ARTIFACT

BARE METAL

CONTAINERS

AMI

VM

Page 54: DevOps LA Meetup Intro to Habitat

How we do it

LEADER

INITIALIZER

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

Page 55: DevOps LA Meetup Intro to Habitat

SERVICESUPERVISOR

SERVICESUPERVISOR

SERVICESUPERVISOR

SERVICESUPERVISOR

SERVICESUPERVISOR

SERVICESUPERVISOR

How we do itSecurity

PUB KEY

SYMMETRIC ENCRYPTION

LOAD BALANCER

Build Service

BUILD SERVICE

USER SECRET PAYLOADS

SERVICESUPERVISOR

SERVICESUPERVISOR

SERVICESUPERVISOR

SERVICESUPERVISOR

SERVICESUPERVISOR

SERVICESUPERVISOR

ARTIFACTPLAN DEPOT

Confidential & subject to NDA. Patents Pending.

Page 56: DevOps LA Meetup Intro to Habitat

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.

Page 57: DevOps LA Meetup Intro to Habitat

DockerACI

Mesosphere

Post-process packages

Page 58: DevOps LA Meetup Intro to Habitat

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

Page 59: DevOps LA Meetup Intro to Habitat

Operable Application Containers

•Isolated•Immutable•Configurable•Common interface for monitoring health•Rebuild from source•Common packaging•Runtime Independence

Page 60: DevOps LA Meetup Intro to Habitat

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

Page 61: DevOps LA Meetup Intro to Habitat

What the modern application team getsDevelopers, 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 those applications should behave

▪ Gives both a language they can share, with clear boundaries

Simplification Acceleration Empowerment

Confidential & subject to NDA. Patents Pending.

Page 62: DevOps LA Meetup Intro to Habitat

It’s all open source

Apache License

Page 63: DevOps LA Meetup Intro to Habitat

”Support, services, and trainingChef 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 heterogeneousinfrastructures that included both legacy and new applications

Page 64: DevOps LA Meetup Intro to Habitat

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/

Page 65: DevOps LA Meetup Intro to Habitat

Thank you!