Who am I?
Distinguished Engineer
IBM Cloud
Who am I?
Technical Committee
Foundation Board of Directors
Developer Infrastructure Core Team
What are we going to talk about?
- OpenStack
- My application
- Your applications
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.
THIS WORKS
I'm doing it myself as we speak
10-20k VMs per-day
10 Cloud Regions in 7 clouds
Only using OpenStack APIs
Gated Commits
Every commit is fully integration tested (twice) before landing
Each Test Runs on a Single Use Cloud Slave
This is that "cloud scale out" part
1.7 Million Test Jobs in the last 6 Months
15 Million Tests in a month
18 Terabytes of Log Data in six months
Our VMs are everywhere
Public Clouds
- Rackspace: Dallas, Chicago, DC
- Internap: New York
- OVH: Strassbourg, Gravelines
- Vexxhost: Montreal
- OpenStack Innovation Center: San Antonio
Private Clouds
- Blue Box: San Jose
- Red Hat: Phoenix
We also have servers
Infra Cloud
- Hardware donated by HPE: Houston
- Community run cloud using OpenStack Puppet
- Bare Metal managed with Bifrost/Ironic
Architecture
Gerrit
-
Traditional 'Enterprise' Java Application
- Single Nova VM, Cinder Volume
- Scale out farm of git replicas
Fun Numbers
- 2500 changes every week
- 15000 change revisions every week
- 10,000 new changes every 42 days
nodepool
- Cloud Native
-
Purpose built in Python
- Keeps a pool of ready to go nodes
- Multi-cloud
- Fully elastic - responds to demand
Control plane
http://git.openstack.org/cgit/openstack-infra/system-config
- All server config management in git
- Puppet manages the servers: puppet apply
- Ansible runs puppet: ansible puppet module
- Ansible OpenStack Dynamic Inventory
- Only thing not public are keys and secrets
os-client-config
http://git.openstack.org/cgit/openstack/os-client-config
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
os-client-config
~/.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
shade
http://git.openstack.org/cgit/openstack-infra/shade
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
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
ansible
multi-cloud support
- os_keypair:
cloud: "{{ item }"
name: mordred
public_key_file: ~/.ssh/id_rsa.pub
with-items:
- vexxhost
- rackspace
- ovh
Ansible Role Cloud Launcher
http://git.openstack.org/cgit/openstack/ansible-role-cloud-launcher
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
nodepool
- Use shade to treat all cloud regions as one giant cloud
- diskimage-builder makes identical base images for each
- Pre-cache network artifacts in disk images
- glean instead of cloud-init to handle no-DHCP on Rackspace
- Pre-spins warm pool - always keep min-ready number of nodes
OpenStack Works!
Why should you care?
Three Benefits to OpenStack
- Run what you want
- Run it where you want
- Do business with who you want
Run what you want
Cloud-native 12-factor application
Traditional Java web application
Kerberos Server
Baremetal for hardware enabled transcoding
Geography
- Put it near your users
- Don't put it in an NSA data center
- Locality Requirements
- What if you have customers in Hungary?
Delivery Model
- Public
- Hosted Private
- Managed Private On-Premise
- Run your own
Hybrid cloud is everything
Do Business with who you want
Want to do business with someone who
throws chairs in business meetings?
Me either.
Prefer to work with someone wth a local presence?
Maybe someone with a global reach?
Who cares about your business being successful?
OpenStack is over 400 companies
European Public Clouds
OVH: France
CityCloud: Sweden, UK
Elastx: Sweden
Datacentred: UK
Enter Cloud Suite: Italy, Germany, Frankfurt
Internap: Netherlands, US
Ultimum: Czech Republic
Zetta: Norway
Managed Private Cloud
Bluebox: an IBM Company
- Blue Box Dedicated: In any Softlayer Data Center Worldwide
- Blue Box Local: In your data center
Private Cloud Distro
Not listing them - I can't possibly remember them all
OpenStack gives you the power to make the choices that
are right for you and for your business