diff options
Diffstat (limited to 'src/talks')
| -rw-r--r-- | src/talks/only-one-cloud.hbs | 317 |
1 files changed, 317 insertions, 0 deletions
diff --git a/src/talks/only-one-cloud.hbs b/src/talks/only-one-cloud.hbs new file mode 100644 index 0000000..f4ec101 --- /dev/null +++ b/src/talks/only-one-cloud.hbs | |||
| @@ -0,0 +1,317 @@ | |||
| 1 | <!doctype html> | ||
| 2 | <html lang="en"> | ||
| 3 | |||
| 4 | <head> | ||
| 5 | <meta charset="utf-8"> | ||
| 6 | |||
| 7 | <title>It can't be Cloud Native if it only runs on one cloud</title> | ||
| 8 | |||
| 9 | </head> | ||
| 10 | <body> | ||
| 11 | |||
| 12 | <section id="those-who-do-not-understand" class="slide level2"> | ||
| 13 | <blockquote> | ||
| 14 | Those who do not understand UNIX are condemned to reinvent it, | ||
| 15 | poorly. | ||
| 16 | </blockquote> | ||
| 17 | <h3>Henry Spencer</h3> | ||
| 18 | </section> | ||
| 19 | |||
| 20 | <section id="who-am-i-redhat" class="slide level2"> | ||
| 21 | <h1>Who am I?</h1> | ||
| 22 | <img style="float:right; margin:24pt" src="/images/Logo_RH_CMYK_Default.jpg" /> | ||
| 23 | <p> CTO Office </p> | ||
| 24 | <p> CI/CD and Automation</p> | ||
| 25 | <p> Zuul </p> | ||
| 26 | <p> Ansible </p> | ||
| 27 | </section> | ||
| 28 | |||
| 29 | <section id="who-am-i-openstack" class="slide level2"> | ||
| 30 | <h1>Who am I?</h1> | ||
| 31 | <img style="float:right; margin-right:24pt; width:300px; height: auto" src="/images/openstack-cloud-software-vertical-large.png" /> | ||
| 32 | <p>Developer Infrastructure Core Team</p> | ||
| 33 | <p>Shade PTL</p> | ||
| 34 | <p>Technical Committee (for another week)</p> | ||
| 35 | <p>Former Foundation Board of Directors</p> | ||
| 36 | <p>Infrastructure PTL Emeritus</p> | ||
| 37 | </section> | ||
| 38 | |||
| 39 | <section id="who-am-i-founder" class="slide level2"> | ||
| 40 | <h1>In the beginning ...</h1> | ||
| 41 | <img style="width:700px; height: auto" src="/images/monty-launchpad.png" /> | ||
| 42 | </section> | ||
| 43 | |||
| 44 | <section id="google-cluster-architecture" class="slide level2"> | ||
| 45 | <blockquote> | ||
| 46 | Google's architecture features clusters of more than 15,000 commodity | ||
| 47 | class PCs with fault-tolerant software. This architecture achieves | ||
| 48 | superior performance at a fraction of the cost of a system built from | ||
| 49 | fewer, but more expensive, high-end servers.</blockquote> | ||
| 50 | <h3>Web Search for a Planet: The Google Cluster Architecture</h3> | ||
| 51 | <h3>Luiz Andre Barroso, Jeffrey Dean, Urs Hölzle - 2003</h3> | ||
| 52 | <p><a href='https://research.google.com/pubs/pub49.html'> | ||
| 53 | https://research.google.com/pubs/pub49.html</a></p> | ||
| 54 | </section> | ||
| 55 | |||
| 56 | <section id="google-cluster-architecture-summary" class="slide level2"> | ||
| 57 | <ul> | ||
| 58 | <li>Assume failure</li> | ||
| 59 | <li>Use cheap servers, not expensive servers</li> | ||
| 60 | <li>Scale out, not up</li> | ||
| 61 | </ul> | ||
| 62 | </section> | ||
| 63 | |||
| 64 | <section id='shared-nothing' class="slide level2" data-transition='zoom'> | ||
| 65 | <h1>Shared Nothing</h1> | ||
| 66 | </section> | ||
| 67 | |||
| 68 | <section id="who-was-I-mysql" class="slide level2"> | ||
| 69 | <h1>Who was I?</h1> | ||
| 70 | <img style="float:right; margin-right:24pt; width:300px; height: auto" src="/images/logo-mysql-170x115.png" /> | ||
| 71 | <p>Professional Services</p> | ||
| 72 | <p>High Availability</p> | ||
| 73 | <p>Scaling</p> | ||
| 74 | <p>Cluster</p> | ||
| 75 | </section> | ||
| 76 | |||
| 77 | <section id="datacenter-crash" class="slide level2"> | ||
| 78 | <blockquote>I asked for a crossover cable...</blockquote> | ||
| 79 | </section> | ||
| 80 | |||
| 81 | <section id="mysql-at-facebook" class="slide level2"> | ||
| 82 | <h2>Why MySQL? Wouldn’t NoSQL databases, for example, be better suited for the massive workloads seen at Facebook?</h2> | ||
| 83 | |||
| 84 | <blockquote>I have not been able to find a transactional NoSQL database | ||
| 85 | better than InnoDB. And it’s easy to understand how MySQL Replication | ||
| 86 | works, which makes much easier to fix problems in production. | ||
| 87 | </blockquote> | ||
| 88 | <h3>Yoshinori Matsunobu, Facebook Engineering, 2014</h3> | ||
| 89 | </section> | ||
| 90 | |||
| 91 | <section id="mysql-lessons" class="slide level2"> | ||
| 92 | <h1>Lessons from MySQL</h1> | ||
| 93 | <ul> | ||
| 94 | <li>Simple is better than complex</li> | ||
| 95 | <li>Know how your software works</li> | ||
| 96 | <li>How something fails is more important than how something works</li> | ||
| 97 | </ul> | ||
| 98 | </section> | ||
| 99 | |||
| 100 | <section id="who-was-I-sun" class="slide level2"> | ||
| 101 | <h1>Who was I?</h1> | ||
| 102 | <img style="float:right; margin-right:24pt; width:300px; height: auto" src="/images/sun_microsystems_logo_2385.gif" /> | ||
| 103 | <p>Professional Services</p> | ||
| 104 | <p>High Availability</p> | ||
| 105 | <p>Scaling</p> | ||
| 106 | <p>Cluster</p> | ||
| 107 | </section> | ||
| 108 | |||
| 109 | <section id="the-dot-in-dot-com" class="slide level2"> | ||
| 110 | <img src='/images/m_img_23895.jpg' /> | ||
| 111 | </section> | ||
| 112 | |||
| 113 | <section id="sun-lessons" class="slide level2"> | ||
| 114 | <h1>Lessons from Sun</h1> | ||
| 115 | <ul> | ||
| 116 | <li>Simple is better than complex</li> | ||
| 117 | <li>Assume failure</li> | ||
| 118 | <li>Use cheap servers, not expensive servers</li> | ||
| 119 | <li>Scale out, not up</li> | ||
| 120 | </ul> | ||
| 121 | </section> | ||
| 122 | |||
| 123 | <section id="who-was-I-drizzle" class="slide level2"> | ||
| 124 | <h1>Who was I?</h1> | ||
| 125 | <img style="float:right; margin-right:24pt; width:300px; height: auto" src="/images/Drizzle-logotype.svg" /> | ||
| 126 | <p>Fork of MySQL</p> | ||
| 127 | <p>Modern C++0x</p> | ||
| 128 | <p>Microkernel Design</p> | ||
| 129 | </section> | ||
| 130 | |||
| 131 | <section id="two-better-than-one" class="slide level2" data-transition="zoom"> | ||
| 132 | <h1>Why have one when you can have two at twice the price?</h1> | ||
| 133 | </section> | ||
| 134 | |||
| 135 | <section id="database-for-the-cloud" class="slide level2"> | ||
| 136 | <h1>"A Database For The Cloud"</h1> | ||
| 137 | <ul> | ||
| 138 | <li>Removed bloat (triggers, stored procedures, mediumint)</li> | ||
| 139 | <li>Sensible Defaults - no config needed</li> | ||
| 140 | <li>Moved data dictionary into InnoDB tablespace</li> | ||
| 141 | <li>Immediate Ancestor of OpenStack's Gating</li> | ||
| 142 | </ul> | ||
| 143 | </section> | ||
| 144 | |||
| 145 | <section id="what-can-we-throw-out" class="slide level2"> | ||
| 146 | <blockquote> | ||
| 147 | We used to sit around in the Unix Room saying, | ||
| 148 | '<em>What can we throw out?</em> | ||
| 149 | Why is there this option?' It's often because there is some deficiency | ||
| 150 | in the basic design — you didn't really hit the right design point. | ||
| 151 | Instead of adding an option, think about what was forcing you to add | ||
| 152 | that option. | ||
| 153 | </blockquote> | ||
| 154 | <h3>Doug McIlroy, 2005</h3> | ||
| 155 | </section> | ||
| 156 | |||
| 157 | <section id="unix-philosophy" class="slide level2"> | ||
| 158 | <h1>UNIX philosophy</h1> | ||
| 159 | <ul> | ||
| 160 | <li>Make each program do one thing well. To do a new job, build afresh | ||
| 161 | rather than complicate old programs by adding new "features".</li> | ||
| 162 | <li>Expect the output of every program to become the input to another, | ||
| 163 | as yet unknown, program. Don't clutter output with extraneous | ||
| 164 | information. Avoid stringently columnar or binary input formats. | ||
| 165 | Don't insist on interactive input.</li> | ||
| 166 | <li>Design and build software, even operating systems, to be tried | ||
| 167 | early, ideally within weeks. Don't hesitate to throw away the clumsy | ||
| 168 | parts and rebuild them.</li> | ||
| 169 | <li>Use tools in preference to unskilled help to lighten a programming | ||
| 170 | task, even if you have to detour to build the tools and expect to | ||
| 171 | throw some of them out after you've finished using them.</li> | ||
| 172 | </ul> | ||
| 173 | <h3>Doug McIlroy, Bell System Technical Journal, 1978</h3> | ||
| 174 | </section> | ||
| 175 | |||
| 176 | <section id="unix-philosophy" class="slide level2"> | ||
| 177 | <blockquote> | ||
| 178 | the power of a system comes more from the relationships among programs | ||
| 179 | than from the programs themselves | ||
| 180 | </blockquote> | ||
| 181 | <h3>The Unix Programming Environment</h3> | ||
| 182 | <h3>Brian Kernighan and Rob Pike</h3> | ||
| 183 | </section> | ||
| 184 | |||
| 185 | <section class="slide level2"> | ||
| 186 | <h1>Cloud Native Is ... </h1> | ||
| 187 | <ul> | ||
| 188 | <li>Architectural and operational approach</li> | ||
| 189 | <li>Assume cloud</li> | ||
| 190 | <li>Assume failures</li> | ||
| 191 | <li>Microservices</li> | ||
| 192 | <li>Containerized?</li> | ||
| 193 | </ul> | ||
| 194 | </section> | ||
| 195 | |||
| 196 | <section class="slide level2"> | ||
| 197 | <h1>12 Factor Application</h1> | ||
| 198 | <h3>I. Codebase - One codebase tracked in revision control, many deploys | ||
| 199 | </h3> | ||
| 200 | <h3>II. Dependencies - Explicitly declare and isolate dependencies</h3> | ||
| 201 | <h3>III. Config - Store config in the environment</h3> | ||
| 202 | <h3>IV. Backing services - Treat backing services as attached resources</h3> | ||
| 203 | <h3>V. Build, release, run - Strictly separate build and run stages</h3> | ||
| 204 | <h3>VI. Processes - Execute the app as one or more stateless processes</h3> | ||
| 205 | <h3>VII. Port binding - Export services via port binding</h3> | ||
| 206 | <h3>VIII. Concurrency - Scale out via the process model</h3> | ||
| 207 | <h3>IX. Disposability - Maximize robustness with fast startup and graceful shutdown</h3> | ||
| 208 | <h3>X. Dev/prod parity - Keep development and production as similar as possible</h3> | ||
| 209 | <h3>XI. Logs - Treat logs as event streams</h3> | ||
| 210 | <h3>XII. Admin processes - Run admin/management tasks as one-off processes</h3> | ||
| 211 | </section> | ||
| 212 | |||
| 213 | <section class="slide level2" data-transition='zoom'> | ||
| 214 | <h1>This is awesome</h1> | ||
| 215 | </section> | ||
| 216 | |||
| 217 | <section class="slide level2" data-transition='zoom'> | ||
| 218 | <h1>Except for III</h1> | ||
| 219 | <h2>I use config files</h2> | ||
| 220 | <h3 class="fragment">Ooops</h3> | ||
| 221 | </section> | ||
| 222 | |||
| 223 | <section class="slide level2" data-transition='zoom'> | ||
| 224 | <h1>VI. Stateless</h1> | ||
| 225 | <h2>If /dev/null is fast in web scale I will use it. Is it web scale?</h2> | ||
| 226 | <h3 class="fragment">Use a service to store your data - like a database</h3> | ||
| 227 | <h3 class="fragment">Is that database service web scale?</h3> | ||
| 228 | </section> | ||
| 229 | |||
| 230 | <section class="slide level2"> | ||
| 231 | <blockquote> | ||
| 232 | If /dev/null is fast in web scale I will use it. Is it web scale? | ||
| 233 | </blockquote> | ||
| 234 | <h3>MongoDB is web scale</h3> | ||
| 235 | <p><a href='http://www.mongodb-is-web-scale.com/'> | ||
| 236 | http://www.mongodb-is-web-scale.com</a></p> | ||
| 237 | </section> | ||
| 238 | |||
| 239 | <section class="slide level2"> | ||
| 240 | <blockquote> | ||
| 241 | The tragedy of modern man is not that he knows less and less about | ||
| 242 | the meaning of his own life, but that it bothers him less and less. | ||
| 243 | </blockquote> | ||
| 244 | <h3>Václav Havel</h3> | ||
| 245 | </section> | ||
| 246 | |||
| 247 | <section id="datacenter-as-computer" class="slide level2"> | ||
| 248 | <blockquote> | ||
| 249 | As computation continues to move into the cloud, the computing platform | ||
| 250 | of interest no longer resembles a pizza box or a refrigerator, but a | ||
| 251 | warehouse full of computers. ... in other words, we must treat the | ||
| 252 | datacenter itself as one massive warehouse-scale computer. | ||
| 253 | </blockquote> | ||
| 254 | <h3>The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines</h3> | ||
| 255 | <h3>Luiz André Barroso, Urs Hölzle - 2009</h3> | ||
| 256 | <p><a href='https://research.google.com/pubs/pub35290.html'> | ||
| 257 | https://research.google.com/pubs/pub35290.html</a></p> | ||
| 258 | </section> | ||
| 259 | |||
| 260 | <section id="unix-portable" class="slide level2"> | ||
| 261 | <blockquote> | ||
| 262 | The use of top-down design methods and high-level languages in | ||
| 263 | producing portable applications software is well established. By | ||
| 264 | applying the same principles at the systems programming level, | ||
| 265 | portability can be extended to the operating system itself. Although | ||
| 266 | the Unix operating system was developed for a specific computer (the | ||
| 267 | DEC PDPll), its concise and elegant design and the careful selection | ||
| 268 | of 'primitives' which it provides make it an ideal candidate for | ||
| 269 | portability. | ||
| 270 | </blockquote> | ||
| 271 | <h3>UNIX: a portable operating system?</h3> | ||
| 272 | <h3>Richard Miller - 1978</h3> | ||
| 273 | </section> | ||
| 274 | |||
| 275 | <section class="slide level2" data-transition='zoom'> | ||
| 276 | <h1>If the datacenter is the new computer ...</h1> | ||
| 277 | </section> | ||
| 278 | |||
| 279 | <section class="slide level2" data-transition='zoom'> | ||
| 280 | <h1>Then the power of OpenStack is as a portable Operating System</h1> | ||
| 281 | </section> | ||
| 282 | |||
| 283 | <section class="slide level2" data-transition='zoom'> | ||
| 284 | <h1>Just as MVS was an Operating System for IBM System/370 ...</h1> | ||
| 285 | </section> | ||
| 286 | |||
| 287 | <section class="slide level2" data-transition='zoom'> | ||
| 288 | <h1>AWS is an Operating System specific to Amazon Datacenters</h1> | ||
| 289 | </section> | ||
| 290 | |||
| 291 | <section class="slide level2" data-transition='zoom'> | ||
| 292 | <h1>Google Cloud is an Operating System specific to Google | ||
| 293 | Datacenters</h1> | ||
| 294 | </section> | ||
| 295 | |||
| 296 | <section class="slide level2" data-transition='zoom'> | ||
| 297 | <h1>If sets of cheaper commodity servers are superior to fancy custom | ||
| 298 | built high-end hardware ...</h1> | ||
| 299 | </section> | ||
| 300 | |||
| 301 | <section class="slide level2" data-transition='zoom'> | ||
| 302 | <h1>Then commodity data centers with a common Operating System should | ||
| 303 | be better than fancy data centers controlled by one or two companies | ||
| 304 | </h1> | ||
| 305 | </section> | ||
| 306 | |||
| 307 | <section class="slide level2"> | ||
| 308 | <h1>Linux won the battle for single-computer Operating Systems.</h1> | ||
| 309 | </section> | ||
| 310 | |||
| 311 | <section class="slide level2"> | ||
| 312 | <h1>Let's win the battle for a Free, Open and Portable Operating System | ||
| 313 | for warehouse-scale computers.</h1> | ||
| 314 | </section> | ||
| 315 | |||
| 316 | </body> | ||
| 317 | </html> | ||
