<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Kitchen Soap</title>
	
	<link>http://www.kitchensoap.com</link>
	<description>Thoughts on capacity planning and web operations.</description>
	<lastBuildDate>Fri, 25 Jun 2010 04:05:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/KitchenSoap" /><feedburner:info uri="kitchensoap" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>Ops Meta-Metrics: Velocity 2010 Slides</title>
		<link>http://www.kitchensoap.com/2010/06/24/ops-meta-metrics-velocity-2010-slides/</link>
		<comments>http://www.kitchensoap.com/2010/06/24/ops-meta-metrics-velocity-2010-slides/#comments</comments>
		<pubDate>Fri, 25 Jun 2010 04:05:16 +0000</pubDate>
		<dc:creator>allspaw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kitchensoap.com/?p=483</guid>
		<description><![CDATA[As expected, Velocity was excellent this year. What an awesome time to be in this field.
Caveat for those who didn&#8217;t see/hear my talk: the graphs and numbers in the slides are, for the most part, made up. But they&#8217;re also in line with what I&#8217;ve seen at Flickr and Etsy.
Ops Meta-Metrics: The Currency You Pay [...]]]></description>
			<content:encoded><![CDATA[<p>As expected, Velocity was excellent this year. What an awesome time to be in this field.</p>
<p>Caveat for those who didn&#8217;t see/hear my talk: the graphs and numbers in the slides are, for the most part, made up. But they&#8217;re also in line with what I&#8217;ve seen at Flickr and Etsy.</p>
<div id="__ss_4608108" style="width: 425px;"><strong style="display:block;margin:12px 0 4px"><a title="Ops Meta-Metrics: The Currency You Pay For Change" href="http://www.slideshare.net/jallspaw/ops-metametrics-the-currency-you-pay-for-change">Ops Meta-Metrics: The Currency You Pay For Change</a></strong><object id="__sse4608108" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=velocity2010-opsmetrics-100624184852-phpapp01&amp;stripped_title=ops-metametrics-the-currency-you-pay-for-change" /><param name="name" value="__sse4608108" /><param name="allowfullscreen" value="true" /><embed id="__sse4608108" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=velocity2010-opsmetrics-100624184852-phpapp01&amp;stripped_title=ops-metametrics-the-currency-you-pay-for-change" name="__sse4608108" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding:5px 0 12px">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/jallspaw">John Allspaw</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.kitchensoap.com/2010/06/24/ops-meta-metrics-velocity-2010-slides/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Some WebOps Interview Questions</title>
		<link>http://www.kitchensoap.com/2010/05/26/some-webops-interview-questions/</link>
		<comments>http://www.kitchensoap.com/2010/05/26/some-webops-interview-questions/#comments</comments>
		<pubDate>Wed, 26 May 2010 14:34:31 +0000</pubDate>
		<dc:creator>allspaw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kitchensoap.com/?p=476</guid>
		<description><![CDATA[It can be difficult to evaluate web ops candidates, for a couple of different reasons. One is that the breadth of knowledge needed for the field can be pretty wide, so spending too much time on any particular technical area can be a waste of time. Another reason is that it can be difficult to [...]]]></description>
			<content:encoded><![CDATA[<p>It can be difficult to evaluate <a title="Senior Operations Engineer" href="http://www.etsy.com/jobs/job_description.php?job_id=oFLiVfwn" target="_blank">web ops candidates</a>, for a couple of different reasons. One is that the breadth of knowledge needed for the field can be pretty wide, so spending too much time on any particular technical area can be a waste of time. Another reason is that it can be difficult to gauge how collaborative someone&#8217;s demeanor is in an interview. Collaboration is a <em>requirement</em> at Etsy. <img src='http://www.kitchensoap.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>So in addition to the standard technical questions, I like to ask high-level questions where the answers can zoom in and out of a larger picture within the operations context.</p>
<ul>
<li>Diagram the current architecture you&#8217;re responsible for, and point  out where it&#8217;s not scalable or fault-tolerant.</li>
<li>What are some examples of how you might scale a <em><strong>read-heavy</strong></em> application? Why?</li>
<li>What are some examples of how you might scale a <em><strong>write-heavy</strong></em> application? Why?</li>
<li>Tell me how code gets deployed in your current gig, from developer&#8217;s brain to production.</li>
<li>Tell the story of the best-run outage you&#8217;ve been a part of, in as much detail as you can. What  made it &#8220;good&#8221;?</li>
<li>Tell the story of the worst-run outage you&#8217;ve been a part of, in as much detail as you can. What  made it &#8220;bad&#8221;?</li>
<li>What is the purpose of a post-mortem meeting?</li>
<li>How do you handle (and feel about) making changes (code/schema/network/etc.) in your current environment?</li>
</ul>
<p>These are purposefully open-ended questions meant to dig into what&#8217;s important to you as someone responsible for the performance and availability of a growing website.  This is just a snippet of what we normally ask, in addition to my (and <a title="Jesse Robbins" href="http://radar.oreilly.com/jesse/" target="_blank">Jesse</a>&#8217;s) favorite <a href="http://radar.oreilly.com/2009/05/velocity-conference-big-ideas.html" target="_blank">interview question</a>.</p>
<p>So: maybe you should take a look at the type of ops engineers we&#8217;re <a href="http://www.etsy.com/jobs/job_description.php?job_id=oFLiVfwn" target="_blank">looking for</a>, and apply? <img src='http://www.kitchensoap.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.kitchensoap.com/2010/05/26/some-webops-interview-questions/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>The new book: Web Operations</title>
		<link>http://www.kitchensoap.com/2010/05/23/the-new-book-web-operations/</link>
		<comments>http://www.kitchensoap.com/2010/05/23/the-new-book-web-operations/#comments</comments>
		<pubDate>Mon, 24 May 2010 02:21:34 +0000</pubDate>
		<dc:creator>allspaw</dc:creator>
				<category><![CDATA[Book]]></category>
		<category><![CDATA[WebOps]]></category>

		<guid isPermaLink="false">http://www.kitchensoap.com/?p=430</guid>
		<description><![CDATA[
At the Velocity Conference last year, I was talking to Mike Loukides from O&#8217;Reilly about the topics being presented and how it was so great to see such successful veterans of the field come out from behind the curtain and share their experiences. Mike said that there was interest in doing a book on the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://oreilly.com/catalog/0636920000136"><img class="alignleft size-full wp-image-455" title="Web Operations" src="http://www.kitchensoap.com/wp-content/uploads/2010/05/cat.gif" alt="Web Operations" width="180" height="236" /></a><br />
At the Velocity Conference last year, I was talking to <a title="Mike Loukides" href="http://www.oreillynet.com/pub/au/29" target="_blank">Mike Loukides</a> from O&#8217;Reilly about the topics being presented and how it was so great to see such successful veterans of the field come out from behind the curtain and share their experiences. Mike said that there was interest in doing a book on the (obviously) broad subject of web operations, in a format similar to the <em>Beautiful </em>books that O&#8217;Reilly has in their <a title="Theory In Practice" href="http://oreilly.com/store/series/theory.html" target="_blank">Theory in Practice</a> series.</p>
<p>Needless to say, I jumped at the chance to help out. Over the following months, <a title="Jesse Robbins" href="http://radar.oreilly.com/jesse/" target="_blank">Jesse Robbins</a> and I wrangled a bunch of topics we thought were integral to the field and authors who could cover them. It&#8217;s in the final stages of being published as we speak, but I think it <a title="Web Operations" href="http://oreilly.com/catalog/9781449377441/" target="_blank">came out pretty damn good</a>.</p>
<p>These folks cranked out great chapters while still doing their day jobs, and it shows. It&#8217;s a great collection of war stories, advice, and hard-earned lessons.</p>
<p>Here is a list of the chapters:</p>
<blockquote><p><em>&#8220;The Web Ops Career Path&#8221;</em> Theo Schlossnagle<br />
<em>&#8220;Cloud Computing At Picnik: Lessons Learned</em>&#8221; Justin Huff<br />
<em>&#8220;Infrastructure and Application Metrics</em>&#8221; Matt Massie and myself<br />
<em>&#8220;Continuous Deployment</em>&#8221; Eric Ries<br />
<em>&#8220;Infrastructure as Code</em>&#8221; Adam Jacob<br />
<em>&#8220;Monitoring</em>&#8221; Patrick Debois<br />
<em>&#8220;How Complex Systems Fail</em>&#8221; Dr. Richard Cook<br />
<em>&#8220;Community Management and Web Operations</em>&#8221; Heather Champ<br />
<em>&#8220;Dealing With Unexpected Traffic Spikes</em>&#8221; Brian Moon<br />
<em>&#8220;Dev and Ops Cooperation and Collaboration</em>&#8221; Paul Hammond<br />
<em>&#8220;How Your Visitors Feel: User-Facing Metrics</em>&#8221; Alistair Croll and Sean Power<br />
<em>&#8220;Relational Database Strategy and Tactics For The Web</em>&#8221; Baron Schwartz<br />
<em>&#8220;The Art and Science of Postmortems</em>&#8221; Jacob Loomis<br />
<em>&#8220;Managing Web Storage</em>&#8221; Anoop Nagwani<br />
<em>&#8220;Nonrelational Datastores</em>&#8221; Eric Florenzano<br />
<em>&#8220;Agile Infrastructure</em>&#8221; Andrew Clay Shafer<br />
<em>&#8220;Things That Go Bump In The Night (And How To Sleep Through Them)&#8221;</em> Michael Christian</p></blockquote>
<p>Royalties from the sales will go to the national <a title="826 Valencia" href="http://www.826national.org/" target="_blank">826 Valencia</a> organization, which  is dedicated to supporting students ages 6 to 18 with their writing  skills. They do this by offering free drop-in tutoring at eight different locations around the country, as well as special events, student publishing, and scholarships.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kitchensoap.com/2010/05/23/the-new-book-web-operations/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>We’re hiring ops folks at Etsy!</title>
		<link>http://www.kitchensoap.com/2010/04/23/were-hiring-ops-folks-at-etsy/</link>
		<comments>http://www.kitchensoap.com/2010/04/23/were-hiring-ops-folks-at-etsy/#comments</comments>
		<pubDate>Sat, 24 Apr 2010 00:13:51 +0000</pubDate>
		<dc:creator>allspaw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kitchensoap.com/?p=424</guid>
		<description><![CDATA[We&#8217;re hiring web ops engineers at Etsy.  Here&#8217;s the gist of it&#8230;.
Responsibilities

 Building and maintaining Etsy&#8217;s infrastructure, from installed iron  to production
 Taking part in a 24&#215;7 on-call rotation
 Tightly cooperating and collaborating with development, product,  community and customer care

Requirements

 Experience with configuration management systems and concepts  (Chef, Puppet, Cfengine, etc.)
 Experience [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re <a href="http://bit.ly/bjDn8m" target="_blank">hiring web ops engineers</a> at Etsy.  Here&#8217;s the gist of it&#8230;.</p>
<blockquote><p><span style="text-decoration: underline;"><strong>Responsibilities</strong></span></p>
<ul>
<li> Building and maintaining Etsy&#8217;s infrastructure, from installed iron  to production</li>
<li> Taking part in a 24&#215;7 on-call rotation</li>
<li> Tightly cooperating and collaborating with development, product,  community and customer care</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Requirements</strong></span></p>
<ul>
<li> Experience with configuration management systems and concepts  (Chef, Puppet, Cfengine, etc.)</li>
<li> Experience in systems programming and general scripting tasks  (perl, bash, php, python, etc.)</li>
<li> Experience with high-volume web applications with social components</li>
<li> Experience with multi-datacenter architectures, global fault  tolerance, and CDNs</li>
<li> Experience with fault-tolerant replication strategies</li>
<li> Experience with mission-critical search and realtime database  architectures (Solr, Lucene, MySQL, Mongodb, Postgres, etc.)</li>
<li> Experience working with customizing network management systems and  monitoring tools (Nagios, Ganglia, Graphite, Cacti, etc.)</li>
<li> Strong understanding of web application architecture, including  TCP/IP and HTTP, and caching strategies at all layers</li>
<li> Support of software engineers and their development environment and  code repository (Subversion), including code deployment to production</li>
<li> Enterprise experience with internal core systems, such as but not  limited to DNS, LDAP, NTP</li>
<li> Experience with data center management, including strong knowledge  of power, space, and cooling issues</li>
<li> Experience with credit card gateways and PCI compliance issues</li>
<li> Excellent communication skills, both written and verbal</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Bonus</strong></span></p>
<ul>
<li> Experience in a &#8220;continuous deployment&#8221; environment</li>
<li>Experience in social networking or community-generated content</li>
<li>Experience with managing the infrastructure for a growing open API</li>
<li>Database query optimization</li>
<li>Hands-on network security tasks, including VPNs/firewalls  configuration</li>
<li>Network experience with BGP, EIGRP, OSPF, VLAN, PVLAN,Spanning-Tree,  MSTI</li>
<li>Knowledge of programming languages such as Python, PHP, JAVA, Ruby</li>
</ul>
</blockquote>
<p>This is a great place to work.  We work on <em>real</em> problems, and there&#8217;s plenty of juicy technology to sink your teeth into.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kitchensoap.com/2010/04/23/were-hiring-ops-folks-at-etsy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Pigz – parallel gzip OMG</title>
		<link>http://www.kitchensoap.com/2010/04/02/pigz-parallel-gzip-omg/</link>
		<comments>http://www.kitchensoap.com/2010/04/02/pigz-parallel-gzip-omg/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 21:53:02 +0000</pubDate>
		<dc:creator>allspaw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kitchensoap.com/?p=414</guid>
		<description><![CDATA[Pigz is basically parallel gzip, to take advantage of multiple cores.  When you&#8217;ve got massive files, this can be a pretty big advantage, especially when you&#8217;ve got lots of cores sitting around.
Taking a 418m squid access log file, on a dual-quad Nehalem L5520  with HyperThreading turned on:
[jallspaw@server01 ~]$ ls -lh daemon.log.2; time gzip ./daemon.log.2 ; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zlib.net/pigz/" target="_blank">Pigz</a> is basically parallel gzip, to take advantage of multiple cores.  When you&#8217;ve got massive files, this can be a pretty big advantage, especially when you&#8217;ve got lots of cores sitting around.</p>
<p>Taking a 418m squid access log file, on a dual-quad Nehalem L5520  with HyperThreading turned on:</p>
<blockquote><p>[jallspaw@server01 ~]$ ls -lh daemon.log.2; time gzip ./daemon.log.2 ; ls -lh ./daemon.log.2.gz<br />
-rw-r&#8212;&#8211; 1 jallspaw jallspaw 418M Apr  2 19:18 daemon.log.2</p></blockquote>
<blockquote><p><strong><span style="color: #ff0000;">real    0m12.398s</span></strong><br />
user    0m12.107s<br />
sys     0m0.288s<br />
-rw-r&#8212;&#8211; 1 jallspaw jallspaw 45M Apr  2 19:18 ./daemon.log.2.gz</p></blockquote>
<p>&#8230;now gunziping it:</p>
<blockquote><p>[jallspaw@server01 ~]$ ls -lh daemon.log.2.gz; time gunzip ./daemon.log.2 ; ls -lh ./daemon.log.2<br />
-rw-r&#8212;&#8211; 1 jallspaw jallspaw 45M Apr  2 19:18 daemon.log.2.gz</p></blockquote>
<blockquote><p>real    0m3.245s<br />
user    0m2.693s<br />
sys     0m0.552s<br />
-rw-r&#8212;&#8211; 1 jallspaw jallspaw 418M Apr  2 19:18 ./daemon.log.2</p></blockquote>
<p>htop looks like this when this is happening:</p>
<div class="wp-caption alignnone" style="width: 500px">
	<a href="http://www.flickr.com/photos/allspaw/4484631099/in/photostream/"><img title="Gzip" src="http://farm3.static.flickr.com/2687/4484631099_bdfc81441d.jpg" alt="1 CPU core, 418mb file gzipped in 12.3 sec" width="500" height="400" /></a>
	<p class="wp-caption-text">1 CPU core, 418mb file gzipped in 12.3 sec</p>
</div>
<p>(Note the freeloading/lazy 15 cores sitting around watching its friend core #10 sweating)</p>
<p>&#8230;now pigz&#8217;ing it:</p>
<blockquote><p>[jallspaw@server01 ~]$ ls -lh daemon.log.2; time ./pigz-2.1.6/pigz ./daemon.log.2 ; ls -lh ./daemon.log.2.gz<br />
-rw-r&#8212;&#8211; 1 jallspaw jallspaw 418M Apr  2 19:18 daemon.log.2</p></blockquote>
<blockquote><p><strong><span style="color: #00ff00;">real    0m1.569s</span></strong><br />
user    0m23.092s<br />
sys     0m0.422s<br />
-rw-r&#8212;&#8211; 1 jallspaw jallspaw 45M Apr  2 19:18 ./daemon.log.2.gz</p></blockquote>
<p>&#8230;now unpigz&#8217;ing it:</p>
<blockquote><p>[jallspaw@server01 ~]$ ls -lh daemon.log.2.gz; time ./pigz-2.1.6/unpigz ./daemon.log.2.gz ; ls -lh ./daemon.log.2<br />
-rw-r&#8212;&#8211; 1 jallspaw jallspaw 45M Apr  2 19:18 daemon.log.2.gz</p></blockquote>
<blockquote><p>real    0m1.456s<br />
user    0m1.861s<br />
sys     0m0.867s<br />
-rw-r&#8212;&#8211; 1 jallspaw jallspaw 418M Apr  2 19:18 ./daemon.log.2</p></blockquote>
<p>and htop looks like this when it&#8217;s happening:</p>
<div class="wp-caption alignnone" style="width: 500px">
	<a href="http://www.flickr.com/photos/allspaw/4485281616/in/photostream/"><img title="Pigz" src="http://farm5.static.flickr.com/4053/4485281616_0ffe02982c.jpg" alt="16 CPU cores, 418mb pigzd in 1.5sec" width="500" height="400" /></a>
	<p class="wp-caption-text">16 CPU cores, 418mb pigz&#39;d in 1.5sec</p>
</div>
<p>which do you like better?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kitchensoap.com/2010/04/02/pigz-parallel-gzip-omg/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Agile Executive Podcast</title>
		<link>http://www.kitchensoap.com/2010/02/12/agile-executive-podcast/</link>
		<comments>http://www.kitchensoap.com/2010/02/12/agile-executive-podcast/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 14:47:58 +0000</pubDate>
		<dc:creator>allspaw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kitchensoap.com/?p=408</guid>
		<description><![CDATA[Yesterday I was on a podcast with Andrew Shafer and Michael Coté, and we talked about development and operations cooperation. I rambled a bit, like I tend to do.
Andrew brought up something that&#8217;s disturbing, and I&#8217;ve seen elsewhere, which is that after seeing our presentation last year at Velocity, some folks decided that we somehow [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I was on a <a href="http://www.redmonk.com/cote/2010/02/11/agileexec008/" target="_blank">podcast</a> with <a href="http://stochasticresonance.wordpress.com/" target="_blank">Andrew Shafer</a> and <a href="http://www.redmonk.com/cote/" target="_blank">Michael Coté</a>, and we talked about development and operations cooperation. I rambled a bit, like I tend to do.</p>
<p>Andrew brought up something that&#8217;s disturbing, and I&#8217;ve seen <a href="http://news.ycombinator.com/item?id=1068098" target="_blank">elsewhere</a>, which is that after seeing our presentation last year at Velocity, some folks decided that we somehow gave an endorsement to the idea of pushing your code whenever you want, and let the &#8216;ops guys&#8217; deal with whatever comes as a result. Which isn&#8217;t at all what we suggested, and pretty much against the ideas of cooperation and communication between the dev and ops teams. I talk a bit about this in the podcast.</p>
<p>You have to <em>prove</em> that pushing whenever you want is an ok (safe, secure, etc.) thing to do. And the minute you can&#8217;t prove it, and you decide to continue that way&#8230;.IMHO: you&#8217;re doing it wrong. <img src='http://www.kitchensoap.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.kitchensoap.com/2010/02/12/agile-executive-podcast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Need some FUDforum consulting done</title>
		<link>http://www.kitchensoap.com/2010/02/09/need-some-fudforum-consulting-done/</link>
		<comments>http://www.kitchensoap.com/2010/02/09/need-some-fudforum-consulting-done/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 13:41:40 +0000</pubDate>
		<dc:creator>allspaw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kitchensoap.com/?p=406</guid>
		<description><![CDATA[I&#8217;ve been helping out a friend for some years with running a decent-size discussion forum. It&#8217;s running on a little (512mb of RAM) dedicated server and it&#8217;s outgrown the box it&#8217;s on. It needs to move to a new machine, which is all ready to take it.
Problem is, it&#8217;s in a twisty-maze of dependencies. It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been helping out a friend for some years with running a decent-size discussion forum. It&#8217;s running on a little (512mb of RAM) dedicated server and it&#8217;s outgrown the box it&#8217;s on. It needs to move to a new machine, which is all ready to take it.</p>
<p>Problem is, it&#8217;s in a twisty-maze of dependencies. It&#8217;s running FUDforum <span>2.6.4RC1, on MySQL 3.23, on RedHat 9 (!). It needs to somehow get backed up, moved, and upgraded to latest FUDforum (3.0.0) and MySQL 5, on the new machine.</span></p>
<p><span>It&#8217;s not 100% straightforward, needs someone who&#8217;s done this before, and someone who isn&#8217;t me, because of the new job and all. </span></p>
<p><span>If you know someone who can help out, please email me where my email address is jallspaw which is located on a server whose domain name is yahoo.com.</span></p>
<p><span>Thanks!</span></p>
<p><span><strong>UPDATE: I found a guy.  And he&#8217;s great with FUDForum. Excellent!  Thanks all those who emailed!</strong><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kitchensoap.com/2010/02/09/need-some-fudforum-consulting-done/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deployment is just a part of dev/ops cooperation, not the whole thing</title>
		<link>http://www.kitchensoap.com/2009/12/12/devops-cooperation-doesnt-just-happen-with-deployment/</link>
		<comments>http://www.kitchensoap.com/2009/12/12/devops-cooperation-doesnt-just-happen-with-deployment/#comments</comments>
		<pubDate>Sun, 13 Dec 2009 03:14:41 +0000</pubDate>
		<dc:creator>allspaw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kitchensoap.com/?p=372</guid>
		<description><![CDATA[Dev/Ops is what some people are calling the renewed cross-interest in development and operations collaboration. Hammond and I spoke about it, and there was even a conference in Europe dedicated to it. While I do think that there&#8217;s still a lot more that is to be discussed around this idea of cooperation and mixing of [...]]]></description>
			<content:encoded><![CDATA[<p>Dev/Ops is what some people are calling the renewed cross-interest in development and operations collaboration. Hammond and I spoke about it, and there was even a <a href="devopsdays.org" target="_blank">conference in Europe dedicated to it</a>. While I do think that there&#8217;s still a lot more that is to be discussed around this idea of cooperation and mixing of approaches, this is a Very Good Thing™.</p>
<p>In what <a href="http://stochasticresonance.wordpress.com/" target="_blank">Andrew</a> has called &#8216;<a href="http://www.slideshare.net/littleidea/agile-infra-agileroots-2009" target="_blank">boundary objects</a>&#8216;, deployment of new code has been a rallying point for the devops crowd, and I think that&#8217;s great. Deployment is definitely one of the places where the rubber meets the road. In some organizations, deployment of new code can be the single-most stressful and dividing parts of their work. People get fired or quit because of the emotional baggage that can come with an event that in the worst case, is nothing more than a planned outage disguised as progress and a followup finger-pointing session. Some groups have such dysfunction that they might as well just not even deploy the code.  Just skip that part, head into a conference room, and fight bareknuckle. Toxic would be the nice way of describing those environments.</p>
<p>So it&#8217;s no wonder that a lot of the emphasis in this growing &#8220;devops&#8221; community is on deployment. Whether it&#8217;s providing confidence in changes with rigorous testing, deploying small changes often, dark launching, feature flags, or building a one-button deploy system &#8211; any effort to reduce the risk of change should be considered mandatory, IMHO.</p>
<p>But at the same time, deployment is only just a  <em>part</em> of what really makes a great environment for development and operations to collaborate. Really. It&#8217;s not just about developers collaborating on deployment and releases. It&#8217;s about both teams understanding each other&#8217;s responsibilities <strong>after </strong>code is deployed to production, and collaborating along the areas of their expertise in a way that&#8217;s constructive.</p>
<p>Good Operations teams already write code, just not usually user-facing code. They spend a good deal of their time writing code to gather information from the infrastructure and act on it with short, medium, or long-term goals, usually aimed at performance and availability.</p>
<p>I&#8217;ll say that things like:</p>
<ul>
<li>metrics collection</li>
<li>monitoring and associated thresholds</li>
<li>load-feedback behavior</li>
<li>instrumentation</li>
<li>fault tolerance</li>
</ul>
<p>should also be considered boundary objects between development and ops.</p>
<p>This is some of what I mean by that:</p>
<p><strong>Metrics collection</strong></p>
<p>I&#8217;ve said this before, but <a href="http://www.kitchensoap.com/2009/05/10/context-and-operational-metrics/" target="_blank">context is absolutely everything</a>. Application-level or feature-level metrics is what gives the missing context to in-the-box resource usage like CPU, disk, memory, or network. At Flickr, the ops group maintains a number of different platforms for gathering metrics, like ganglia. To make it easy to add metrics, some of our backend applications will just write a temp file with key value pairs that we want to have squirted into ganglia.  Like:</p>
<blockquote><p>image_processed=30</p>
<p>image_processing_time=5</p></blockquote>
<p>and ganglia&#8217;s gmetric cron job will pick that up every minute with the key as the metric name, and the value as, well, the value.</p>
<p>This means that all developers have to do is drop that file into an expected location and it will do the right thing. No tickets for making a new metric, no need for writing yet another script to gather a single metric, no need to understand the intricacies of whatever metrics collection system you have.</p>
<p>That&#8217;s an example of technical collaboration between the two groups. The missing piece is the cultural bits, which is the developer communicating their motivation behind getting these in-app metrics gathered and put on a graph. This gives the metric context, and might give ops some ideas on how they could use the metric for monitoring, capacity, or other purposes.</p>
<p><strong>Monitoring</strong></p>
<p>Involving development in designing your monitoring system can help provide a great perspective on failure modes. Peer code reviews are common in software development, so why shouldn&#8217;t monitors be reviewed? It&#8217;s still code, and it&#8217;s going to provide your humans (and maybe machines) with the data needed to fail gracefully, heal itself, or inform developers on what their constraints are when building new things. Your monitoring system is just like your code in that it should always be evolving, alongside your growth.</p>
<p>Remember all the <a href="http://www.watchingwebsites.com/archives/google-analytics-alerts-the-start-of-a-complete-view" target="_blank">raves</a> about Google Analytics adding &#8220;intelligence&#8221; and alerts? Having some notion of thresholds isn&#8217;t just for people answering pages from nagios, it&#8217;s for everyone. How else can you gauge your expectations and guide future modifications to your code with respect to resource usage?</p>
<p><strong>Load feedback behavior</strong></p>
<p>Like a lot of smart web infrastructures, we&#8217;ve built an <a href="http://code.flickr.com/blog/2008/09/26/flickr-engineers-do-it-offline/" target="_blank">offline tasks system</a>, which will asyncronously run jobs on our data that don&#8217;t have to be real-time.  If you haven&#8217;t read <a href="http://code.flickr.com/blog/2008/09/26/flickr-engineers-do-it-offline/" target="_blank">Myles&#8217; post</a> on it, you really should. It&#8217;s a huge part of our strategy to avoid pretty common scalability pitfalls.</p>
<p>Anyway, these tasks, which can be relatively hard on the databases (which is one of the reasons why we do them asyncronously in the first place) have some built-in feedback mechanisms: they&#8217;ll check if there&#8217;s an unreasonably high number of concurrent MySQL connections, or if the database shard master-master pair doesn&#8217;t have both servers in production, or otherwise can detect that either what it&#8217;s trying to do on the database is too harsh at the moment. Whether it&#8217;s because of current live traffic being high, or a loss of redundancy, the offline task system will stop what it&#8217;s doing and re-queue it for later. This is a great (and safe) way of schmearing out heavy loads over a longer time period, reducing their risk.</p>
<p>Throw in some metrics collection about the size of those queues, and monitor alerts to do something for low or high-water mark thresholds, and then you&#8217;re cookin&#8217; with gas.</p>
<p><strong>Instrumentation</strong></p>
<p>Through the magic of <a href="http://php.net/manual/en/function.apache-note.php" target="_blank">apache notes</a>, developers can send extremely useful bits from within php code to the access and error logs. At Flickr, we&#8217;ve got some pretty simple notes set to help track things down when there are issues. For example. when I load the page for my photostream, the log line looks something like:</p>
<blockquote><p>www394 123.456.789.012 <span style="color: #ff0000;">5555</span> 173663 [14/Dec/2009:04:08:21 +0000] &#8220;GET /photos/allspaw HTTP/1.1&#8243; &#8211; 200 18233 &#8220;-&#8221; &#8220;Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3&#8243; &#8211; -</p></blockquote>
<p>where <span style="color: #ff0000;">5555</span> is my user id. Since php knows you&#8217;re logged in when you view a certain page, there&#8217;s no reason why we shouldn&#8217;t just log that in the request, so if there are any user-specific issues, it&#8217;s not a needle in a haystack.</p>
<p>Another example are API requests. We&#8217;ll log the api key making the call along with the authenticated user id, even in POST requests. Being able to trace a bullet through the entire request and response via logs is obviously handy. Putting user ids, API methods, and API key specific info into log lines is hugely helpful when troubleshooting issues, especially if you&#8217;re running one of the <a href="http://www.programmableweb.com/apis/directory/1?sort=mashups" target="_blank">most popular APIs on the web</a>.</p>
<p><strong>Fault Tolerance</strong></p>
<p>Ross blogged about how we do <a href="http://code.flickr.com/blog/2009/12/02/flipping-out/" target="_blank">feature flipping</a> last week. He goes over how important (and awesome) this is to our development process, but another one of the advantages of this approach is how it affects operations.</p>
<p>This is an example of development taking an active role in not only deployment, but the time and effort to <em>operationalize</em> features and pieces of code so that in cases of degradation or failure, these individual pieces can be forced to fail gracefully. Our talk at Velocity last year went over some of this, but it&#8217;s still one of the reasons why we can push code thousands of times a year and still have an extremely low MTTR whenever there&#8217;s an issue.</p>
<blockquote><p>New code causing degradation? There&#8217;s an app for that! (it&#8217;s called a feature flag)</p></blockquote>
<p>Anyway, my point is that deployment is only a small part of how development and operations should collaborate and communicate. In fact, dev and ops is only the most obvious starting point for getting along and working together on problems.</p>
<p>Product and community management also have important boundary objects with operations as well, but that&#8217;s for another blog post. <img src='http://www.kitchensoap.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong><br />
</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.kitchensoap.com/2009/12/12/devops-cooperation-doesnt-just-happen-with-deployment/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The epicenter of the web, and NYC</title>
		<link>http://www.kitchensoap.com/2009/12/03/360/</link>
		<comments>http://www.kitchensoap.com/2009/12/03/360/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 23:47:42 +0000</pubDate>
		<dc:creator>allspaw</dc:creator>
				<category><![CDATA[Random]]></category>

		<guid isPermaLink="false">http://www.kitchensoap.com/?p=360</guid>
		<description><![CDATA[One of my apprehensions in moving to New York from San Francisco was a common concern: why would I move from the &#8216;epicenter&#8217; of the web to a place where it&#8217;s not? There&#8217;s been lots written about startup hub cities, and innovative web metro areas, but the fact of the matter is that New York [...]]]></description>
			<content:encoded><![CDATA[<p>One of my apprehensions in moving to New York from San Francisco was a common concern: why would I move from the &#8216;epicenter&#8217; of the web to a place where it&#8217;s not? There&#8217;s been lots <a href="http://www.avc.com/a_vc/2006/05/replicating_sil.html" target="_blank">written</a> about startup hub cities, and innovative web metro areas, but the fact of the matter is that New York hasn&#8217;t historically been a hotbed of web growth and innovation. Not compared to the Bay Area or Seattle, anyway.</p>
<p>I do, of course, think this is changing as of recently. The punch line is that I obviously did <a href="http://www.kitchensoap.com/2009/11/18/from-one-door-to-another/" target="_blank">take the job</a>, despite my misgivings about not being surrounded by people who are constantly thinking about my industry. One of the reasons I got over not being in the &#8216;epicenter&#8217; is that <a href="http://www.avc.com" target="_blank">Fred Wilson</a> and <a href="http://continuations.com/" target="_blank">Albert Wenger</a><strong> </strong> did an insanely good job at convincing me it was a good idea. <img src='http://www.kitchensoap.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Another reason is that I think Etsy is basically a Bay Area company that just happens to be in Brooklyn. I mean that as a compliment.</p>
<p>So while I always had some inkling of what &#8216;epicenter of the web&#8217; means, I was never really sure how that could be measured. Indeed.com has indirectly measured it by the <a href="http://www.indeed.com/jobtrends/information-technology-industry" target="_blank"># of job listings</a>.  O&#8217;Reilly did something similar for the <a href="http://radar.oreilly.com/2006/06/startup-centers.html" target="_blank"># of startup jobs in 2006.</a></p>
<p>Number of jobs is interesting, but I thought it might be fun to measure it by locations of headquarters as seen through the lens of monthly unique users. So, I took the <a href="http://www.quantcast.com/top-sites-1" target="_blank">Quantcast &#8220;Top 100&#8243;</a> sites, found the latitude and longitude of the headquarters of each site via <a href="http://www.crunchbase.com/help/api" target="_blank">Crunchbase&#8217;s API</a>, as well as other bits around the web, and <a href="http://www.aaronland.info/weblog/" target="_blank">Aaron</a> helped out with the excellent <a href="http://modestmaps.com/" target="_blank">Modest Maps</a> to make this:</p>
<div class="wp-caption alignnone" style="width: 500px">
	<a href="http://www.flickr.com/photos/straup/4155793319/in/set-72157622926803950/"><img title="North America" src="http://farm3.static.flickr.com/2568/4155793319_e5e2c6bb7b.jpg" alt="Quantcast Top 100 plotted on U.S. Map, radius = monthly uniques" width="500" height="313" /></a>
	<p class="wp-caption-text">Quantcast Top 100 plotted on U.S. Map, radius = monthly uniques</p>
</div>
<p>Like I said, this doesn&#8217;t change my thoughts about the new job, or what I think &#8216;epicenter of the web&#8217; means. But, still interesting, dontcha think?</p>
<p><strong>UPDATE</strong>: Here&#8217;s a link to the raw data: <a href="http://spreadsheets.google.com/pub?key=tLwD1C5mghn9U3XJj_yqyjw&amp;output=html" target="_blank">http://spreadsheets.google.com/pub?key=tLwD1C5mghn9U3XJj_yqyjw&amp;output=html</a></p>
<p>If there&#8217;s anything wrong, lemme know. <img src='http://www.kitchensoap.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.kitchensoap.com/2009/12/03/360/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>From one door to another</title>
		<link>http://www.kitchensoap.com/2009/11/18/from-one-door-to-another/</link>
		<comments>http://www.kitchensoap.com/2009/11/18/from-one-door-to-another/#comments</comments>
		<pubDate>Thu, 19 Nov 2009 05:21:32 +0000</pubDate>
		<dc:creator>allspaw</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.kitchensoap.com/?p=336</guid>
		<description><![CDATA[Last week I gave 2 month&#8217;s notice &#8211; I&#8217;ll be leaving Flickr in January.
When Stew and Cat asked me to join Flickr in January of 2005, I felt like it was time to go and do something different, so I said yes.
Five years (and four billion photos) later, it&#8217;s again time to go and do [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I gave 2 month&#8217;s notice &#8211; I&#8217;ll be leaving Flickr in January.</p>
<p>When Stew and Cat asked me to join Flickr in January of 2005, I felt like it was time to go and do something different, so I said yes.</p>
<p>Five years (and four billion photos) later, it&#8217;s again time to go and do something different. It&#8217;s hard for me to describe what a blast this has been. Our <a href="http://ludicorp.com/about.php" target="_blank">goal</a> was to kick ass, and I think we did. Flickr has served as the  backdrop of some of the largest changes in my life, and the work I&#8217;ve done there is essentially tied to those events in my memory.</p>
<p>During my time here at Flickr, I:</p>
<ul>
<li>moved house</li>
<li>saw the company get <a href="http://blog.flickr.net/en/2005/03/20/yahoo-actually-does-acquire-flickr/" target="_blank">bought</a> by Yahoo!, and worked out that whole transition thing</li>
<li>got <a href="http://www.flickr.com/photos/eekaroo/14650744/in/set-358128/" target="_blank">married</a></li>
<li>had a <a href="http://www.flickr.com/photos/allspaw/sets/72157594173557758/" target="_blank">daughter</a></li>
<li>co-invented a pretty <a href="http://faceball.org/press/" target="_blank">well-received</a> <a href="http://faceball.org/" target="_blank">office sport</a></li>
<li>wrote a <a href="http://www.amazon.com/Art-Capacity-Planning-Scaling-Resources/dp/0596518579" target="_blank">book</a></li>
<li>had a <a href="http://www.flickr.com/photos/allspaw/sets/72157607504797325/" target="_blank">son</a></li>
</ul>
<p>In addition to building, scaling, evolving, and generally being as loud and fast as we could possibly be with the original <a href="http://ludicorp.com/" target="_blank">Ludicorp</a> team, I had the absolute privilege to hire and work in the trenches with some of the greatest people on the web. I also had the chance to work with some of the smartest people at Yahoo, who I&#8217;ll continue to have relationships with even after I leave. Yahoo has treated me well, and I&#8217;ve learned more here than I have at any other company.</p>
<p>The reason I stayed here for five years wasn&#8217;t for the accolades (or the vesting). It was because I worked with people who <strong><em>care</em></strong> about building something that people <em><strong>care</strong></em> about.</p>
<p>This also happens to be the same reason why I chose my next step: <a href="http://www.etsy.com" target="_blank">Etsy</a>. They care, and it shows.</p>
<p style="text-align: left;">I still have a little more time here at Flickr to rock a bit more, but I&#8217;m excited to work with my friend <a href="http://www.chaddickerson.com/about.html" target="_blank">Chad</a> again on <a href="http://radar.oreilly.com/2009/01/work-on-stuff-that-matters-fir.html" target="_blank">something that matters</a>. I&#8217;ll be running the Ops group there, where they&#8217;ve already got superstars.</p>
<p style="text-align: left;">Chad wrote some more about it <a href="http://www.etsy.com/storque/etsy-news/john-allspaw-joins-the-etsy-team-6183/" target="_blank">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.kitchensoap.com/2009/11/18/from-one-door-to-another/feed/</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
	</channel>
</rss><!-- Dynamic Page Served (once) in 0.565 seconds --><!-- Cached page served by WP-Cache -->
