Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Better behaviors with BOSH 2.0

Better behaviors with BOSH 2.0

There are a huge number of new features in BOSH 2.0 but what do they add up to? Better behaviours from running systems; and better behaviours from release developers. Most importantly, BOSH is now easier to use than ever before for Day 1 deployments and subsequent Day 2 operations.

Dr Nic Williams

April 19, 2017
Tweet

More Decks by Dr Nic Williams

Other Decks in Technology

Transcript

  1. Title Text Body Level One Body Level Two Body Level

    Three Body Level Four Body Level Five BOSH 2.0 2017 Better behaviours for BOSHers
  2. BOSH "BOSH 2.0" Better behaviours BOSH OSS is 5 years

    old Ǟ cloudfoundry/bosh-notes ȥ ⋆ bosh.io/docs
  3. BOSH 2.0 BOSH release 261.4 BOSH stemcell 3363.15 New repos

    - bosh-deployment, cf-deployment, etc bosh v2.0.13, no more ruby CLI CPI releases - AWS, GCP, Azure, 
 VSphere, OpenStack, Vbox, Docker ⋆ No more bosh-init, bosh-lite Ǚ
  4. Easier to use Past… Now… $ ls templates/ make_manifest deployment.yml

    infrastructure-warden.yml jobs.yml stub.yml $ ./templates/make_manifest warden $ bosh deploy manifests/thing.yml One base manifest that "just works"
  5. Easier to use Examples $ bosh deploy zookeeper-release/manifests/zookeeper.yml $ bosh

    deploy cf-deployment/cf-deployment.yml \ -v system_domain=… $ bosh deploy docker-broker-deployment/docker-broker.yml \ -o docker-broker-deployment/services/op-redis32.yml \ -o docker-broker-deployment/services/op-postgresql96.yml One base manifest that "just works"
  6. Easier to use Beware hidden variables $ bosh int cf-deployment/cf-deployment.yml

    --var-errs - Expected to find variables: - blobstore_admin_users_password - blobstore_secure_link_secret - blobstore_tls 60+ internal variables One base manifest that "just works"
  7. Easier to use Generate all the secrets $ bosh int

    cf-deployment.yml \ --var-errs \ --vars-store tmp/creds.yml - Expected to find variables: - system_domain One base manifest that "just works"
  8. Easier to use Pass variables $ bosh int cf-deployment.yml \

    --var-errs \ --vars-store tmp/creds.yml \ -v system_domain=starkandwayne.com Succeeded $ bosh int cf-deployment.yml \ --var-errs \ --vars-store tmp/creds.yml \ --vars-file tmp/vars.yml Succeeded Or file with variables
  9. Easier to use Then deploy $ bosh deploy cf-deployment.yml \

    --vars-store tmp/creds.yml \ --vars-file tmp/vars.yml Succeeded One base manifest that "just works"
  10. Easier to use Bootstrap BOSH is similar $ cd bosh-deployment

    $ bosh create-env bosh.yml \ --ops-file aws/cpi.yml \ --vars-store tmp/creds.yml \ --vars-file tmp/vars.yml One base manifest + cpi.yml that "just works"
  11. Easier to use Extend BOSH $ bosh create-env bosh.yml \

    --ops-file aws/cpi.yml \ --vars-store tmp/creds.yml \ --vars-file tmp/vars.yml \ --ops-file uaa.yml \ --ops-file jumpbox-user.yml \ --ops-file credhub.yml bosh-deployment ➡
  12. cloud config Interchangeable minimal cloud-config azs: - name: z1 -

    name: z2 - name: z3 vm_types: - name: default disk_types: - name: default networks: - name: default Please keep cloud-config.yml examples interchangeable
  13. operator patch files Built-in patching of base manifest bosh deploy

    base.yml -o patch1.yml -o patch2.yml https://github.com/cppforlife/go-patch/blob/master/docs/examples.md - type: replace path: /instance_groups/name=haproxy/network value: public instances_groups: - name: haproxy network: default instances_groups: - name: haproxy network: public Example