Bosh - Configuring Services

  • Published on
    15-Jul-2015

  • View
    4.780

  • Download
    2

Embed Size (px)

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

  • managing

  • 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

  • Sowhat 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?

  • dont

  • automate brokeness

  • 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

    Thats it

  • Im here to help

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

  • Now Hiring

  • DANK

    @littleidea

Recommended

View more >