After working on client projects for my first few months at Pivotal Labs, I was asked to work on BOSH. BOSH had been started at Google and VMware and was still actively developed at Pivotal.
I helped the BOSH team do some rewrites of parts of the codebase that were not performing well and needed to be rethought for new goals.
BOSH consists of many components, but primarily:
- a director service that coordinates actions involving the distributed systems it manages
- an agent that runs on every VM BOSH creates via its custom machine images
- a messaging system (NATS) enabling communication between all the components of the system
BOSH is written mostly in Ruby, with some components in Go. It makes use of several infrastructure services: AWS, vSphere, and OpenStack in particular.