<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Web Admin Blog &#187; Application Performance Management</title>
	<atom:link href="http://www.webadminblog.com/index.php/category/apm/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webadminblog.com</link>
	<description>Real Web Admins.  Real World Experience.</description>
	<lastBuildDate>Thu, 22 Jul 2010 16:18:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Upcoming Free Velocity WebOps Web Conference</title>
		<link>http://www.webadminblog.com/index.php/2010/03/11/upcoming-free-velocity-webops-web-conference/</link>
		<comments>http://www.webadminblog.com/index.php/2010/03/11/upcoming-free-velocity-webops-web-conference/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 14:34:49 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Operations]]></category>
		<category><![CDATA[ops]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[velocity]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=421</guid>
		<description><![CDATA[O'Reilly's Velocity conference is the only generalized Web ops and performance conference out there.  We really like it; you can go to various other conferences and have 10-20% of the content useful to you as a Web Admin, or you can go here and have most of it be relevant! They've been doing some interim [...]]]></description>
			<content:encoded><![CDATA[<p>O'Reilly's <a href="http://en.oreilly.com/velocity2010">Velocity conference</a> is the only generalized Web ops and performance conference out there.  We really like it; you can go to various other conferences and have 10-20% of the content useful to you as a Web Admin, or you can go here and have most of it be relevant!</p>
<p>They've been doing some interim freebie Web conferences and there's one coming up.  Check it out.  They'll be talking about performance functionality in Google Webmaster Tools, mySQL, Show Slow, provisioning tools, and dynaTrace's new AJAX performance analysis tool.</p>
<p><a href="http://conferences.oreilly.com/velocityonline">O'Reilly Velocity Online Conference: "Speed and Stability"</a><br />
Thursday, March 17; 9:00am PST<br />
Cost: Free</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2010/03/11/upcoming-free-velocity-webops-web-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Velocity 2009 &#8211; Scalable Internet Architectures</title>
		<link>http://www.webadminblog.com/index.php/2009/07/06/velocity-2009-scalable-internet-architectures/</link>
		<comments>http://www.webadminblog.com/index.php/2009/07/06/velocity-2009-scalable-internet-architectures/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 02:51:42 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Velocity 2009]]></category>
		<category><![CDATA[scalability]]></category>
		<category><![CDATA[velocity]]></category>
		<category><![CDATA[velocityconf]]></category>
		<category><![CDATA[velocityconf09]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=276</guid>
		<description><![CDATA[OK, I'll be honest.  I started out attending "Metrics that Matter - Approaches to Managing High Performance Web Sites" (presentation available!) by Ben Rushlo, Keynote proserv.  I bailed after a half hour to the other one, not because the info in that one was bad but because I knew what he was covering and wanted [...]]]></description>
			<content:encoded><![CDATA[<p>OK, I'll be honest.  I started out attending "<a href="http://en.oreilly.com/velocity2009/public/schedule/detail/9025" target="_blank">Metrics that Matter - Approaches to Managing High Performance Web Sites</a>" (presentation available!) by Ben Rushlo, Keynote proserv.  I bailed after a half hour to the other one, not because the info in that one was bad but because I knew what he was covering and wanted to get the less familiar information from the other workshop.  Here's my brief notes from his session:</p>
<ul>
<li>Online apps are complex systems</li>
<li>A siloed approach of deciding to improve midtier vs CDN vs front end engineering results in suboptimal experience to the end user - have to take holistic view.  <em>I totally agree with this, in our own caching project we took special care to do an analysis project first where we evaluated impact and benefit of each of these items not only in isolation but together so we'd know where we should expend effort.</em></li>
<li>Use top level/end user metrics, not system metrics, to measure performance.</li>
<li>There are other metrics that correlate to your performance - "key indicators."</li>
<li>It's hard to take low level metrics and take them "up" into a meaningful picture of user experience.</li>
</ul>
<p><em>He's covering good stuff but it's nothing I don't know.  We see the differences and benefits in point in time tools, Passive RUM, tagging RUM, synthetic monitoring, end user/last mile synthetic monitoring...  If you don't, read the presentation, it's good.  As for me, it's off to the scaling session.<br />
</em><br />
I hopped into this session a half hour late.  It's <a href="http://en.oreilly.com/velocity2009/public/schedule/detail/8859" target="_blank">Scalable Internet Architectures</a> (again, go get the presentation) by <a href="http://lethargy.org/~jesus/" target="_blank">Theo Schlossnagle</a>, CEO of <a href="http://omniti.com/" target="_blank">OmniTI</a> and author of the similarly named book.</p>
<p><em>I like his talk, it starts by getting to the heart of what Web Operations - what we call "Web Admin" hereabouts - is.  It kinda confuses architecture and operations initially but maybe that's because I came in late. </em></p>
<p>He talks about knowledge, tools, experience, and discipline, and mentions that discipline is the most lacking element in the field.<em> Like him, I'm a "real engineer" who went into IT so I agree vigorously.</em></p>
<p>What specifically should you do?</p>
<ul>
<li>Use version control</li>
<li>Monitor</li>
<li>Serve static content using a CDN, and behind that a reverse proxy and behind that peer based HA.  Distribute DNS for global distribution.</li>
<li>Dynamic content - now it's time for optimization.</li>
</ul>
<h3><strong>Optimizing Dynamic Content<br />
</strong></h3>
<p>Don't pay to generate the same content twice - use caching.  Generate content only when things change and break the system into components so you can cache appropriately.</p>
<p>example: a php news site - articles are in oracle, personalization on each page, top new forum posts in a sidebar.</p>
<p>Why abuse oracle by hitting it every page view?  updates are controlled.  The page should pull user prefs from a cookie.  (p.s. rewrite your query strings)<br />
But it's still slow to pull from the db vs hardcoding it.<br />
All blog sw does this, for example<br />
Check for a hardcoded php page - if it's not there, run something that puts it there.  Still dynamically puts in user personalization from the cookie.  In the preso he provides details on how to do this.<br />
Do cache invalidation on content change, use a message queuing system like openAMQ for async writes.<br />
Apache is now the bottleneck - use APC (alternative php cache)<br />
or use memcached - he says no timeouts!  Or... be careful about them!  Or something.</p>
<h3>Scaling Databases</h3>
<p>1. shard them<br />
2. shoot yourself</p>
<p>Sharding, or breaking your data up by range across many databases, means you throw away relational constraints and that's sad.  Get over it.</p>
<p>You may not need relations - use files fool!  Or other options like couchdb, etc.  <em>Or hadoop, from the previous workshop!</em></p>
<p>Vertically scale first by:</p>
<ul>
<li> not hitting the damn db!</li>
<li> run a good db.  postgres!  not mySQL boo-yah!</li>
</ul>
<p>When you have to go horizontal, partition right - more than one shard shouldn't answer an oltp question.   If that's not possible, consider duplication.</p>
<p>IM example.  Store messages sharded by recipient.  But then the sender wants to see them too and that's an expensive operation - so just store them twice!!!</p>
<p>But if it's not that simple, partitioning can hose you.</p>
<p>Do math and simulate it before you do it fool!   Be an engineer!</p>
<p>Multi-master replication doesn't work right.  But it's getting closer.</p>
<h3>Networking</h3>
<p>The network's part of it, can't forget it.</p>
<p>Of course if you're using Ruby on Rails the network will never make your app suck more.  <em>Heh, the random drive-by disses rile the crowd up.</em></p>
<p>A single machine can push a gig.  More isn't hard with aggregated ports.  Apache too, serving static files.  Load balancers too.  How to get to 10 or 20 Gbps though?  All the drivers and firmware suck.  Buy an expensive LB?</p>
<p>Use routing.  It supports naive LB'ing.  Or routing protocol on front end cache/LBs talking to your edge router.  Use hashed routes upstream.  User caches use same IP.  Fault tolerant, distributed load, free.</p>
<p>Use isolation for floods.  Set up a surge net.  Route out based on MAC.  Used vs DDoSes.</p>
<h3>Service Decoupling</h3>
<p>One of the most overlooked techniques for scalable systems.  Why do now what you can postpone till later?</p>
<p>Break transaction into parts.  Queue info.  Process queues behind the scenes.  Messaging!  There's different options - AMQP, Spread, JMS.  Specifically good message queuing options are:</p>
<ul>
<li><a href="http://activemq.apache.org/" target="_blank"> ActiveMQ (Java)</a></li>
<li> OpenAMQ (C)</li>
<li> RabbitMQ (erlang)</li>
</ul>
<p>Most common - <a href="http://stomp.codehaus.org/" target="_blank">STOMP</a>, sucks but universal.</p>
<p>Combine a queue and a job dispatcher to make this happen.  Side note - <a href="http://www.danga.com/gearman/" target="_blank">Gearman</a>, while cool, doesn't do this - it dispatches work but it doesn't decouple action from outcome - should be used to scale work that can't be decoupled.  (Yes it does, says dude in crowd.)</p>
<p>Scalability Problems</p>
<p>It often boils down to "don't be an idiot."  <em>His words not mine.  I like this guy.</em> Performance is easier than scaling.  Extremely high perf systems tend to be easier to scale because they don't have to scale as much.</p>
<p>e.g. An email marketing campaign with an URL not ending in a trailing slash.  Guess what, you just doubled your hits.  Use the damn trailing slash to avoid 302s.</p>
<p><em>How do you stop everyone from being an idiot though?  Every person who sends a mass email from your company?  That's our problem  - with more than fifty programmers and business people generating apps and content for our Web site, there is always a weakest link.</em></p>
<p>Caching should be controlled not prevented in nearly any circumstance.</p>
<p>Understand the problem.  going from 100k to 10MM users - don't just bucketize in small chunks and assume it will scale.  Allow for margin for error.  Designing for 100x or 1000x requires a profound understanding of the problem.</p>
<p>Example - I plan for a traffic spike of 3000 new visitors/sec.  My page is about 300k.  CPU bound.  8ms service time.  Calculate servers needed.  If I varnish the static assets, the calculation says I need 3-4 machines.  But do the math and it's 8 GB/sec of throughput.  No way.  At 1.5MM packets/sec - the firewall dies.  You have to keep the whole system in mind.</p>
<p>So spread out static resources across multiple datacenters, agg'd pipes.<br />
The rest is only 350 Mbps, 75k packets per second, doable - except the 302 adds 50% overage in packets per sec.</p>
<p>Last bonus thought - use zfs/dtrace for dbs, so run them on solaris!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/07/06/velocity-2009-scalable-internet-architectures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Velocity 2009 Conference Experience</title>
		<link>http://www.webadminblog.com/index.php/2009/06/23/the-velocity-2009-conference-experience/</link>
		<comments>http://www.webadminblog.com/index.php/2009/06/23/the-velocity-2009-conference-experience/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 21:07:39 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Velocity 2009]]></category>
		<category><![CDATA[velocity]]></category>
		<category><![CDATA[velocityconf]]></category>
		<category><![CDATA[velocityconf09]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=239</guid>
		<description><![CDATA[Velocity 2009 is well underway and going great!  Here's my blow by blow of how it went down. Peco, my erstwhile Bulgarian comrade, and I came in to San Jose  from Austin on Sunday.  We got situated at the fairly swank hotel, the Fairmont, and wandered out to find food.  There was some festival going [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.oreilly.com/velocity2009">Velocity 2009</a> is well underway and going great!  Here's my blow by blow of how it went down.</p>
<p>Peco, my erstwhile Bulgarian comrade, and I came in to San Jose  from Austin on Sunday.  We got situated at the fairly swank hotel, the Fairmont, and wandered out to find food.  There was some festival going on so the area was really hopping.  After a bit of wandering, we had a reasonably tasty dinner at <a href="http://www.yelp.com/biz/original-joes-restaurant-san-jose" target="_blank">Original Joe's</a>.  Then we walked around the cool pedestrian part of downtown San Jose and ended up watching "Terminator:  Salvation" at a neighborhood movie theater.</p>
<p>We went down at 8  AM the next morning for registration.  We saw good ol' <a href="http://stevesouders.com/" target="_blank">Steve Souders</a>, and hooked up with a big crew from <a href="http://www.bazaarvoice.com/" target="_blank">BazaarVoice</a>, a local Austin startup that's doing well.  (P.S. I don't know who that hot brunette is in the lead image on their home page, but I can clearly tell that she wants me!)</p>
<p>This first day is an optional "workshop" day with a number of in depth 90 minute sessions.  There were two tracks, operations and performance.   Mostly I covered ops and Peco covered performance.  Next time - the first session!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/06/23/the-velocity-2009-conference-experience/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Velocity 2009 &#8211; The Web Performance and Operations Conference</title>
		<link>http://www.webadminblog.com/index.php/2009/06/23/velocity-2009-the-web-performance-and-operations-conference/</link>
		<comments>http://www.webadminblog.com/index.php/2009/06/23/velocity-2009-the-web-performance-and-operations-conference/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 16:04:22 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Velocity 2009]]></category>
		<category><![CDATA[velocity]]></category>
		<category><![CDATA[velocityconf]]></category>
		<category><![CDATA[velocityconf09]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=235</guid>
		<description><![CDATA[You're in luck!  Peco and I are attending Velocity 2009 and we'll be taking notes and blogging about the conference.  You can see what to expect by going back and reading my coverage of Velocity 2008! As Web Admins, we love Velocity.  Usually, we have to bottom-feed at more generalized conferences looking for good relevant [...]]]></description>
			<content:encoded><![CDATA[<p>You're in luck!  Peco and I are attending <a href="http://en.oreilly.com/velocity2009">Velocity 2009</a> and we'll be taking notes and blogging about the conference.  You can see what to expect by going back and reading <a href="http://www.webadminblog.com/index.php/category/conference/velocity-2008-conference/">my coverage of Velocity 2008</a>!</p>
<p>As Web Admins, we love Velocity.  Usually, we have to bottom-feed at more generalized conferences looking for good relevant content on systems engineering.  This is the only conference that is targeted right at us, and has a dual focus of performance and operations.  The economy's hitting us hard this year and we could only do one conference - so this is the one we picked.</p>
<p>Look for full coverage on the sessions to come!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/06/23/velocity-2009-the-web-performance-and-operations-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A DoS We Can Believe In</title>
		<link>http://www.webadminblog.com/index.php/2009/01/21/a-dos-we-can-believe-in/</link>
		<comments>http://www.webadminblog.com/index.php/2009/01/21/a-dos-we-can-believe-in/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 20:58:46 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Monitoring]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[obama]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=171</guid>
		<description><![CDATA[We knew that the historic inauguration of Barack Obama would be generating a lot more Internet traffic than usual, both in general and specifically here at NI.  Being prudent Web Admin types, we checked around to make sure we thought that there wouldn't be any untoward effects on our Web site.  Like many corporate sites, [...]]]></description>
			<content:encoded><![CDATA[<p>We knew that the historic inauguration of Barack Obama would be generating a lot more Internet traffic than usual, both in general and specifically here at NI.  Being prudent Web Admin types, we checked around to make sure we thought that there wouldn't be any untoward effects on our Web site.  Like many corporate sites, we use the same pipe for inbound Internet client usage and outbound Web traffic, so employees streaming video to watch the event could pose a problem.  We got all thumbs up after consulting with our networking team, and decided to not even send any messaging asking people to avoid streaming.  But, we monitored the situation carefully as the day unwound.  Here's what we saw, just for your edification!</p>
<p>Our max inbound Internet throughput was 285 Mbps, about double our usual peak.  We saw a ni.com Web site performance degradation of about 25% for less than two hours according to our Keynote stats.  ni.com ASPs were affected proportionately which indicates the slowdown was Internet-wide and not unique to our specific Internet connection here in Austin.  The slowdown was less pronounced internationally, but still visible.  So in summary - not a global holocaust, but a noticeable bump.</p>
<p>Cacti graphs showing our Internet connection traffic:</p>
<p><img class="aligncenter size-full wp-image-172" title="obamabumpcactihrly" src="http://www.webadminblog.com/wp-content/uploads/2009/01/obamabumpcactihrly.png" alt="obamabumpcactihrly" width="591" height="257" /><img class="aligncenter size-full wp-image-173" title="obamabumpcactidaily" src="http://www.webadminblog.com/wp-content/uploads/2009/01/obamabumpcactidaily.png" alt="obamabumpcactidaily" width="591" height="257" /></p>
<p>Keynote graph of several of our Web assets, showing global response time in seconds:<img class="aligncenter size-full wp-image-174" title="obamabumpkeynote" src="http://www.webadminblog.com/wp-content/uploads/2009/01/obamabumpkeynote.png" alt="obamabumpkeynote" width="800" height="500" />Looking at the traffic specifically, there were two main standouts.  We had TCP 1935, which is Flash RTMP, peaking around 85 Mbps, and UDP 8247, which is a special CNN port (they use a plugin called "Octoshape" with their Flash streaming), peaking at 50 Mbps.   We have an overall presence of about 2500 people here at our Austin HQ on an average day, but we can't tell exactly how many were streaming.  (Our NetQoS setup shows us there were 13,600 'flows,' but every time a stream stops and starts that creates a new one - and the streams were hiccupping like crazy.  We'd have to do a bunch of Excel work to figure out max concurrent, and have better things to do.)</p>
<p>In terms of the streaming provider breakdown - since everyone uses Akamai now, the vast majority showed as "Akamai".  We could probably dig more to find out, but we don't really care all that much.  And, <a href="http://www.techcrunch.com/2009/01/21/the-day-live-web-video-streaming-failed-us/" target="_blank">many of the sources were overwhelmed</a>, which helped some.</p>
<p>We just wanted to share the data, in case anyone finds it helpful or interesting.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/01/21/a-dos-we-can-believe-in/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Optimizing Web Performance with AOL Pagetest</title>
		<link>http://www.webadminblog.com/index.php/2008/07/11/optimizing-web-performance-with-aol-pagetest/</link>
		<comments>http://www.webadminblog.com/index.php/2008/07/11/optimizing-web-performance-with-aol-pagetest/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 20:51:58 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://webadminblog.com/?p=28</guid>
		<description><![CDATA[Dave Artz has put together a simple Webcast tutorial on how to use webpagetest.org to measure and fix up your Web site.  If all this talk about Web performance is a bit overwhelming, it's a great novice tutorial.  He walks through the entire process visually and explains each metric.  Great job Dave!]]></description>
			<content:encoded><![CDATA[<p>Dave Artz has put together a <a href="http://www.artzstudio.com/2008/07/optimizing-web-performance-with-aol-pagetest/" target="_blank">simple Webcast tutorial</a> on how to use <a href="http://test.webpagetest.org:8080/" target="_blank">webpagetest.org</a> to measure and fix up your Web site.  If all this talk about Web performance is a bit overwhelming, it's a great novice tutorial.  He walks through the entire process visually and explains each metric.  Great job Dave!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2008/07/11/optimizing-web-performance-with-aol-pagetest/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Velocity 2008 Conference Experience Wrapup</title>
		<link>http://www.webadminblog.com/index.php/2008/06/25/velocity-2008-conference-experience-wrapup/</link>
		<comments>http://www.webadminblog.com/index.php/2008/06/25/velocity-2008-conference-experience-wrapup/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 02:41:42 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Velocity 2008]]></category>
		<category><![CDATA[velocity]]></category>
		<category><![CDATA[velocity08]]></category>
		<category><![CDATA[velocityconf08]]></category>

		<guid isPermaLink="false">http://webadminblog.com/?p=26</guid>
		<description><![CDATA[Well, I'm finally home with a spare minute to write. I and the two guys who went to the conference with me (Peco and Robert) got a lot out of it. I apologize for the brevity of style of the conference writeups, but they were notes taken on a precariously balanced laptop, under bad network [...]]]></description>
			<content:encoded><![CDATA[<p>Well, I'm finally home with a spare minute to write.  I and the two guys who went to the conference with me (Peco and Robert) got a lot out of it.  I apologize for the brevity of style of the conference writeups, but they were notes taken on a precariously balanced laptop, under bad network and power conditions, while I was also trying to get around and participate meaningfully in a very fast-paced event.  I've gone back and tried to soften them a little bit, but there's no rest for the wicked.  You can access many of the slides for the sessions <a href="http://en.oreilly.com/velocity2008/public/schedule/proceedings" target="_blank">here</a>.</p>
<p>The conference was quite a success.  Everyone we spoke to was enthusiastic about the people and information there.  O'Reilly is happy because attendance was above their expectations, and it looks like it's been expanded to 3 days next year, which is good - it was *so* session packed and fast paced I didn't get to talk to all the suppliers I wanted in the dealer room and at times it felt like the Bataan death march.  The first day we barely had time to grab a fast food dinner, and we often found ourselves hungry and hurrying.  We enjoyed talking with the people there, but it seemed less conversational than other conventions - maybe because of the pace, maybe because half the people there were from the area and thus needed to scamper off to work/home and were therefore not into small talk.</p>
<p><span id="more-26"></span></p>
<p>There were the usual forgivable rough spots of a first year conference - programming varied from 15 to 45 minute slots and some of the sessions were shoehorned into a too-small spot or something meriting more of an Ignite format given a long slot.  Really, the only thing that bothered me was how much one of the two rooms (both carved out of the same superspace in traditional hotel style)  sucked compared to the other.  The main room was great - big, good AC, good sound.  The second room was a nightmare - very long, about 85 degrees, and poor sound.  I had to go out and complain once to the staff about at least getting the AC going in there.  The Marriott was very nice overall but that one room kept me away unless the subject was really compelling.  And sometimes, a talk most people were fleeing from (SOX, I'm looking at you) was in the big room while the session that everyone was in was in the small one.</p>
<p>What were my biggest takeaways.  Well, as always, a bunch of opinions on what tools are good to be looking into.  Jiffy sounds neat, we're already using KITE, and we're evaluating proxy caches and CDNs so all the info on those was great.  It was also a good opportunity to touch base with suppliers old and new - it really helps the relationship to be able to interact with them out "in the wild," not over the phone or on a sales call.  We talked at length with Keynote and Coradiant, current supplier partners of ours; got to talk with prospectives like Akamai and LimeLight, and got t meet new ones we were impressed with like ControlTier.  And the EFF even had a booth.  Fight the power!</p>
<p>A lot of the talks were too short to really get useful specifics out of per se, but they serve as valuable pointers to further information.  The image optimization talk by Yahoo! was one of those, we're going to be looking into that stuff hard.  And Steve's Even Faster talk.  And all the random name-dropped tools, open source and not, that people are getting mileage out of.</p>
<p>You know, a side note to that - it sucks that there's not a semi-definitive list of a "Web Admin's Toolkit."  What areas you need to have solutions in (monitoring, configuration management, proxies, etc.).  Maybe we'll try to put together something like that, a multidimensional vote-driven thing where people can rate their faves all in one place.</p>
<p>In closing, I'd like to thank O'Reilly for putting together a conference that serves a growing and largely unserved part of the technical populace, and specifically to Steve for spearheading it and asking me to speak!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2008/06/25/velocity-2008-conference-experience-wrapup/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Velocity 2008 Conference Experience &#8211; Part VII</title>
		<link>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-vii/</link>
		<comments>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-vii/#comments</comments>
		<pubDate>Wed, 25 Jun 2008 00:28:48 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Velocity 2008]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[velocity]]></category>
		<category><![CDATA[velocity08]]></category>
		<category><![CDATA[velocityconf08]]></category>

		<guid isPermaLink="false">http://webadminblog.com/?p=24</guid>
		<description><![CDATA[We've reached the last couple sessions at Velocity 2008. Read me! Love me! We hear about Capacity Planning with John Allspaw of Flickr. He says: No benchmarks! Use real production data. (How? We had to develop a program called WebReplay to do this because no one had anything. We're open sourcing it soon, stay tuned.) [...]]]></description>
			<content:encoded><![CDATA[<p>We've reached the last couple sessions at Velocity 2008.  Read me!  Love me!</p>
<p>We hear about <strong><a href="http://en.oreilly.com/velocity2008/public/schedule/detail/3208" target="_blank">Capacity Planning</a> </strong>with John Allspaw of Flickr.  He says: No benchmarks!  Use real production data.   (How?   We had to develop a program called WebReplay to do this because no one had anything.  We're open sourcing it soon, stay tuned.)</p>
<p>Use "safety factors" (from traditional engineering).  Aka a reserve, overhead, etc.</p>
<p>They use squid a bunch.  At NI we've been looking at Oracle's WebCache - mainly because it supports ESIs and we're thinking that may be a good way to go.  There's a half assed ESI plugin for squid but we hear it doesn't work; apparently Zope paid for ESI support in squid 3.0 but no traction on that in 4 years best as we can tell.  But I'd be happy not to spend the money.</p>
<p><span id="more-24"></span></p>
<p>Anyway.  You should do forecasting.  Assuming it's linear which it never is.  But you can take output from your stuff (ganglia, whatever) and <a href="http://www.unipress.waw.pl/fityk/" target="_blank">fityk</a> can give you a curve fit.</p>
<p>They use lots of <a href="http://www.nagios.org/ " target="_blank">nagios</a> for monitoring - about 10 checks per host.</p>
<p>Determine a ceiling, and high/low water marks, and alert outside the water marks.</p>
<p>Then have a simple capacity dashboard for everything - how close to ceiling you are.</p>
<p>Horizontal scaling is all well and good, but sometimes you should do some vertical by upgrading.  He calls it "diagonal."  By upgrading image proc servers, they got same CPU usage but 3x more work out of them.  (We saw the same when we upgraded our Java app servers from Sun V440s to Dell 2850s a year or two ago - 50% performance improvement.)  In their case, they also got faster processing time, less power usage, and less rack space.</p>
<p>Memcached.  You turn it on, and the DBs go idle!   Yay.  But then your Web servers heat up as they become the bottleneck.   So beware the wandering bottleneck.</p>
<p>Stupid Capacity Tricks!   Before Puppet and Capistrano there was dsh (distributed shell).  Ooo, I want it.</p>
<p>Shut Shit Off - they have software switches to disable various features when needed.  (We have a lot of those switches at NI, but they're not documented and under the control of business units not ops - sad.)  Their programmers are good, they put flags in config files in order of importance to turn things on/off, read on the fly.</p>
<p>Host an outage page NOT in your datacenter, and use it - users appreciate knowing what's up.</p>
<p>Bake dynamic into static.  Some Yahoo! properties have a big red button to bake/unbake at will.  Bye to DDoS attacks.</p>
<p>And at the end, a plaintive "We're Hiring..."  Like everyone else here.  Man I need some good Web ops people.  I have two open spots.  We're hiring too!!!</p>
<p>Question: You do lots of mini-code pushes (20/day).  How the heck do you manage that and keep the site up?   He says - culture is the biggest thing.  They have devs that think like ops and don't do retarded things.  They're ganglia addicted and they're the ones hitting the big red buttons.  Then less important are some technical parts, like a one button deploy and verbose logging of changes.</p>
<p>He uses more dirty words than I do.  Boss.</p>
<p>Artur Bergman of Wikia speaks again, on  <strong>Squid vs Varnish</strong>.</p>
<p>PHP is a pig and wikitext is hard to parse, so they need caching.  A hit is 8 ms and a miss is 200 ms, and they have a 75% hit rate.  You have to get the cache hits up, by making more cachable.  Ooo, they're playing around with ESI he says!</p>
<p>They decided to force caching for anonymous users.  They've only gone up to 30 seconds, but no complaints.  They ignore if-modified-since and purge. Be careful about vary-accept on encoding because there's an annoying browser bug with misplaced commas.</p>
<p>Mediawiki lives and dies by squid and puts cache control in the code, which is bad because developers are stupid.</p>
<p>Squid - the slide actually says "Me hates it" and "Still a piece of shit."  Awesome.</p>
<p>Varnish - he loves varnish.  He nearly cried when he read the source code (C).  But it's a little unstable.  He got it up to 65k hps (squid doing 2800).</p>
<p>Varnish has some "novel" techniques.  Its control language is VCL.  (Side note, they monitor with lvs).  This gets compiled down to C at runtime.  So you can put assembly in if you want.  Lawdy.  It segfaults from time to time under load and they're helping fix it.  In a month or two he'll have it crackin'!</p>
<p>And the last one - <strong>Puppet,</strong> by Luke Kanies, Puppet developer.</p>
<p>Automation tools are old and bad, and especially because they're SSH based.  (Agree!)  And also because there's not many people who cross the chasm between sysadmin and developer.  They decided they had to solve the problem and create something a billion times better than anything (where anything is cfengine).  Either you can manage many machines with little effort, or you can't.  You want to be able to.  So this required abstraction.  He's using the analogy of C scaring the bejeezus out of assembly programmers - a good analogy.</p>
<p>It's sad you have to do it, but he goes into why a more powerful tool should not scare people and put them all out of work.  Developers seem to have gotten over this but not sysadmins.  it's stupid especially because "we're understaffed" is the #1 thing I hear out of all of ours.</p>
<p>So they implemented Puppet with the metaphor of resources and resource providers, hiding all the file/command/UNIX admin stuff.  (Well, kinda.)  It's easily extensible.</p>
<p>The Web 2.0 crowd has made "microformats."  Your infrastructure can use that idea too.  Catch up with the times - if you're proud of doing something developers have been doing for 10 years (like moving to version control in Subversion) then you're behind.  (Use <a href="http://git.or.cz/" target="_blank">git</a>!)  Anyway, you have to use polymorphism (overloading) to make a system like Puppet understand ssh on system 1 vs 2 vs 3.</p>
<p>Also, have one solution per problem.  Not multiple.  And most of the problems you face are NOT unique to you or your organization - so using a common tool like this can benefit from the network effect.</p>
<p>And the third big principle (were there only two before?) is completeness.  Everything that matters in your config should be in the config.  Not some minimal set.  Relationships are important (dependencies).  You can do things like have a service subscribe to a file and restart when it changes, for example.</p>
<p>Puppet is mainly used as a central config management tool.  Each host gets a resource catalog.  Machines get put in classes and they get lists of resources.</p>
<p>Puppet clients retrieve their resource catalog, determine order, check em, fix, and repeat every 30 minutes.  "Like cfengine but sexier!"  The completeness approach means clean management through the lifecycle - a freshly kickstarted box doesn't end up different.  You just kickstart enough to run puppet and use it to do everything.  So all boxes are kept 100% up to date without artifacts.</p>
<p>And it has reporting underway too!  They're planning to charge for that to make some mooonay!  Google, Stanford, Sony, Rackspace all use Puppet.</p>
<p>Why Puppet vs Capistrano?  Cap is SSH in Ruby. Not something for yoru whole infrastructure.</p>
<p>Why Puppet vs cfengine?  More open dev community and better.</p>
<p>What about Puppet slowness?  It scales like HTTPS.</p>
<p>Puppet: Is XMLRPC but moving to REST.  Uses certs and SSL, not keypairs.  It's in Ruby.  He's had to learn to be a developer in the process.  It's also an API to the systems.  It supports VMs well and can get into the guts of the VMs unlike pure VM provisioning tools.  Buy me!  it's open source but he sells support/trainin/addons.  Discovery to come!  There's nagios integration of some sort.  Vertebra, like capistrano, is an ad hoc change tool - Puppet isn't (though you can use relsh for that).</p>
<p>That's the last session - wrapup later once I power up my laptop and get some booze in me!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-vii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>The Velocity 2008 Conference Experience &#8211; Part VI</title>
		<link>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-vi/</link>
		<comments>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-vi/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 22:08:32 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Velocity 2008]]></category>
		<category><![CDATA[velocity]]></category>
		<category><![CDATA[velocity08]]></category>
		<category><![CDATA[velocityconf08]]></category>

		<guid isPermaLink="false">http://webadminblog.com/?p=23</guid>
		<description><![CDATA[After a tasty pseudo-Asian hotel lunch (though about anything would be tasty by now!), we move into the final stretch of afternoon sessions for Velocity. Everyone seems in a good mood after the interesting demos in the morning and the general success of the conference. First, it's the eagerly awaited Even Faster Web Sites. Steve [...]]]></description>
			<content:encoded><![CDATA[<p>After a tasty pseudo-Asian hotel lunch (though about anything would be tasty by now!), we move into the final stretch of afternoon sessions for Velocity.  Everyone seems in a good mood after the interesting demos in the morning and the general success of the conference.</p>
<p>First, it's the eagerly awaited <a href="http://en.oreilly.com/velocity2008/public/schedule/detail/3621" target="_blank"><strong>Even Faster Web Sites</strong></a>.   <a href="http://www.stevesouders.com/" target="_blank">Steve Souders</a>, previously Yahoo! performance guru and now Google performance guru, has another set of recommendations regarding Web performance.  His previous book with its 14 rules and the Firebug plugin, YSlow, that supported it, are one of the things that really got us hooked deeply into the Web performance space.</p>
<p>First, he reviews why front end performance is so important.  In the steady state, 80-90% of your average page's load time the user sees is time after the server has spit it out.  "Network time."  Optimizing your code speed is therefore a smaller area of improvement than optimizing the front end.  And it can be improved, often in simple ways.</p>
<p>Man, there's a wide variance in how people's pages perform with a primed cache - from no benefit (most of the Alexa top 10) to incredible benefit (Google and MS live Search results pages).  Anyway, Steve developed his original <a href="http://developer.yahoo.com/performance/" target="_blank">14 best practices for optimizing front end performance</a>, and then built YSlow to measure them.</p>
<p><span id="more-23"></span></p>
<p>And now, he's starting a second book!  There's ten more best practices.  The slides are on his blog if you want the full version.</p>
<ul>
<li>Split the initial payload</li>
<li>Load scripts without blocking</li>
<li>Don't scatter scripts</li>
<li>Split dominant content domains</li>
<li>Make static content cookie-free</li>
<li>Reduce cookie weight</li>
<li>Minify CSS</li>
<li>Optimize images</li>
<li>Use iframes sparingly</li>
<li>To www or not to www</li>
</ul>
<p>Neat tool he wrote - <a href="http://stevesouders.com/cuzillion/" target="_blank">cuzillion</a>, a page simulation tool.</p>
<p>"Splitting the payload" means only initially loading the JavaScript needed for page load, and lazy-loading everything else.  On average, people only execute about 25% of their JS functions before the onLoad() fires.  Tools to do this separation are needed (Microsoft's Doloto does but it's not public).</p>
<p>MSN.com figured out how to do parallel script downloads, a pretty simple but clever method using document.write, and showed it could be done.  There's a mess of options - XHR eval, XHR injection, script in iframe, script DOM element, script defer, and document.write Script tag.  Each approach has a bunch of gotchas.  Some only work in IE, some require JS changes.  Some trigger the various "busy" indicators (throbbers, statusbars) in the browsers.  Then you need to figure out if you need guaranteed execution order or if you want "fastest" (execute as they get there).  The "winner" is actually a decision tree, but boils down to Script DOM element or XHR injection. Kinda.</p>
<p>Inline scripts also have issues - they block rendering and downloads as well.  There's some mitigations.  Also, IE doesn't block on parallel CSS downloads unless they follow an inline script.  So don't "scatter" scripts through your page, they screw things up.</p>
<p>So yay, front end performance...  Me and my guys are starting to worry, however, about whether people are starting to ignore back end performance.  Seems like a lot of these changes are getting pretty ticky and though our "best case" performance is mostly front end most of the performance *problems* are back end.</p>
<p>Having sweated my ass off for long enough, I displace to the larger ballroom for "<a href="http://en.oreilly.com/velocity2008/public/schedule/detail/2253" target="_blank"><strong>Performance Plumbing</strong></a>" with Adam Bechtel from Yahoo!.  He starts off talking about the natural progress of a growing site, from one server to a mess of them to two data centers to widely geo-distributed centers, where you start to run your own networks between them.  And connect your network up with partners.  Suddenly you have a global backbone.  And you develop a bunch of routing policies.</p>
<p>You deploy <a href="http://tools.ietf.org/html/rfc4786" target="_blank">"anycast" services</a>.  And scale them.  This is dry.  Very dry.  How do you monitor your anycast service?  Make caches.  Proxies.  Aside from humorous plumbing pictures I'm a little unclear what I'm supposed to be getting out of this talk.  Luckily, it's over.  Robert leans over to me and says, "I'm not sure what to say about that."</p>
<p>Back to the hot room for Stefan Stoyanov of Yahoo! about <strong><a href="http://en.oreilly.com/velocity2008/public/schedule/detail/2405" target="_blank">image size reduction</a>.</strong> Seven tips.  Again, can barely hear him (bad sound in this room + mumbling).</p>
<ul>
<li>Use png not gif.</li>
<li>Run pngcrush.</li>
<li>Remove JPEG metadata with jpgtran.</li>
<li>Use palette not truecolor PNGs.</li>
<li>There's an AlphaImageLoader CSS filter to help with the truecolor PNG alpha transparency problem in earlier IEs.  Try not to use filters, use PNG8 or "the underscore hack _filter" (no, I don't know what this means either).</li>
<li>Don't serve generated images as-is.  Write generated images to disk and crush them.  He compares some images form normal to crushed to PNG8, and I sure can't tell the difference, and you get like 50% savings at PNG8.</li>
<li>Use CSS sprites and optimize them (all horizontal ideally) and close together. Stay within 256 colors and use PNG8.</li>
</ul>
<p>Bonus:</p>
<ul>
<li>Don't serve images from your app server.</li>
</ul>
<p>You should be able to save 10-30% on your image sizes.  Man that went fast.</p>
<p>Next, <a href="http://en.oreilly.com/velocity2008/public/schedule/detail/2598" target="_blank"><strong>shared dictionary compression over HTTP</strong></a> with Wei-Hsin Lee from Google.  Called SDCH, or "Sandwich."  Compression is nice, but if you could not retransmit identical pieces of data (like WAN accelerators do at the network level), you're cooking with gas.  Good concept, I've always thought that ESI markup of pages was too manual and "my damn computer should figure that out by itself."</p>
<p>RFC 3229 for delta compression in HTTP - judged no good.  Too many states to track and too limited scope (same URL only).  Dame da!!!</p>
<p>So Google has introduced <a href=" http://groups.google.com/group/SDCH" target="_blank">SDCH</a>.  It's an HTTP addition with a small set of states shared between client and server.  It's domain scoped, like a cookie.  It uses vcdiff (RFC 3284) plus enhancements, and it defines the server/client interaction wrt capabilities and dictionary.</p>
<p>Basically sdch is listed in the HTTP Accept-Encoding: variable.  The server then sends a Get-Dictionary: response with the page, which the client lazy-loads.  Then the client says what dictionaries it has (again, much like cookies) and the server responds with a sdch encoded response.</p>
<p>It complements gzip and deflate and generates a 40% improvement on google search results pages!  But woirking on how to get it to the users.  Spec and encoders and decoders are coming soon.</p>
<p>But it's unclear to me how this is better than ESI - he says that generating the dicts is site-specific, aka manual.  I asked him during the question time but didn't get the question across to him I fear.</p>
<p><strong>Building faster pages in Firefox and IE!</strong> Mike Connor (FF) and Lawrence/Stockwell (MS).</p>
<p>In Firefox 3 we used: dtrace (Sun), Shark (Apple), and talos (perf framework).  Parallel conns up from 2 to 6 and stylesheet loading no longer blocks other downloads.  (Seems like many of the Yahoo! High Performance Rules may be largely mitigated by browser fixes over time).</p>
<p>When working on perf - test.  Test before and after.  Measure continuously.  Perf test after every checkin because cost to fix spikes later.</p>
<p>Easy steps:  Use the Yahoo! guidelines (oo, he noted they're trying to make them not matter any more, I'm so smart), incremental layout, and avoid "quirks mode."</p>
<p>Hard steps:  Use FF DOM Storage implementation.  Optimize images with OptiPNG or pngcrush.  Trim page markup site-wide.</p>
<p>Use tools.  Firebug/YSlow, Jiffy.  Shark on OSX.  <a href="http://plugins.jquery.com/project/profile " target="_blank">jQuery profiling plugin</a>.   [E:  Oh good, that might help us with the jQuery-running-rampant I just discovered on our home page.]</p>
<p>Measure.  Mozilla uses <a href="http://quality.mozilla.org/projects/automation/talos">Talos</a> to monitor perf against a static pageset.  Can be set to use FF vs a live pageset.  Regress!</p>
<p>In FF 3.1 looking to make JSON native and faster DOM implementation, and making Firebug rock more.</p>
<p><a href="about:mozilla">Would you like to know more?</a></p>
<p>On to IE.  IE8: We're Fixing It!  The first part was retread of the IE talk from yesterday.  Some interesting things - XDomainRequest for cross-domain communication (really?) and adding a timeout to XMLHTTPRequest.</p>
<p>Now they're going to show off Performance Analyzer, which is built on top of ETW.  Now they show us an internal plugin (DTW) that "wont' be released externally."  Then why do I give a shit?  I mean, come on.</p>
<p>They make a point that the various browser toolbars have ill effects.  Add-ons of various sorts have the same problems.  He has some tips for making well behaved add-ons, like use a separate thread.</p>
<p>Not a word of this had to do with building faster sites for IE.  Boo.  I was happy with the microsofties up till now, participation in the previous panels/sessions was good and on point, but this is a step back.</p>
<p>Finally a break.  Afterwards, the glorious conclusion!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-vi/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Velocity 2008 Conference Experience &#8211; Part V</title>
		<link>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-v/</link>
		<comments>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-v/#comments</comments>
		<pubDate>Tue, 24 Jun 2008 18:54:42 +0000</pubDate>
		<dc:creator>Ernest</dc:creator>
				<category><![CDATA[Application Performance Management]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Velocity 2008]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[velocity]]></category>
		<category><![CDATA[velocity08]]></category>
		<category><![CDATA[velocityconf08]]></category>

		<guid isPermaLink="false">http://webadminblog.com/?p=22</guid>
		<description><![CDATA[Welcome to the second (and final) day of the new Velocity Web performance and operations conference! I'm here to bring you the finest in big-hotel-ballroom-fueled info and drama from the day. In the meantime, Peco had met our old friend Alistair Croll, once of Coradiant and now freelance, blogging on "Bitcurrent." Oh, and also at [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the second (and final) day of the new Velocity Web performance and operations conference!  I'm here to bring you the finest in big-hotel-ballroom-fueled info and drama from the day.</p>
<p>In the meantime, Peco had met our old friend Alistair Croll, once of Coradiant and now freelance, blogging on "<a href="http://www.bitcurrent.com/  " target="_blank">Bitcurrent</a>."  Oh, and also at the vendor expo yesterday we saw something exciting - an open source offering from a company called <a href="http://www.controltier.com/" target="_blank">ControlTier</a>,  which is a control and deployment app.  We have one in house largely written by Peco called "Monolith" - more for control (self healing) and app deploys, which is why we don't use cfengine or puppet, which have very different use cases.  His initial take is that ControlTier has all the features he's implemented and all the ones on his list to implement for Monolith, so we're very intrigued.</p>
<p>We kick off with a video of base jumpers, just to get the adrenaline going.  Then, a "quirkily humorous" video about Faceball.</p>
<p>Steve and Jesse kick us off again today, and announce that the conference has more than 600 attendees, which is way above predictions!  Sweet.  And props to the program team, Artur Bergman (Wikia), Cal Henderson (Yahoo!), Jon Jenkins (Amazon), and Eric Shurman (Microsoft).  Velocity 2009 is on!   This makes us happy, we believe that this niche - web admin, web systems, web operations, whatever you call it - is getting quite large and needs/deserves some targeted attention.</p>
<p><span id="more-22"></span></p>
<p>First up is the open data talk from Ignite! last night; as the winner she is re-presenting.  Go back and read my previous post for more, since I've heard it already.</p>
<p><a href="http://eucalyptus.cs.ucsb.edu/">EUCALYPTUS</a>,  by Rich Wolski, is an acronym for "<strong><a href="http://en.oreilly.com/velocity2008/public/schedule/detail/4743" target="_blank">Elastic Utility Computing Architecture for Linking Your Programs to Useful Systems</a>.</strong>"   There's a bunch of "cloud" solutions in the commercial space, from Amazon to 3tera to mosso.  But as this technology emerges, the question comes up of haw it can be adapted to other uses- like scientific/academic, data assimilation, gaming, mobile...  Some things work great with a grid as currently conceived but some don't.</p>
<p>Note to NI: the data assimilation arena is something we should be more involved in.  It's core to our business as being all about test and measurement.  See the <a href="http://www.wired.com/science/discoveries/magazine/16-07/pb_theory" target="_blank">new issue of Wired</a> for more.</p>
<p>So they looked at nimbus, an interface to globus, and old reliable grid thing.  And Enomalism.  But neither fit their need.  So they made Eucalyptus.</p>
<ul>
<li>Strict Web services</li>
<li>Linux based, and using an interface designed to be compatible with Amazon EC2</li>
<li>Low impact on installations, one-button install using Rocks (since SAs rare in academia)</li>
</ul>
<p>Oh, I get it now.  It's an open source tool to encourage research in elastic/cloud/utility computing.  So essentially a cloud "development environment."  Experiment with it, test for free, then move to a cloud.</p>
<p>They also have requirements the current clouds don't serve well - like accountability of userids.  And more.  So I'm as "excited" about cloud computing as the next guy but I (and the people around me, it seems) have heard about enough of it for the week.  He goes on at some length about the spiffy things Eucalyptus does that helps out people in real environments (IP scarcity, EC2 compatibility, admin roles, etc.)  And they created "Rocks," a cloud friendly one button install.  Not sure what features it has that aren't supported by puppet or whatnot - VM support?  They use <a href="http://www.mulesource.com/" target="_blank">Mule</a>, the open source ESB.</p>
<p>Lessons learned: A fully open source cloud was harder than it should be.  And admins still seem to do lots of things by hands than using Rocks, let alone a cloudwide provisioning tool.  They are planning to integrate with RightScale, and add VMWare supprot (just Xen now).  So yay to your NSF dollars at work!</p>
<p>Next we've got Harold Prokop from <strong>Akamai</strong>.  We're interested because we're doing a CDN evaluation at NI this year.  "We didn't really think of Akamai as a cloud, but since cloud is the new hot term, it's a cloud!"  That's paraphrased from his talk, but not much.</p>
<p>The problem with traditional CDNs is that as more content is dynamic, less of it is cacheable.  (Well, kinda.)  So they talk about their new approach of "better routing" - since they have POPs everywhere, they can essentially do better-than-BGP routing and use WAN acceleration techniques (like not using the fat old bitch that is TCP) to speed up traffic across the Net.  It's called "Akamai SureRoute."  Seems like a good idea really.  And intelligent prefetching.  He also talks about ESIs (Edge Side Includes), a good idea- we've looked at them, as Oracle WebCache supports it too - to mark up parts of a page with differential cacheability rules.  The thing that scares me about ESI is that no one else has ever picked up on this open standard; it's been Oracle + Akamai for like 10 years, though it is a <a href="http://www.w3.org/TR/esi-lang" target="_blank">W3C standard</a>.</p>
<p>How about moving business logic to the edge?  Hmmm, sounds good but I wonder how realistic that is - you really have to factor your code carefully for that.  But if you're really into assembling from mini-components/services it could work.</p>
<p>Question: But we're using Ajax and JavaScript - why do we need this?  His answer is more diplomatic than mine, which is "you can't implement much worthwhile in JavaScript."  For anyone who's not a pure Web 2.0 play, that is.  And Ajax is about communicating back with the server so then all this applies anyway, which means the question was more just keyword gibberish than well thought through.  I mentally try to set the questioner ablaze but it doesn't work.</p>
<p>Then there was a large break where we were supposed to go to the vendor floor, but instead we talked at length with Akamai and Coradiant.  We're looking into CDNs for ni.com and hence Akamai, and we're Coradiant customers.  We've had a kinda long and trial-filled path in getting our Coradiant device working; part of the problems were ours (hint: use taps not span ports) and part the product's, but the bottom line is it's not giving us good data yet and that makes the guy signing the checks grumpy.  But they seem committed to getting us more engaged with them, getting on the advisory board, etc.  That'll be good - I think the RUM space and especially the network-sniff sort to be a very powerful tool in the APM suite and we're making a strategic shift to it from synthetic for more granular managing of app performance with our developer teams.</p>
<p>The next segment is a whole set of demos of various nifty tools.</p>
<p><a href="http://httpwatch.com/" target="_blank"><strong>HttpWatch</strong></a> is demoed by Simon Perkins. It's a HTTP sniffer and viewer. It shows you a waterfall for a request/response like YSlow or Page Detailer, but it's pretty.  The free version I just downloaded only shows the waterfall but you can't drill down into a component - looks like the full version is $300.  I wonder if it's $300 better than the others though.  And it's hard to tell if the free downloadable is feature-crippled; I consider that bad form and prefer time-crippled.  Now that there's like 20 of these tools it's time for a solid bakeoff.</p>
<p>Eric Lawrence demoes <a href="http://www.fiddlertool.com/fiddler/ " target="_blank"><strong>Fiddler</strong>.</a> He works on IE and developed TamperIE, Fiddler, etc.  Fiddler's more of a "platform for debugging" than a tool like HttpWatch, he says.  It runs as a local proxy.  They developed it to fix Microsoft's Web site.  And it simulates lower bandwidth connections!   And you can modify traffic.  So it's a very cool toolkit for more generalized work!</p>
<p>Eric Goldsmith of AOL shows <a href="http://en.oreilly.com/velocity2008/public/schedule/detail/3207" target="_blank"><strong>AOL PageTest.</strong></a> It's an <a href="http://pagetest.wiki.sourceforge.net/" target="_blank">open source IE plugin</a> - or even you can use it online at <a href="http://www.webpagetest.org" target="_blank">www.webpagetest.org</a>.  Again, a waterfall.  It also has optimization tips built in.  One note - the browser version doesn't have a legend in it anywhere for the colors, which is obnoxious (the web page version has a legend at the top).</p>
<p><a href="http://getfirebug.com/" target="_blank"><strong>Firebug</strong></a> in the hizzouse!  John J. Barton shows it off.  For the two of you who haven't used it, it's a Firefox plugin that lets you inspect/debug all kinds of stuff, especially JavaScript, CSS, and the DOM.  Then you can profile the page.  This'll show you every JS call and how much time it took.  Running this on the ni.com home page shows an unhealthy amount of junk from jquery, I note.  But it all got over my head quick.  I'm no JavaScript programmer.</p>
<p>Last for the morning, Sean Quinlan from Google talks about <strong>Storage at Scale</strong>.  Their philosophy is very low end PC based - single machine performance isn't interesting because partitioning problems is easy and even expensive hardware fails, so they build reliability into software not hardware.  They've built GFS, a non-POSIX clustered file system, and Bigtable, a distributed non-SQL database.  They need ginormous scaling of course.</p>
<p>Ernest thinks, "I've never understood why our server teams at NI insist on more expensive hardware - even after moving from Sun to Dell they insist on everything being dual power supply, RAID 5, etc.  That's why we have clusters.  I want cheaper hardware!"</p>
<p>GFS spreads chunks of files out and duplicates chunks across servers.  Fault tolerance is their largest concern - at scale commodity hardware is failing a lot.  Checksumming and replication work well against this. He gets into details way too complex to reproduce here, if you care go look up GFS, there's a paper on it.</p>
<p>Bigtable was "database-like" and built on top of GFS.  More of a massive hash really, key/value pairs.  They needed a way to keep semi-structured data at scale.</p>
<p>Lunch beckons and my butt is numb.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2008/06/24/the-velocity-2008-conference-experience-part-v/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
