<?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 &#187; Feature Articles</title>
	<atom:link href="http://lbdigest.com/category/feature-articles/feed/" rel="self" type="application/rss+xml" />
	<link>http://lbdigest.com</link>
	<description>Server Load Balancing Articles and News</description>
	<lastBuildDate>Thu, 12 Aug 2010 23:32:40 +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>SSL: Who Do You Trust?</title>
		<link>http://lbdigest.com/2010/08/11/ssl-who-do-you-trust/</link>
		<comments>http://lbdigest.com/2010/08/11/ssl-who-do-you-trust/#comments</comments>
		<pubDate>Wed, 11 Aug 2010 20:23:09 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=473</guid>
		<description><![CDATA[One of the most important technologies used in the modern Internet is the TLS/SSL protocol (typically called just SSL, but that’s a whole different article).  The two benefits that TLS/SSL gives us are privacy and trust. Privacy comes through the use of digital encryption (RSA,...]]></description>
			<content:encoded><![CDATA[<p>One of the most important technologies used in the modern Internet is the <a href="http://en.wikipedia.org/wiki/Transport_Layer_Security">TLS/<strong>SSL</strong></a> protocol (typically called just <strong>SSL</strong>, but that’s a whole different article).  The two benefits that TLS/<strong>SSL</strong> gives us are <em>privacy</em> and <em>trust</em>.</p>
<p>Privacy comes through the use of digital encryption (RSA, AES, etc.)  to keep your web interactions, such as credit card numbers, emails,  passwords, confidential documents, etc., safe from prying eyes.</p>
<p>But having private communications with another party is all for  naught if you’re talking to the wrong party.  You also need trust.   Trust that someone is who they say they are. For Internet commerce to  work on a practical level, you need to able to trust that when you’re  typing your username and password into your bank’s website, that you’re  actually connecting to a bank, and not someone pretending to be your  bank.</p>
<p>Trust is accomplished through the use of SSL certificates, CAs (certificate authorities), intermediate certificates, and certificate chains which combined is known as <a href="http://en.wikipedia.org/wiki/Public_key_infrastructure">PKI (Public Key Infrastructure)</a>.    To elaborate on the use of these technologies to provide trust, I’m  going to forgo the traditional Bob and Alice encryption examples, and go  for something a little closer to your heart.  I’m going to drop some <strong>Star</strong> <strong>Trek</strong> on you.</p>
<p>Let’s say you’re in the market for a starship.  You’re looking for a  sporty model with warp drive, heated seats, and most importantly, a  holodeck. You go to your local Starfleet dealer, and you find this guy.</p>
<p>Ensign Tony.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2010/08/ensigntony-300x228.jpg"><img class="aligncenter size-full wp-image-474" title="ensigntony-300x228" src="http://lbdigest.com/wp-content/uploads/2010/08/ensigntony-300x228.jpg" alt="" width="300" height="228" /></a><em>Seriously Tony, how do you get girls to even talk to you?</em></p>
<p style="text-align: left;">The problem is, you don’t trust this guy.  It’s nothing personal, but  you just don’t know him. He says he’s Ensign Tony, but you have no idea  if it’s really him or  not.  But there is one Starfleet officer you do  know and trust implicitly, even though you never met him.  You trust  Captain Jean-Luc Picard.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2010/08/picard.jpg"><img class="aligncenter size-full wp-image-475" title="picard" src="http://lbdigest.com/wp-content/uploads/2010/08/picard.jpg" alt="" width="292" height="356" /></a><em>If there’s a problem a peace negotiation can’t solve, I haven’t met it yet</em></p>
<p>Captain Picard is the kind of guy you <em>start out</em> automatically trusting.  His reputation precedes him. Your browser is  the same way, in that right out of the gate there are several sources  (such as Verisign) that your browser trusts implicitly.</p>
<p>But you’re not dealing with Picard directly.  Instead, you’re dealing  with Ensign Tony.  So Picard vouches for Ensign Tony, and thus a trust  chain is built.   You trust Picard, and Picard trusts Ensign Tony, so by  the transitive property, you can now trust Ensign Tony.</p>
<p>Whether it’s Internet Explorer, Firefox, Safari, Chrome, Opera, or  other browsers, they come built-in trusting a number of sources.</p>
<p><strong>Intermediate Certificates</strong></p>
<p>One of the lesser understood concepts in the us of SSL certificates is the intermediate certificates.  These are certificates  that sit between the CA (Picard) and the site certificate (Ensign Tony).</p>
<p>You see, Picard is an important man.  The Enterprise has over a  thousand crew members and he can’t possibly personally know and trust  all of them.  (In Ensign Tony’s case, there’s also the little matter of a  restraining order.)  So he farms the trust out to his subordinates. And  one crew member he does implicitly trust is Chief Engineer Geordi La  Forge.</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2010/08/99problemsjordi-300x229.jpg"><img class="aligncenter size-full wp-image-476" title="99problemsjordi-300x229" src="http://lbdigest.com/wp-content/uploads/2010/08/99problemsjordi-300x229.jpg" alt="" width="300" height="229" /></a></p>
<p style="text-align: center;"><em>I have not clever caption for this image, as it is perfect.</em></p>
<p>Ensign Tony works for Geordi, and Geordi trusts Ensign Tony.   Thus  Geordi becomes the intermediate certificate.  You can’t trust Ensign  Tony directly through Picard because Picard can’t vouch for Tony, but  Geordi can vouch fro Tony, and Picard can vouch for Geordi, so we have  built a chain of trust.   This is why load balancers and web servers  often require you to install an intermediate certificate.</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2010/08/trustchain.png"><img class="aligncenter size-full wp-image-477" title="trustchain" src="http://lbdigest.com/wp-content/uploads/2010/08/trustchain.png" alt="" width="505" height="907" /></a></p>
<p style="text-align: center;"><em><em>This may be the greatest SSL diagram ever made.</em></em></p>
<p>Here’s what happens when you don’t install an intermediate certificate onto your load balancer/ADC/web server:</p>
<p><a href="http://lbdigest.com/wp-content/uploads/2010/08/nochain.png"><img class="aligncenter size-full wp-image-478" title="nochain" src="http://lbdigest.com/wp-content/uploads/2010/08/nochain.png" alt="" width="560" height="692" /></a></p>
<p style="text-align: center;"><em>You’re 33 years old Tony, you’d think you would have made Lieutenant by now</em></p>
<p>One of the practical issues that comes up with intermediate certificates is which one do you use?  The various SSL certificate vendors such as Thawte, Digicert, and Verisign have several  intermediate certificates depending on the type of certificate you  purchase. Sometimes it’s not always obvious.  If you have any doubts,  use one of the SSL certificate validation tools from the various vendors , including this one by <a href="http://www.digicert.com/help">Digicert</a>.  It will tell you if the certificate chain works or not. Do <em>not</em> let a test from your browser determine whether your certificate works.   Browsers handle certs differently, and a validation tool will tell you  if it will work with all browsers.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2010/08/11/ssl-who-do-you-trust/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tony, You Idiot</title>
		<link>http://lbdigest.com/2010/08/10/tony-you-idiot/</link>
		<comments>http://lbdigest.com/2010/08/10/tony-you-idiot/#comments</comments>
		<pubDate>Tue, 10 Aug 2010 21:19:36 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=462</guid>
		<description><![CDATA[Wondering WTF happened?  Wondering why we seemed to have gone back in time?  Well, the explanation is rather simple. I&#8217;m an idiot. I migrated from one hosting system to another.  I run regular backups of my MySQL database. Well, apparently there was a field in...]]></description>
			<content:encoded><![CDATA[<p>Wondering WTF happened?  Wondering why we seemed to have gone back in time?  Well, the explanation is rather simple.</p>
<p>I&#8217;m an idiot.</p>
<p>I migrated from one hosting system to another.  I run regular backups of my MySQL database.</p>
<p>Well, apparently there was a field in one of the wordpress databases that the mysql backup application didn&#8217;t like.   So as it dumped the contents of the database, it hit this particular record and then stopped.  So the backups are frozen in time.</p>
<p>By the time I figured this out, I had purged all the data off my old server.</p>
<p>Woops.</p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2010/08/picard-facepalm.jpg"><img class="aligncenter size-medium wp-image-463" title="picard-facepalm" src="http://lbdigest.com/wp-content/uploads/2010/08/picard-facepalm-300x197.jpg" alt="" width="300" height="197" /></a><em>Ensign Tony, Didn&#8217;t Anyone Tell You To Test Those Backups?</em></p>
<p>I&#8217;ll be reconstructing the old articles as best I can.  But for now, enjoy Picard&#8217;s epic facepalm.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2010/08/10/tony-you-idiot/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>One Arm, One Network, To Rule Them All</title>
		<link>http://lbdigest.com/2009/10/25/one-arm-one-network-to-rule-them-all/</link>
		<comments>http://lbdigest.com/2009/10/25/one-arm-one-network-to-rule-them-all/#comments</comments>
		<pubDate>Sun, 25 Oct 2009 22:08:19 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=425</guid>
		<description><![CDATA[Ok, I&#8217;m not really a Tolkin fan (you dare speak such heresy! -ed), but I couldn&#8217;t resist the nerd reference.Â  Especially from a guy with a license plate that says &#8220;NERD 1&#8243; (I&#8217;m not kidding). This post covers network topology, which is how the load...]]></description>
			<content:encoded><![CDATA[<p>Ok, I&#8217;m not really a Tolkin fan (<em>you dare speak such heresy! -ed</em>), but I couldn&#8217;t resist the nerd reference.Â  Especially from a guy with a license plate that says &#8220;NERD 1&#8243; (I&#8217;m not kidding).</p>
<p>This post covers network topology, which is how the load balancer fits into the network.Â  How a device fits into the network is usually a difficult concept to get, and often that&#8217;s simply because people make it tougher than it need be. Basically, for a load balancer to be put into a network effectively, two things need to happen.</p>
<ol>
<li>Traffic needs to flow through the load balancer on the way in</li>
</ol>
<ol>
<li>Traffic needs to flow through the load balancer on the way out</li>
</ol>
<p>The first part is easy, as there&#8217;s only one way.Â  We direct traffic to the virtual IP (VIP) and port sitting on the load balancer.Â  This is the IP and port that pretends to be the server.Â  Getting traffic through the load balancer on the way out is probably one of the toughest concepts to grasp when learning load balancers, as there are several ways to accomplish this.</p>
<p>There&#8217;s on method of getting traffic through the load balancer on the way out that&#8217;s a quick way to drop a load balancer into an existing infrastructure with minimal changes to the network topology.Â  This is called one-armed, route-path.</p>
<p>One-armed, route path is not as popular as some of the other methods, although it has the distinct benefit of being a good, quick &#8220;drop-in&#8221; deployment.Â  Here&#8217;s how it works.</p>
<p style="text-align: left;">Let&#8217;s say you&#8217;ve got a network with a couple of servers sitting behind a firewall.Â  This firewall does NAT from a public address space to private IPs. This is a pretty common scenario for a small to medium sized business.</p>
<p style="text-align: center;"><img class="size-medium wp-image-429 aligncenter" title="onearmedroutepathBEFORE" src="http://lbdigest.com/wp-content/uploads/2009/10/onearmedroutepathBEFORE-193x300.png" alt="onearmedroutepathBEFORE" width="193" height="300" /></p>
<p>In the example shown above, the default gateway for the servers is the firewall, at 192.168.1.1.Â  To network admins, The concept of a default gateway is second nature.Â  To server folks, keep this in mind:Â  If you want to send IP traffic to a system not on your local network, you need a router to handle delivery.Â  That is your default gateway.Â  Without a default gateway for your servers, you can&#8217;t communicate with the Internet.</p>
<p>So now lets say we want to drop a load balancer into the network.Â  There are several options, and for the most part the advantages of one over another are logistical, not performance related.Â  For example, to do two-armed, Layer 3 path (arguably the most common topology), you would need to put in a new IP network between the firewall and the servers, and one new Layer 2 network.Â  This would require re-addressing the IPs on all the servers.</p>
<p>And while adding a new Layer 2 and Layer 3 network would certainly work, we can use one-armed, Layer 3 path without the need to re-IP all the servers or adding new networks.</p>
<p style="text-align: center;"><img class="size-medium wp-image-430  aligncenter" title="onearmedroutepathAFTER" src="http://lbdigest.com/wp-content/uploads/2009/10/onearmedroutepathAFTER-195x300.png" alt="onearmedroutepathAFTER" width="195" height="300" /></p>
<p>In the figure above, you see that we&#8217;ve changed the default gateway on the servers to that of the administrative IP of the load balancer (if there were two load balancers, they would have a floating administrative IP which you would use as the default gateway).Â Â  The default gateway of the load balancer is that of the firewall.</p>
<p>This seems a little odd, as we&#8217;ve got two default gateways on the same IP network.Â  While unusual, it works, and it&#8217;s a handy way to drop a load balancer into a network with minimal changes.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/10/25/one-arm-one-network-to-rule-them-all/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Your Epic Fail:  Fast or Slow?</title>
		<link>http://lbdigest.com/2009/10/11/your-epic-fail-fast-or-slow/</link>
		<comments>http://lbdigest.com/2009/10/11/your-epic-fail-fast-or-slow/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 00:10:11 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Pontification]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=412</guid>
		<description><![CDATA[In the load balancing world, many vendors have the concept of &#8220;sorry servers&#8221;, or &#8220;backup server farms/pools&#8221;.Â  Essentially, if most or all of your primary servers are down, traffic is redirected to a backup server(s) containing either reinforcements of the same web application, or a...]]></description>
			<content:encoded><![CDATA[<p>In the load balancing world, many vendors have the concept of &#8220;sorry servers&#8221;, or &#8220;backup server farms/pools&#8221;.Â  Essentially, if most or all of your primary servers are down, traffic is redirected to a backup server(s) containing either reinforcements of the same web application, or a &#8220;sorry&#8221; page.</p>
<p>The idea is that if everything goes terribly wrong, at least your visitors will see something, instead of nothing.</p>
<p>Which begs the question: How do you like to fail?Â  Fail fast or fail slow? Would it be better to fail slow, where your site becomes slower and slower, or possibly just unresponsive, or would it be better to put up a quick-serving sorry page if the infrastructure melts?<img class="size-medium wp-image-414 alignright" style="margin: 4px;" title="technical_difficulties" src="http://lbdigest.com/wp-content/uploads/2009/10/technical_difficulties-300x216.jpg" alt="technical_difficulties" width="300" height="216" /></p>
<p>A wildly successful website can easily become a victim of its own success.Â  Take the case of two sites that experienced exponential growth in a relatively short period of time:Â  Twitter.com and Myspace.com.</p>
<p>They took two different paths in the realm of failure.Â  One failed fast, and one failed slow.</p>
<p>Although Myspace has lost most of its lead to Facebook, it&#8217;s still a wildly popular social media site.Â  They had exponential growth from their start in 2003, and there were many periods of time when Myspace.com was just&#8230; slow.Â  Really really slow. You can&#8217;t really blame them.Â  It&#8217;s tough when users come faster than you can install servers and provision bandwidth.Â  It&#8217;s a happy problem to have usually, but it&#8217;s still a logistical challenge.</p>
<p><img class="size-medium wp-image-413 alignleft" style="margin: 5px;" title="Fail Whale" src="http://lbdigest.com/wp-content/uploads/2009/10/fail_whale-300x225.jpg" alt="Fail Whale" width="300" height="225" /></p>
<p>Twitter.com came around a bit later, but it also had exponential growth and problems coping.Â  But for the most part, they failed in a different way:Â  Fail Whale. When something went terribly awry, instead of a slow site, you&#8217;d get a very quick fail whale image.</p>
<p>Perhaps this is a matter of personal opinion, but I think if you&#8217;re going to fail, it&#8217;s better to fail quick than fail slow.Â  That is, have a sorry page or sorry site that comes up quick, rather than a site that is too slow for anyone to use.</p>
<p>The quick sorry page can be done with many of the load balancing/ADC vendors by using the backup/sorry serverfarm feature.Â  Keeping a group of reserve servers, serving up only a &#8220;oops, sorry about that&#8221; type of page, your own fail whale, can be better than having a really slow or unresponsive web site.</p>
<p>Of course, you won&#8217;t always be able to choose the method of your failure.Â  If your upstream ISP goes dark, there&#8217;s not much you can do (unless you have an offsite fail site).Â  But I personally think having a fail site is a more &#8220;professional&#8221; way to fail than having a slow or unresponsive site when things go belly up (and we all know they will).</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/10/11/your-epic-fail-fast-or-slow/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTTP Message: The PDU of Layer 7</title>
		<link>http://lbdigest.com/2009/08/02/http-message-pdu-layer/</link>
		<comments>http://lbdigest.com/2009/08/02/http-message-pdu-layer/#comments</comments>
		<pubDate>Sun, 02 Aug 2009 23:51:23 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Load Balancing 101]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=394</guid>
		<description><![CDATA[If there&#8217;s one thing that made load balancing and web servers in general &#8220;click&#8221; with me, and make it much simpler to troubleshoot, it&#8217;s this:Â  See the world like a load balancer.Â  We see web pages, page layouts, &#8220;page cannot be displayed&#8221; errors, and menus.Â ...]]></description>
			<content:encoded><![CDATA[<p>If there&#8217;s one thing that made load balancing and web servers in general &#8220;click&#8221; with me, and make it much simpler to troubleshoot, it&#8217;s this:Â  See the world like a load balancer.Â  We see web pages, page layouts, &#8220;page cannot be displayed&#8221; errors, and menus.Â  But your load balancer/web server doesn&#8217;t see any of this.Â  In fact, they only see <em>one</em> thing.Â  HTTP messages.</p>
<p>In the networking realm, there is the concept of PDUs, or Protocol Data Units.Â  These are the discreet messages for a particular protocol. Â  Every protocol has them.Â  In Layer 2, the Ethernet protocol has the Ethernet Frame, and for Layer 3 the IP protocol has the IP packet, just to name a few examples.Â Â  Each of theses PDUs have their own format.</p>
<p>For the HTTP protocol, which operates on Layer 7, we also have a PDU: <a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html">The HTTP message</a>.Â  HTTP messages are further divided into two categories: HTTP requests and responses.</p>
<p>When your browser wants an object, such as an JPG or HTML file, it must make a properly formatted HTTP request.Â  The server responds with an HTTP object.Â  One object equals one request plus one response.Â  Typically the response includes the object, although sometimes the response says simply &#8220;file not found&#8221; (HTTP 404), &#8220;object moved&#8221; (HTTP 301 or 302), or even &#8220;access denied&#8221; (HTTP 400), among others.</p>
<p>But the thing to keep in mind is that every object, which is to say every JPG, HTML, Flash, CSS, MPEG, every individual file, will require its own HTTP request and will generate an HTTP response from the server.Â  A web page consisting of 10 objects will require 11 HTTP requests:Â  One for the HTML page itself, and 10 additional requests to pull all of the objects referenced in the HTML.</p>
<p>In the next post, we&#8217;ll discuss some tools you can use to troubleshoot HTTP requests and responses.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/08/02/http-message-pdu-layer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Moore&#8217;s Law and Bandwidth Consumption</title>
		<link>http://lbdigest.com/2009/05/27/moores-law-and-bandwidth-consumption/</link>
		<comments>http://lbdigest.com/2009/05/27/moores-law-and-bandwidth-consumption/#comments</comments>
		<pubDate>Wed, 27 May 2009 07:26:22 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Buyer's Guide]]></category>
		<category><![CDATA[Editorial]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Load Balancing 101]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=379</guid>
		<description><![CDATA[Most in IT are familiar with the concept of Moore&#8217;s Law, whereby processor capability tends to double about every two years.Â  To a certain extent, this happens with networking equipment, with their capacity increasing at a steady rate, although probably not the same rate at...]]></description>
			<content:encoded><![CDATA[<p>Most in IT are familiar with the concept of Moore&#8217;s Law, whereby processor capability tends to double about every two years.Â  To a certain extent, this happens with networking equipment, with their capacity increasing at a steady rate, although probably not the same rate at processors.</p>
<p>Benefiting from Moore&#8217;s Law to a great extent are load balancers/ADCs, where the lowest end device from just about every vendor can handle traffic loads in the 50-100 Mbps range.Â  Of course, throughput isn&#8217;t a terrible way of measuring performance capability of a load balancer (100 Mbps of large file downloads is a heckuva lot easier than 100 Mbps of tiny file connections), but it does relate well to one very important factor in web site serving:</p>
<p>How big is your pipe?</p>
<p>Businesses of all sizes have seen steady increases in their available bandwidth to be sure, but while the growth may be steady, for the most part it tends to be a slower growth rate.Â  Much slower than doubling every 18 months, like in Moore&#8217;s Law.Â Â  The result is that increasingly that the lower end offerings from vendors are more than sufficient to run a larger share of web sites out there.</p>
<p>There are a number of reasons for this.Â  We&#8217;re no longer experiencing the exponential accross-the-board growth rates in users that occurred during the dot-com boom.Â  While there are some sites going through a growth explosion, for most websites in this economic environment, growth rates of any kind are fairly extraordinary.Â  So extra bandwidth isn&#8217;t in as high demand. Secondly, if you&#8217;re hosting your own data center as many large businesses do, getting extra bandwidth is often time consuming.Â  Moving from a single DS3 (45 Mbps) to an OC-3 (155 Mbps) is going to take some time to get that order fulfilled.</p>
<p>Cisco&#8217;s ACE 4710 appliance comes with a default license of 1 Gbps of throughput.Â  F5&#8242;s entry-level BIG-IP 1600 LTM maxes out at 1 Gbps.Â Â  In the Enterprise market, 500-Mbps to 1 Gbps is about the rock bottom in terms of performance capability.Â  Yet many of the high-end clients of these vendors don&#8217;t push nearly that much traffic.</p>
<p>Companies that aren&#8217;t media or mega-content providers (such as Google, Youtube, Yahoo!, Facebook, etc.) that have web applications serving customers or businesses typically don&#8217;t go above 100-200 Mbps in traffic, even for some Fortune 500 companies.Â   Of course, there are exceptions, and there are quite a few factors involved in determining the traffic characteristics of a site. Companies that are offering media such as streaming video or audio often use third-party content providers, such as Youtube or Akami, so as to keep that bandwidth off their own pipe.</p>
<p>So we&#8217;ve got all this idle CPU time, so why not make use of it?Â  That&#8217;s what many vendors are doing, in both the enterprise and value markets. With the steady rise in CPU power while bandwidth consumption lags behind, vendors are throwing more and more capabilities into these devices to take advantage of the unused CPU cycles, such as caching, compression, Layer-7 inspection, etc.Â  Vendors are offering more functionality with the greater power they have available to them.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/05/27/moores-law-and-bandwidth-consumption/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Load Balancing Performance Metrics 101</title>
		<link>http://lbdigest.com/2009/05/20/load-balancing-performance-metrics-101/</link>
		<comments>http://lbdigest.com/2009/05/20/load-balancing-performance-metrics-101/#comments</comments>
		<pubDate>Thu, 21 May 2009 03:31:49 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Load Balancing 101]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=372</guid>
		<description><![CDATA[In the previous post, I talked about the o3 article, and where I think they may have gotten it wrong (but it&#8217;s impossible to tell, as he didn&#8217;t publish any details on his testing methodologies, which is pretty lame). But that he may have used...]]></description>
			<content:encoded><![CDATA[<p>In the previous post, I talked about the o3 article, and where I think they may have gotten it wrong (but it&#8217;s impossible to tell, as he didn&#8217;t publish any details on his testing methodologies, which is pretty lame).</p>
<p>But that he may have used the wrong terminology for the performance testing he did (saying it was TPS instead of HTTP requests per second) shows that there&#8217;s a lot of confusion on benchmark terminology, so I&#8217;m going to go over some of the basics.</p>
<h1>TPS</h1>
<p>In the load balancing world, TPS (Transactions per second) refer to the number of <em>new</em> SSL connections initiated.Â  The new part is important, because each new SSL connection requires a relatively CPU-expensive asymmetric encryption operation.Â  This is why most load balancers that do SSL have a separate chip for SSL processing (SSL ASIC), which offloads the SSL functionality from the main CPU.</p>
<p>Once the first step of an SSL connection is completed, the encryption then shifts to the much more CPU-friendly symmetric encryption, which is often referred to as &#8220;bulk encryption&#8221;.Â  Pushing bulk encryption throughput is relatively easy for a load balancer, even without an SSL accelerator chip.</p>
<p>However, HTTP/HTTPS typically involve short-lived connections, so there is relatively little throughput, and a lot of connection setup/teardown. Hence the need to know the TPS rating of a given device.</p>
<p>Many vendors will offer tiered licensing for SSL TPS.Â  So keep in mind when they mean TPS, they usually reffer to *new* SSL connections per second.</p>
<h1>Connection Rate versus Request Rate</h1>
<p>There are two ways to measure &#8220;rates&#8221; with load balancers:Â  Connection rate, and request rate.Â  While they sound similar, when you get right down to it, they&#8217;re actually quite different.</p>
<p>Connection rate refers to the number of TCP connections per second a device can handle.Â  HTTP request rate refers to the number of HTTP requests the device can handle.Â  How are they different? You can have multiple HTTP requests in a single TCP connection.</p>
<p>When your browser goes to a web site, it firsts initiates a TCP connection to the server (or in our case, a load balancer load balancing traffic for servers).Â  In that TCP connection, your browser will typically make several HTTP requests over that connection.</p>
<p>Making multiple requests over a single TCP connection is a lot easier than making a TCP connection for every single request.Â  In fact, the original HTTP 1.0 specification required on TCP connection per request.Â  The HTTP 1.1 specification fixed that, by allowing the multiple requests per TCP stream.</p>
<h1>Layer-4 versus Layer-7</h1>
<p>When a load balancer operates in Layer-4 mode, it&#8217;s functioning a lot like a router.Â  In fact, it&#8217;s not doing much more than your wireless access point at home.Â  Very little memory is consumed with each new connection, and only the TCP/IP header information is evaluated.</p>
<p>When a load balancer operates in Layer-7 mode, it&#8217;s functioning more like a server.Â  The TCP session is terminated at the load balancer, and a new TCP connection is initated to the server.Â  HTTP requests are buffered in the load balancer&#8217;s memory in order to be evaluated.Â  This requires a lot more processing power and a lot more memory.</p>
<p>Obviously, a load balancer can handle more Layer-4 workload than Layer-7, so it&#8217;s important to know which mode you plan on using when it comes to performance.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/05/20/load-balancing-performance-metrics-101/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>On Radware&#8217;s Purchase of Nortel&#8217;s Alteon Assets</title>
		<link>http://lbdigest.com/2009/02/20/on-radwares-purchase-of-nortels-alteon-assets/</link>
		<comments>http://lbdigest.com/2009/02/20/on-radwares-purchase-of-nortels-alteon-assets/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 22:25:52 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Industry News]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=263</guid>
		<description><![CDATA[Radware&#8217;s CEO Roy Zisapel was kind enough to speak to me earlier today regarding the Radware purchase of Nortel&#8217;s L4-7 assets (i.e., the worst kept secret in IT). The deal was pretty what had been theorized, although I thinkÂ  the biggest surprise was that Radware...]]></description>
			<content:encoded><![CDATA[<p>Radware&#8217;s CEO Roy Zisapel was kind enough to speak to me earlier today regarding the Radware purchase of Nortel&#8217;s L4-7 assets (i.e., the worst kept secret in IT).</p>
<p>The deal was pretty what had been theorized, although I thinkÂ  the biggest surprise was that Radware has stated (and reiterated in my conversation with Mr Zisapel) that the deal is not a pure customer-list purchase, as many had suspected.Â  Instead, Radware has comitted to supporting and expanding the existing Alteon line, and not just moving everyone onto Radware boxes.Â Â  They&#8217;ve also committed to a 5-year product support plan of the current Alteon lines.</p>
<p>The deal isn&#8217;t a done-deal yet (the bankrupcty courts of the US and Canada has to approve this) but it seems pretty likely to go through.</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2009/02/20/on-radwares-purchase-of-nortels-alteon-assets/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>When Your Load Balancer Has A Short Attention Span</title>
		<link>http://lbdigest.com/2008/11/20/when-your-load-balancer-has-a-short-attention-span/</link>
		<comments>http://lbdigest.com/2008/11/20/when-your-load-balancer-has-a-short-attention-span/#comments</comments>
		<pubDate>Fri, 21 Nov 2008 01:03:31 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Feature Articles]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=186</guid>
		<description><![CDATA[The ability for a load balancer to peer into (and potentially manipulate) the HTTP headers of incoming connections was once an advanced feature, but now is fairly commonplace. Â Most often it&#8217;s used in cookie -based persistence, but it&#8217;s also used in web switching, true-source IP...]]></description>
			<content:encoded><![CDATA[<p>The ability for a load balancer to peer into (and potentially manipulate) the HTTP headers of incoming connections was once an advanced feature, but now is fairly commonplace. Â Most often it&#8217;s used in cookie -based persistence, but it&#8217;s also used in <a href="http://lbdigest.com/2008/05/12/web-switching-whats-in-a-name/">web switching</a>, true-source IP resolution, and other tasks.</p>
<p>But the ability to look at the HTTP headers doesn&#8217;t always work the way you might think it would. Â Often, the load balancer can have a short attention span.</p>
<p>In a traditional HTTP 1.1 connection, multiple HTTP requests are sent through a single TCP connection. Most load balancers by default will only look at the first HTTP request, and ignore the rest. Â To elaborate on this, let&#8217;s take a look at two of the basic concepts of HTTP.</p>
<h2><strong>HTTP Basics</strong></h2>
<p><span>The HTTP protocol can be broken up into to parts: HTTP requests and HTTP responses.Â  Both are comprised of two components: HTTP headers and HTTP content. </span></p>
<p><span>In both HTTP requests and HTTP responses, there are <em>always</em> HTTP headers.Â  In an HTTP request, there is <em>sometimes</em> content, such as a form POST, or uploading a file.Â  In the HTTP response, there is <em>usually</em> content, but there are cases when there is none (such as with an HTTP HEAD request). </span></p>
<table border="0" align="center" bgcolor="#cccccc">
<tbody>
<tr bgcolor="#ffffff">
<td><strong>HTTP Request</strong></td>
<td><strong>HTTP Response</strong></td>
</tr>
<tr bgcolor="#eeeeee">
<td>HTTP Header (always)</td>
<td>HTTP Header (always)</td>
</tr>
<tr bgcolor="#eeeeee">
<td>HTTP Content (sometimes)</td>
<td>HTTP Content (usually)</td>
</tr>
</tbody>
</table>
<p><span>And thereâ€™s one more important bit to keep in mind with regard to HTTP: Every object has a separate request and a separate response.Â  Thatâ€™s every JPG, GIF, Flash file, HTML file, etc.Â  So a web page with 20 images will invoke 21 different HTTP requests; one for the HTML page itself, and 20 for the objects (such as images) referenced in the HTML file. </span></p>
<p><span>With HTTP 1.1, all of those 21 objects in a web page are typically requested in a single TCP stream, rather than 21 individual connections (which would be fairly inefficient).Â  But this presents a problem for load balancers. </span></p>
<p><span>Do load balancers look at the data in the first request out of the 21? Or does the load balancer look at each request individually? </span></p>
<div style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2008/11/shortattentionspan1.png"><img class="alignnone size-medium wp-image-188" title="shortattentionspan1" src="http://lbdigest.com/wp-content/uploads/2008/11/shortattentionspan1-300x125.png" alt="" width="300" height="125" /></a></div>
<div style="text-align: left;">
<p>Typically, the load balancer will (by default) only pay attention to the first HTTP request in a TCP connection. Â Any subsequent HTTP request headers are ignored.</p>
<p><span>This means that once the decision is made on the first request, every subsequent request is sent to the same server, so long as itâ€™s part of the same TCP connection.Â  The load balancer essentially ignores the headers for the following requests.Â  Itâ€™s no longer paying attention. </span></p>
<p><span>If youâ€™re doing cookie persistence, where the load balancer is using a cookie to figure out where to send requests to, this usually isnâ€™t a problem. </span></p>
<p><span>However, if you&#8217;re trying to separate out traffic such as JPGs from HTML to send to different servers (web switching/Layer 7 switching), or if youâ€™re trying to insert headers into every connection (such as the true source IP address, or an SSL header), then this is a big problem. </span></p>
<p><span>So what&#8217;s the fix?Â  Well, there are two possible solutions, depending on your load balancer. </span></p>
<h2><span>Load Balancer Solution</span></h2>
<p><span>One solution, if your load balancer supports it, is to configure your load balancer to specifically pay attention to each request.Â Â Again, most load balancers by default ignore the subsequent requests. However, with some load balanacers it&#8217;s possible to increase the attention span.Â  Most of the higher-end <a href="http://lbwiki.com/index.php/Two_Markets">Enterprise-oritented</a> load balancers (such as Cisco and F5) have this ability. Â With F5 and A10 Networks, this long attention span is enabled by default (in the F5 it can be turned off for performance). Â In Cisco, enabling a long attention span is an option known rather cryptically as â€œconnection rebalanceâ€.Â  (If you know the option for the load balancer you use, feel free to add it to the comments section.)</span></p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2008/11/longattensionspan.png"><img class="size-medium wp-image-189 aligncenter" title="longattensionspan" src="http://lbdigest.com/wp-content/uploads/2008/11/longattensionspan-300x124.png" alt="" width="300" height="124" /></a></p>
<p><span>This does cause the load balancer to do more work so your overall capacity may go down, but itâ€™s probably your best option if you need the load balancer to pay attention to all headers, not just the first. </span></p>
<h2><span>Server Solution</span></h2>
<p><span>Some load balancers simply donâ€™t have the ability to pay attention to all requests in a TCP connection; they can only look at the first connection.Â  This is true for many of the <a href="http://lbwiki.com/index.php/Two_Markets">value market</a> load balancers.Â  If this is the case, youâ€™re only solution is not on the load balancer, but the servers themselves. </span></p>
<p><span>All web servers have the ability to turn off the â€œKeep-Aliveâ€ function, which is what allows multiple requests in a single TCP connection.Â  Turning Keep-Alive off forces the web clients to make a separate TCP connection <em>for each request</em>.Â  Since thereâ€™s a separate connection for each request, the load balancer will then pay attention to every header. </span></p>
<p style="text-align: center;"><a href="http://lbdigest.com/wp-content/uploads/2008/11/shortattentionspan.png"><img class="size-medium wp-image-190 aligncenter" title="shortattentionspan" src="http://lbdigest.com/wp-content/uploads/2008/11/shortattentionspan-300x124.png" alt="" width="300" height="124" /></a></p>
<p><span>In the Apache configuration file (for several versions, including 2.2), there&#8217;s a single line option called <a href="http://httpd.apache.org/docs/2.2/mod/core.html#KeepAlive">KeepAlive</a>. Â Also, if you Google for Keep-Alive and your favorite web server and version, you should find plenty of HOW-TOs, such as this one for <a href="http://technet.microsoft.com/en-us/library/cc772183.aspx"><span>IIS 7.</span></a></span></p>
<p><span>The drawback is that you make the web server do some more work (opening and allocating resources for a TCP connection for each object), and you increase network utilization by a nominal amount. Â  This can reduce your servers overall performance/capacity, but you may not have any other choice. Â However, this all depends on the nature of your traffic. </span></div>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2008/11/20/when-your-load-balancer-has-a-short-attention-span/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Mega Proxy Not So Mega, Akshually</title>
		<link>http://lbdigest.com/2008/09/15/mega-proxy-not-so-mega-akshually/</link>
		<comments>http://lbdigest.com/2008/09/15/mega-proxy-not-so-mega-akshually/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 16:53:33 +0000</pubDate>
		<dc:creator>tony</dc:creator>
				<category><![CDATA[Ask Tony]]></category>
		<category><![CDATA[Feature Articles]]></category>
		<category><![CDATA[Industry News]]></category>
		<category><![CDATA[Tech Notes]]></category>

		<guid isPermaLink="false">http://lbdigest.com/?p=177</guid>
		<description><![CDATA[Apologies for the LOLcatspeak.Â  I&#8217;m incapable of helping myself. The driving force behind Layer 7 persistence (keeping an individual user tied to a specific server in a server group based on HTTP headers instead of IP address) was the dreaded AOL Megaproxy issue.Â  AOL had...]]></description>
			<content:encoded><![CDATA[<p>Apologies for the LOLcatspeak.Â  I&#8217;m incapable of helping myself.</p>
<p>The driving force behind Layer 7 persistence (keeping an individual user tied to a specific server in a server group based on HTTP headers instead of IP address) was the dreaded AOL Megaproxy issue.Â  AOL had the nasty little tendancy of routing all web traffic through a couple of mega proxies located throughout the US and Canada.</p>
<p>This caused a problem with the previous method of persistence, which was to base it on source IP address. Typically, one IP address equaled a single user.Â  However, with AOL, you could have 20,000 users coming from a single IP address.Â  The load balancer would think it&#8217;s a single user, and if you had 300 servers ready to take orders, all 20,000 users would go to one.Â  That situation has happened a few times, and it&#8217;s hillarious, so long as you aren&#8217;t the company with the 300 servers.</p>
<p>I still teach that mega proxy problem, mostly out of muscle memory.Â  But I stopped to think about it, do we really have a problem with megaproxies anymore?Â  Does AOL even do this practice, and even if they did, is AOL represent a significant amount of traffic?</p>
<p>The answer to the later question is almost certainly no.Â  AOL has seen a dramatic drop in subscribers, and most people connect directly to the Internet through their cable modem or DSL provider.Â  And I don&#8217;t know of any major Internet provider that utilizes proxies for their users Internet requests.</p>
<p>Layer 7 persistence is still applicable to situations where you may have multiple users coming from a single IP address (such as a small client base coming from a handful of offices, with each office using on public IP address), but I wonder what doing Layer 4 persistence would do to a major site these days.Â  I&#8217;m thinking, not much.</p>
<p>What do you think?</p>
]]></content:encoded>
			<wfw:commentRss>http://lbdigest.com/2008/09/15/mega-proxy-not-so-mega-akshually/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
