From bc1959ed31bb252f20ac085fc08c046836beffb3 Mon Sep 17 00:00:00 2001
From: Monty Taylor
Date: Thu, 31 Aug 2017 12:32:23 -0500
Subject: Add ansible openstack talk for Huawei Connect
---
src/talks/global-interop.hbs | 250 +++++++++++++------------------------------
1 file changed, 77 insertions(+), 173 deletions(-)
(limited to 'src/talks/global-interop.hbs')
diff --git a/src/talks/global-interop.hbs b/src/talks/global-interop.hbs
index 90f17c6..52de08f 100644
--- a/src/talks/global-interop.hbs
+++ b/src/talks/global-interop.hbs
@@ -44,12 +44,23 @@
so that I can comply with regulatory demands.
+
+
+ I want to write some new Cloud Native applications while continuing
+ to make use of my existing investments.
+
+
+
+
+ I need to move faster than before AND I need increased stability at
+ the same time.
+
+
THIS WORKS
I'm doing it myself as we speak
-
20k VMs per-day
20 Cloud Regions in 9 clouds
Only using OpenStack APIs
@@ -61,20 +72,27 @@
- 2000 Developers
+ >2500 Developers
- Gated Commits
- Every commit is fully integration tested (twice) before landing
+ Gated Changes
+ Every change goes through enforced automatic full integration testing
+ (at least twice) before landing
-
- Each Test Runs on a Single Use Cloud Slave
+
+ Integration Testing
+ Install and run one or more clouds then validate that those clouds
+ work.
+
+
+
+ Each Test Job Runs on Single Use Cloud Servers
This is that "cloud scale out" part
@@ -82,8 +100,8 @@
2 KJPH (kilo-jobs per hour)
-
- Our VMs are everywhere
+
+ Our Cloud Servers are everywhere
Public Clouds
- Rackspace: Dallas, Chicago, DC
@@ -115,9 +133,9 @@
Gerrit
- -
- Traditional 'Enterprise' Java Application
- - Single Nova VM, Cinder Volume
+ - Code Review and Code Hosting
+ - Traditional 'Enterprise' Java Application
+ - Single OpenStack Nova VM, Cinder Volume
- Scale out farm of git replicas
@@ -125,9 +143,8 @@
nodepool
- - Cloud Native
- -
- Purpose built in Python
+ - Cloud Native resource manager
+ - Purpose built in Python
- Keeps a pool of ready to go nodes
- Multi-cloud
- Fully elastic - responds to demand
@@ -135,129 +152,22 @@
-
-
- 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
- https://docs.openstack.org/os-client-config/latest/
- 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
- https://docs.openstack.org/os-client-config/latest/user/vendor-support.html
-
-
-
- os-client-config
- ~/.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
-
-
-
-
- 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
- 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
-
-
-
-
- ansible
- Add my keypair to 12 clouds
-
-- 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: GRA1}
- - {cloud: ustack, region_name: bj1}
- - {cloud: citycloud, region_name: Sto2}
- - {cloud: internap, region_name: sin01}
- - {cloud: fuga, region_name: cystack}
- - {cloud: datacentred, region_name: sal01}
- - {cloud: rax, region_name: SYD}
- - {cloud: clouda, region_name: regionOne}
- - {cloud: auro, region_name: van1}
- - {cloud: zetta, region_name: no-osl1}
- - {cloud: kiss, region_name: region1}
-
-
-
-
- nodepool
+ zuul
- - 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
+ - "Test it like you deploy it"
+ - The Gatekeeper
+ - Microservices but with a centralized scheduler
+ - Responds to code review events from Gerrit
+ - Runs Ansible content on nodes from nodepool
+ - Use production Ansible to test proposed changes
+ Talk about Zuul Tomorrow 15:50-16:15 on stage OP5
OpenStack Works!
Why should you care?
- Is interop really important?
+ Is interoperability really important?
@@ -269,31 +179,26 @@ cloud.create_server('my-server', image='immage-name', auto_ip=True)
Run it where you want
-
- - Geography
- - Delivery Model
-
-
-
-
-
- Geography
- Put it near your users
- - Don't put it in an US data center
+ - Avoid putting it in an US data center
- Locality Requirements
- What if you have customers in China?
- - What if you also have customers in Sweden?
+ - What if you also have customers in Sweden?
+ New Zealand?
+ Brazil?
+
- Delivery Model
+ Run it how you want
- Public
- Hosted Private
- Managed Private On-Premise
- - Run your own
+ - Run your own with a partner/vendor
+ - Run your own on your own
@@ -312,7 +217,7 @@ cloud.create_server('my-server', image='immage-name', auto_ip=True)
Anybody REALLY think that should run in a
- Public Cloud owned by a US company?
+ Public Cloud owned and operated by a US company?
@@ -328,34 +233,21 @@ cloud.create_server('my-server', image='immage-name', auto_ip=True)
- Chinese OpenStack
- Huawei
- sorted alphabetically
-
99 Cloud
-
China Mobile
-
China National Offshore Oil Corp
-
China Telecom
-
China Unicom
-
EasyStack
-
Inspur
-
Sinorail
-
State Grid of China
-
T2 Cloud
-
Tencent
-
UMCloud
-
UnitedStack
-
ZTE
+
OpenStack in Asia
+
Huawei: First Chinese Platinum Member of OpenStack Foundation
+
+ Only 8 of the 24 Gold Member Companies are non-Asian
- European Public OpenStack
+ European OpenStack Public Clouds
CityCloud: Sweden, UK, US
Datacentred: UK
Elastx: Sweden
Enter Cloud Suite: Italy, Germany
Fugo: Netherlands
Internap: Netherlands, US, Singapore
- OTC: Frankfurt
+ OTC: Germany
OVH: France, US
Switch: Switzerland
Ultimum: Czech Republic
@@ -364,13 +256,15 @@ cloud.create_server('my-server', image='immage-name', auto_ip=True)
- Other Public OpenStack
+ Other Public OpenStack Clouds
+ That I personally have an account on
Auro: Vancouver
Catalyst: New Zealand
Conoha: Japan, Singapore, US
Dreamhost: US
- Ormuco: Canada + Federated
+ Ormuco: Canada, Federated Worldwide
Vexxhost: Canada
+ UnitedStack: China
@@ -379,13 +273,11 @@ cloud.create_server('my-server', image='immage-name', auto_ip=True)
The OpenStack Project Believes all Participants are Equal
- Constant work in progress, help us when we get this
- wrong
- We aren't going to remove something you need...
- because we ARE you.
+ OpenStack isn't going to remove something you need...
+ because OpenStack IS you.
@@ -419,10 +311,22 @@ cloud.create_server('my-server', image='immage-name', auto_ip=True)
It's all about the tools
- Ansible
+ - OpenShift
- Terraform
- Spinnaker
- - Zuul -- v3 is almost out and will blow your mind
+ - Zuul
+
+
+
+
+ Ansible OpenStack Modules
+
+ - Based on the API consumption code from nodepool: "shade"
+ - Support all of the known OpenStack Public Clouds
+ - Interoperable == you can use them with your cloud
+ - Maintained by me
+ Talk about Ansible and OpenStack Today 16:00 - 17:00
@@ -442,8 +346,8 @@ cloud.create_server('my-server', image='immage-name', auto_ip=True)
- China, and the rest of our Global Community, understands the power
- of Open Collaboration on shared problems.
+ China understands the power of Open Collaboration on
+ shared problems.