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 @@
-

Tooling, Automation and CI for OpenStack Project

+

Tooling and Automation for the development of OpenStack Project

-

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 @@
    -

    How do we do this?

    -
    - -
    -

    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.

    -- cgit v1.2.3