Office of Technology
Zuul
Ansible
Technical Committee
Developer Infrastructure Core Team
Former Foundation Board of Directors
PTL of shade project
I want to deploy and run an application on the internet so that my customers all over the world can consume it.
I want to deploy the application across multiple clouds or regions so that my service survives issues in any one of them.
I want to deploy the application in a location of my choosing so that I can comply with regulatory demands.
20k VMs per-day
20 Cloud Regions in 9 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, shade and ansible
~/.config/openstack/clouds.yaml
clouds: citycloud: profile: citycloud auth: username: mordred password: XXXXXXXXXXXXXXXXXXXXX project_id: 65222a4d09ea4c68934fa1028c77f394 user_domain_id: d0919bd5e8d74e49adf0e145807ffc38 project_domain_id: d0919bd5e8d74e49adf0e145807ffc38 regions: - Kna1 - Sto2 - Lon1 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
Based on shade
- os_keypair: cloud: citycloud name: mordred public_key_file: ~/.ssh/id_rsa.pub - os_image: cloud: citycloud name: Monty Ubuntu file: ubuntu.vhd - os_server: cloud: citycloud name: my-server flavor_ram: 1024 image: Monty Ubuntu
- os_keypair:
cloud: "{{ item.cloud }}"
region_name: "{{ item.region_name }}"
name: mordred
public_key_file: ~/.ssh/id_rsa.pub
with-items:
- {cloud: vexxhost, region_name: ca-ymq-1}
- {cloud: ovh, region_name: SBG1}
- {cloud: ovh, region_name: BHS1}
- {cloud: ovh, region_name: GRA1}
- {cloud: citycloud, region_name: Buf1}
- {cloud: citycloud, region_name: La1}
- {cloud: citycloud, region_name: Fra1}
- {cloud: citycloud, region_name: Lon1}
- {cloud: citycloud, region_name: Sto2}
- {cloud: citycloud, region_name: Kna1}
- {cloud: internap, region_name: ams01}
- {cloud: internap, region_name: da01}
- {cloud: internap, region_name: nyj01}
- {cloud: internap, region_name: sin01}
- {cloud: internap, region_name: sjc01}
- {cloud: infracloud, region_name: vanilla}
- {cloud: infracloud, region_name: chocolate}
- {cloud: fuga, region_name: cystack}
- {cloud: datacentred, region_name: sal01}
- {cloud: clouda, region_name: regionOne}
- {cloud: auro, region_name: van1}
- {cloud: ustack, region_name: bj1}
- {cloud: zetta, region_name: no-osl1}
- {cloud: kiss, region_name: region1}
- {cloud: rax, region_name: IAD}
- {cloud: rax, region_name: ORD}
- {cloud: rax, region_name: SYD}
- {cloud: rax, region_name: LON}
- {cloud: rax, region_name: DFW}
- {cloud: rax, region_name: HKG}
Why should you care?
Is interop really important?
Cloud-native application
Traditional Java web application
High-performance Database on Baremetal
sorted alphabetically
99 Cloud
China Mobile
China National Offshore Oil Corp
China Telecom
China Unicom
EasyStack
Huawei
Inspur
Sinorail
State Grid of China
T2 Cloud
Tencent
UMCloud
UnitedStack
ZTE
CityCloud: Sweden, UK, US
Datacentred: UK
Elastx: Sweden
Enter Cloud Suite: Italy, Germany
Fugo: Netherlands
Internap: Netherlands, US, Singapore
OTC: Frankfurt
OVH: France, US
Switch: Switzerland
Ultimum: Czech Republic
Zetta: Norway
kiss.cloud: Netherlands
Auro: Vancouver
Catalyst: New Zealand
Conoha: Japan, Singapore, US
Dreamhost: US
Ormuco: Canada + Federated
Vexxhost: Canada
Robbie Williams
Best-selling British solo artist in the UK
Best-selling non-Latino artist in Latin America
Basically unknown in the US
We aren't going to remove something you need...
because we ARE you.
Nope
Nope
That would be SUPER cool though!
If China National Offshore Oil Corp, State Grid of China and Sinorail all run Interoperable OpenStack Clouds ...
they share not just the OpenStack Cloud software itself...
they ALSO share consumption and orchestration software.
It's like I work for all of you!
It's like we all work with each other
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-api-consumers
Collaboration between SDK, Framework, Tool Authors
Python, Go, Java, Ruby, Javascript ...
All of these can use help!