An Introduction into
BOSH
Introduction
Cloud Foundry
Cloud Foundry
is a
distributed system
Operating a platform +
operating apps on the
platform must be easier
than doing so without it.
How do operate a platform
such as Cloud Foundry
at a large-scale?
BOSH is built with platform
operations in mind.
What is BOSH?
„BOSH let’s you orchestrate the
lifecycle of large-scale
deployments of
distributed systems
to infrastructure.“
Infrastructure as a Service (IaaS), e.g. OpenStack
VIRTUAL DATACENTER
VIRTUAL MACHINE
BOSH
Router
STORAGE
Storage Node Storage Node Storage Node
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
BOSH API
Storage Volume
Operating
System
BOSH Agent
VIRTUAL MACHINE
BOSH CLI
$> bosh deploy
IaaS API
BOSH CPI
Infrastructure as a Service (IaaS), e.g. OpenStack
VIRTUAL DATACENTER
VIRTUAL MACHINE
BOSH
Router
STORAGE
Storage Node Storage Node Storage Node
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
BOSH API
Operating
System
BOSH Agent
VIRTUAL MACHINE
BOSH CLI
$> bosh deploy
IaaS API
PostgreSQL
BOSH CPI
Infrastructure as a Service (IaaS), e.g. OpenStack
VIRTUAL DATACENTER
VIRTUAL MACHINE
BOSH
Router
STORAGE
Storage Node Storage Node Storage Node
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
BOSH API
Operating
System
BOSH Agent
VIRTUAL MACHINE
BOSH CLI
$> bosh deploy
IaaS API
…
BOSH Agent
VIRTUAL MACHINE
PostgreSQL Operating
System
BOSH Agent
VIRTUAL MACHINE
Cloud
Controller
Operating
System
BOSH Agent
VIRTUAL MACHINE
UAA
BOSH CPI
How BOSH works
BOSH Architecture
BOSH Installation BOSH Managed Infrastructure
Resources
Some process
BOSH Agent
VIRTUALMACHINE
Process Monitor
Yet another process
VIRTUALMACHINE
BOSH Agent Process Monitor
BOSH Health Monitor
BOSH Director
NATS Message Bus
Some other process
VIRTUALMACHINE
BOSH Agent Process Monitor
Process Monitor
BOSH Registry
BLOB Store
❤️
🎖
🎖
🎖
📡
CPI
MACHIN
E
BOSH Installation
VIRTUAL MACHINE
🎖 BOSH Director
📡 NATS Message Bus
🎖 BOSH Registry
🎖 BLOB Store
BOSH Health Monitor❤️
BOSH on a single VM = MicroBOSH
BOSH Installation
VIRTUAL MACHINE
BOSH Health Monitor❤️
BOSH on multiple VMs
VIRTUAL MACHINE
BOSH Director🎖
VIRTUAL MACHINE
BOSH Registry🎖
VIRTUAL MACHINE
BLOB Store
🎖
❤️
VIRTUAL MACHINE
NATS Message Bus📡
BOSH Automation
BOSH Releases
contain the automation
A BOSH-Deployment
depends on 1 .. *
Stemcells
• VM template
• BOSH clones new VMs from stemcells
• Stemcell = OS + BOSH Agent
• BOSH Agent acts on the VM
• Stemcells are infrastructure and OS
specific (VMware + Ubuntu, OpenStack + CentOS, etc.)
A BOSH-Deployment
is described by a Release & Manifest
• Release = collection of
• source code
• configuration files
• startup scripts
• software packages
• jobs
A Release describe 1 .. * Jobs
• Jobs = Processes to be run
• = set of configuration files
• + scripts
• > run process from a package,
e.g. mysqld
A Release contains 1 .. * Package
• Package
• src code
• compile script
• install script
A BOSH Deployment’s
settings are contained in a
Manifest
• defines the layout and properties of a
deployment
• network architecture
• VM dimensions, used stemcells (OS)
• bosh cli pushed manifest to BOSH
director
• > BOSH director creates a deployment
Infrastructure settings
settings are contained in the
Cloud Config
BOSH makes your
deployments…
Infrastructure Independent
• A BOSH release contains the main-
automation (software packages, how to run processes)
• BOSH releases can be re-used on
every* infrastructure
Automate once,
deploy everywhere.
VMware
BOSH
BOSH CLI
$> bosh target http://bosh-on.vmware.com$> bosh deploy
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
OpenStack
BOSH
AWS
BOSH
BOSH CLI
VMware AWS OpenStack
$> bosh target http://bosh-on.aws.com$> bosh deploy
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
BOSH BOSH BOSH
OpenStack
BOSH
BOSH CLI
$> bosh target http://bosh-on.openstack.com$> bosh deploy
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
Some
Service / App
BOSH Agent
VIRTUAL MACHINE
VMware
BOSH
AWS
BOSH
Infrastructure as a Service (IaaS), e.g. OpenStack
VIRTUAL DATACENTER
VIRTUAL MACHINE
BOSH
Router
STORAGE
Storage Node Storage Node Storage Node
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
BOSH API
Operating
System
BOSH Agent
VIRTUAL MACHINE
BOSH CLI
$> bosh deploy
IaaS API
…
BOSH Agent
VIRTUAL MACHINE
PostgreSQL Operating
System
BOSH Agent
VIRTUAL MACHINE
Cloud
Controller
Operating
System
BOSH Agent
VIRTUAL MACHINE
UAA
BOSH CPI
OpenStack
VIRTUAL DATACENTER
VIRTUAL MACHINE
BOSH
Router
STORAGE
Storage Node Storage Node Storage Node
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
BOSH API
Operating
System
BOSH Agent
VIRTUAL MACHINE
BOSH CLI
$> bosh deploy
IaaS API
PostgreSQL Operating
System
BOSH Agent
VIRTUAL MACHINE
Cloud
Controller
Operating
System
BOSH Agent
VIRTUAL MACHINE
UAA
OPENSTACK CPI
VIRTUAL DATACENTER
VIRTUAL MACHINE
BOSH
Router
STORAGE
Storage Node Storage Node Storage Node
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
HDD HDD
BOSH API
Operating
System
BOSH Agent
VIRTUAL MACHINE
BOSH CLI
$> bosh deploy
IaaS API
PostgreSQL Operating
System
BOSH Agent
VIRTUAL MACHINE
Cloud
Controller
Operating
System
BOSH Agent
VIRTUAL MACHINE
UAA
AWS CPI
• Switch deployment between clouds
• Keep the same release
• Use a stemcell specific to the new
cloud
• Adapt the cloud config
Operating System
Independent
A BOSH release does not
depend on the OS
The only dependency to the
OS is a BOSH stemcell
Operating System
Image
BOSH Agent
VIRTUAL MACHINE
OS image +
BOSH agent
= Stemcell
Ubuntu
Stemcell
BOSH Agent
VIRTUAL MACHINE
SUSE
Stemcell
BOSH Agent
VIRTUAL MACHINE
• Channing the OS of a BOSH deployed
system
• Keep the same release
• Change the stemcell
• Change the manifest
Scalable
Horizontal Scaling
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
Some Service
BOSH Agent
VIRTUAL MACHINE
• Scaling-out a BOSH deployed system
• Keep the same release
• Use the same stemcell
• Change the manifest
Vertical Scaling
4GB RAM
1 vCPU
10GB persistent disk
BOSH Agent
VIRTUAL MACHINE
4 GB RAM, 1 vCPU
10 GB Persistent Disk
Data
PostgreSQL
BOSH Agent
PostgreSQL
VIRTUAL MACHINE
8 GB RAM, 2 vCPUs
10 GB Persistent Disk
Data
BOSH Agent
VIRTUAL MACHINE
4 GB RAM, 1 vCPU
PostgreSQL
10 GB Persistent Disk
Data
20 GB Persistent Disk
Data
BOSH Deployments are
Predictable
• Src code is compiled in a freshly
created VMs
• VMs always contain exact the software,
specified in the release
• No left-overs of prior deployments as
new VMs are used.
BOSH Deployments are
Repeatable
Executing a specific BOSH
deployment always leads to exact
same deployed system.
Monitored &
Self-Healing
Self-healing
process failures
BOSH Installation BOSH Managed
Infrastructure Resources
Some process
BOSH Agent
VIRTUALMACHINE
Process Monitor
Yet another process
VIRTUALMACHINE
BOSH Agent
BOSH Health Monitor
BOSH Director
NATS Message Bus
Some other process
VIRTUALMACHINE
BOSH Agent Process Monitor
BOSH Registry
BLOB Store
❤️
🎖
🎖
🎖
📡
CPI
MACHIN
E
Some other process
Process MonitorProcess Monitor
Self-healing
process monitor failures
BOSH Installation BOSH Managed
Infrastructure Resources
Some process
BOSH Agent
VIRTUALMACHINE
Process Monitor
Yet another process
VIRTUALMACHINE
BOSH Agent
BOSH Health Monitor
BOSH Director
NATS Message Bus
Some other process
VIRTUALMACHINE
BOSH Agent Process Monitor
BOSH Registry
BLOB Store
❤️
🎖
🎖
🎖
📡
CPI
MACHIN
E
Some other process
Process MonitorProcess Monitor
Process Monitor
Self-healing
VM failures
BOSH Installation BOSH Managed
Infrastructure Resources
Some process
BOSH Agent
VIRTUALMACHINE
Process Monitor
Yet another process
VIRTUALMACHINE
BOSH Agent Process Monitor
NATS Message Bus
Some other process
VIRTUALMACHINE
BOSH Agent Process Monitor
Process Monitor
BOSH Registry
BLOB Store
🎖
🎖
📡
🎖 BOSH Director
CPI
MACHIN
E
Some other process
VIRTUALMACHINE
BOSH Agent Process Monitor
BOSH Health Monitor❤️
Self-healing
BOSH Agent failures
BOSH Managed
Infrastructure Resources
Yet another process
VIRTUALMACHINE
Process Monitor
BOSH Installation
Some process
BOSH Agent
VIRTUALMACHINE
Process Monitor
BOSH Agent
NATS Message Bus
Some other process
VIRTUALMACHINE
BOSH Agent Process Monitor
BOSH Registry
BLOB Store
🎖
🎖
📡
🎖 BOSH Director
CPI
MACHIN
E
BOSH Agent
BOSH Health Monitor❤️
Yet another process
VIRTUALMACHINE
Process MonitorBOSH Agent
How BOSH is used
Developing automation
with BOSH
BOSH Automation
Design Workflow
https://mariash.github.io/lear
n-bosh/
Applying automation
with BOSH
BOSH Deployment
Workflow
• Upload stemcell
• Upload a release
• Set deployment with a manifest
• Execute deployment
When to use BOSH
„BOSH let’s you
orchestrate the lifecycle
of large-scale deployments of
distributed systems
to infrastructure.“
Use Case:
a9s Data Service
Framework
a9s Deployer
Templates Deployments
BOSH
a9s Service Broker
my-3node-mongodb-cluster-2
MongoDB
VM#1
MongoDB
VM#2
MongoDB
VM#3
my-single-mongodb-1
MongoDB
VM#1
Middleware Adapter
Cloud Foundry Adapter
a9s MongoDB SPI
Service InstanceService Instance
my-3node-mongodb-cluster-3
MongoDB
VM#1
MongoDB
VM#2
MongoDB
VM#3
Service Instance
…
Cloud ControllerCF Client
create service
create service
create deployment from template xy with attributes {…}
deploy release abc & deployment manifest xyz
Execute deployments
create
service specific
credentials
create binding
Use Case:
Deploy Cloud Foundry
Thank you.
@fischerjulian
julian.fischer@anynines.co
m

