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

Is bootstrapping BOSH easy yet?

Is bootstrapping BOSH easy yet?

CFSummit Basel 2017

Dr Nic Williams

October 12, 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 Is Bootstrapping BOSH simple yet? Dr Nic Williams @drnic CF Summit Basel 2017
  2. Dr Nic VP Technology at Engine Yard Discovered BOSH in

    2012 ɑ Founded Stark & Wayne Use BOSH nearly every day Ȝ
  3. Overview Is bootstrapping hard? So what? What is BOSH? ǽ

    History of hardness Ɲ In 2017, is it simple now? ǡ +
  4. bosh deploy Director Health Mgr DB + Blobs UAA Credhub

    Google / AWS / Azure / vSphere / VirtualBox CPI Using BOSH
  5. bosh create-env Director Health Mgr DB + Blobs UAA Credhub

    CPI Google / AWS / Azure / vSphere / VirtualBox Bootstrapping BOSH local CPI local state local blobs
  6. Bootstrapping BOSH bosh create-env Director Health Mgr DB + Blobs

    UAA Credhub CPI Google / AWS / Azure / vSphere / VirtualBox local CPI local state local blobs Getting started is hard
  7. History of Hardness 2012/13 - bosh micro deploy 2012 -

    Chef cookbook ǽ 2014 - vagrant up Ɲ 2014 - Why not Docker? ǡ +
  8. History of Hardness 2012/13 - bosh micro deploy 2012 -

    Chef cookbook ǽ 2014 - vagrant up Ɲ 2014 - Why not Docker? ǡ + 2015 - bosh-init deploy
  9. 2017 bosh-deployment 
 bootstrapping paradise bosh-cli rewrite 
 deprecates bosh1

    + bosh-init jumpbox-deployment
 manage bastion with bosh-cli Ɲ +
  10. git clone https://github.com/cloudfoundry/bosh-deployment bosh create-env bosh-deployment/bosh.yml \ -o bosh-deployment/mycloud/cpi.yml …

    bosh create-env Director Health Mgr DB + Blobs UAA Credhub CPI local CPI local state local blobs mycloud Common CPI
  11. git clone https://github.com/cloudfoundry/bosh-deployment bosh create-env bosh-deployment/bosh.yml \ -o bosh-deployment/mycloud/cpi.yml \

    --state state.json … bosh create-env Director Health Mgr DB + Blobs UAA Credhub CPI local CPI local state local blobs mycloud Local state
  12. git clone https://github.com/cloudfoundry/bosh-deployment bosh create-env bosh-deployment/bosh.yml \ -o bosh-deployment/mycloud/cpi.yml \

    --state state.json \ --vars-store creds.yml \ -v var1=value1 … bosh create-env Director Health Mgr DB + Blobs UAA Credhub CPI local CPI local state local blobs mycloud Local credentials
  13. bosh or bosh-lite bosh-lite
 cloud CPI + container CPI normal

    bosh create-env same CPI to create-env + deploy
  14. bosh create-env Director Health Mgr DB + Blobs UAA Credhub

    deploy CPI Google / AWS / Azure / vSphere / VirtualBox local CPI runc/grootfs/docker bosh-lite 2017
  15. git clone https://github.com/cloudfoundry/bosh-deployment bosh create-env bosh-deployment/bosh.yml \ -o bosh-deployment/mycloud/cpi.yml \

    -o bosh-deployment/bosh-lite.yml \ -o bosh-deployment/bosh-lite-runc.yml … bosh create-env Director Health Mgr DB + Blobs UAA Credhub deploy CPI create-env CPI mycloud runc/grootfs/docker bosh-lite 2017
  16. bosh create-env bosh-deployment/bosh.yml \ --state vbox/state.json \ -o bosh-deployment/virtualbox/cpi.yml \

    -o bosh-deployment/virtualbox/outbound-network.yml \ -o bosh-deployment/bosh-lite.yml \ -o bosh-deployment/bosh-lite-runc.yml \ --vars-store vbox/creds.yml \ -o bosh-deployment/jumpbox-user.yml \ -v director_name="Bosh Lite Director" \ -v internal_ip=192.168.50.6 \ -v internal_gw=192.168.50.1 \ -v internal_cidr=192.168.50.0/24 \ -v outbound_network_name=NatNetwork Create BOSH env
  17. bosh create-env bosh-deployment/bosh.yml \ --state vbox/state.json \ -o bosh-deployment/virtualbox/cpi.yml \

    -o bosh-deployment/virtualbox/outbound-network.yml \ -o bosh-deployment/bosh-lite.yml \ -o bosh-deployment/bosh-lite-runc.yml \ --vars-store vbox/creds.yml \ -o bosh-deployment/jumpbox-user.yml \ -v director_name="Bosh Lite Director" \ -v internal_ip=192.168.50.6 \ -v internal_gw=192.168.50.1 \ -v internal_cidr=192.168.50.0/24 \ -v outbound_network_name=NatNetwork Update BOSH env
  18. bosh delete-env bosh-deployment/bosh.yml \ --state vbox/state.json \ -o bosh-deployment/virtualbox/cpi.yml \

    -o bosh-deployment/virtualbox/outbound-network.yml \ -o bosh-deployment/bosh-lite.yml \ -o bosh-deployment/bosh-lite-runc.yml \ --vars-store vbox/creds.yml \ -o bosh-deployment/jumpbox-user.yml \ -v director_name="Bosh Lite Director" \ -v internal_ip=192.168.50.6 \ -v internal_gw=192.168.50.1 \ -v internal_cidr=192.168.50.0/24 \ -v outbound_network_name=NatNetwork Delete BOSH env
  19. bosh create-env bosh-deployment/bosh.yml \ --state vbox/state.json \ -o bosh-deployment/virtualbox/cpi.yml \

    -o bosh-deployment/virtualbox/outbound-network.yml \ -o bosh-deployment/bosh-lite.yml \ -o bosh-deployment/bosh-lite-runc.yml \ --vars-store vbox/creds.yml \ -o bosh-deployment/jumpbox-user.yml \ -o bosh-deployment/uaa.yml \ -o bosh-deployment/credhub.yml Add UAA + Credhub + Jumpbox
  20. git clone https://github.com/starkandwayne/bucc cd bucc bucc up --lite source <(bucc

    env) # setup client CLIs bucc alias-env bucc routes bucc uaac bucc credhub bucc fly bucc down
  21. bosh create-env bosh-deployment/bosh.yml \ --state vbox/state.json \ --vars-store creds.yml \

    -o bosh-deployment/gcp/cpi.yml \ -o bosh-deployment/jumpbox-user.yml \ -o bosh-deployment/uaa.yml \ -o bosh-deployment/credhub.yml \ --vars-file mycloud-vars.yml This is actually simple
  22.  BOSH is easy bosh deploy cf-deployment.yml -v system_domain=some-domain.com Deploying

    is easy + Upgrading is easy Ɲ bosh deploy cf-deployment.yml -v system_domain=some-domain.com Scaling is easy ǡ bosh deploy cf-deployment.yml -v system_domain=some-domain.com -o scale-changes.yml
  23. ǡ Scaling is easy  BOSH is easy bosh deploy

    cf-deployment.yml -v system_domain=some-domain.com -o scale-changes.yml # -o scale-changes.yml - type: replace path: /instance_groups/name=api/instances value: 4
  24. # -o scale-changes.yml - type: replace path: /instance_groups/name=api/instances value: 4

    ǡ Changes are easy  BOSH is easy # cf-deployment.yml -o scale-changes.yml instance_groups: - name: api instances: 2 -> 4