@eljuanchosf
What is BOSH?
An over-overview
Juan Pablo Genovese
Cloud Engineer
@eljuanchosf
Yours truly...
Juan Pablo Genovese
(aka J.P.)
Cloud Engineer
A bit about me
● Absolutely passionate about teaching
and dancing Tango
● Plays guitar and sings.
● Have two dogs (a Giant schnauzer
and a Boxer)
● Loves meeting people and talking
about pretty much everything
Keep in touch!
● 19 years in the IT business, in different
industries.
● From S/390 to Cloud environments.
● From COBOL to microservices.
● 3.5 years working with Cloud Foundry.
● Loves working on system architectures,
enabling companies in the Cloud World
and delivering trainings.
@eljuanchosf
juanpgenovese
@eljuanchosf@eljuanchosf
Configuration management today
Chef
Puppet
Ansible
Terraform + Packer
BOSH
@eljuanchosf@eljuanchosf
BOSH
“... unifies release engineering, deployment, and lifecycle management of small
and large-scale cloud software.”
Provision and deploy software
Monitoring
Failure recovery
Software updates with zero-to-minimal downtime
@eljuanchosf@eljuanchosf
BOSH
Complies with the four principles of Release Engineering:
Identifiability
Reproducibility
Consistency
Agility
Well suited for large, distributed systems
Support many IaaS providers
@eljuanchosf@eljuanchosf
When use BOSH?
When you want to avoid coupling with IaaS.
When you are working with a distributed system.
When you want lifecycle management.
When you want to manage and test deployments
upgrades/rollbacks on different environments.
@eljuanchosf
Director NATS
Registry
Blobstore
Health
Monitor
Postgres
IaaS
VM(s)
Agent
IaaS API
CPI
BOSH
CLI
BOSH Installation
@eljuanchosf@eljuanchosf
The three flavors of BOSH
(full)
BOSH
Director-VM
(former MicroBOSH)
BOSHLite
@eljuanchosf@eljuanchosf
A BOSH deployment
Stemcell
+
Release
+
Deployment manifest
@eljuanchosf@eljuanchosf
A BOSH stemcell
Base OS
BOSH Agent
Default configuration and tools
@eljuanchosf@eljuanchosf
A BOSH release
Jobs (describe pieces of the service or application you are releasing)
Packages (provide source code and dependencies to jobs)
Blobs (provide binary files for packages)
Source (provides non-binary files to packages)
Config (general configuration options for the release)
@eljuanchosf@eljuanchosf
A BOSH deployment manifest
Deployment Identification: deployment name and the director UUID
Releases: name and version of each release in a deployment
Networks: network configuration information
Resource Pools: properties of VMs that BOSH creates and manages
Disk Pools: properties of disk pools that BOSH creates and manages
Compilation: properties of compilation VMs
Update: defines how BOSH updates job instances during deployment
@eljuanchosf
DEMO!

What is BOSH? An over-overview