Alexander Lomov
Cloud Foundry Engineer
github: @allomov
twitter: @code1n
Alan Moran
Cloud Foundry Architect
github: @bonzofenix
twitter: @bonzofenix
*
WHAT WE DO
Popular!Popular!
*
Buenos Aires
Oslo
London
Zurich
Sunnyvale, CA
Copenhagen
Minsk
Santa Fe
Boston
30%Female
70%Male
+5Join us on an
average month
FACTS ON ALTOROS
Altoros offices
Altoros’s delivery partner in APAC
Singapore
SingaporTokyo
256+Full Time Enablers
DevOps
Software Engineers
How this story begun...
How this story begun...
Why Multi
Cloud
Deployments?
Be close to your clients
Redundancy brings fault tolerance
What about
Cloud Foundry
on Multi Cloud?
There are various limitation...
UAA and CC needs consistent datastore
NATS is not designed for multi-cluster work
NATS cluster at work
Timeouts
● Replicate the same Cloud
Foundry installation.
The solution
● Distribute load though
GeoDNS.
● Deploy apps on All CF
Clusters.
One bosh to rule them all
HOW?
Bosh supporting single cloud
BOSH supporting multiple clouds
BOSH Cloud Specific Inputs
Cloud Configs
Cloud Config Example
networks:
- name: my-net
type: vip
resource_pools:
- name: my-vms
network: my-net
compilation:
workers: 5
network: my-net
iaas.yml
Cloud Configs
# saves cloud config to the Director
$ bosh update cloud-config ./iaas.yml
# outputs saved config to stdout
$ bosh cloud-config
Multiple Cloud Deployment Inputs
Stemcell Upload
Stemcell Upload
Stemcell Upload
bosh upload stemcell --cloud dc-0 openstack-stemcell.tgz
bosh upload stemcell --cloud dc-1 vsphere-stemcell.tgz
Stemcell Upload
bosh update cloud-config openstack.yml
bosh upload stemcell openstack-stemcell.tgz
bosh update cloud-config vsphere.yml
bosh upload stemcell vsphere-stemcell.tgz
or
Ready to deploy
● Binding Deployment
● Creating a Plan
● Package Compilation
● Creating Jobs/VMs
Binding Process
Build-in multiple cloud
deployment to a binding process
Problem
Binding Multi-Cloud Deployment
● Binding Deployment
● Creating a Plan
● Package Compilation
● Creating Jobs/VMs
Compilation Process
Compilation Process
Provide an access to a blobstore
to all bosh-agents
Problem
Use separate blobstore for each
cloud and sync them
Solution
Use separate blobstore and
compile packages on each cloud
Use external blobstore which is
accessible to all clouds
Solution
Use DAV blobstore and share it
using VPN
● Binding Deployment
● Creating a Plan
● Package Compilation
● Creating Jobs/VMs
Creating Jobs
Creating Jobs
Creating Jobs
Creating Jobs
Creating Jobs
Provide an access to a NATS
cluster to all bosh-agents
Problem
Make some NATS servers public
or share them using VPN
Solution
Use “https messaging bus”
mode
Solution
One bosh to rule them all
Alexander Lomov
Cloud Foundry Engineer
github: @allomov
twitter: @code1n
Alan Moran
Cloud Foundry Architect
github: @bonzofenix
twitter: @bonzofenix
Alexander Lomov
Cloud Foundry Engineer
github: @allomov
twitter: @code1n
Alan Moran
Cloud Foundry Architect
github: @bonzofenix
twitter: @bonzofenix

Cloud Foundry Summit 2015: Managing Multiple Cloud with a Single BOSH Deployment