bosh - configuring services

Post on 15-Jul-2015

4.797 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

BOSHconfiguring services

Andrew Clay Shafer Gent 2015

Andrew Clay Shafer

@littleidea

Andrew Clay Shafer

has been very good to me

ASK ME ABOUT PARETO INEFFICIENT NASH EQUILIBRIUMS

What is BOSH?

Why is BOSH?

Platform as a ServiceWhatever that means…

routers

LinuxLinuxLinux Containers

message bus

cloud controller

loggregators

controller DB

etcd

hm9000

metrics firehose

a couple dozen services

UAA

login

What even is Elastic Runtime?

service brokers

object store

stagers

how do you manage that thing?

if you wish to deploy a distributed system from scratch, you must

first deploy the universe

stateful services

Elastic Runtime

“cloud”

BOSH

“metal”

configuration management™

apps (the reason we put ourselves through this)

containers

VMs

machines

Typical

fast

unfast

distributed systems managing distributed systems managing distributed systems managing

distributed systems

<rant>managing</rant>

back to BOSH

BOSH is an open source tool chain for release engineering, deployment, and lifecycle management of large-scale

distributed services.

BOSH allows individual developers and teams to easily version, package and deploy

software in a reproducible manner.

Purposeful Goals

• Identifiability

• Reproducibility

• Consistency

• Agility

GOALS• Identifiability - Being able to identify all of the source, tools,

environment, and other components that make up a particular release.

• Reproducibility - The ability to integrate source, third party components, data, and deployment externals of a software system in order to guarantee operational stability.

• Consistency - The mission to provide a stable framework for development, deployment, audit, and accountability for software components.

• Agility - The ongoing research into what are the repercussions of modern software engineering practices on the productivity in the software cycle, i.e. continuous integration.

I READ IT ON THE INTERNET

Whatever

need to manage a large distributed system

• deployment

• configuration changes

• updates/upgrades - minimal downtime

• remediation

• scale out/scale in

• across multiple IaaS

need to manage a large distributed system

configuration management™

necessary but not sufficient

BOSH is a distributed package and process

orchestrator

packages and processes

assumes knowledge…

idempotent resource abstractions for fun and profit

desired state current state

service centric, not server centric

– no CEO ever

“Good job provisioning servers this year”

highest level primitive: deployment

Learning BOSH

Deployment - map release to IaaS

Release - package with some jobs

Stem Cell - VM with BOSH agent

Vocabulary

Stem Cell

Base VM with embedded BOSH agent

Release• Manifest

• Packages

• spec

• packaged bits

• Jobs

• spec

• monit

• templates

Deployment• releases

• compilation VMs

• canary settings

• network configurations

• resource pools (VMs, Disks, Networks)

• jobs

• job properties

So…what happens when I deploy?

CLI

Director

message busworker

VMsIaaS

object storage

health monitor

Director VM

CPI

(Cloud Provider Interface)

Director Starts VMs

Director VM

BOSH Agent Boots

Director VM

Director Pings Agent

Director VM

Assign Job to Agent

BlobstoreVM

Agent Fetches Releases

Agent Starts Jobs

Director VM

this happens for every VM described in the

deployment

idempotent resource abstractions for fun and profit

desired state current state

except now the resource is a running service

but how do I?

don’t

<rant> automate brokeness </rant>

learn you some Pareto Power Law

Warning

do you need a deathstar?

is your goal to deploy a single instance of wordpress?

maybe, maybe not?

Learning Curve

effort

capability

That’s it

I’m here to help

https://www.flickr.com/photos/simplebitsdan/2477674571/

Now Hiring

DANK

@littleidea

top related