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