Application Automation with Habitat

25

Transcript of Application Automation with Habitat

Page 1: Application Automation with Habitat
Page 2: Application Automation with Habitat

©2016 Chef Software Inc. 1-2

Modern Applications

SourceCodeRepo

Artifact

Bare MetalContainers

AMIVM

Artifact Repo

Page 3: Application Automation with Habitat

©2016 Chef Software Inc. 1-3

Immutable Infrastructure

Page 4: Application Automation with Habitat

©2016 Chef Software Inc. 1-4

Immutable Infrastructure Applications

Page 5: Application Automation with Habitat

©2016 Chef Software Inc. 1-5

Dependencies!

Page 6: Application Automation with Habitat

©2016 Chef Software Inc. 1-6

Packaging and Deployment

Page 7: Application Automation with Habitat

BuildDeployManage

Page 8: Application Automation with Habitat

Starts with a plan

Page 9: Application Automation with Habitat

©2016 Chef Software Inc.

Simple, native, and declaritive

pkg_name=redispkg_origin=corepkg_version=3.0.7pkg_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="bin/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 10: Application Automation with Habitat

Clean room environmentSafe by default

Installs dependences

Built in a studio

Page 11: Application Automation with Habitat

Central locationPublicly hosted

Lightweight views

Stored in a depot

Page 12: Application Automation with Habitat

Easy patternShortcuts

Increasing specificity

Installed by hab

Page 13: Application Automation with Habitat

Binaries and ConfigMetadata

Side-by-side

Packages on disk

Page 14: Application Automation with Habitat

DockerACI

Mesosphere

Post-process packages

Page 15: Application Automation with Habitat

Run on any 64-bit LinuxEasily support proprietary software

Page 16: Application Automation with Habitat

Installs automaticallyKeeps things running

Manages configuration

Supervisor runs services

Page 17: Application Automation with Habitat

Print config options12-Factor style

Externally enforced

Environment configuration

Page 18: Application Automation with Habitat

More flexible than environmentUniversal location

Externally enforced

File configuration

Page 19: Application Automation with Habitat

Supervisors form a ring

Peers

Service Groups

Gossip

Availability increases with

scale

Page 20: Application Automation with Habitat

Supervisors support topologies

Dynamic configuration

Service group level

Uses the ring

Page 21: Application Automation with Habitat

Supervisors provide update strategies

Topology aware

Tracks views in the depot

Ideal for Continuous

Delivery

Page 22: Application Automation with Habitat

Supervisors provide a REST API

External Actors

Health and Status

Supervisor Debugging

Page 23: Application Automation with Habitat

Automation travels with the application

Existing & Cloud Native Software

Application Automation

Page 24: Application Automation with Habitat

It’s all open source

Apache License

Page 25: Application Automation with Habitat

https://www.habitat.sh/community/