diff options
| -rw-r--r-- | src/images/Robbie_Williams_Cannes_2015.jpg | bin | 0 -> 61274 bytes | |||
| -rw-r--r-- | src/talks/global-interop.hbs | 534 |
2 files changed, 534 insertions, 0 deletions
diff --git a/src/images/Robbie_Williams_Cannes_2015.jpg b/src/images/Robbie_Williams_Cannes_2015.jpg new file mode 100644 index 0000000..e802301 --- /dev/null +++ b/src/images/Robbie_Williams_Cannes_2015.jpg | |||
| Binary files differ | |||
diff --git a/src/talks/global-interop.hbs b/src/talks/global-interop.hbs new file mode 100644 index 0000000..c7b4b66 --- /dev/null +++ b/src/talks/global-interop.hbs | |||
| @@ -0,0 +1,534 @@ | |||
| 1 | <!doctype html> | ||
| 2 | <html lang="en"> | ||
| 3 | |||
| 4 | <head> | ||
| 5 | <meta charset="utf-8"> | ||
| 6 | |||
| 7 | <title>Global OpenStack: the Power of Cloud Interoperability</title> | ||
| 8 | |||
| 9 | </head> | ||
| 10 | <body> | ||
| 11 | |||
| 12 | <section id="who-am-i-redhat" class="slide level2"> | ||
| 13 | <h1>Who am I?</h1> | ||
| 14 | <img style="float:right; margin:24pt" src="/images/Logo_RH_CMYK_Default.jpg" /> | ||
| 15 | <p> Office of Technology </p> | ||
| 16 | <p> Zuul </p> | ||
| 17 | <p> Ansible </p> | ||
| 18 | </section> | ||
| 19 | |||
| 20 | <section id="who-am-i-openstack" class="slide level2"> | ||
| 21 | <h1>Who am I?</h1> | ||
| 22 | <img style="float:right; margin-right:24pt; width:300px; height: auto" src="/images/openstack-cloud-software-vertical-large.png" /> | ||
| 23 | <p>Technical Committee</p> | ||
| 24 | <p>Developer Infrastructure Core Team</p> | ||
| 25 | <p>Former Foundation Board of Directors</p> | ||
| 26 | <p>PTL of shade project</p> | ||
| 27 | </section> | ||
| 28 | |||
| 29 | <section class="slide level2"> | ||
| 30 | <p> | ||
| 31 | I want to deploy and run an application on the internet | ||
| 32 | so that my customers all over the world can consume it.</p> | ||
| 33 | </section> | ||
| 34 | |||
| 35 | <section class="slide level2"> | ||
| 36 | <p> | ||
| 37 | I want to deploy the application across multiple clouds or regions | ||
| 38 | so that my service survives issues in any one of them.</p> | ||
| 39 | </section> | ||
| 40 | |||
| 41 | <section class="slide level2"> | ||
| 42 | <p> | ||
| 43 | I want to deploy the application in a location of my choosing | ||
| 44 | so that I can comply with regulatory demands.</p> | ||
| 45 | </section> | ||
| 46 | |||
| 47 | <section class="slide level2"> | ||
| 48 | <h1>THIS WORKS</h1> | ||
| 49 | <h3>I'm doing it myself as we speak</h3> | ||
| 50 | <img style="float:right; margin-right:24pt" src="/images/graphite.openstack.org.png"/> | ||
| 51 | |||
| 52 | |||
| 53 | <p class='fragment'>20k VMs per-day</p> | ||
| 54 | <p class='fragment'>20 Cloud Regions in 9 clouds</p> | ||
| 55 | <p class='fragment'>Only using OpenStack APIs</p> | ||
| 56 | |||
| 57 | </section> | ||
| 58 | |||
| 59 | <section id="openstack-infra" data-transition='zoom'> | ||
| 60 | <h1>OpenStack Infra</h1> | ||
| 61 | </section> | ||
| 62 | |||
| 63 | <section id="tooling-automation-and-ci-for-openstack-project" class="slide level2" data-transition='zoom'> | ||
| 64 | <h1>Tooling, Automation and CI for OpenStack Project</h1> | ||
| 65 | </section> | ||
| 66 | |||
| 67 | <section id="developers" class="slide level2" data-transition='zoom'> | ||
| 68 | <h1>2000 Developers</h1> | ||
| 69 | </section> | ||
| 70 | |||
| 71 | <section id="gated-commits" class="slide level2" data-transition='zoom'> | ||
| 72 | <h1>Gated Commits</h1> | ||
| 73 | <p>Every commit is fully integration tested (twice) before landing</p> | ||
| 74 | </section> | ||
| 75 | |||
| 76 | <section id="each-test-runs-on-a-single-use-cloud-slave" class="slide level2" data-transition='zoom'> | ||
| 77 | <h1>Each Test Runs on a Single Use Cloud Slave</h1> | ||
| 78 | <p>This is that "cloud scale out" part</p> | ||
| 79 | </section> | ||
| 80 | |||
| 81 | <section id="kjph" class="slide level2" data-transition='zoom'> | ||
| 82 | <h1>2 kjph</h1> | ||
| 83 | </section> | ||
| 84 | |||
| 85 | <section id="kilo-jobs-per-hour" class="slide level2" data-transition='zoom'> | ||
| 86 | <h1>2 KJPH (kilo-jobs per hour)</h1> | ||
| 87 | </section> | ||
| 88 | |||
| 89 | <section id="our-vms-are-everywhere" class="slide level2"> | ||
| 90 | <h1>Our VMs are everywhere</h1> | ||
| 91 | <h3>Public Clouds</h3> | ||
| 92 | <ul> | ||
| 93 | <li>Rackspace: Dallas, Chicago, DC</li> | ||
| 94 | <li>Internap: New Jersey, Montreal</li> | ||
| 95 | <li>OVH: Strassbourg, Gravelines</li> | ||
| 96 | <li>Citycloud: London, Los Angeles, Stockholm</li> | ||
| 97 | </ul> | ||
| 98 | <h3>Managed Private Clouds</h3> | ||
| 99 | <ul> | ||
| 100 | <li>OpenStack Innovation Center: San Antonio</li> | ||
| 101 | <li>Red Hat TripleO: Phoenix</li> | ||
| 102 | </ul> | ||
| 103 | </section> | ||
| 104 | |||
| 105 | <section id="we-also-have-servers" class="slide level2"> | ||
| 106 | <h1>Private Cloud</h1> | ||
| 107 | <h2>Infra Cloud</h2> | ||
| 108 | <ul> | ||
| 109 | <li>Hardware donated by HPE: Houston</li> | ||
| 110 | <li>Community run cloud using OpenStack Puppet</li> | ||
| 111 | <li>Bare Metal managed with Bifrost/Ironic</li> | ||
| 112 | </ul> | ||
| 113 | </section> | ||
| 114 | |||
| 115 | <section id="architecture" class="slide level2"> | ||
| 116 | <p><img src="/images/infra-zuul-architecture.png" alt="image" /></p> | ||
| 117 | </section> | ||
| 118 | |||
| 119 | <section class="slide level2"> | ||
| 120 | <h1>Gerrit</h1> | ||
| 121 | <ul> | ||
| 122 | <li class="fragment"> | ||
| 123 | Traditional 'Enterprise' Java Application</li> | ||
| 124 | <li class="fragment">Single Nova VM, Cinder Volume</li> | ||
| 125 | <li class="fragment">Scale out farm of git replicas</li> | ||
| 126 | </ul> | ||
| 127 | </section> | ||
| 128 | |||
| 129 | <section class="slide level2"> | ||
| 130 | <h1>nodepool</h1> | ||
| 131 | <ul> | ||
| 132 | <li class="fragment">Cloud Native</li> | ||
| 133 | <li class="fragment"> | ||
| 134 | Purpose built in Python</li> | ||
| 135 | <li class="fragment">Keeps a pool of ready to go nodes</li> | ||
| 136 | <li class="fragment">Multi-cloud</li> | ||
| 137 | <li class="fragment">Fully elastic - responds to demand</li> | ||
| 138 | </ul> | ||
| 139 | </section> | ||
| 140 | |||
| 141 | <section class="slide level2"> | ||
| 142 | <h1>How do we do this?</h1> | ||
| 143 | </section> | ||
| 144 | |||
| 145 | <section class="slide level2"> | ||
| 146 | <h1>Control plane</h1> | ||
| 147 | <h3>http://git.openstack.org/cgit/openstack-infra/system-config</h3> | ||
| 148 | <ul> | ||
| 149 | <li>All server config management in git</li> | ||
| 150 | <li>Puppet manages the servers: puppet apply</li> | ||
| 151 | <li>Ansible runs puppet: ansible puppet module</li> | ||
| 152 | <li>Ansible OpenStack Dynamic Inventory</li> | ||
| 153 | <li>Only thing not public are keys and secrets</li> | ||
| 154 | </ul> | ||
| 155 | </section> | ||
| 156 | |||
| 157 | <section class="slide level2"> | ||
| 158 | <h1>os-client-config</h1> | ||
| 159 | <h3>http://git.openstack.org/cgit/openstack/os-client-config</h3> | ||
| 160 | <p>A library to handle config information for openstack clients</p> | ||
| 161 | <p>Tracks differences in vendors that can't be discovered</p> | ||
| 162 | <p>In use in python-openstackclient, shade and ansible</p> | ||
| 163 | </section> | ||
| 164 | |||
| 165 | <section class="slide level2"> | ||
| 166 | <h1>os-client-config</h1> | ||
| 167 | <p>~/.config/openstack/clouds.yaml</p> | ||
| 168 | <pre> | ||
| 169 | clouds: | ||
| 170 | citycloud: | ||
| 171 | profile: citycloud | ||
| 172 | auth: | ||
| 173 | username: mordred | ||
| 174 | password: XXXXXXXXXXXXXXXXXXXXX | ||
| 175 | project_id: 65222a4d09ea4c68934fa1028c77f394 | ||
| 176 | user_domain_id: d0919bd5e8d74e49adf0e145807ffc38 | ||
| 177 | project_domain_id: d0919bd5e8d74e49adf0e145807ffc38 | ||
| 178 | regions: | ||
| 179 | - Kna1 | ||
| 180 | - Sto2 | ||
| 181 | - Lon1 | ||
| 182 | dreamcompute: | ||
| 183 | profile: dreamhost | ||
| 184 | auth: | ||
| 185 | username: montay6 | ||
| 186 | project_name: dhc2111978 | ||
| 187 | password: XXXXXXXXXXXXX | ||
| 188 | region_name: RegionOne | ||
| 189 | </pre> | ||
| 190 | </section> | ||
| 191 | |||
| 192 | <section class="slide level2"> | ||
| 193 | <h1>shade</h1> | ||
| 194 | <h3>http://git.openstack.org/cgit/openstack-infra/shade</h3> | ||
| 195 | <p>A library to wrap business logic around client libraries</p> | ||
| 196 | <pre> | ||
| 197 | cloud.create_image('image-name', filename='image-filename.qcow2') | ||
| 198 | cloud.create_server('my-server', image='immage-name', auto_ip=True) | ||
| 199 | </pre> | ||
| 200 | <p>In use in Infra Nodepool and ansible</p> | ||
| 201 | </section> | ||
| 202 | |||
| 203 | <section class="slide level2"> | ||
| 204 | <h1>ansible</h1> | ||
| 205 | <p>Based on shade</p> | ||
| 206 | <pre> | ||
| 207 | - os_keypair: | ||
| 208 | cloud: citycloud | ||
| 209 | name: mordred | ||
| 210 | public_key_file: ~/.ssh/id_rsa.pub | ||
| 211 | - os_image: | ||
| 212 | cloud: citycloud | ||
| 213 | name: Monty Ubuntu | ||
| 214 | file: ubuntu.vhd | ||
| 215 | - os_server: | ||
| 216 | cloud: citycloud | ||
| 217 | name: my-server | ||
| 218 | flavor_ram: 1024 | ||
| 219 | image: Monty Ubuntu | ||
| 220 | </pre> | ||
| 221 | </section> | ||
| 222 | |||
| 223 | <section class="slide level2"> | ||
| 224 | <h1>ansible</h1> | ||
| 225 | <h2>Add my keypair to 30 Regions in 13 clouds<h2> | ||
| 226 | <pre><code> | ||
| 227 | - os_keypair: | ||
| 228 | cloud: "{{ item.cloud }}" | ||
| 229 | region_name: "{{ item.region_name }}" | ||
| 230 | name: mordred | ||
| 231 | public_key_file: ~/.ssh/id_rsa.pub | ||
| 232 | with-items: | ||
| 233 | - {cloud: vexxhost, region_name: ca-ymq-1} | ||
| 234 | - {cloud: ovh, region_name: SBG1} | ||
| 235 | - {cloud: ovh, region_name: BHS1} | ||
| 236 | - {cloud: ovh, region_name: GRA1} | ||
| 237 | - {cloud: citycloud, region_name: Buf1} | ||
| 238 | - {cloud: citycloud, region_name: La1} | ||
| 239 | - {cloud: citycloud, region_name: Fra1} | ||
| 240 | - {cloud: citycloud, region_name: Lon1} | ||
| 241 | - {cloud: citycloud, region_name: Sto2} | ||
| 242 | - {cloud: citycloud, region_name: Kna1} | ||
| 243 | - {cloud: internap, region_name: ams01} | ||
| 244 | - {cloud: internap, region_name: da01} | ||
| 245 | - {cloud: internap, region_name: nyj01} | ||
| 246 | - {cloud: internap, region_name: sin01} | ||
| 247 | - {cloud: internap, region_name: sjc01} | ||
| 248 | - {cloud: infracloud, region_name: vanilla} | ||
| 249 | - {cloud: infracloud, region_name: chocolate} | ||
| 250 | - {cloud: fuga, region_name: cystack} | ||
| 251 | - {cloud: datacentred, region_name: sal01} | ||
| 252 | - {cloud: clouda, region_name: regionOne} | ||
| 253 | - {cloud: auro, region_name: van1} | ||
| 254 | - {cloud: ustack, region_name: bj1} | ||
| 255 | - {cloud: zetta, region_name: no-osl1} | ||
| 256 | - {cloud: kiss, region_name: region1} | ||
| 257 | - {cloud: rax, region_name: IAD} | ||
| 258 | - {cloud: rax, region_name: ORD} | ||
| 259 | - {cloud: rax, region_name: SYD} | ||
| 260 | - {cloud: rax, region_name: LON} | ||
| 261 | - {cloud: rax, region_name: DFW} | ||
| 262 | - {cloud: rax, region_name: HKG} | ||
| 263 | </code></pre> | ||
| 264 | </section> | ||
| 265 | |||
| 266 | <section class="slide level2"> | ||
| 267 | <h1>nodepool</h1> | ||
| 268 | <ul> | ||
| 269 | <li>Use shade to treat all cloud regions as one giant cloud</li> | ||
| 270 | <li>diskimage-builder makes identical base images for each</li> | ||
| 271 | <li>Pre-cache network artifacts in disk images</li> | ||
| 272 | <li>glean instead of cloud-init to handle no-DHCP on Rackspace</li> | ||
| 273 | <li>Pre-spins warm pool - always keep min-ready number of nodes</li> | ||
| 274 | </ul> | ||
| 275 | </section> | ||
| 276 | |||
| 277 | <section class="slide level2"> | ||
| 278 | <h1>OpenStack Works!</h1> | ||
| 279 | <p class='fragment'>Why should you care?</p> | ||
| 280 | <p class='fragment'>Is interop really important?</p> | ||
| 281 | </section> | ||
| 282 | |||
| 283 | <section class="slide level2"> | ||
| 284 | <h1>Run what you want</h1> | ||
| 285 | <p class='fragment'>Cloud-native application</p> | ||
| 286 | <p class='fragment'>Traditional Java web application</p> | ||
| 287 | <p class='fragment'>High-performance Database on Baremetal</p> | ||
| 288 | </section> | ||
| 289 | |||
| 290 | <section class="slide level2"> | ||
| 291 | <h1>Run it where you want</h1> | ||
| 292 | <ul> | ||
| 293 | <li>Geography</li> | ||
| 294 | <li>Delivery Model</li> | ||
| 295 | </ul> | ||
| 296 | |||
| 297 | </section> | ||
| 298 | |||
| 299 | <section class="slide level2"> | ||
| 300 | <h1>Geography</h1> | ||
| 301 | <ul> | ||
| 302 | <li>Put it near your users</li> | ||
| 303 | <li>Don't put it in an US data center</li> | ||
| 304 | <li>Locality Requirements</li> | ||
| 305 | <li class='fragment'>What if you have customers in China?</li> | ||
| 306 | <li class='fragment'>What if you also have customers in Sweden?</li> | ||
| 307 | </ul> | ||
| 308 | </section> | ||
| 309 | |||
| 310 | <section class="slide level2"> | ||
| 311 | <h1>Delivery Model</h1> | ||
| 312 | <ul> | ||
| 313 | <li>Public</li> | ||
| 314 | <li>Hosted Private</li> | ||
| 315 | <li>Managed Private On-Premise</li> | ||
| 316 | <li>Run your own</li> | ||
| 317 | </ul> | ||
| 318 | </section> | ||
| 319 | |||
| 320 | <section class="slide level2" data-transition='zoom'> | ||
| 321 | <h1>China’s Sinorail Information Cloud</h1> | ||
| 322 | </section> | ||
| 323 | |||
| 324 | <section class="slide level2" data-transition='zoom'> | ||
| 325 | <h1>Billions of Passengers</h1> | ||
| 326 | </section> | ||
| 327 | |||
| 328 | <section class="slide level2" data-transition='zoom'> | ||
| 329 | <h1>Anybody <em>REALLY</em> think that should just run in a | ||
| 330 | Public Cloud?</h1> | ||
| 331 | </section> | ||
| 332 | |||
| 333 | <section class="slide level2" data-transition='zoom'> | ||
| 334 | <h1>Anybody <em>REALLY</em> think that should run in a | ||
| 335 | Public Cloud owned by a US company?</h1> | ||
| 336 | </section> | ||
| 337 | |||
| 338 | <section class="slide level2" data-transition='zoom'> | ||
| 339 | <h1>What about the China National Offshore Oil Corp?</h1> | ||
| 340 | </section> | ||
| 341 | |||
| 342 | <section class="slide level2" data-transition='zoom'> | ||
| 343 | <h1>or the State Grid of China?</h1> | ||
| 344 | </section> | ||
| 345 | |||
| 346 | <section class="slide level2"> | ||
| 347 | <img src="/images/six-years-in.png" /> | ||
| 348 | </section> | ||
| 349 | |||
| 350 | <section class="slide level2"> | ||
| 351 | <h1>Chinese OpenStack</h1> | ||
| 352 | <p><small>sorted alphabetically</small></p> | ||
| 353 | <p>99 Cloud</p> | ||
| 354 | <p>China Mobile</p> | ||
| 355 | <p>China National Offshore Oil Corp</p> | ||
| 356 | <p>China Telecom</p> | ||
| 357 | <p>China Unicom</p> | ||
| 358 | <p>EasyStack</p> | ||
| 359 | <p>Huawei</p> | ||
| 360 | <p>Inspur</p> | ||
| 361 | <p>Sinorail</p> | ||
| 362 | <p>State Grid of China</p> | ||
| 363 | <p>T2 Cloud</p> | ||
| 364 | <p>Tencent</p> | ||
| 365 | <p>UMCloud</p> | ||
| 366 | <p>UnitedStack</p> | ||
| 367 | <p>ZTE</p> | ||
| 368 | </section> | ||
| 369 | |||
| 370 | <section class="slide level2"> | ||
| 371 | <h1>European Public OpenStack</h1> | ||
| 372 | <p>CityCloud: Sweden, UK, US</p> | ||
| 373 | <p>Datacentred: UK</p> | ||
| 374 | <p>Elastx: Sweden</p> | ||
| 375 | <p>Enter Cloud Suite: Italy, Germany</p> | ||
| 376 | <p>Fugo: Netherlands</p> | ||
| 377 | <p>Internap: Netherlands, US, Singapore</p> | ||
| 378 | <p>OTC: Frankfurt</p> | ||
| 379 | <p>OVH: France, US</p> | ||
| 380 | <p>Switch: Switzerland</p> | ||
| 381 | <p>Ultimum: Czech Republic</p> | ||
| 382 | <p>Zetta: Norway</p> | ||
| 383 | <p>kiss.cloud: Netherlands</p> | ||
| 384 | </section> | ||
| 385 | |||
| 386 | <section class="slide level2"> | ||
| 387 | <h1>Other Public OpenStack</h1> | ||
| 388 | <p>Auro: Vancouver</p> | ||
| 389 | <p>Catalyst: New Zealand</p> | ||
| 390 | <p>Conoha: Japan, Singapore, US</p> | ||
| 391 | <p>Dreamhost: US</p> | ||
| 392 | <p>Ormuco: Canada + Federated</p> | ||
| 393 | <p>Vexxhost: Canada</p> | ||
| 394 | </section> | ||
| 395 | |||
| 396 | <section class="slide level2"> | ||
| 397 | <h1>What about the US?</h1> | ||
| 398 | <img class='fragment' | ||
| 399 | style="float:right; margin:24pt; height:400px; width: auto" | ||
| 400 | src="/images/Robbie_Williams_Cannes_2015.jpg" /> | ||
| 401 | <p class='fragment'>Robbie Williams</p> | ||
| 402 | <p class='fragment'>Best-selling British solo artist in the UK</p> | ||
| 403 | <p class='fragment'>Best-selling non-Latino artist in Latin America</p> | ||
| 404 | <p class='fragment'>Basically unknown in the US</p> | ||
| 405 | </section> | ||
| 406 | |||
| 407 | <section class="slide level2"> | ||
| 408 | <h1>OpenStack Community is Designed for Collaboration</h1> | ||
| 409 | </section> | ||
| 410 | |||
| 411 | <section class="slide level2"> | ||
| 412 | <h1>In the OpenStack Project, all participants are Equal</h1> | ||
| 413 | </section> | ||
| 414 | |||
| 415 | <section class="slide level2"> | ||
| 416 | <p><em>We</em> aren't going to remove something <em>you</em> need...</p> | ||
| 417 | <p class='fragement'>because we <em>ARE</em> you.</p> | ||
| 418 | </section> | ||
| 419 | |||
| 420 | <section class="slide level2"> | ||
| 421 | <h1>I'm in this to make the world better. The whole world.</h1> | ||
| 422 | </section> | ||
| 423 | |||
| 424 | <section class="slide level2"> | ||
| 425 | <h1>Why does Interop Matter</h1> | ||
| 426 | </section> | ||
| 427 | |||
| 428 | <section class="slide level2"> | ||
| 429 | <h1>Is Sinorail going to run China's Train system with | ||
| 430 | an app they download from an App Store?<h1> | ||
| 431 | <p class='fragment'>Nope</p> | ||
| 432 | </section> | ||
| 433 | |||
| 434 | <section class="slide level2"> | ||
| 435 | <h1>Are they going to let me run VMs for OpenStack Infra | ||
| 436 | Nodepool on their Cloud?</h1> | ||
| 437 | <p class='fragment'>Nope</p> | ||
| 438 | <p class='fragment'><small>That would be SUPER cool though!</small></p> | ||
| 439 | </section> | ||
| 440 | |||
| 441 | <section class="slide level2"> | ||
| 442 | <h1>Who cares if China National Offshore Oil Corp, State Grid of China | ||
| 443 | and Deutsche Telecom's clouds work the same?<h1> | ||
| 444 | </section> | ||
| 445 | |||
| 446 | <section class="slide level2"> | ||
| 447 | <h1>It's all about the tools</h1> | ||
| 448 | <ul> | ||
| 449 | <li>Ansible</li> | ||
| 450 | <li>Terraform</li> | ||
| 451 | <li>Spinnaker</li> | ||
| 452 | <li>Zuul</li> | ||
| 453 | <li class='fragment'>Zuul v3 is almost out and will blow your mind</li> | ||
| 454 | </ul> | ||
| 455 | </section> | ||
| 456 | |||
| 457 | <section class="slide level2"> | ||
| 458 | <h1>It's about spending resources wisely</h1> | ||
| 459 | <p>If China National Offshore Oil Corp, State Grid of China and | ||
| 460 | Sinorail all run Interoperable OpenStack Clouds ...</p> | ||
| 461 | <p>they share not just the OpenStack Cloud software itself... </p> | ||
| 462 | <p>they <em>ALSO</em> share consumption and orchestration software.</p> | ||
| 463 | <p class='fragment'>It's like I work for all of you!</p> | ||
| 464 | <p class='fragment'>It's like we all work with each other</p> | ||
| 465 | </section> | ||
| 466 | |||
| 467 | <section class="slide level2"> | ||
| 468 | <h1>China, and the rest of the Global Community, understands the power | ||
| 469 | of collaborating on our shared problems.</h1> | ||
| 470 | </section> | ||
| 471 | |||
| 472 | <section class="slide level2"> | ||
| 473 | <h1>What are we doing to help you with Interop?</h1> | ||
| 474 | </section> | ||
| 475 | |||
| 476 | <section class="slide level2"> | ||
| 477 | <h1>Interop Working Group</h1> | ||
| 478 | <ul> | ||
| 479 | <li>Trademark focused: What must work to use the name OpenStack</li> | ||
| 480 | <li>If you get some OpenStack from a Vendor, how do you know it's good | ||
| 481 | OpenStack</li> | ||
| 482 | </ul> | ||
| 483 | </section> | ||
| 484 | |||
| 485 | <section class="slide level2"> | ||
| 486 | <h1>API Working Group</h1> | ||
| 487 | <ul> | ||
| 488 | <li>Upstream Technical Committee Group</li> | ||
| 489 | <li><a href='http://specs.openstack.org/openstack/api-wg/'> | ||
| 490 | http://specs.openstack.org/openstack/api-wg/</a></li> | ||
| 491 | <li>Started publishing <em>API Consumption</em> guidelines</li> | ||
| 492 | </ul> | ||
| 493 | </section> | ||
| 494 | |||
| 495 | <section class="slide level2"> | ||
| 496 | <h1>API Working Group Consumption Specs</h1> | ||
| 497 | |||
| 498 | <ul> | ||
| 499 | <li><a href='http://specs.openstack.org/openstack/api-wg/guidelines/consuming-catalog.html'> | ||
| 500 | Consuming the Catalog: http://specs.openstack.org/openstack/api-wg/guidelines/consuming-catalog.html</a></li> | ||
| 501 | <li><a href='https://review.openstack.org/#/c/459405/'>Version Discovery: https://review.openstack.org/#/c/459405/</a></li> | ||
| 502 | <li><a href='https://service-types.openstack.org/'>Service Types Authority: https://service-types.openstack.org/</a></li> | ||
| 503 | </ul> | ||
| 504 | </section> | ||
| 505 | |||
| 506 | <section class="slide level2"> | ||
| 507 | <h1>API Consumers Mailing List</h1> | ||
| 508 | <p><a href='http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-api-consumers'>http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-api-consumers</a></p> | ||
| 509 | <p>Collaboration between SDK, Framework, Tool Authors</p> | ||
| 510 | <p>Python, Go, Java, Ruby, Javascript ... </p> | ||
| 511 | </section> | ||
| 512 | |||
| 513 | <section class="slide level2"> | ||
| 514 | <h1>Writing Software!</h1> | ||
| 515 | <ul> | ||
| 516 | <li>shade SDK: <a href='https://docs.openstack.org/shade/latest/'> | ||
| 517 | https://docs.openstack.org/shade/latest/</a></li> | ||
| 518 | <li>Ansible OpenStack: <a href='http://docs.ansible.com/ansible/latest/list_of_cloud_modules.html#openstack'> | ||
| 519 | http://docs.ansible.com/ansible/latest/list_of_cloud_modules.html#openstack</a></li> | ||
| 520 | <li>oaktree: Federation API</li> | ||
| 521 | <li>TriCircle: Multi-cloud Networking</li> | ||
| 522 | <li>Zuul: Insanely scalable CI/CD</li> | ||
| 523 | </ul> | ||
| 524 | <p>All of these can use help!</p> | ||
| 525 | </section> | ||
| 526 | |||
| 527 | <section class="slide level2"> | ||
| 528 | <h1>OpenStack gives you the power to make the choices that | ||
| 529 | are right for you, your business, your users, your country | ||
| 530 | and the world.</h1> | ||
| 531 | </section> | ||
| 532 | |||
| 533 | </body> | ||
| 534 | </html> | ||
