what is bosh? an over-overview
TRANSCRIPT
@eljuanchosf
What is BOSH?An over-overview
Juan Pablo GenoveseCloud 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.
@eljuanchosfjuanpgenovese
@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
Very active, friendly and responsive community
Born to deploy Cloud Foundry, now used to deploy all kinds of software
@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
BlobstoreHealth 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
Jobs: configuration and resource information for jobs
Properties: describes global properties and generalized configuration information
@eljuanchosf
DEMO!