Office of Technology
Zuul
Ansible
Technical Committee
Foundation Board of Directors
Developer Infrastructure Core Team
As an application developer,
I want to deploy and run an application on the internet
so that my customers all over the world can consume it.
As an operator,
I want to deploy the application across multiple clouds
so that my service survives issues in any one of them.
As a compliance officer,
I want to deploy and run an application in a location of my choosing
so that I can comply with regulatory demands.
10-20k VMs per-day
10 Cloud Regions in 7 clouds
Only using OpenStack APIs
Every commit is fully integration tested (twice) before landing
This is that "cloud scale out" part

A library to handle config information for openstack clients
Tracks differences in vendors that can't be discovered
In use in python-openstackclient and ansible
~/.config/openstack/clouds.yaml
clouds:
vexxhost:
profile: vexxhost
auth:
project_name: d8af8a8f-a573-48e6-898a-af333b970a2d
username: 0b8c435b-cc4d-4e05-8a47-a2ada0539af1
password: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
region_name: ca-ymq-1
dreamcompute:
profile: dreamhost
auth:
username: montay6
project_name: dhc2111978
password: XXXXXXXXXXXXX
region_name: RegionOne
A library to wrap business logic around client libraries
cloud.create_image('image-name', filename='image-filename.qcow2')
cloud.create_server('my-server', image='immage-name', auto_ip=True)
In use in Infra Nodepool and ansible
Brand new modules, based on shade
Part of 2.0 release
- os_keypair:
cloud: hp-mordred
name: mordred
public_key_file: ~/.ssh/id_rsa.pub
- os_image:
cloud: hp-mordred
name: Monty Ubuntu
file: ubuntu.vhd
- os_server:
cloud: hp-mordred
name: my-server
flavor_ram: 1024
image: Monty Ubuntu
multi-cloud support
- os_keypair:
cloud: "{{ item }"
name: mordred
public_key_file: ~/.ssh/id_rsa.pub
with-items:
- vexxhost
- rackspace
- ovh
profiles:
- name: admin-clouds
flavors:
- name: aoclcompany.xlarge
ram: 128
vcpus: 1
- name: ops
images:
- name: ubuntu-trusty
filename: /home/ubuntu/trusty-server-cloudimg-amd64-disk1.img
- name: bootstrap-keypair
keypairs:
- name: bootstrap-key
public_key_file: /home/ubuntu/.ssh/id_rsa.pub
clouds:
- name: awesomecloud
profiles:
- admin-clouds
- bootstrap-keypair
- name: yaycloud-ops
oscc_cloud: yaycloud-opsuser
profiles:
- bootstrap-keypair
- ops
Why should you care?
Cloud-native 12-factor application
Traditional Java web application
Kerberos Server
Baremetal for hardware enabled transcoding
UnitedStack
Huawei
UMCloud
EasyStack
99 Cloud
OVH: France
CityCloud: Sweden, UK
Elastx: Sweden
Datacentred: UK
Enter Cloud Suite: Italy, Germany, Frankfurt
Internap: Netherlands, US
Ultimum: Czech Republic
Zetta: Norway