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

BOSH - A year in review 2017/18

BOSH - A year in review 2017/18

A huge amount of R&D has occurred in core BOSH and the BOSH ecosystem. In this CF Summit North America talk in Boston, we recap as much of the goodness as we can in 25 minutes.

Dr Nic Williams

April 19, 2018
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 - A year in review
    2017/18
    CF Summit Boston MA April 2018
    Dr Nic Williams @drnic

    View Slide

  2. View Slide

  3. View Slide

  4. Director environments Ɏ
    Deployment manifests
    Education, Getting Started
    BOSH
    Review
    Backup & restore 
    bosh CLI
    ɑ
    >
    @drnic

    View Slide

  5. Director environments Ɏ
    Deployment manifests
    Education, Getting Started
    Backup & restore 
    bosh CLI
    ɑ
    >
    @drnic
    BOSH
    Review

    View Slide

  6. bosh.io @drnic

    View Slide

  7. bosh.io @drnic

    View Slide

  8. ultimateguidetobosh.com @drnic

    View Slide

  9. https://www.youtube.com/starkandwayne @drnic

    View Slide

  10. v2/v3
    $ bosh -v
    version 3.0.1…
    $ gem uninstall bosh_cli
    Are you sure?
    > Definitely
    @drnic

    View Slide

  11. CLI
    >
    Environment variables $
    $BOSH_ENVIRONMENT,
    $BOSH_CA_CERT,
    $BOSH_CLIENT,
    $BOSH_CLIENT_SECRET
    $BOSH_DEPLOYMENT
    $BOSH_GW_HOST
    $BOSH_GW_USER
    $BOSH_GW_PRIVATE_KEY
    Rather than
    bosh alias-env
    bosh login
    Rather than
    bosh -d name
    bosh ssh
    --gw-host --gw-user
    --gw-private-key
    @drnic

    View Slide

  12. SOCKS5
    ->
    dmz private subnet
    BOSH
    UAA
    CredHub
    Jumpbox
    NAT
    $BOSH_ALL_PROXY
    Ǻ

    View Slide

  13. SOCKS5
    -> BOSH
    UAA
    CredHub
    Jumpbox
    $BOSH_ALL_PROXY
    Ǻ
    ssh -4 -D 9999 --fNC [email protected] -i jumpbox.key
    export BOSH_ALL_PROXY=socks://localhost:9999
    export CREDHUB_PROXY=socks://localhost:9999
    bosh env
    bosh.io/docs/cli-tunnel/ @drnic

    View Slide

  14. BOSH
    envs
    BOSH
    UAA
    CredHub
    Jumpbox
    github.com/cloudfoundry/bosh-deployment
    bosh create-env bosh.yml \
    -o aws/cpi.yml \
    --state state.json --vars-store creds.yml \
    -o uaa.yml -o credhub.yml \
    -o jumpbox-user.yml
    @drnic

    View Slide

  15. Jumpbox
    Ǻ Jumpbox
    bosh create-env jumpbox.yml
    Ǻ
    bosh create-env jumpbox.yml \
    -o aws/cpi.yml \
    --state state.json --vars-store creds.yml
    ...
    github.com/cppforlife/jumpbox-deployment @drnic

    View Slide

  16. bbl
    ɑ Jumpbox
    bbl up
    B
    bbl up \
    --iaas aws \
    --aws-access-key-id KEY \
    --aws-secret-access-key SECRET \
    --aws-region us-east-2
    github.com/cloudfoundry/bosh-bootloader
    BOSH
    UAA
    CredHub
    @drnic

    View Slide

  17. BUCC
    bucc up
    bucc up
    bucc up --cpi aws
    bucc up --cpi vsphere --lite
    github.com/starkandwayne/bucc
    BOSH
    UAA
    CredHub
    Concourse
    @drnic

    View Slide

  18. Multi
    CPI
    bosh cpi-config
    starkandwayne.com/blog/multi-cpi-bosh-one-bosh-to-rule-them-all/
    BOSH
    @drnic

    View Slide

  19. Multi
    CPI
    bosh cpi-config
    starkandwayne.com/blog/multi-cpi-bosh-one-bosh-to-rule-them-all/
    BOSH
    warden-cpi
    gcp-cpi
    garden
    @drnic

    View Slide

  20. BOSH

    DNS
    0.pg.default.my-psql.bosh
    bosh.io/docs/dns/
    :53
    addons:
    - name: bosh-dns
    jobs:
    - name: bosh-dns
    release: bosh-dns
    Aliases
    via aliases property
    via dns/aliases.json template inside your job
    @drnic

    View Slide

  21. Deploy
    manifests
    $ bosh deploy cf-deployment.yml \
    -v system_domain=mycompany.com
    ɑ
    github.com/cloudfoundry/cf-deployment @drnic

    View Slide

  22. Variables
    $ bosh deploy cf-deployment.yml \
    -v system_domain=mycompany.com
    Ǻ
    bosh.io/docs/cli-int/
    - name: uaa
    release: uaa
    properties:
    uaa:
    url: https://uaa.((system_domain))
    @drnic

    View Slide

  23. variables:
    - name: cf_admin_password
    type: password
    - name: blobstore_tls
    options:
    ca: service_cf_internal_ca
    common_name: blobstore.service.cf.internal
    type: certificate
    Variables
    $ bosh deploy cf-deployment.yml \
    -v system_domain=mycompany.com
    Ǻ
    bosh.io/docs/cli-int/
    80 secrets
    @drnic

    View Slide

  24. Variables
    Ǻ
    bosh.io/docs/cli-int/
    bosh int
    bosh deploy
    bosh create-env
    $
    -v, --var=VAR=VALUE Set variable
    --var-file=VAR=PATH Set variable to file contents
    -l, --vars-file=PATH Load variables from a YAML file
    --vars-env=PREFIX Load variables from env vars
    --vars-store=PATH Load/save vars from/to YAML
    @drnic

    View Slide

  25. Config
    Server
    docs.cloudfoundry.org/credhub
    bosh int
    bosh deploy
    bosh create-env
    $
    Ǻ
    variables:
    - name: cf_admin_password
    type: password
    BOSH
    UAA
    CredHub
    @drnic

    View Slide

  26. Operator
    files
    bosh.io/docs/cli-ops-files/ @drnic
    ---
    name: cf
    releases: […]
    type: replace
    path: /name
    value: cf-staging
    ɑ
    Operator file
    $ bosh int base.yml -o rename.yml
    name: cf-staging
    releases: […]
    -o flag

    View Slide

  27. Authoring
    releases
    @drnic
    version: create Ɏ
    bosh-gen
    BOSH Process Manager

    bosh vendor-package >
    bosh export-release
    Ȝ

    View Slide

  28. Backup &
    restore
    Ʊ
    @drnic
    SHIELD

    shieldproject.io
    github.com/shieldproject
    BOSH Backup & Restore
    github.com/cloudfoundry-incubator/bosh-backup-and-restore
    Ȝ

    View Slide

  29. View Slide