Commits

Charles McLaughlin committed d1a34fc

changes/additions on the plane ride

Comments (0)

Files changed (4)

images/ga.png

Old
Old image
New
New image

images/hardware-iteration-1.png

Old
Old image
New
New image

images/hardware-iteration-2.png

Old
Old image
New
New image
   <h2>Pythonista</h2>
   <ul><li>Zope, Plone, TurboGears, Django</li></ul>
   <h2>@mclaughlinct</h2>
+  <div class="right-align">
+    <img src="images/rack.jpg">
+  </div>
 </div>
 
 <div class="slide">
-  <h1>About Me</h1>
+  <h1>Charles McLaughlin</h1>
   <h2>System Administrator</h2>
   <h2>Pythonista</h2>
   <ul><li><strike>Zope, Plone, TurboGears</strike>, Django</li></ul>
 </div>
 
 <div class="slide">
-  <h1>Our Infrastructure - Frontends</h1>
+  <h1>Our Infrastructure - Frontend</h1>
+  <h2>Nginx</h2>
   <h2>Django</h2>
+  <h2>Gunicorn</h2>
   <h2>Pgbouncer</h2>
   <h2>Memcached</h2>
-  <h2>Gunicorn</h2>
   <h2>Celeryd</h2>
-  <h2>Nginx</h2>
   <h2>Supervisord</h2>
 </div>
 
 <div class="slide">
+  <h1>Our Infrastructure - Backend</h1>
+  <h2>PostgreSQL 9</h2>
+  <h2>RabbitMQ</h2>
+  <h2>Redis</h2>
+  <h2>NFS</h2>
+  <h2>CloudFront</h2>
+  <h2>Stunnel</h2>
+  <h2>HAProxy</h2>
+</div>
+
+<div class="slide">
   <h1>Typical HTTP Request</h1>
   <h2>FIXME diagram goes here</h2>
 </div>
 
 <div class="slide">
-  <h1>Our Infrastructure - Backend</h1>
-  <h2>PostgreSQL 9</h2>
-  <h2>RabbitMQ</h2>
-  <h2>Redis</h2>
-  <h2>NFS</h2>
-</div>
-
-<div class="slide">
   <h1>Our Infrastructure</h1>
   <h2>One size does not fit all, there is no recipe</h2>
-  <h2>We've gone from small to medium</h2>
-  <h2>Preparing to scale from medium to large</h2>
+  <h2>We've scaled from small to medium</h2>
+  <h2>Currently scaling from medium to large</h2>
   <h2>Focusing on high availability</h2>
 </div>
 
 </div>
 
 <div class="slide">
-  <h1>More Storage</h1>
+  <h1>Storage++</h1>
   <a href="images/hardware-iteration-4.png" target="_blank">
     <img src="images/hardware-iteration-4.png">
   </a>
 </div>
 
 <div class="slide">
+  <h1>Dev Cycles<h1>
+  <h2>One or two week iterations</h2>
+  <h2>Local development</h2>
+  <h2>Push to staging, pull to production</h2>
+  <h2>Staging matches production</h2>
+  <ul><li>Cobbler, Koan, KVM, Puppet</li></ul>
+  <h2>Rotating release manager/deployer role</h2>
+</div>
+
+<div class="slide">
+  <h1>Testing</h1>
+  <h2>Selenium and Cram for functional tests</h2>
+  <ul><li>Nose tests driven by Bamboo</li></ul>
+  <h2>status.bitbucket.org</h2>
+  <ul><li>Twill tests driven by Django Kong</li></ul>
+  <h2>Beta features</h2>
+  <ul>
+    <li>Designed our own middleware</li>
+    <li>Recently switched to Django Waffle</li>
+  </ul>
+</div>
+
+<div class="slide">
+  <h1>Deployment</h1>
+  <h2>Puppet right up to our apps</h2>
+  <h2>pip and virtualenv</h2>
+  <h2>Scheduled deploys, hotfixes anytime</h2>
+  <h2>Upgrades are easy</h2>
+</div>
+
+<div class="slide">
+  <h1>Deployment</h1>
+  <h2>Puppet right up to our apps</h2>
+  <h2>pip and virtualenv</h2>
+  <h2>Scheduled deploys, hotfixes anytime</h2>
+  <h2>Upgrades are easy</h2>
+  <ul><li>hg pull -u && kill -HUP `cat local/*pid`</li></ul>
+</div>
+
+<div class="slide">
+  <h1>Monitoring</h1>
+  <h2>Good</h2>
+  <ul>
+    <li>Configured by Puppet
+      <ul>
+	<li>Nagios</li>
+	<li>Munin</li>
+	<li>Monit</li>
+      </ul>
+    </li>
+  </ul>
+  <ul>
+    <li>Cacti</li>
+  </ul>
+</div>
+
+<div class="slide">
+  <h1>Monitoring</h1>
+  <h2>Bad</h2>
+  <ul><li>cron</li></ul>
+  <br/>
+  <h2>Ugly</h2>
+  <ul><li>Hyperic</li></ul>
+</div>
+
+<div class="slide">
+  <h1>Monitoring - Example</h1>
+  <h2>FIXME - example of auto-monitored services with puppet</h2>
+</div>
+
+<div class="slide">
+  <h1>Stress Testing</h1>
+  <h2>I/O</h2>
+  <ul><li>FIXME bonnie++ example</li></ul>
+  <h2>Postgres</h2>
+  <ul><li>FIXME pgbench example</li></ul>
+  <h2>Network</h2>
+  <ul><li>Beware of c-states and Broadcom NICs on recent kernels - FIXME link</li></ul>
+</div>
+
+<div class="slide">
+  <h1>Must Have Django Apps</h1>
+  <h2>South</h2>
+  <h2>Piston</h2>
+  <h2>Dogslow</h2>
+  <h2>Fabric</h2>
+  <h2>Django Debug Toolbar/h2>
+</div>
+
+<div class="slide">
   <br/>
   <br/>
   <h3>Questions or comments?</h2>