cloud foundry summit 2015: managing multiple cloud with a single bosh deployment

51
Alexander Lomov Cloud Foundry Engineer github: @allomov twitter: @code1n Alan Moran Cloud Foundry Architect github: @bonzofenix twitter: @bonzofenix

Upload: pivotal

Post on 25-Jul-2015

433 views

Category:

Technology


1 download

TRANSCRIPT

Alexander LomovCloud Foundry Engineer

github: @allomovtwitter: @code1n

Alan MoranCloud Foundry Architect

github: @bonzofenixtwitter: @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

SingaporeTokyo256+Full Time EnablersDevOps 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 LomovCloud Foundry Engineer

github: @allomovtwitter: @code1n

Alan MoranCloud Foundry Architect

github: @bonzofenixtwitter: @bonzofenix

Alexander LomovCloud Foundry Engineer

github: @allomovtwitter: @code1n

Alan MoranCloud Foundry Architect

github: @bonzofenixtwitter: @bonzofenix