Add only-one-cloud talk

This commit is contained in:
Monty Taylor 2017-10-19 09:59:49 +02:00
parent b87f3b387f
commit 7ff3f031c0
No known key found for this signature in database
GPG Key ID: 7BAE94BC7141A594
6 changed files with 653 additions and 0 deletions

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
src/images/m_img_23895.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,317 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>It can't be Cloud Native if it only runs on one cloud</title>
</head>
<body>
<section id="those-who-do-not-understand" class="slide level2">
<blockquote>
Those who do not understand UNIX are condemned to reinvent it,
poorly.
</blockquote>
<h3>Henry Spencer</h3>
</section>
<section id="who-am-i-redhat" class="slide level2">
<h1>Who am I?</h1>
<img style="float:right; margin:24pt" src="/images/Logo_RH_CMYK_Default.jpg" />
<p> CTO Office </p>
<p> CI/CD and Automation</p>
<p> Zuul </p>
<p> Ansible </p>
</section>
<section id="who-am-i-openstack" class="slide level2">
<h1>Who am I?</h1>
<img style="float:right; margin-right:24pt; width:300px; height: auto" src="/images/openstack-cloud-software-vertical-large.png" />
<p>Developer Infrastructure Core Team</p>
<p>Shade PTL</p>
<p>Technical Committee (for another week)</p>
<p>Former Foundation Board of Directors</p>
<p>Infrastructure PTL Emeritus</p>
</section>
<section id="who-am-i-founder" class="slide level2">
<h1>In the beginning ...</h1>
<img style="width:700px; height: auto" src="/images/monty-launchpad.png" />
</section>
<section id="google-cluster-architecture" class="slide level2">
<blockquote>
Google's architecture features clusters of more than 15,000 commodity
class PCs with fault-tolerant software. This architecture achieves
superior performance at a fraction of the cost of a system built from
fewer, but more expensive, high-end servers.</blockquote>
<h3>Web Search for a Planet: The Google Cluster Architecture</h3>
<h3>Luiz Andre Barroso, Jeffrey Dean, Urs Hölzle - 2003</h3>
<p><a href='https://research.google.com/pubs/pub49.html'>
https://research.google.com/pubs/pub49.html</a></p>
</section>
<section id="google-cluster-architecture-summary" class="slide level2">
<ul>
<li>Assume failure</li>
<li>Use cheap servers, not expensive servers</li>
<li>Scale out, not up</li>
</ul>
</section>
<section id='shared-nothing' class="slide level2" data-transition='zoom'>
<h1>Shared Nothing</h1>
</section>
<section id="who-was-I-mysql" class="slide level2">
<h1>Who was I?</h1>
<img style="float:right; margin-right:24pt; width:300px; height: auto" src="/images/logo-mysql-170x115.png" />
<p>Professional Services</p>
<p>High Availability</p>
<p>Scaling</p>
<p>Cluster</p>
</section>
<section id="datacenter-crash" class="slide level2">
<blockquote>I asked for a crossover cable...</blockquote>
</section>
<section id="mysql-at-facebook" class="slide level2">
<h2>Why MySQL? Wouldnt NoSQL databases, for example, be better suited for the massive workloads seen at Facebook?</h2>
<blockquote>I have not been able to find a transactional NoSQL database
better than InnoDB. And its easy to understand how MySQL Replication
works, which makes much easier to fix problems in production.
</blockquote>
<h3>Yoshinori Matsunobu, Facebook Engineering, 2014</h3>
</section>
<section id="mysql-lessons" class="slide level2">
<h1>Lessons from MySQL</h1>
<ul>
<li>Simple is better than complex</li>
<li>Know how your software works</li>
<li>How something fails is more important than how something works</li>
</ul>
</section>
<section id="who-was-I-sun" class="slide level2">
<h1>Who was I?</h1>
<img style="float:right; margin-right:24pt; width:300px; height: auto" src="/images/sun_microsystems_logo_2385.gif" />
<p>Professional Services</p>
<p>High Availability</p>
<p>Scaling</p>
<p>Cluster</p>
</section>
<section id="the-dot-in-dot-com" class="slide level2">
<img src='/images/m_img_23895.jpg' />
</section>
<section id="sun-lessons" class="slide level2">
<h1>Lessons from Sun</h1>
<ul>
<li>Simple is better than complex</li>
<li>Assume failure</li>
<li>Use cheap servers, not expensive servers</li>
<li>Scale out, not up</li>
</ul>
</section>
<section id="who-was-I-drizzle" class="slide level2">
<h1>Who was I?</h1>
<img style="float:right; margin-right:24pt; width:300px; height: auto" src="/images/Drizzle-logotype.svg" />
<p>Fork of MySQL</p>
<p>Modern C++0x</p>
<p>Microkernel Design</p>
</section>
<section id="two-better-than-one" class="slide level2" data-transition="zoom">
<h1>Why have one when you can have two at twice the price?</h1>
</section>
<section id="database-for-the-cloud" class="slide level2">
<h1>"A Database For The Cloud"</h1>
<ul>
<li>Removed bloat (triggers, stored procedures, mediumint)</li>
<li>Sensible Defaults - no config needed</li>
<li>Moved data dictionary into InnoDB tablespace</li>
<li>Immediate Ancestor of OpenStack's Gating</li>
</ul>
</section>
<section id="what-can-we-throw-out" class="slide level2">
<blockquote>
We used to sit around in the Unix Room saying,
'<em>What can we throw out?</em>
Why is there this option?' It's often because there is some deficiency
in the basic design — you didn't really hit the right design point.
Instead of adding an option, think about what was forcing you to add
that option.
</blockquote>
<h3>Doug McIlroy, 2005</h3>
</section>
<section id="unix-philosophy" class="slide level2">
<h1>UNIX philosophy</h1>
<ul>
<li>Make each program do one thing well. To do a new job, build afresh
rather than complicate old programs by adding new "features".</li>
<li>Expect the output of every program to become the input to another,
as yet unknown, program. Don't clutter output with extraneous
information. Avoid stringently columnar or binary input formats.
Don't insist on interactive input.</li>
<li>Design and build software, even operating systems, to be tried
early, ideally within weeks. Don't hesitate to throw away the clumsy
parts and rebuild them.</li>
<li>Use tools in preference to unskilled help to lighten a programming
task, even if you have to detour to build the tools and expect to
throw some of them out after you've finished using them.</li>
</ul>
<h3>Doug McIlroy, Bell System Technical Journal, 1978</h3>
</section>
<section id="unix-philosophy" class="slide level2">
<blockquote>
the power of a system comes more from the relationships among programs
than from the programs themselves
</blockquote>
<h3>The Unix Programming Environment</h3>
<h3>Brian Kernighan and Rob Pike</h3>
</section>
<section class="slide level2">
<h1>Cloud Native Is ... </h1>
<ul>
<li>Architectural and operational approach</li>
<li>Assume cloud</li>
<li>Assume failures</li>
<li>Microservices</li>
<li>Containerized?</li>
</ul>
</section>
<section class="slide level2">
<h1>12 Factor Application</h1>
<h3>I. Codebase - One codebase tracked in revision control, many deploys
</h3>
<h3>II. Dependencies - Explicitly declare and isolate dependencies</h3>
<h3>III. Config - Store config in the environment</h3>
<h3>IV. Backing services - Treat backing services as attached resources</h3>
<h3>V. Build, release, run - Strictly separate build and run stages</h3>
<h3>VI. Processes - Execute the app as one or more stateless processes</h3>
<h3>VII. Port binding - Export services via port binding</h3>
<h3>VIII. Concurrency - Scale out via the process model</h3>
<h3>IX. Disposability - Maximize robustness with fast startup and graceful shutdown</h3>
<h3>X. Dev/prod parity - Keep development and production as similar as possible</h3>
<h3>XI. Logs - Treat logs as event streams</h3>
<h3>XII. Admin processes - Run admin/management tasks as one-off processes</h3>
</section>
<section class="slide level2" data-transition='zoom'>
<h1>This is awesome</h1>
</section>
<section class="slide level2" data-transition='zoom'>
<h1>Except for III</h1>
<h2>I use config files</h2>
<h3 class="fragment">Ooops</h3>
</section>
<section class="slide level2" data-transition='zoom'>
<h1>VI. Stateless</h1>
<h2>If /dev/null is fast in web scale I will use it. Is it web scale?</h2>
<h3 class="fragment">Use a service to store your data - like a database</h3>
<h3 class="fragment">Is that database service web scale?</h3>
</section>
<section class="slide level2">
<blockquote>
If /dev/null is fast in web scale I will use it. Is it web scale?
</blockquote>
<h3>MongoDB is web scale</h3>
<p><a href='http://www.mongodb-is-web-scale.com/'>
http://www.mongodb-is-web-scale.com</a></p>
</section>
<section class="slide level2">
<blockquote>
The tragedy of modern man is not that he knows less and less about
the meaning of his own life, but that it bothers him less and less.
</blockquote>
<h3>Václav Havel</h3>
</section>
<section id="datacenter-as-computer" class="slide level2">
<blockquote>
As computation continues to move into the cloud, the computing platform
of interest no longer resembles a pizza box or a refrigerator, but a
warehouse full of computers. ... in other words, we must treat the
datacenter itself as one massive warehouse-scale computer.
</blockquote>
<h3>The Datacenter as a Computer: An Introduction to the Design of Warehouse-Scale Machines</h3>
<h3>Luiz André Barroso, Urs Hölzle - 2009</h3>
<p><a href='https://research.google.com/pubs/pub35290.html'>
https://research.google.com/pubs/pub35290.html</a></p>
</section>
<section id="unix-portable" class="slide level2">
<blockquote>
The use of top-down design methods and high-level languages in
producing portable applications software is well established. By
applying the same principles at the systems programming level,
portability can be extended to the operating system itself. Although
the Unix operating system was developed for a specific computer (the
DEC PDPll), its concise and elegant design and the careful selection
of 'primitives' which it provides make it an ideal candidate for
portability.
</blockquote>
<h3>UNIX: a portable operating system?</h3>
<h3>Richard Miller - 1978</h3>
</section>
<section class="slide level2" data-transition='zoom'>
<h1>If the datacenter is the new computer ...</h1>
</section>
<section class="slide level2" data-transition='zoom'>
<h1>Then the power of OpenStack is as a portable Operating System</h1>
</section>
<section class="slide level2" data-transition='zoom'>
<h1>Just as MVS was an Operating System for IBM System/370 ...</h1>
</section>
<section class="slide level2" data-transition='zoom'>
<h1>AWS is an Operating System specific to Amazon Datacenters</h1>
</section>
<section class="slide level2" data-transition='zoom'>
<h1>Google Cloud is an Operating System specific to Google
Datacenters</h1>
</section>
<section class="slide level2" data-transition='zoom'>
<h1>If sets of cheaper commodity servers are superior to fancy custom
built high-end hardware ...</h1>
</section>
<section class="slide level2" data-transition='zoom'>
<h1>Then commodity data centers with a common Operating System should
be better than fancy data centers controlled by one or two companies
</h1>
</section>
<section class="slide level2">
<h1>Linux won the battle for single-computer Operating Systems.</h1>
</section>
<section class="slide level2">
<h1>Let's win the battle for a Free, Open and Portable Operating System
for warehouse-scale computers.</h1>
</section>
</body>
</html>