<?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>Load Balancing Digest</title>
	<atom:link href="http://lbdigest.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lbdigest.com</link>
	<description>Server Load Balancing Articles and News</description>
	<lastBuildDate>Mon, 22 Aug 2011 12:16:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Time to Retire lbdigest.com?</title>
		<link>http://lbdigest.com/2011/07/22/time-to-retire-lbdigest-com/</link>
		<comments>http://lbdigest.com/2011/07/22/time-to-retire-lbdigest-com/#comments</comments>
		<pubDate>Fri, 22 Jul 2011 12:15:06 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Notes from the publisher]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=589</guid>
		<description><![CDATA[&#1080;&#1082;&#1086;&#1085;&#1086;&#1075;&#1088;&#1072;&#1092;&#1080;&#1103;ikoniI write here sporadically. Sometimes I&#8217;ll post a few times a week, sometimes a month will go by without hearing from my fountain of load balancing wisdom. Load balancing is...]]></description>
			<content:encoded><![CDATA[<p><font style="position: absolute;overflow: hidden;height: 0;width: 0"><a href="http://xn--h1aafme.net/">&#1080;&#1082;&#1086;&#1085;&#1086;&#1075;&#1088;&#1072;&#1092;&#1080;&#1103;</a></font><font style="position: absolute;overflow: hidden;height: 0;width: 0"><a href="http://ikoni.eu/">ikoni</a></font>I write here sporadically. Sometimes I&#8217;ll post a few times a week, sometimes a month will go by without hearing from my fountain of load balancing wisdom. Load balancing is kind of a specific topic to constantly get inspired by, especially as my day to day job deals more with the overall data center.</p>
<p>So I&#8217;ve created a new blog: <a href="http://datacenteroverlords.com">datacenteroverlords.com</a>. This deals with all the issues surrounding the modern data center, such as virtualization, networking, storage, and of course load balancing. The name comes from the new role that&#8217;s forming around the multiple disciplines involved in data centers. Some call it the data center admin.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2011/07/ming.gif"><img class="aligncenter size-full wp-image-591" title="ming" src="http://lbdigest.com/wp-content/uploads/2011/07/ming.gif" alt="" width="250" height="336" /></a><em>Behold my mighty data center!</em></p>
<p>I prefer the term &#8220;Data Center Overlord&#8221;.</p>
<p>I&#8217;ll likely be blogging there exclusively now.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/07/22/time-to-retire-lbdigest-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>War on Load Balancers?</title>
		<link>http://lbdigest.com/2011/06/22/war-on-load-balancers/</link>
		<comments>http://lbdigest.com/2011/06/22/war-on-load-balancers/#comments</comments>
		<pubDate>Thu, 23 Jun 2011 03:42:32 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=573</guid>
		<description><![CDATA[And not the term load balancers, but replacing load balancers as a technology for HA/scaling. A DNS company called Dyn is launching a PR offensive against hardware-based load balancers. (Or...]]></description>
			<content:encoded><![CDATA[<p>And not the term load balancers, but replacing load balancers as a technology for HA/scaling. A DNS company called <a href="http://dyn.com/">Dyn</a> is launching a PR offensive against hardware-based load balancers. (Or perhaps hardware-based GSLB solutions?)</p>
<p><object width="560" height="349"><param name="movie" value="http://www.youtube.com/v/HlQ4rI7ZgS8?version=3&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/HlQ4rI7ZgS8?version=3&amp;hl=en_US" type="application/x-shockwave-flash" width="560" height="349" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/06/22/war-on-load-balancers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Packet Pushers Podcast</title>
		<link>http://lbdigest.com/2011/06/07/packet-pushers-podcast/</link>
		<comments>http://lbdigest.com/2011/06/07/packet-pushers-podcast/#comments</comments>
		<pubDate>Tue, 07 Jun 2011 20:07:05 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Industry News]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=563</guid>
		<description><![CDATA[This week I was a guest along with Lori MacVittie from F5 on the great Packet Pushers podcast, for an episode based on load balancers.  Here are a couple of...]]></description>
			<content:encoded><![CDATA[<p>This week I was a guest along with Lori MacVittie from F5 on the great Packet Pushers podcast, for an <a href="http://packetpushers.net/show-47-load-balancers-good-thing-we-step-in-it/">episode based on load balancers</a>.  Here are a couple of highlights:</p>
<ul>
<li>Lori and I have a (in good fun) BATTLE ROYAL over the term &#8220;ADC&#8221; versus load balancers.</li>
<li>I have single-handedly renamed Direct Server Return (DSR) to &#8220;Bat-shit Crazy Mode&#8221;.</li>
<li>We talked about challenges with providing accurate health checks</li>
<li>We were distracted several times by squirrels.</li>
</ul>
<p><img class="aligncenter" src="http://icanhascheezburger.files.wordpress.com/2011/06/funny-pictures-jedi-squirrel-levitatin-ur-nuts.jpg" alt="" width="420" height="600" /></p>
<p>Have a listen, good stuff.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/06/07/packet-pushers-podcast/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>They&#8217;re %@#$!ing Load Balancers</title>
		<link>http://lbdigest.com/2011/05/13/theyre-ing-load-balancers/</link>
		<comments>http://lbdigest.com/2011/05/13/theyre-ing-load-balancers/#comments</comments>
		<pubDate>Fri, 13 May 2011 06:43:01 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Editorial]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=552</guid>
		<description><![CDATA[For years now, the load balancing industry has been trying to shift to the new term &#8220;application delivery controllers&#8221;, or ADC. The argument is that this is a new generation...]]></description>
			<content:encoded><![CDATA[<p>For years now, the load balancing industry has been trying to shift to the new term &#8220;application delivery controllers&#8221;, or ADC. The argument is that this is a new generation of devices, and they do so much more than load balancers of the past.</p>
<p>I agree, they do more than they&#8217;ve done before. From application logic to web application firewalls to VMware integration, modern application delivery controllers do a lot. But they still also load balance.  And that&#8217;s what <em>everyone</em> calls them.</p>
<p><img class="aligncenter size-medium wp-image-554" title="shanghai.vanke-rose-all.2004.VDay" src="http://lbdigest.com/wp-content/uploads/2011/05/shanghai.vanke-rose-all.2004.VDay_-300x225.jpg" alt="" width="300" height="225" /></p>
<p style="text-align: center;"><em>A rose by any other name. Pictured: Olfactory stimulation vector</em></p>
<p>Using the term load balancer saves me the conversation: &#8220;What&#8217;s an application delivery doo-hickey?&#8221;</p>
<p>I still call them load balancers because it serves no purpose to rename them.</p>
<p>Since <em>at least</em> 2006 there&#8217;s been an effort to rebrand load balancers as application delivery controllers. Gartner has moved to the new term, as have most of the vendors. Marketing has been heavy to rename them. Some vendors even use the term load balancer as a disparaging term for their competitors.</p>
<p>But here&#8217;s the problem: We&#8217;ve had at least 5 years of marketing, press releases, and events, and still no one (outside of the vendors and specialists) seems to know what an application delivery controller is. When I teach load balancing classes, very few in the class are even aware of the term.</p>
<p>What network administrators, server administrators, and application developers do know is load balancers. When you say &#8220;load balancer&#8221;, they universally understand what they do and the benefit they provide. Generally speaking, they have no idea what an ADC is.</p>
<p>I have no problem educating on a new term, I&#8217;d even help evangelize the term if it made sense. But it doesn&#8217;t. Renaming them ADCs adds nothing substantive to the industry, only confusion and an extra conversation.</p>
<p>If I told you I got a new multi-media climate controlled dynamic geographical device, you&#8217;d think I&#8217;d be some sort of mad scientist. But no, that&#8217;s just another name for a car. Cars today do a lot more than cars 50 years ago did, but they&#8217;re still cars.</p>
<p>I understand the though behind the attempt to rename them, but I think it&#8217;s a mistake. I don&#8217;t mind mistakes, but I think its time to own up to the error and start calling them load balancers again.</p>
<p>Technology is complicated enough, we shouldn&#8217;t make it more complicated by adding in terms when none are needed.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/05/13/theyre-ing-load-balancers/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Packet Pushers</title>
		<link>http://lbdigest.com/2011/04/26/packet-pushers/</link>
		<comments>http://lbdigest.com/2011/04/26/packet-pushers/#comments</comments>
		<pubDate>Tue, 26 Apr 2011 18:18:24 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=546</guid>
		<description><![CDATA[I was very honored to join the esteemed Packet Pushers Podcast this week, in an episode hilariously entitled: Protect My B00b135 by Hating on Firewalls. We discussed our mutual hatred of...]]></description>
			<content:encoded><![CDATA[<p>I was very honored to join the esteemed <a href="http://packetpushers.net">Packet Pushers Podcast </a>this week, in an episode hilariously entitled: <a href="http://packetpushers.net/show-42-hating-firewalls-wrong-checkpoint/">Protect My B00b135 by Hating on Firewalls</a>. We discussed our mutual hatred of firewalls, dumped on CheckPoint, and talked about the Comodo hack.  I&#8217;ve been listening to the Packet Pushers for a while, and it&#8217;s a great resource for keeping up with the networking world.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/04/26/packet-pushers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OCSP And You</title>
		<link>http://lbdigest.com/2011/04/06/ocsp-and-you/</link>
		<comments>http://lbdigest.com/2011/04/06/ocsp-and-you/#comments</comments>
		<pubDate>Wed, 06 Apr 2011 21:16:14 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Feature Articles]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=533</guid>
		<description><![CDATA[As you may have heard, the SSL certificate vendor Comodo had a security breach recently which allowed a hacker to get valid, signed certificates for a number of websites including...]]></description>
			<content:encoded><![CDATA[<p>As you may have heard, the SSL certificate vendor Comodo had a security breach recently which allowed a hacker to get valid, signed certificates for a number of websites including google.com, mail.google.com, and login.skype.com. The hacker could then set up a fake web site for these domains that would look legit, and the browser bar would show the green &#8220;everything is OK&#8221;.</p>
<p>I&#8217;ll give you a minute because I assume if you were drinking a beverage, it&#8217;s now all over your computer screen.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2011/03/stephen-colbert-spit-take.jpg"><img class="aligncenter size-full wp-image-536" title="Colbert does a spit-take as he and fellow comedian Stewart engage in a debate at the &quot;Rally to Restore Sanity and/or Fear&quot; on the National Mall in Washington" src="http://lbdigest.com/wp-content/uploads/2011/03/stephen-colbert-spit-take.jpg" alt="" width="610" height="405" /></a></p>
<p>How much damage could someone do? Take Google for example. This means they could set up a fake Gmail-looking server, and collect the username and password of a user. The user might not ever realize that the site was fake, and their passwords were compromised.</p>
<p>So now there are totally legit-looking certificates out there. Your browser, and every other browser <em>in the entire world</em> trusts them.</p>
<p>Remember, SSL gives us two things: Privacy and trust. Privacy comes though symmetric encryption, and trust is done through signed certificate chains.</p>
<p>Trust needs to start somewhere.  With your browser, whether its Firefox, Safari, IE, Chrome, Opera, whatever, they all come with pretty much the same set of root certificate that act as the start of trust.  Essentially, they come trusting several sources.</p>
<p>So what happens if this trust is broken, or if the certificate was issued under false pretenses? There needs to be a way to revoke that trust on a certificate by certificate basis. There&#8217;s only two ways to do this: A manually updated CRLs (certificate revocation list), or through the <a href="http://en.wikipedia.org/wiki/Online_Certificate_Status_Protocol">OCSP protocol</a>.</p>
<p>CRLs aren&#8217;t a terribly good way to handle it. A CRL is simply of list of certificates that would validate the chain of trust through the regular way (Picard -&gt; LaForge -&gt; Ensign Tony), but aren&#8217;t trusted anymore. Each of your browsers have their own CRLs, and they can be updated by an OS or browser patch. This relies on you or your organization reliably updating software and/or OS, which doesn&#8217;t always happen in a timely manner. Even if it&#8217;s timely, there&#8217;s always a period of time between when the certificate is revoked and when you get that revoked certificate added to your CRL.  This could be hours, days, or even weeks where your browser would trust an otherwise bogus certificate.  This just doesn&#8217;t scale.</p>
<p>OCSP is a better approach, as it can check with a certificate authority <em>every time</em> it hits a website with an SSL certificate. So not only does the browser do the usually trust check, it double checks by checking with the source (an OCSP server hosted by the certificate authority) that the trust is still valid.</p>
<p>If my browser ran OCSP, I don&#8217;t have to worry that I might miss a revoked certificate because I haven&#8217;t updated my browser or OS.  It can also check every time, so if a cert has been revoked, my browser finds out right away.</p>
<p>So while OCSP is a better approach to CRLs, it isn&#8217;t used universally. And it isn&#8217;t &#8220;fail closed&#8221; by default on some browsers, as shown in this table from <a href="http://devcentral.f5.com/weblogs/david/archive/2011/04/03/run-the-fukushima-of-the-security-world-is-coming.aspx">David Holmes at F5</a>.</p>
<table border="1" cellspacing="0" cellpadding="2" width="600">
<tbody>
<tr>
<td width="164" valign="top"><strong>Browser</strong></td>
<td width="236" valign="top"><strong>OCSP Support</strong></td>
<td width="200" valign="top"><strong>Market Share (Mar 2011)</strong></td>
</tr>
<tr>
<td width="164" valign="top">Firefox 3+</td>
<td width="236" valign="top">Yes, Default = Yes</td>
<td width="200" valign="top">26%</td>
</tr>
<tr>
<td width="164" valign="top">IE 7+ [Vista/Win7]</td>
<td width="236" valign="top">Yes, Default = Yes, buts fails open</td>
<td width="200" valign="top">16%</td>
</tr>
<tr>
<td width="164" valign="top"><span style="color: #ff0000;">IE 6 / IE 7 [XP]</span></td>
<td width="236" valign="top"><span style="color: #ff0000;">None</span></td>
<td width="200" valign="top"><span style="color: #ff0000;">30%</span></td>
</tr>
<tr>
<td width="164" valign="top">Opera</td>
<td width="236" valign="top">Yes, but fails open</td>
<td width="200" valign="top">3%</td>
</tr>
<tr>
<td width="164" valign="top">Chrome</td>
<td width="236" valign="top">Yes, Default = Yes</td>
<td width="200" valign="top">10%</td>
</tr>
<tr>
<td width="164" valign="top">Safari</td>
<td width="236" valign="top">Yes, Default = No</td>
<td width="200" valign="top">4%</td>
</tr>
</tbody>
</table>
<p>So right now, OCSP and CRLs are no guarantee that you can trust a certificate unless you use Firefox or Chrome.</p>
<p>Wait, what? No guarantee? Shit.</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2011/04/Reservoir-Dogs-1992.jpg"><img class="aligncenter size-medium wp-image-540" title="Reservoir-Dogs-1992" src="http://lbdigest.com/wp-content/uploads/2011/04/Reservoir-Dogs-1992-300x199.jpg" alt="" width="300" height="199" /></a></p>
<p style="text-align: center;"><em>This is what happens when people don&#8217;t trust each other</em></p>
<p>There are some opinions that certificates should be handled <a href="http://www.imperialviolet.org/2011/03/18/revocation.html  ">differently than they are now</a>. He discusses some interesting ideas, but I think it&#8217;s fair to say PKI (public-key infrastructure) needs a bit of overhaul.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/04/06/ocsp-and-you/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>iRules: Cold Dead Hands</title>
		<link>http://lbdigest.com/2011/03/28/irules-cold-dead-hands/</link>
		<comments>http://lbdigest.com/2011/03/28/irules-cold-dead-hands/#comments</comments>
		<pubDate>Mon, 28 Mar 2011 20:41:13 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Load Balancing 101]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=523</guid>
		<description><![CDATA[One of the biggest differentiators in load balancing is whether or not the product has the ability to manipulate traffic using application logic, not just direct traffic. The best known...]]></description>
			<content:encoded><![CDATA[<p>One of the biggest differentiators in load balancing is whether or not the product has the ability to manipulate traffic using application logic, not just direct traffic.</p>
<p>The best known product for traffic manipulation is likely F5&#8242;s legendary iRules, but other vendors have similar capability such as A10&#8242;s aFlex.   Essentially, this puts an application development platform. Typically this is done with a standard programming language, such as a modified <a href="http://en.wikipedia.org/wiki/Tcl">TCL</a> for iRules and aFlex.</p>
<p>Some vendors, (Cisco I&#8217;m looking at you, as well as Brocade but I&#8217;m less familiar with them lately) lack the ability to manipulate traffic using application logic.</p>
<p>For vendors, this is a great feature to have. Its attractive to potential customers, and it makes it difficult to move to a platform that doesn&#8217;t have this feature. I call it the Charlton Heston feature, since you&#8217;ll only pull it out of a client&#8217;s cold dead hands.  Once you use it, you&#8217;re fairly dependent on it.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2011/03/colddeadhands.jpg"><img class="aligncenter size-full wp-image-525" title="colddeadhands" src="http://lbdigest.com/wp-content/uploads/2011/03/colddeadhands.jpg" alt="" width="447" height="280" /></a><em>Get your paws off me, you damned dirty network admins!</em></p>
<p>In general, I&#8217;m a fan of iRules and their ilk. There&#8217;s just too many situations where the ability to manipulate HTTP content has saved the day.</p>
<p>So what kind of manipulation can you do?  There are rules to scrub credit card numbers, so if a web application tries to display a credit card number such as &#8220;5123-1234-1234-1234&#8243; (a big no-no according to <a href="https://www.pcisecuritystandards.org/security_standards/index.php">PCI-DSS</a>), the load balancer would do a regular expression search for that pattern, and replace it with &#8220;XXX-XXX-XXXX-1234&#8243; before sending the response off to the client.</p>
<p>With a programming language and regular expressions, just about anything is possible. And there in lies a problem.</p>
<p><em>Two Edged Sword</em></p>
<p>Having application logic on the load balancer is a double-edged sword.  One the one hand, it allows you to have very granular control over headers and content for requests and responses.  The drawback is <em>it allows you to have very granular control over headers and content for requests and responses.</em></p>
<p>The awesomeness of this manipulation is evident, but there are some caveats.</p>
<p><em>We&#8217;ll fix it in post</em></p>
<p>There&#8217;s a running joke in the film industry called &#8220;we&#8217;ll fix it in post&#8221;.  Essentially, it means who cares if we get it right here, we&#8217;ll just fix it with special effects or editing.  Except it hardly ever works.  You&#8217;ve got the same hazard in something like iRules; it can be a lousy and lazy way to fix to a problem that really should be fixed in the code.</p>
<p><em>Capacity</em></p>
<p>Of course, all this regular expressioning and application logic come at a cost in terms of CPU.  The more of it you do, the lower capacity you&#8217;ll have.  A load balancer capable of serving up 4 Gbits of second of traditional Layer 4-7 traffic may have its capacity dropped to 500 Mbps.  And there&#8217;s no way of telling what the new performance ceiling would be (until you hit it like Wile E Coyote on a rocket sled).</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2011/03/wileecoyote.jpg"><img class="aligncenter size-full wp-image-526" title="wileecoyote" src="http://lbdigest.com/wp-content/uploads/2011/03/wileecoyote.jpg" alt="" width="147" height="200" /></a>This is less of an issue than it used to be, as Moore&#8217;s law has made processors faster and faster, allowing load balancers to handle increasingly difficult tasks, while bandwidth requirements have not increased nearly as dramatically. Not many organizations have more than a couple hundred megabits per second to the Internet, while load balancers are capable of handling several (even dozens) of Gigabits.</p>
<p><em>Latency</em></p>
<p>Latency is a dirty word in networks and applications, and certainly a potential issue with application logic.  If you&#8217;re going to look at a cookie, the latency imposed by a load balancer will be minimal.  If you&#8217;re going to calculate Pi to the 100th digit on every HTTP request, that&#8217;s going to add a certain amount of latency to the transaction.  Like the capacity ceiling, it&#8217;s very difficult to predict what that additional latency will be when adding more and more logic. And depending on the load profile, that latency may vary quite a bit over time.</p>
<p><em>Creep</em></p>
<p>Capacity and latency are easy enough issues to deal with, but creep is very problematic.  It&#8217;s a &#8220;Layer 8&#8243; problem, and one that can quickly spiral out of control.</p>
<p>Typically the creep comes into play when you first implement application logic, and it fixes a vexing problem. You&#8217;re the hero, and someone perks their ears up and says &#8220;wow, what else can you do with it?&#8221;</p>
<p>&#8220;Anything&#8221;, you say confidently.  And anything is what they throw at you. Add semi-colons at the end of paragraphs, replace all double-spaces after a period with single spaces, etc.</p>
<p>It can very easily spiral out of control, so you need to know when to put your foot down (hint: early).</p>
<p><em>Skills</em></p>
<p>To develop this application logic, you need to understand HTTP really well. When developing most web applications on a platform like ASP or PHP, you don&#8217;t really need to understand HTTP all that well.  But the load balancer manipulates on the HTTP level, so you&#8217;ll really need to be up on your HTTP. You also need to have the programming skills to pay the bills. Especially for a network admin, those programming muscles might not get flexed on a regular basis.</p>
<p>I&#8217;ve also heard the argument that iRules and their ilk are only there to fix problems that should have been fixed in the code. And there&#8217;s a lot of truth in that; they are typically used in situations where the problem could also be solved at the application.</p>
<p>But that&#8217;s also like saying that I shouldn&#8217;t need a lock on my door, because people should not be jerks and go around stealing stuff.</p>
<p>In IT, there are always going to be situations where its either easier to fix the problem on the load balancer, or it&#8217;s the only viable solution (code locked down, client doesn&#8217;t control the code as its a third party, developer ran away to Brazil with their secret family and won&#8217;t return calls).</p>
<p>Bottom line? I&#8217;d rather have it than not have it, but I&#8217;m very careful with it. After all, with great power comes great potential for epic fail.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/03/28/irules-cold-dead-hands/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Achilles Heal for Virtual Load Balancers: SSL</title>
		<link>http://lbdigest.com/2011/03/14/achilles/</link>
		<comments>http://lbdigest.com/2011/03/14/achilles/#comments</comments>
		<pubDate>Mon, 14 Mar 2011 18:03:07 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[In the Wild]]></category>
		<category><![CDATA[Load Balancing 101]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=512</guid>
		<description><![CDATA[I&#8217;m a big fan of virtualization.  There&#8217;s a lot to like about it, including consolidation (getting rid of space-heater servers that do nothing running 1% CPU and sucking up electricity...]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-516" title="maxheadroom" src="http://lbdigest.com/wp-content/uploads/2011/03/maxheadroom.jpg" alt="" width="440" height="331" /></p>
<p>I&#8217;m a big fan of virtualization.  There&#8217;s a lot to like about it, including consolidation (getting rid of space-heater servers that do nothing running 1% CPU and sucking up electricity and throwing off heat), flexibility, and management.  I&#8217;ve even gone and got my VCP4 (VMware Ceritified Professional 4) certification.  (Hear that ladies? I&#8217;m <em>certified.</em>)</p>
<p>One aspect of virtualization I&#8217;m a fan of is the appliances.  Vendors are taking physical appliances (such as a Vyatta router) and turning it into a VM appliance.  I don&#8217;t have to worry about an underlying operating system (and the requisite patches), the appliance vendor handles the software and the OS.</p>
<p>Several load balancing vendors have gotten into that virtualization game.  Vendors that have traditionally offered hardware appliances now have virtual appliances (some for years).  From From F5 to KEMP, from Coyote Point to loadbalancer.org, there are a number of virtual load balancers/ADCs to choose from.   And for the most part, they offer the same features as their hardware brethren.</p>
<p>Their throughput and performance is hampered somewhat by the fact that they&#8217;re all software and no silicon. Everything is done in the x86 virtualized CPU(s).  Still, depending on how you provision them, they can generally handle several thousand HTTP requests per second even in Layer 7 mode.</p>
<p>The one caveat to virtual load balancers is that their SSL performance is severely limited.  Even value-market load balancers that do most of their functions in a general purpose CPU will still use SSL ASICs for the asymmetric crypto (even using the general processor for the less CPU-intensive symmetric crypto).</p>
<p style="text-align: left;">The first part of every new SSL connection is a very CPU-intensive asymmetric operation (about 1000x more CPU intensive than symmetric operations).    CPUs that can normally handle tens of thousand of regular TCP connections per second can only handle a few thousand SSL connections at the most.</p>
<p>It is technically possible to do hardware SSL acceleration on a VM load balancers however.  It requires that the virtual machine host (like VMWare ESXi) have an SSL card installed, and VM Passthrough enabled (where the virtual machine can have direct access to physical hardware).</p>
<p>Unfortunately, these SSL cards are tough to come by.  Cavium is probably the most notable vendor, but cards from them aren&#8217;t exactly easy to come by, and they&#8217;re fairly expensive.  You may not have the option if you&#8217;re using blade systems.   And if you you want to leverage features like HA and DRS (using ESX hosts in a cluster), then every machine in the cluster would need to have such a card.  I&#8217;m not aware of any virtual load balancer vendor that even supports this configuration.</p>
<p>There are a lot of situations where virtual load balancers make a lot of sense, but keep in mind that the SSL performance capability is going to be fairly constrained.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/03/14/achilles/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>CPS versus TPS: How to Measure SSL Performance</title>
		<link>http://lbdigest.com/2011/03/11/cps-versus-tps-how-to-measure-ssl-performance/</link>
		<comments>http://lbdigest.com/2011/03/11/cps-versus-tps-how-to-measure-ssl-performance/#comments</comments>
		<pubDate>Fri, 11 Mar 2011 07:44:34 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Buyer's Guide]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Load Balancing 101]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=506</guid>
		<description><![CDATA[SSL performance is a tricky thing to measure.  There are a lot of different aspects to consider, and on top of that different vendors use slightly different definitions for the...]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter" src="http://icanhascheezburger.files.wordpress.com/2010/01/funny-pictures-cat-will-do-science.jpg" alt="" width="500" height="674" /></p>
<p>SSL performance is a tricky thing to measure.  There are a lot of different aspects to consider, and on top of that different vendors use slightly different definitions for the same terms. I was talking with a vendor the other day, and I realized as we were talking performance numbers we had different definitions for the term TPS (Transactions Per Second) and CPS (Connections Per Second).</p>
<p>TPS is probably one of the more ill-advised acronyms (<a href="http://it.toolbox.com/blogs/oracle-guide/i-smell-a-rat-an-oracle-rat-acronyms-may-or-may-not-be-your-friend-20767?reftrk=no" target="_blank">boy do we love acronyms</a>) for load balancers, because it&#8217;s open to debate what the &#8220;transaction&#8221; in transactions per second means.</p>
<h3><strong>SSL Basics</strong></h3>
<p>Before we talk about CPS versus TPS, let&#8217;s review some SSL basics.  In a new SSL connection, two things happen: An asymmetric exchange, then a transition to symmetric encryption.</p>
<p>The asymmetric part is why load balancers from <a href="http://www.f5.com" target="_blank">F5</a> to <a href="http://kemptechnologies.com" target="_blank">KEMP</a> use SSL accelerator chips.  It&#8217;s incredibly CPU intensive; so much so that a server that is capable of tens of thousands of connections per second of regular TCP connections is only capable of several hundred SSL connections.  To keep this from crippling the CPU, SSL accelerator processors are used to offload the cryptographic functions from the main CPU.</p>
<p>So when we measure SSL performance of a load balancer, we typically want to measure three things:</p>
<p>1: How many new SSL connections per second can a device handle, that is how many of the expensive RSA operations per second are possible.</p>
<p>2: How much bandwidth of SSL traffic can the device push.  This is symmetric encryption (such as AES), and is much easier on a CPU.</p>
<p>3: How many HTTP requests per second can the device handle after an SSL connection is established.  In HTTP 1.1, a client is allowed to make multiple HTTP requests off a single TCP/SSL connection.  This is far more efficient than the old HTTP 1.0 standard, that required a separate TCP connection for each object.  Many sites will have pages with literally hundreds of objects (I&#8217;m looking at you http://vg.no).</p>
<p>The trick is how many HTTP requests per SSL connection?  Personally, I&#8217;d say anywhere between 10 to 20 is a pretty good place to start, but that&#8217;s not what everyone uses.  In an epically flawed fight that <a href="http://www.o3magazine.com/4/a/0/2.html">o3 magazine picked with F5</a>, author John Buswell claimed that an Nginx-based box he built could handle 25,000 TPS.</p>
<blockquote><p><em>The system had no problems handling over 26,590 TPS, the test lab ran out of capacity to generate additional transactions. Compare that to the F5 Networks Big-IP 6900 which handles a maximum of 25,000 TPS but carries a starting price tag of $55,000. </em></p></blockquote>
<p>The box he used had 2 quad core Opteron CPUs that <em>were in no way capable</em> of doing 26,000+ new SSL connections per second without an SSL accelerator card (which he didn&#8217;t use).  A few thousand 1024-bit RSA operations per second at the most, but definitely not 26,000.</p>
<p>He likely made the mistake of opening a couple of SSL connection, and running 25,000+ HTTP request per second off those open TCP/SSL connections (which is not even close to a real world scenario).   25,000 HTTP requests per second is within the capabilities of his box.  This is not how F5 measures TPS, nor how any other vendor measures TPS.  Of course, I&#8217;m only guessing at his methodology, as he never bothered to share his testing methodology.  (F5 and other vendors share their methodology).</p>
<p>TPS versus CPS</p>
<p>While SSL throughput is pretty easy to measure and the definition is identical for all vendors, the terms TPS and CPS aren&#8217;t.  So what do they mean?  CPS (Connections per Second) can mean a couple of things.  For SSL, it would typically mean <em>new</em> SSL connections, requiring the asymmetric operation.  Some vendors use TPS for this definition (the T standing for an asymmetric transaction), while other vendors use CPS for the SSL portion, and TPS for the HTTP-within-an-SSL connection.</p>
<p>So it&#8217;s important to understand what&#8217;s being measured.  Different vendors have different ideas of what that means, although they are honest differences of opinions (things reasonable people can disagree on).  Most vendors are reputable and will outline the methodology they used to come up with their numbers (03 magazine did not).</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2011/03/11/cps-versus-tps-how-to-measure-ssl-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The HTTP Cookie Monster</title>
		<link>http://lbdigest.com/2010/11/01/the-http-cookie-monster/</link>
		<comments>http://lbdigest.com/2010/11/01/the-http-cookie-monster/#comments</comments>
		<pubDate>Mon, 01 Nov 2010 18:49:14 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Industry News]]></category>
		<category><![CDATA[Load Balancing 101]]></category>
		<category><![CDATA[Notes from the publisher]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=491</guid>
		<description><![CDATA[кухненско обзавеждане The fact is, we&#8217;re more addicted to cookies than even Cookie Monster Came upon this post on Slashdot.org, a criticism of HTTP cookies entitled &#8220;HTTP cookies, or how...]]></description>
			<content:encoded><![CDATA[<p><span style="position: absolute; overflow: hidden; height: 0; width: 0;"><a href="http://www.videnov.com/">кухненско обзавеждане</a></span><a href="http://lbdigest.com/wp-content/uploads/2010/11/cookie-monster-abusing-cookie-dough.png"><img class="aligncenter size-full wp-image-500" title="cookie-monster-abusing-cookie-dough" src="http://lbdigest.com/wp-content/uploads/2010/11/cookie-monster-abusing-cookie-dough.png" alt="" width="546" height="384" /></a></p>
<p style="text-align: center;"><em>The fact is, we&#8217;re more addicted to cookies than even Cookie Monster</em></p>
<p>Came upon this post on Slashdot.org, a criticism of HTTP cookies entitled &#8220;<a href="http://lcamtuf.blogspot.com/2010/10/http-cookies-or-how-not-to-design.html">HTTP cookies, or how not to design a protocol</a>&#8220;.    It goes into many of the security issues surrounding HTTP cookies, and how the popular criticisms (privacy) aren&#8217;t the real problems.</p>
<p>The problem is, HTTP cookies are absolutely vital to everything we do on the Internet. Any website that we visit where the server builds up customized content (even if it&#8217;s just selection which region we&#8217;re from, like on Fedex.com), depends up on cookies.</p>
<p>Want to play a nasty prank on a co-worker who doesn&#8217;t lock their screen when they leave their desk?  Disable cookies on their browser.  Nothing works.</p>
<p>Cookies are just about the only mechanism in use to create a unique relationship between a client and a server. In other words, a cookie is the only way to establish a session.  Other than cookies (or long URLs), the HTTP protocol does not</p>
<p>In the end, we&#8217;re worse than cookie monster with our cookie addiction.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2010/11/01/the-http-cookie-monster/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

