Top Banner
Infrastructure Agnostic Application Automation Matt Ray @mattray
21

DevOpsDays Singapore Habitat Ignite

Jan 22, 2018

Download

Technology

Matt Ray
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: DevOpsDays Singapore Habitat Ignite

Infrastructure Agnostic Application Automation

Matt Ray@mattray

Page 2: DevOpsDays Singapore Habitat Ignite

Application automation that enables modern application teams to build, deploy, and manage any application in any environment - from traditional to cloud native architectures.

What is Habitat?

Page 3: DevOpsDays Singapore Habitat Ignite
Page 4: DevOpsDays Singapore Habitat Ignite

Security Code Quality

Container Hosting Peer Discovery Config Changes

Supervision Monitoring

Rolling Deployment Networking

Internal Registry Workload Placement

ProductionThe Container Learning Cliff

Development

Page 5: DevOpsDays Singapore Habitat Ignite
Page 6: DevOpsDays Singapore Habitat Ignite

hab plan init

Standardized build and packaging templates

▪ Go

▪ Java

▪ Node.js

▪ Ruby

▪ …and more

Page 7: DevOpsDays Singapore Habitat Ignite

plan.sh

FOO

▪ BAR

Page 8: DevOpsDays Singapore Habitat Ignite

hab studio enter

Builds an immutable artifact

▪ Disposable, reproducible build environment

▪ Produces a signed, timestamped .hart file with runtime dependencies and manifest

▪ Push to package depo

Page 9: DevOpsDays Singapore Habitat Ignite

hab pkg export docker <origin>/<package>

Application &Libraries

Minimized OS

Top

to B

otto

m D

epen

denc

y R

esol

utio

n

Page 10: DevOpsDays Singapore Habitat Ignite

hab pkg export

Same immutable packages deployed everywhere

▪ ACI

▪ Cloud Foundry

▪ Docker

▪ Mesos

▪ Tar

Page 11: DevOpsDays Singapore Habitat Ignite

Configuration

Configuration from the Environment

▪ default.toml▪ docker run -e HAB_REDIS='tcp-backlog=128' mattray/redis

▪ echo “port=6380” | hab config apply redis.prod 3

Page 12: DevOpsDays Singapore Habitat Ignite

Managing Applications

Automated Application Supervision

▪ Start, Stop, Reconfigure, etc.

▪ RESTful API

▪ Artifact updates

▪ Encrypted discovery service

Page 13: DevOpsDays Singapore Habitat Ignite

Managing Services

Supervisor Service Groups

▪ Clustering Topologies

▪ Update Strategies

▪ Service Group Bindings

SERVICE

SUPERVISOR

SERVICE

SUPERVISOR

SERVICE

SUPERVISOR

SERVICE

SUPERVISOR

SERVICE

SUPERVISOR

SERVICE

SUPERVISOR

Page 14: DevOpsDays Singapore Habitat Ignite

Target KubernetesapiVersion: habitat.sh/v1

kind: ServiceGroup

metadata:

name: exampleapp

spec:

image: kinvolk/nodejs-hab

count: 1

habitat:

topology: standalone

group: nodejs

config: user-toml-secret

Page 15: DevOpsDays Singapore Habitat Ignite

Habitat Builder

SaaS-based build service

▪ GitHub integration

▪ Automated builds and dependency rebuilds

▪ Public and private origins

▪ Release channels for Continuous Delivery

▪ Container publishing to Docker Hub

▪ > 500 packages for common applications and libraries

https://bldr.habitat.sh

Page 16: DevOpsDays Singapore Habitat Ignite

Windows Support

Build, deploy and manage Habitat packages on Windows

▪ plan.ps1▪ Native Windows Supervisor

▪ ASP.NET Core, .NET Core, Node, and more

Page 17: DevOpsDays Singapore Habitat Ignite

12 Factor/Cloud Native

Implements 12 Factor application patterns

▪ Decouples the app from operating system dependencies

▪ Separates concerns of ‘build’ from ‘deploy’

▪ Provides declarative deployment capabilities

▪ Configuration from the environment

▪ Immutable artifacts

https://12factor.net

Page 18: DevOpsDays Singapore Habitat Ignite

For Developers

Works on my machine

▪ Any language

▪ Automatic builds on commit

▪ Explicit dependency declarations

▪ Stable & unstable release channels

Page 19: DevOpsDays Singapore Habitat Ignite

For Operators

Works the same everywhere

▪ Automated container builds

▪ Immutable build artifacts

▪ Release channels for CD workflow

▪ Consistent management of any application on any platform

Page 20: DevOpsDays Singapore Habitat Ignite

Open Source Communityhttps://habitat.sh

Apache Licensed!

▪ https://github.com/habitat-sh

▪ This year:

• 1458 Pull Requests - 189 From Non Chef Employees

• 106 Authors - 37 Non Chef Employees

• 25 Habitat Releases

• 6174 Core Package Releases

Page 21: DevOpsDays Singapore Habitat Ignite

Matt Ray@mattray