An Introduction into Bosh | anynines

  • 1.
  • 2.
  • 4.
  • 5.
  • 6.
    Operating a platform+ operating apps on the platform must be easier than doing so without it.
  • 7.
    How do operatea platform such as Cloud Foundry at a large-scale?
  • 8.
    BOSH is builtwith platform operations in mind.
  • 9.
  • 10.
    „BOSH let’s youorchestrate the lifecycle of large-scale deployments of distributed systems to infrastructure.“
  • 11.
    Infrastructure as aService (IaaS), e.g. OpenStack VIRTUAL DATACENTER VIRTUAL MACHINE BOSH Router STORAGE Storage Node Storage Node Storage Node HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD BOSH API Storage Volume Operating System BOSH Agent VIRTUAL MACHINE BOSH CLI $> bosh deploy IaaS API BOSH CPI
  • 12.
    Infrastructure as aService (IaaS), e.g. OpenStack VIRTUAL DATACENTER VIRTUAL MACHINE BOSH Router STORAGE Storage Node Storage Node Storage Node HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD BOSH API Operating System BOSH Agent VIRTUAL MACHINE BOSH CLI $> bosh deploy IaaS API PostgreSQL BOSH CPI
  • 13.
    Infrastructure as aService (IaaS), e.g. OpenStack VIRTUAL DATACENTER VIRTUAL MACHINE BOSH Router STORAGE Storage Node Storage Node Storage Node HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD BOSH API Operating System BOSH Agent VIRTUAL MACHINE BOSH CLI $> bosh deploy IaaS API … BOSH Agent VIRTUAL MACHINE PostgreSQL Operating System BOSH Agent VIRTUAL MACHINE Cloud Controller Operating System BOSH Agent VIRTUAL MACHINE UAA BOSH CPI
  • 14.
  • 15.
  • 16.
    BOSH Installation BOSHManaged Infrastructure Resources Some process BOSH Agent VIRTUALMACHINE Process Monitor Yet another process VIRTUALMACHINE BOSH Agent Process Monitor BOSH Health Monitor BOSH Director NATS Message Bus Some other process VIRTUALMACHINE BOSH Agent Process Monitor Process Monitor BOSH Registry BLOB Store ❤️ 🎖 🎖 🎖 📡 CPI MACHIN E
  • 17.
    BOSH Installation VIRTUAL MACHINE 🎖BOSH Director 📡 NATS Message Bus 🎖 BOSH Registry 🎖 BLOB Store BOSH Health Monitor❤️ BOSH on a single VM = MicroBOSH
  • 18.
    BOSH Installation VIRTUAL MACHINE BOSHHealth Monitor❤️ BOSH on multiple VMs VIRTUAL MACHINE BOSH Director🎖 VIRTUAL MACHINE BOSH Registry🎖 VIRTUAL MACHINE BLOB Store 🎖 ❤️ VIRTUAL MACHINE NATS Message Bus📡
  • 19.
  • 20.
  • 22.
  • 23.
    • VM template •BOSH clones new VMs from stemcells • Stemcell = OS + BOSH Agent • BOSH Agent acts on the VM • Stemcells are infrastructure and OS specific (VMware + Ubuntu, OpenStack + CentOS, etc.)
  • 24.
    A BOSH-Deployment is describedby a Release & Manifest
  • 25.
    • Release =collection of • source code • configuration files • startup scripts • software packages • jobs
  • 26.
    A Release describe1 .. * Jobs
  • 27.
    • Jobs =Processes to be run • = set of configuration files • + scripts • > run process from a package, e.g. mysqld
  • 28.
    A Release contains1 .. * Package
  • 29.
    • Package • srccode • compile script • install script
  • 30.
    A BOSH Deployment’s settingsare contained in a Manifest
  • 31.
    • defines thelayout and properties of a deployment • network architecture • VM dimensions, used stemcells (OS)
  • 32.
    • bosh clipushed manifest to BOSH director • > BOSH director creates a deployment
  • 33.
    Infrastructure settings settings arecontained in the Cloud Config
  • 34.
  • 35.
  • 36.
    • A BOSHrelease contains the main- automation (software packages, how to run processes) • BOSH releases can be re-used on every* infrastructure
  • 37.
  • 38.
    VMware BOSH BOSH CLI $> boshtarget http://bosh-on.vmware.com$> bosh deploy Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE OpenStack BOSH AWS BOSH
  • 39.
    BOSH CLI VMware AWSOpenStack $> bosh target http://bosh-on.aws.com$> bosh deploy Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE BOSH BOSH BOSH
  • 40.
    OpenStack BOSH BOSH CLI $> boshtarget http://bosh-on.openstack.com$> bosh deploy Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE Some Service / App BOSH Agent VIRTUAL MACHINE VMware BOSH AWS BOSH
  • 41.
    Infrastructure as aService (IaaS), e.g. OpenStack VIRTUAL DATACENTER VIRTUAL MACHINE BOSH Router STORAGE Storage Node Storage Node Storage Node HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD BOSH API Operating System BOSH Agent VIRTUAL MACHINE BOSH CLI $> bosh deploy IaaS API … BOSH Agent VIRTUAL MACHINE PostgreSQL Operating System BOSH Agent VIRTUAL MACHINE Cloud Controller Operating System BOSH Agent VIRTUAL MACHINE UAA BOSH CPI
  • 42.
    OpenStack VIRTUAL DATACENTER VIRTUAL MACHINE BOSH Router STORAGE StorageNode Storage Node Storage Node HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD BOSH API Operating System BOSH Agent VIRTUAL MACHINE BOSH CLI $> bosh deploy IaaS API PostgreSQL Operating System BOSH Agent VIRTUAL MACHINE Cloud Controller Operating System BOSH Agent VIRTUAL MACHINE UAA OPENSTACK CPI
  • 43.
    VIRTUAL DATACENTER VIRTUAL MACHINE BOSH Router STORAGE StorageNode Storage Node Storage Node HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD HDD BOSH API Operating System BOSH Agent VIRTUAL MACHINE BOSH CLI $> bosh deploy IaaS API PostgreSQL Operating System BOSH Agent VIRTUAL MACHINE Cloud Controller Operating System BOSH Agent VIRTUAL MACHINE UAA AWS CPI
  • 44.
    • Switch deploymentbetween clouds • Keep the same release • Use a stemcell specific to the new cloud • Adapt the cloud config
  • 45.
  • 46.
    A BOSH releasedoes not depend on the OS
  • 47.
    The only dependencyto the OS is a BOSH stemcell
  • 48.
    Operating System Image BOSH Agent VIRTUALMACHINE OS image + BOSH agent = Stemcell
  • 49.
  • 50.
  • 51.
    • Channing theOS of a BOSH deployed system • Keep the same release • Change the stemcell • Change the manifest
  • 52.
  • 53.
    Horizontal Scaling Some Service BOSHAgent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE Some Service BOSH Agent VIRTUAL MACHINE
  • 54.
    • Scaling-out aBOSH deployed system • Keep the same release • Use the same stemcell • Change the manifest
  • 55.
  • 56.
    4GB RAM 1 vCPU 10GBpersistent disk BOSH Agent VIRTUAL MACHINE 4 GB RAM, 1 vCPU 10 GB Persistent Disk Data PostgreSQL
  • 57.
    BOSH Agent PostgreSQL VIRTUAL MACHINE 8GB RAM, 2 vCPUs 10 GB Persistent Disk Data BOSH Agent VIRTUAL MACHINE 4 GB RAM, 1 vCPU PostgreSQL 10 GB Persistent Disk Data 20 GB Persistent Disk Data
  • 58.
  • 59.
    • Src codeis compiled in a freshly created VMs • VMs always contain exact the software, specified in the release • No left-overs of prior deployments as new VMs are used.
  • 60.
  • 61.
    Executing a specificBOSH deployment always leads to exact same deployed system.
  • 62.
  • 63.
  • 64.
    BOSH Installation BOSHManaged Infrastructure Resources Some process BOSH Agent VIRTUALMACHINE Process Monitor Yet another process VIRTUALMACHINE BOSH Agent BOSH Health Monitor BOSH Director NATS Message Bus Some other process VIRTUALMACHINE BOSH Agent Process Monitor BOSH Registry BLOB Store ❤️ 🎖 🎖 🎖 📡 CPI MACHIN E Some other process Process MonitorProcess Monitor
  • 65.
  • 66.
    BOSH Installation BOSHManaged Infrastructure Resources Some process BOSH Agent VIRTUALMACHINE Process Monitor Yet another process VIRTUALMACHINE BOSH Agent BOSH Health Monitor BOSH Director NATS Message Bus Some other process VIRTUALMACHINE BOSH Agent Process Monitor BOSH Registry BLOB Store ❤️ 🎖 🎖 🎖 📡 CPI MACHIN E Some other process Process MonitorProcess Monitor Process Monitor
  • 67.
  • 68.
    BOSH Installation BOSHManaged Infrastructure Resources Some process BOSH Agent VIRTUALMACHINE Process Monitor Yet another process VIRTUALMACHINE BOSH Agent Process Monitor NATS Message Bus Some other process VIRTUALMACHINE BOSH Agent Process Monitor Process Monitor BOSH Registry BLOB Store 🎖 🎖 📡 🎖 BOSH Director CPI MACHIN E Some other process VIRTUALMACHINE BOSH Agent Process Monitor BOSH Health Monitor❤️
  • 69.
  • 70.
    BOSH Managed Infrastructure Resources Yetanother process VIRTUALMACHINE Process Monitor BOSH Installation Some process BOSH Agent VIRTUALMACHINE Process Monitor BOSH Agent NATS Message Bus Some other process VIRTUALMACHINE BOSH Agent Process Monitor BOSH Registry BLOB Store 🎖 🎖 📡 🎖 BOSH Director CPI MACHIN E BOSH Agent BOSH Health Monitor❤️ Yet another process VIRTUALMACHINE Process MonitorBOSH Agent
  • 71.
  • 72.
    Developing automation with BOSH BOSHAutomation Design Workflow
  • 73.
  • 74.
  • 75.
    • Upload stemcell •Upload a release • Set deployment with a manifest • Execute deployment
  • 76.
  • 77.
    „BOSH let’s you orchestratethe lifecycle of large-scale deployments of distributed systems to infrastructure.“
  • 78.
    Use Case: a9s DataService Framework
  • 79.
    a9s Deployer Templates Deployments BOSH a9sService Broker my-3node-mongodb-cluster-2 MongoDB VM#1 MongoDB VM#2 MongoDB VM#3 my-single-mongodb-1 MongoDB VM#1 Middleware Adapter Cloud Foundry Adapter a9s MongoDB SPI Service InstanceService Instance my-3node-mongodb-cluster-3 MongoDB VM#1 MongoDB VM#2 MongoDB VM#3 Service Instance … Cloud ControllerCF Client create service create service create deployment from template xy with attributes {…} deploy release abc & deployment manifest xyz Execute deployments create service specific credentials create binding
  • 80.
  • 81.

Editor's Notes

  • #4 anynines, Cloud Foundry company. Training, dev, ops & data services.
  • #7 Or rather use docker? No!
  • #11 large-scale: several hundred VMs distributed systems: such as CF. Dozenz of components. Deployment to infrastructure: prefer the resulting platform for anything that does not need to run directly on infrastructures.
  • #17 BOSH Registry: stores config information of vms. Used during bootstrapping of VMs.