<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Performance</title>
        <link>http://devcentral.f5.com/weblogs/macvittie/category/139.aspx</link>
        <description>Performance related topics. </description>
        <language>en-US</language>
        <copyright>Lori MacVittie</copyright>
        <managingEditor>l.macvittie@f5.com</managingEditor>
        <generator>Subtext Version 1.9.5.176</generator>
        <item>
            <title>A client is still a client even when it's on the space station</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/14/a-client-is-still-a-client-even-when-its-on.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Yeswecanimproveappperformanceevenonthesp_365C/international-space-station_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" height="180" alt="international-space-station" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Yeswecanimproveappperformanceevenonthesp_365C/international-space-station_thumb.jpg" width="240" align="left" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;While I was at &lt;a href="http://www.sdbestpractices.com/"&gt;SD Best Practices&lt;/a&gt; in Boston last month I got to talk to a lot of engineers, developers, and architects about their environments and about what &lt;a href="http://www.f5.com"&gt;F5&lt;/a&gt; does for application delivery. &lt;/p&gt;  &lt;p&gt;One of the developers glibly told me he wasn't sure we could help him out because his environment was the international space station. &lt;/p&gt;  &lt;p&gt;Yeah, how cool is that? Now &lt;em&gt;that's&lt;/em&gt; cloud computing.&lt;/p&gt;  &lt;p&gt;Another architect, who turned out to be a friend of a friend who I've conversed with but never met in person said the same thing, but his environment was nuclear submarines. &lt;/p&gt;  &lt;p&gt;The Internet, she is everywhere. &lt;/p&gt;  &lt;p&gt;There are certainly challenges with developing and delivering applications for such unique environments, but in the end a client is a client and a network is a network, even if it's over satellite links - which is most certainly the case for locations that cannot be wired or take advantage of wireless technology. What's awesome about application delivery solutions is that they are primarily asymmetric, they are a proxy &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Yeswecanimproveappperformanceevenonthesp_365C/submarine_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px 0px 0px 10px; border-left: 0px; border-bottom: 0px" height="155" alt="submarine" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Yeswecanimproveappperformanceevenonthesp_365C/submarine_thumb.jpg" width="240" align="right" border="0" /&gt;&lt;/a&gt;to the core network that is almost always physically located in a data center somewhere on, well, earth. And on dry land. &lt;/p&gt;  &lt;p&gt;An application delivery platform mediates, and it is physically located at the edge of the physical network. If there's a client on the space station or a nuclear submarine or a cruise ship or airplane that can communicate via a network, then an application delivery solution can indeed help the performance, security, and availability of the applications being delivered to those very remote locations. &lt;/p&gt;  &lt;p&gt;Asymmetric solutions, of which a &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/02/the-concise-guide-to-proxies.aspx"&gt;reverse proxy&lt;/a&gt; is almost always one, do not require deployment of client-side software. They are one sided, hence the use of the term asymmetric. All you need is the application delivery solution to be deployed at the edge of the physical network and voila! You can begin taking advantage of &lt;a href="http://www.f5.com/solutions/acceleration"&gt;acceleration features&lt;/a&gt; like caching, compression, and protocol optimizations. The application delivery platform is aware of the network across which applications must traverse to reach the client, but it doesn't require that it be a certain speed, or a certain type, or anything, really. As long as it's operating on standards-based network protocols like IP, you can take advantage of the features of an application delivery solution for your environment. &lt;/p&gt;  &lt;p&gt;In fact, an &lt;a href="http://www.f5.com/products/big-ip"&gt;application delivery solution&lt;/a&gt; is perfect for address many of the problems inherent in low speed, high latency links like those used to communicate with uber remote locations like the space station or a nuclear sub because it has the intelligence to understand the network conditions unique to each link and adapt in real-time to provide the best performance possible for users accessing data and applications over that link. &lt;/p&gt;  &lt;p&gt;And because the application delivery platform mediates between clients and applications, it can provide &lt;a href="http://www.f5.com/solutions/availability"&gt;availability services&lt;/a&gt; to clients regardless of their location. In fact, because most application delivery platforms are &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/08/8-things-you-can-do-with-a-proxy.aspx"&gt;full-proxy solutions&lt;/a&gt;, they are particularly adept at managing each side of the equation individually, simultaneously improving &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/05/3227.aspx"&gt;data center efficiency&lt;/a&gt;, reliability, and &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/07/3238.aspx"&gt;performance&lt;/a&gt; while adjusting proactively to the conditions currently being experienced by the client. &lt;/p&gt;  &lt;p&gt;Being contextually aware of the unique environment from which clients access applications over a network is part of the secret sauce of application delivery solutions. By being able to understand and adapt to conditions on a per-request basis it can optimize delivery of applications for everyone - whether they are at home, at the office, on the international space station, or 20,000 leagues under the sea. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e947b71d-e5aa-44f4-9961-f9cc9fb288b5" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SD%20best%20practices" rel="tag"&gt;SD best practices&lt;/a&gt;,&lt;a href="http://technorati.com/tags/development" rel="tag"&gt;development&lt;/a&gt;,&lt;a href="http://technorati.com/tags/architecture" rel="tag"&gt;architecture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/infrastructure" rel="tag"&gt;infrastructure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20delivery" rel="tag"&gt;application delivery&lt;/a&gt;,&lt;a href="http://technorati.com/tags/context-aware" rel="tag"&gt;context-aware&lt;/a&gt;,&lt;a href="http://technorati.com/tags/network" rel="tag"&gt;network&lt;/a&gt;,&lt;a href="http://technorati.com/tags/client" rel="tag"&gt;client&lt;/a&gt;,&lt;a href="http://technorati.com/tags/proxy" rel="tag"&gt;proxy&lt;/a&gt;,&lt;a href="http://technorati.com/tags/acceleration" rel="tag"&gt;acceleration&lt;/a&gt;,&lt;a href="http://technorati.com/tags/security" rel="tag"&gt;security&lt;/a&gt;,&lt;a href="http://technorati.com/tags/internet" rel="tag"&gt;internet&lt;/a&gt;,&lt;a href="http://technorati.com/tags/satellite" rel="tag"&gt;satellite&lt;/a&gt;,&lt;a href="http://technorati.com/tags/space%20station" rel="tag"&gt;space station&lt;/a&gt;,&lt;a href="http://technorati.com/tags/submarine" rel="tag"&gt;submarine&lt;/a&gt;,&lt;a href="http://technorati.com/tags/adapt" rel="tag"&gt;adapt&lt;/a&gt;,&lt;a href="http://technorati.com/tags/performance" rel="tag"&gt;performance&lt;/a&gt;,&lt;a href="http://technorati.com/tags/blog" rel="tag"&gt;blog&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3780.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/14/a-client-is-still-a-client-even-when-its-on.aspx</guid>
            <pubDate>Fri, 14 Nov 2008 11:08:28 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3780.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/14/a-client-is-still-a-client-even-when-its-on.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3780.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3780.aspx</trackback:ping>
        </item>
        <item>
            <title>Amazing Application Acceleration: Simultaneously improve productivity, efficiency, and performance</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/13/amazing-application-acceleration-simultaneously-improve-productivity-efficiency-and-performance.aspx</link>
            <description>&lt;p&gt;As a general rule, we spend far more time worrying about external appearances than we do internal. We are more concerned with our external web applications and how they look - and perform - than we are likely to regarding our intranet or internal only applications. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.semseoexpert.com/blog/2008/04/landing-page-load-time-impact-on-google.html"&gt;This blog post&lt;/a&gt; was interesting in that rather than encouraging folks to optimize web sites and improve end-user response time for web applications for the sake of the user experience, it focused on the relationship between page load time and impact on &lt;a href="http://www.google.com"&gt;Google&lt;/a&gt; AdWords quality scores. Which is a bit different than the typical "you'll lose customers if you don't have a fast site" lecture. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Howtoimproveemployeeproductivitywithappl_2936/quote-left_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="21" alt="quote-left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Howtoimproveemployeeproductivitywithappl_2936/quote-left_thumb.png" width="24" border="0" /&gt;&lt;/a&gt; By incorporating landing page load time into Quality Score Index calculation, Google is trying to improve user experience and as a by product increase the ppc advertisers conversion rate. They are hopping that because visitors do not abandon the pages because of poor web page load speed advertisers will get a higher return on their investments.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;But what about internal web applications? You know, the ones customer service and call center representatives access when some poor hapless customers actually picks up the    &lt;/p&gt;&lt;div class="wlWriterSmartContent" id="scid:8747F07C-CDE8-481f-B0DF-C6CFD074BF67:00626194-259a-4e8d-865e-4a96cae20efd" style="padding-right: 0px; display: inline; padding-left: 0px; float: left; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Howtoimproveemployeeproductivitywithappl_2936/tired-8x6.jpg" title="I'm sorry, my computer is really slow today." rel="thumbnail"&gt;&lt;img border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Howtoimproveemployeeproductivitywithappl_2936/tired_777.png" /&gt;&lt;/a&gt;&lt;/div&gt; phone and calls them? Yeah, &lt;em&gt;those &lt;/em&gt;web applications; the ones that invariably seem to be cause of "my computer is slow today" apologies from the other end of the line, leaving the customer to wait ... and wait... and wait.   &lt;p&gt;While it's easy enough to justify improving internal web applications which are indirectly customer facing based on customer satisfaction, it's just as easy to justify improving the performance of those same applications based on more quantifiable metrics: employee productivity. &lt;/p&gt;  &lt;p&gt;The performance of employees within a wide variety of organizations who are tasked with customer service roles is almost always based on number of customers served in any given time interval. X per hour, Y per day, Z per week, etc... The efficiency of your call center or customer service departments is directly impacted by the ability of the employees to access customer information via applications, and increasingly that application is web-based. And slow. &lt;/p&gt;  &lt;p&gt;If the average page load time of a customer service application is 10 seconds, then you necessarily need to add 10*(number of pages required on a call) to the total call time per customer. If the employee needs to access 5 pages, then you've just added nearly a minute of "wait" time to the time it takes to serve one customer. Given that most call centers like to keep their calls to a few minutes each, there's barely enough time for the customer service representative to greet the customer and ask for their identification before they've already gone over their allotted time. &lt;/p&gt;  &lt;p&gt;Employing asymmetric &lt;a href="http://www.f5.com/solutions/acceleration"&gt;application acceleration&lt;/a&gt; technology to improve application response time is a common prescription for performance impaired web sites. That same technology can easily be applied to &lt;em&gt;internal &lt;/em&gt;applications, web or otherwise, as well to improve their performance and thus, load time. By leveraging technologies such as intelligent caching and compression, and optimization of the protocols (&lt;a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol"&gt;TCP&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/HyperText_Transfer_Protocol"&gt;HTTP&lt;/a&gt;) used to deliver those applications you can simultaneously &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/04/30/3212.aspx"&gt;improve performance of the application&lt;/a&gt;, &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/31/3503.aspx"&gt;efficiency of the servers&lt;/a&gt; serving the application, and the productivity of your employees. Now &lt;em&gt;that's &lt;/em&gt;multitasking! &lt;/p&gt;  &lt;p&gt;If you can decrease the time it takes to interact with an internal web application you can decrease the amount of time spent with each customer, which leaves more time for employees to interact with more customers, improving their performance on a "customers served per hour/day/week" basis. That's an improvement in productivity as well as your bottom line as it decreases the costs associated with maintaining a customer over time, which is a key performance indicator for most organizations in which customer interaction is required. &lt;/p&gt;  &lt;p&gt;So when you're considering improving the performance of your external web site and applications, think twice about how that same &lt;a href="http://www.f5.com/solutions/acceleration"&gt;application acceleration&lt;/a&gt; technology just might benefit your &lt;em&gt;internal &lt;/em&gt;web applications as well. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:01060a30-ab2c-4127-8ca0-3eb98b165151" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20acceleration" rel="tag"&gt;application acceleration&lt;/a&gt;,&lt;a href="http://technorati.com/tags/asymmetric%20acceleration" rel="tag"&gt;asymmetric acceleration&lt;/a&gt;,&lt;a href="http://technorati.com/tags/customer%20satisifaction" rel="tag"&gt;customer satisifaction&lt;/a&gt;,&lt;a href="http://technorati.com/tags/efficiency" rel="tag"&gt;efficiency&lt;/a&gt;,&lt;a href="http://technorati.com/tags/performance" rel="tag"&gt;performance&lt;/a&gt;,&lt;a href="http://technorati.com/tags/response%20time" rel="tag"&gt;response time&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Google" rel="tag"&gt;Google&lt;/a&gt;,&lt;a href="http://technorati.com/tags/productivity" rel="tag"&gt;productivity&lt;/a&gt;,&lt;a href="http://technorati.com/tags/server" rel="tag"&gt;server&lt;/a&gt;,&lt;a href="http://technorati.com/tags/http" rel="tag"&gt;http&lt;/a&gt;,&lt;a href="http://technorati.com/tags/web" rel="tag"&gt;web&lt;/a&gt;,&lt;a href="http://technorati.com/tags/internet" rel="tag"&gt;internet&lt;/a&gt;,&lt;a href="http://technorati.com/tags/blog" rel="tag"&gt;blog&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3777.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/13/amazing-application-acceleration-simultaneously-improve-productivity-efficiency-and-performance.aspx</guid>
            <pubDate>Thu, 13 Nov 2008 11:36:17 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3777.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/13/amazing-application-acceleration-simultaneously-improve-productivity-efficiency-and-performance.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3777.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3777.aspx</trackback:ping>
        </item>
        <item>
            <title>3 steps to a fast, secure, and reliable application infrastructure</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/23/3-steps-to-a-fast-secure-and-reliable-application-infrastructure.aspx</link>
            <description>&lt;table cellspacing="0" cellpadding="2" width="100%" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="469"&gt;         &lt;p&gt;You have just been promoted to CTO of Widgets, Inc. (Congratulations, by the way!) In your new role, on which of the following will you focus the most attention (and budget): &lt;/p&gt;          &lt;p&gt;(a) the network&lt;/p&gt;          &lt;p&gt;(b) the applications&lt;/p&gt;          &lt;p&gt;(c) the data &lt;/p&gt;          &lt;p&gt;Trick question. The answer is (d) all of the above. I know I didn't list that choice (I did in the poll, however) but you've taken multiple choice quizzes before; there's &lt;em&gt;always &lt;/em&gt;a choice (d) all of the above. Always. And 25% of the time it's the right answer. In the case of technology today, it's always the right answer. &lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="195"&gt;&lt;embed name="beta3" pluginspage="http://www.macromedia.com/go/getflashplayer" src="http://www.polldaddy.com/poll.swf" width="252" height="299" type="application/x-shockwave-flash" allowscriptaccess="never" saveembedtags="true" flashvars="p=1032845" quality="high" wmode="transparent" bgcolor="#ffffff" salign="tl" scale="autoscale" /&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;As an industry we spend a lot of time (and money) worrying about how to protect our applications and the data that drives them. We spend a lot of time (and money) agonizing over how to scale and keep available those applications which are crucial not only to our business users but our customers and partners. We spend a lot of time (and money) trying to make those applications faster and better and easier to use. &lt;/p&gt;  &lt;p&gt;The network, however, is often left out of the discussion (and the budget). Like the local road, most people don't think much about it until there's a pothole that slows you down or causes a flat tire. Then it gets a lot of attention - and most of it negative. &lt;/p&gt;  &lt;p&gt;This lack of attention to the network and its importance to scale and reliability and security is problematic and pervasive. So pervasive that research firm &lt;a href="http://www.gartner.com"&gt;Gartner&lt;/a&gt; recently penned a research note on the subject of the network and cloud computing entitled, "&lt;a href="http://mediaproducts.gartner.com/reprints/f5networks/vol3/article4/article4.html"&gt;You Can't Do Cloud Computing Without the Right Cloud (Network)."&lt;/a&gt; [reprint courtesy of &lt;a href="http://www.f5.com"&gt;F5&lt;/a&gt;]&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Whichismostimportantathenetworkbtheappli_B6E6/quote-left_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="21" alt="quote-left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Whichismostimportantathenetworkbtheappli_B6E6/quote-left_thumb.png" width="24" border="0" /&gt;&lt;/a&gt; There are four different types of networks supporting "cloud computing" and each react differently to different application characteristics. These differences are critical to the selection of a cloud network vendor.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Four different types of networks supporting cloud computing. I'm guessing that holds true for non-cloud computing architectures as well. There are many different types of networks and architectures and this is, in part, why the network is always, &lt;em&gt;always&lt;/em&gt; depicted as nothing more than an amorphous cloud in application architecture diagrams. &lt;/p&gt;  &lt;p&gt;Many of Gartner's key findings mirror what we've been asserting are &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/10/3438.aspx"&gt;four key attributes of infrastructure supporting cloud computing&lt;/a&gt;, whether that cloud is a big one "in the sky" (Internet) or a smaller one "in the backyard" (in &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/08/19/3548.aspx"&gt;your data center).&lt;/a&gt; In general, it mirrors what we've been saying for years with regard to improving application performance and scalability: the network is more important than most people tend to believe. It's not just a "pipe", it's an integral part of your architecture and is inherently important to the successful deployment and delivery of applications. &lt;/p&gt;  &lt;p&gt;Data is the lifeblood of an organization, and applications are the heart of the data center. On that there is no argument. But the network is the complex system of veins and arteries that carries that lifeblood to and from the heart (applications) and without them, well, your business is likely faltering if not dead. &lt;/p&gt;  &lt;p&gt;Just as doctors try to impart upon us the importance of preventive medicine and a healthy diet, it's just as important to apply that practice to IT in general. We need to be proactive and take preventive action whenever possible in order &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Whichismostimportantathenetworkbtheappli_B6E6/f5scrip_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 5px 10px 0px 0px; border-right-width: 0px" height="186" alt="f5scrip" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Whichismostimportantathenetworkbtheappli_B6E6/f5scrip_thumb.jpg" width="240" align="left" border="0" /&gt;&lt;/a&gt; to deliver applications that are fast, secure, and available. And that means keeping the network on the same level of importance as the data and applications it is serving. That means &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/15/3452.aspx"&gt;investing in technologies&lt;/a&gt; that make the network better, faster, and more able to continue transporting data between the applications and the users that need them. &lt;/p&gt;  &lt;p&gt;The network can inhibit the delivery of applications or it can enhance the delivery of applications. Which is ultimately up to you, and based upon what role you assign it within your application infrastructure. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The first step&lt;/strong&gt; is recognizing that the network is as important as the applications and data it is delivering. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The second step&lt;/strong&gt; is &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/08/01/3509.aspx"&gt;discovering how the network might help&lt;/a&gt; in deploying and delivering those applications and providing value above and beyond its traditional role of "just a pipe." &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The third step&lt;/strong&gt; is to do something about it. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:fc25981f-a0b9-4231-98a8-1fb3561fdad0" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Gartner" rel="tag"&gt;Gartner&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cloud%20computing%20infrastructure" rel="tag"&gt;cloud computing infrastructure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cloud%20computing" rel="tag"&gt;cloud computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/architecture" rel="tag"&gt;architecture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/infrastructure%202.0" rel="tag"&gt;infrastructure 2.0&lt;/a&gt;,&lt;a href="http://technorati.com/tags/data" rel="tag"&gt;data&lt;/a&gt;,&lt;a href="http://technorati.com/tags/applications" rel="tag"&gt;applications&lt;/a&gt;,&lt;a href="http://technorati.com/tags/network" rel="tag"&gt;network&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20delivery" rel="tag"&gt;application delivery&lt;/a&gt;,&lt;a href="http://technorati.com/tags/fast" rel="tag"&gt;fast&lt;/a&gt;,&lt;a href="http://technorati.com/tags/secure" rel="tag"&gt;secure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/availability" rel="tag"&gt;availability&lt;/a&gt;,&lt;a href="http://technorati.com/tags/scalability" rel="tag"&gt;scalability&lt;/a&gt;,&lt;a href="http://technorati.com/tags/web" rel="tag"&gt;web&lt;/a&gt;,&lt;a href="http://technorati.com/tags/internet" rel="tag"&gt;internet&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3734.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/23/3-steps-to-a-fast-secure-and-reliable-application-infrastructure.aspx</guid>
            <pubDate>Thu, 23 Oct 2008 11:40:38 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3734.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/23/3-steps-to-a-fast-secure-and-reliable-application-infrastructure.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3734.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3734.aspx</trackback:ping>
        </item>
        <item>
            <title>3 Really good reasons you should use TCP multiplexing</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/14/3-really-good-reasons-you-should-use-tcp-multiplexing.aspx</link>
            <description>&lt;p&gt;AJAX. SOA. Social network API integration. &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="100%" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td style="padding-right: 10px; padding-left: 10px; padding-bottom: 10px; color: white; padding-top: 10px; background-color: #990000" valign="top" width="191"&gt;&lt;strong&gt;What is TCP Multiplexing?&lt;/strong&gt;&lt;/td&gt;        &lt;td valign="top" width="570"&gt;All of aforementioned technologies have one thing in common. Okay, they have more than that in common,  but for the purposes of this discussion there's one very &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="191"&gt;TCP multiplexing is a technique used primarily by &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;load balancers and application delivery controllers&lt;/a&gt; (but also by some stand-alone web application acceleration solutions) that enables the device to "reuse" existing TCP connections. This is similar to the way in which &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/11/3443.aspx" target="_blank"&gt;persistent&lt;/a&gt; HTTP 1.1 connections work in that a single HTTP connection can be used to retrieve multiple objects, thus reducing the impact of TCP overhead on application performance.           &lt;br /&gt;          &lt;br /&gt;TCP multiplexing allows the same thing to happen for TCP-based applications (usually HTTP / web) except that instead of the reuse being limited to only 1 client, the connections can be reused over many clients, resulting in much greater efficiency of web servers and faster performing applications. &lt;/td&gt;        &lt;td valign="top" width="570"&gt;relevant property they all share: they tend to be very TCP connection heavy  implementations.   &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/11/12/2985.aspx" target="_blank"&gt;AJAX&lt;/a&gt; lends itself to keeping open multiple TCP connections between the browser and the server; using up connections that reduce the overall capacity of your server. &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/02/21/3086.aspx" target="_blank"&gt;SOA&lt;/a&gt; decomposes applications and business logic into services, and then encourages the reuse of those services across multiple applications, resulting in a trade-off between duplicated code and multiple TCP connections. And the use of &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/09/3435.aspx" target="_blank"&gt;APIs to integrate social networks&lt;/a&gt;, especially those driven by real-time updates like micro-blogging site &lt;a href="http://www.twitter.com" target="_blank"&gt;Twitter&lt;/a&gt;, increase the number of TCP connections on a server dramatically.           &lt;br /&gt;          &lt;br /&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/3waysTCPmultiplexingimprovesapplicationp_3EE9/ibr-after-wa_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="123" alt="TCP Multiplexing reuses existing connections" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/3waysTCPmultiplexingimprovesapplicationp_3EE9/ibr-after-wa_thumb.jpg" width="297" align="left" border="0" /&gt;&lt;/a&gt; The increase in TCP connections can overwhelm a server in a kind of unintentional &lt;a href="http://www.f5.com/glossary/distributed-denial-of-service-attack.html" target="_blank"&gt;DDoS&lt;/a&gt; (Distributed Denial of Service) attack. It certainly wasn't the expected or intended behavior, but a site or service can easily &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/11/3445.aspx" target="_blank"&gt;twitter&lt;/a&gt; under high loads, causing outages and outrage simultaneously.           &lt;br /&gt;          &lt;br /&gt;Thus, there are three really good reasons to employ TCP multiplexing in your architecture.           &lt;br /&gt;          &lt;br /&gt;1. &lt;strong&gt;IMPROVES PERFORMANCE            &lt;br /&gt;&lt;/strong&gt;All applications can benefit from the improvement in performance seen when a server does not need to open and close hundreds or thousands or more of TCP connections a second. By removing the need to manage the TCP connections constantly, and instead reuse them across large numbers of requests, applications focus solely on generating and serving content, which improves application performance overall.           &lt;br /&gt;          &lt;br /&gt;2. &lt;strong&gt;IMPROVES CAPACITY OF SERVERS            &lt;br /&gt;&lt;/strong&gt;Generally speaking, servers are capable of handling only X number of concurrent &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;users and that number, in the past, has almost always been closely tied to the number of simultaneously open TCP connections the OS and application or web server can manage. By reducing the number of TCP connections required to serve the same number of users and requests, it leaves the server with the ability to open &lt;em&gt;more &lt;/em&gt;connections and thus serve &lt;em&gt;more &lt;/em&gt;users and requests. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. MAKES CONSOLIDATION EASIER &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Because the use of TCP multiplexing can improve the capacity of servers, it makes it possible to &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/31/3503.aspx" target="_blank"&gt;reduce the total number of servers&lt;/a&gt; you need to serve the same user base. The fewer servers you need means you can redistribute them for other uses or just shut them down, which lowers operating and management expenses. Or you can delay the need to acquire additional servers if you're still growing, putting off the investment for a future date. &lt;/p&gt;  &lt;p&gt;TCP multiplexing was one of the coolest (in my opinion) technologies to enter the application delivery space. It's a fairly old feature at this point, but it's still one of the most beneficial, useful technologies available in load &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;balancing and application delivery controllers&lt;/a&gt; today. &lt;/p&gt;  &lt;p&gt;If you aren't using it, you should be.  &lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2" width="100%" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; color: white; padding-top: 5px; background-color: #990000" valign="top" width="400"&gt;&lt;strong&gt;Related Links&lt;/strong&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="100%"&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/11/3443.aspx" target="_blank"&gt;Persistent and Persistence, What's the Difference?&lt;/a&gt;           &lt;br /&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/02/21/3086.aspx" target="_blank"&gt;SOA and Web 2.0: The Connection Management Challenge&lt;/a&gt;           &lt;br /&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/11/12/2985.aspx" target="_blank"&gt;The Impact of the Network on AJAX&lt;/a&gt;           &lt;br /&gt;&lt;a href="http://www.f5.com/pdf/white-papers/ajax-wp.pdf" target="_blank"&gt;The Impact of AJAX on the Network [white paper]&lt;/a&gt; &lt;a href="http://www.f5.com/news-press-events/news/2008/20080129.html" target="_blank"&gt;(text version)&lt;/a&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:1e223550-64ee-4dfd-8419-5cfd6a057682" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TCP" rel="tag"&gt;TCP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/TCP%20multiplexing" rel="tag"&gt;TCP multiplexing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20delivery" rel="tag"&gt;application delivery&lt;/a&gt;,&lt;a href="http://technorati.com/tags/acceleration" rel="tag"&gt;acceleration&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20acceleration" rel="tag"&gt;application acceleration&lt;/a&gt;,&lt;a href="http://technorati.com/tags/reuse" rel="tag"&gt;reuse&lt;/a&gt;,&lt;a href="http://technorati.com/tags/green%20it" rel="tag"&gt;green it&lt;/a&gt;,&lt;a href="http://technorati.com/tags/consolidation" rel="tag"&gt;consolidation&lt;/a&gt;,&lt;a href="http://technorati.com/tags/twitter" rel="tag"&gt;twitter&lt;/a&gt;,&lt;a href="http://technorati.com/tags/capacity" rel="tag"&gt;capacity&lt;/a&gt;,&lt;a href="http://technorati.com/tags/internet" rel="tag"&gt;internet&lt;/a&gt;,&lt;a href="http://technorati.com/tags/http" rel="tag"&gt;http&lt;/a&gt;,&lt;a href="http://technorati.com/tags/web" rel="tag"&gt;web&lt;/a&gt;,&lt;a href="http://technorati.com/tags/efficiency" rel="tag"&gt;efficiency&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3711.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/14/3-really-good-reasons-you-should-use-tcp-multiplexing.aspx</guid>
            <pubDate>Tue, 14 Oct 2008 12:10:12 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3711.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/14/3-really-good-reasons-you-should-use-tcp-multiplexing.aspx#feedback</comments>
            <slash:comments>7</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3711.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3711.aspx</trackback:ping>
        </item>
        <item>
            <title>The ironic truth about the ugly truth about web application acceleration</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/10/the-ironic-truth-about-the-ugly-truth-about-web-application.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/SSLandVirtualizationDontletthenightmarec_9A7B/secret_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="180" alt="secret" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/SSLandVirtualizationDontletthenightmarec_9A7B/secret_thumb.jpg" width="240" align="left" border="0" /&gt;&lt;/a&gt;Lately I've been seeing quite a few links to a white paper popping up in my alerts and feed-reader. Regardless of who's linking to it, it generally reads as promising to reveal some grand secret about how &lt;a href="http://www.f5.com/solutions/acceleration" target="_blank"&gt;web application acceleration&lt;/a&gt; is an epic failure. I finally gave in and clicked on a link and ended up directed to download a white-paper, the description for which essentially distilled "web application acceleration" down to "caching". And then promised to tell me why caching wasn't a good way to accelerate web applications. &lt;/p&gt;  &lt;p&gt;I didn't download the white paper primarily because equating "web application acceleration" to "caching" is exceedingly shortsighted and intimated that the actual content of the paper was most likely equally astigmatic. &lt;/p&gt;  &lt;p&gt;While caching is certainly one mechanism used by web application acceleration solutions, it's not the only one. (I also found it ironic (hence the title) to see a paper denigrating the use of caches being promoted by a vendor for whose technology caching, albeit at the byte and object level, is an underlying foundation. Oh, none of us with these kinds of solutions call it that because it needs a snazzy marketing name, but that's the core of what it really is. Anyone who claims otherwise is just (desperately) trying to sell you something. Go ahead, ask me about how we implement that &lt;a href="http://www.f5.com/products/wanjet/" target="_blank"&gt;particular technology&lt;/a&gt;. Part of the answer is "&lt;u&gt;caching&lt;/u&gt; at the byte and network level". I could continue this parenthetical aside further and say that what these guys are accelerating in the end is applications, so technically they're a (web) application acceleration solution, too, (So aren't they really pointing out their own faults then?) but that's probably better left as another post for another day. (Man, that was almost as bad as programming in LISP, but now I &lt;em&gt;really &lt;/em&gt;digress.))  &lt;/p&gt;  &lt;p&gt;In any case, the truth is that caching is only one of the technologies used by web application acceleration to improve performance of web applications. Otherwise we'd call just them caches, wouldn't we? &lt;/p&gt;  &lt;p&gt;Other technologies used by web application acceleration include: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Protocol optimization&lt;/strong&gt;       &lt;br /&gt;You would be amazed (or maybe you wouldn't) at the number of enhancements to protocols like TCP are available that improve the performance of web (and other applications riding on the protocol) applications. Web application acceleration solutions often implement these enhancements.  &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Compression        &lt;br /&gt;&lt;/strong&gt;Fewer packets means faster transmission and one of the ways in which you turn big fat web application messages into fewer packets is to compress them. This is especially true for HTML and XML and other web application formats like JSON which are text-based and are therefore highly compressable. Sometimes the &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/10/19/2971.aspx" target="_blank"&gt;answer to improving performance is &lt;em&gt;not&lt;/em&gt; to compress&lt;/a&gt;, and web application acceleration solutions need to be intelligent enough to determine when to use this technology. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Linearization of PDF documents&lt;/strong&gt;       &lt;br /&gt;Waiting for a PDF to load is one of the most painful experiences on the web. Technology that linearizes PDF documents and allows you to start reading page one while pages two through, well, whatever reduces the pain of that transfer. It still takes as long, but at least you aren't wasting your time waiting for it load. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Leveraging the browser cache&lt;/strong&gt;       &lt;br /&gt;Caching often implies a server-side technology but let's not forget that there's a &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/20/3279.aspx" target="_blank"&gt;cache in every browser&lt;/a&gt;. Unfortunately, it's often not leveraged to its fullest potential. Web application acceleration technology improves the use of the browser cache to improve performance, because the fastest way to load content is to get it locally if it's fresh and available. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Content spooling        &lt;br /&gt;&lt;/strong&gt;How fast a server can dish out content to a client is highly dependent upon the size of the network pipe (usually not a problem), number of concurrent users, number of open connections, distribution of resources being requested, and the total load and memory utilization on the server. Web application acceleration solutions, at least good ones, suck the content from the server as fast as possible and then serve it up to the browser. This reduces the number of open connections and concurrent users which &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/05/3227.aspx" target="_blank"&gt;reduces&lt;/a&gt; the &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/31/3503.aspx" target="_blank"&gt;load and resource consumption&lt;/a&gt; on the server and thus improves the speed at which the server can dish out content. Which makes the application faster. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;SSL acceleration        &lt;br /&gt;&lt;/strong&gt;It's forever been true that encryption and decryption is slow, and can be dramatically improved through the use of hardware assisted acceleration. &lt;a href="http://www.f5.com/solutions/acceleration" target="_blank"&gt;Web application acceleration solutions&lt;/a&gt; generally employ this technique to improve the performance of secure web applications delivered via SSL. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I could go on about how web application acceleration solutions further leverage technology like &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/02/21/3086.aspx" target="_blank"&gt;TCP multiplexing&lt;/a&gt; to improve performance by eliminating the overhead associated with the constant opening and closing of TCP sessions, which in turns makes servers more efficient which in turn makes them faster resulting in ... faster application delivery. But I think that's enough for one day. &lt;/p&gt;  &lt;p&gt;The truth is that &lt;a href="http://www.f5.com/solutions/acceleration" target="_blank"&gt;web application acceleration&lt;/a&gt; technologies comprise more than just caching and employ multiple techniques that improve the efficiency of servers and the performance of applications whether they are delivered over the LAN, the WAN, or the Internet. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b89c3418-cc29-4f31-820b-b58fc3a41873" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20acceleration" rel="tag"&gt;application acceleration&lt;/a&gt;,&lt;a href="http://technorati.com/tags/caching" rel="tag"&gt;caching&lt;/a&gt;,&lt;a href="http://technorati.com/tags/compression" rel="tag"&gt;compression&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SSL" rel="tag"&gt;SSL&lt;/a&gt;,&lt;a href="http://technorati.com/tags/performance" rel="tag"&gt;performance&lt;/a&gt;,&lt;a href="http://technorati.com/tags/internet" rel="tag"&gt;internet&lt;/a&gt;,&lt;a href="http://technorati.com/tags/web" rel="tag"&gt;web&lt;/a&gt;,&lt;a href="http://technorati.com/tags/http" rel="tag"&gt;http&lt;/a&gt;,&lt;a href="http://technorati.com/tags/tcp" rel="tag"&gt;tcp&lt;/a&gt;,&lt;a href="http://technorati.com/tags/protocols" rel="tag"&gt;protocols&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3702.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/10/the-ironic-truth-about-the-ugly-truth-about-web-application.aspx</guid>
            <pubDate>Fri, 10 Oct 2008 10:17:02 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3702.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/10/the-ironic-truth-about-the-ugly-truth-about-web-application.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3702.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3702.aspx</trackback:ping>
        </item>
        <item>
            <title>8 things you can do with a proxy</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/08/8-things-you-can-do-with-a-proxy.aspx</link>
            <description>&lt;p&gt;After having recently discussed all the &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/02/the-concise-guide-to-proxies.aspx" target="_blank"&gt;different kinds of proxies&lt;/a&gt; that exist, it occurred to me that it might be nice to provide some examples of what you can do with proxies besides the obvious web filtering scenario. This is by no means an exhaustive list, but is provided to show some of the more common (and cool, I think) uses of proxies. &lt;/p&gt;  &lt;p&gt;What's really awesome is that while some of these uses are available with only one type of proxy (reverse or forward), a full proxy can provide all these uses, and more, in a single, unified &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;application delivery platform.&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. DATA SCRUBBING&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/29/3310.aspx" target="_blank"&gt;Data scrubbing&lt;/a&gt; is the process of removing sensitive information like &lt;a href="http://devcentral.f5.com/wiki/default.aspx/iRules/CreditCardScrubber.html" target="_blank"&gt;credit card&lt;/a&gt; and &lt;a href="http://devcentral.f5.com/wiki/default.aspx/iRules/SocialSecurityNumberScrubbing.html" target="_blank"&gt;social security numbers&lt;/a&gt; from web application responses. This is particularly useful in preventing data leaks, especially if you're subject to regulations like SOX, HIPPA, and &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/22/3287.aspx" target="_blank"&gt;PCI DSS&lt;/a&gt; where the penalties for divulging personally identifiable information can be harsh fines - or worse. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Data scrubbing is is an implementation of a reverse proxy.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. URL REWRITING&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/03/06/3099.aspx" target="_blank"&gt;Rewriting URLs&lt;/a&gt; is something everyone has likely had to do at one time or another if they've developed a web application. &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/06/16/3361.aspx" target="_blank"&gt;URL rewriting&lt;/a&gt; is used to refer web requests to new resources instead of sending out a redirect response in cases where resources have moved, renamed, or migrated to a new version. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;URL rewriting is an implementation of a reverse proxy.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. LAYER 7 SWITCHING &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/08/12/3529.aspx" target="_blank"&gt;Layer 7 switching&lt;/a&gt; provides an organization with the ability to &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/28/3301.aspx" target="_blank"&gt;maximize their IP address space&lt;/a&gt; as well as architect a more efficient, better performing application architecture. Layer 7 switching routes specific web requests to different servers based on information in the application layer, like HTTP headers or application data. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Layer 7 switching is an implementation of a reverse proxy.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4. CONTENT FILTERING&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The most common use of proxies is content filtering. Generally, content filtering allows or rejects requests for content based on organizational policies regarding content type, the existence of specific keywords, or based on the site itself. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Content filtering is an implementation of a forward proxy.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5. REDIRECTION&lt;/strong&gt;  &lt;/p&gt;  &lt;p&gt;Redirection is the process of, well, &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/06/27/3406.aspx" target="_blank"&gt;redirecting a browser&lt;/a&gt; to a new resource. This could be a new instance of a requested resource or as part of application logic such as redirecting a failed login to the proper page. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Redirection is generally implemented by a reverse proxy, but can also be implemented by a forward proxy as a means of redirecting rejected requests to an explanation page.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;6. LOAD BALANCING&lt;/strong&gt;  &lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/12/14/3019.aspx" target="_blank"&gt;Load balancing&lt;/a&gt; is one of the most common uses of a reverse proxy. &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/02/27/3092.aspx" target="_blank"&gt;Load balancing&lt;/a&gt; distributes requests for resources across a number of servers in order to provide scalability and &lt;a href="http://www.f5.com/solutions/availability/" target="_blank"&gt;availability&lt;/a&gt; services. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Load balancing is an implementation of a reverse proxy.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;7. APPLICATION FIREWALL &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;An &lt;a href="http://www.f5.com/products/big-ip/product-modules/application-security-manager.html" target="_blank"&gt;application firewall&lt;/a&gt; provides a number of functions including some in this list (data scrubbing and redirection). An application firewall sits in front of web applications and inspects requests for malicious content and attempts to circumvent &lt;a href="http://www.f5.com/solutions/security/" target="_blank"&gt;security&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;An application firewall is an implementation of a reverse proxy.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;8. PROTOCOL SECURITY&lt;/strong&gt;   &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.f5.com/products/big-ip/feature-modules/protocol-security-module.html" target="_blank"&gt;Protocol security&lt;/a&gt; is the ability of a proxy to enforce protocol specifications on requests and responses in order to provide additional security at all layers of the OSI stack. &lt;a href="http://www.f5.com/products/big-ip/feature-modules/protocol-security-module.html" target="_blank"&gt;Protocol security&lt;/a&gt; provides an additional layer of security atop traditional security mechanisms that focus on data. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Protocol security is an implementation of a reverse proxy.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:613d7d43-ecff-40b8-a735-66871d43aa3a" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BIG-IP" rel="tag"&gt;BIG-IP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/proxy" rel="tag"&gt;proxy&lt;/a&gt;,&lt;a href="http://technorati.com/tags/reverse%20proxy" rel="tag"&gt;reverse proxy&lt;/a&gt;,&lt;a href="http://technorati.com/tags/forward%20proxy" rel="tag"&gt;forward proxy&lt;/a&gt;,&lt;a href="http://technorati.com/tags/full%20proxy" rel="tag"&gt;full proxy&lt;/a&gt;,&lt;a href="http://technorati.com/tags/security" rel="tag"&gt;security&lt;/a&gt;,&lt;a href="http://technorati.com/tags/load%20balancing" rel="tag"&gt;load balancing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20delivery" rel="tag"&gt;application delivery&lt;/a&gt;,&lt;a href="http://technorati.com/tags/protcol%20security" rel="tag"&gt;protcol security&lt;/a&gt;,&lt;a href="http://technorati.com/tags/URL%20rewriting" rel="tag"&gt;URL rewriting&lt;/a&gt;,&lt;a href="http://technorati.com/tags/content%20filtering" rel="tag"&gt;content filtering&lt;/a&gt;,&lt;a href="http://technorati.com/tags/data%20scrubbing" rel="tag"&gt;data scrubbing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20firewall" rel="tag"&gt;application firewall&lt;/a&gt;,&lt;a href="http://technorati.com/tags/internet" rel="tag"&gt;internet&lt;/a&gt;,&lt;a href="http://technorati.com/tags/web" rel="tag"&gt;web&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3693.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/08/8-things-you-can-do-with-a-proxy.aspx</guid>
            <pubDate>Wed, 08 Oct 2008 11:27:35 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3693.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/08/8-things-you-can-do-with-a-proxy.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3693.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3693.aspx</trackback:ping>
        </item>
        <item>
            <title>Virtualization: Just how far are we willing to take it?</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/18/3625.aspx</link>
            <description>&lt;table cellspacing="0" cellpadding="2" width="748" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="455"&gt;&lt;em&gt;If your entire data center infrastructure is on one virtualized PC, you're doing it wrong. &lt;/em&gt;&lt;/td&gt;        &lt;td style="color: white; background-color: #990000" valign="top" width="291"&gt;&lt;center&gt;Where's &lt;a title="F5 Networks" href="http://www.f5.com" rel=""&gt;F5&lt;/a&gt;&lt;/center&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="455"&gt;         &lt;br /&gt;The comparison between the power of a modern PC and a 1960's mainframe is often made in conjunction with a smug "look how far we've come" look.           &lt;br /&gt;          &lt;br /&gt;But the way virtualization is headed today it's likely that mainframe holdouts will turn that smug look back on us with a blithe, "yes, you've gone all the way back to beginning."           &lt;br /&gt;          &lt;br /&gt;If we're not careful, by the time we're through deploying virtual everything we're going to end up with a single PC comprising our data center. Which is pretty much like a mainframe, isn't it?           &lt;br /&gt;          &lt;br /&gt;We're certainly headed that way. Virtual appliances for security, for switching, for many functions handled by network infrastructure are arriving daily. And we're lapping them up like a cat given cream. &lt;/td&gt;        &lt;td valign="top" width="291"&gt;         &lt;ul&gt;           &lt;li&gt;&lt;a href="http://storagedecisions.techtarget.com/newyork"&gt;Storage Decisions&lt;/a&gt;               &lt;br /&gt;Sept 23-24 in New York &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.networld.com/events"&gt;Networld IT Roadmap&lt;/a&gt;               &lt;br /&gt;Sept 23 in Dallas &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.oracle.com/openworld/2008/"&gt;Oracle Open World&lt;/a&gt;               &lt;br /&gt;Sept 21-25 in San Francisco &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.snwusa.com/"&gt;Storage Networking World&lt;/a&gt;               &lt;br /&gt;Oct 13-16 in Dallas &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.storage-expo.com/"&gt;Storage Expo 2008 UK&lt;/a&gt;               &lt;br /&gt;Oct 15-16 in London &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.snweurope.com/"&gt;Storage Networking World&lt;/a&gt;               &lt;br /&gt;Oct 27-29 in Frankfurt  &lt;br /&gt;              &lt;br /&gt;        &lt;a href="http://www.new.facebook.com/pages/Seattle-WA/F5-Networks/19466599085"&gt;&lt;img title="F5 on Facebook" height="32" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_icon_facebook.png" width="32" border="0" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/f5networks"&gt;&lt;img title="Follow F5 on Twitter" height="32" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="32" border="0" /&gt;&lt;/a&gt; &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Now I'm not going to go as far as &lt;a href="http://twitter.com/Beaker"&gt;@Beaker&lt;/a&gt; in his &lt;a href="http://rationalsecurity.typepad.com/blog/2008/06/blackhat-2008-f.html"&gt;Four Horsemen of the Virtualization Apocalypse&lt;/a&gt; and claim that every time you deploy a piece of network infrastructure as a virtual device that God kills a kitten; but I think He just might kick one every time you deploy what is traditionally a network infrastructure function within a virtual appliance. &lt;/p&gt;  &lt;p&gt;L2-3 switching used to be done in software, before the advent of network processors and high-speed backplanes and switching fabrics. When there were no VLANs (Virtual Local Area Network) and there were no ACLs (Access Control List) and there was nothing but forwarding of packets. &lt;/p&gt;  &lt;p&gt;Routing used to be done in software before there were route optimizations and &lt;a href="http://www.f5.com/solutions/availability/link-load-balancing/"&gt;link load balancing&lt;/a&gt; and complex algorithmic configurations designed to optimize the flow of traffic in and out of a private network. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.f5.com/solutions/availability/"&gt;     &lt;div class="wlWriterSmartContent" id="scid:8747F07C-CDE8-481f-B0DF-C6CFD074BF67:f039e106-9fd7-4bee-83f6-1c31ed8d7fc8" style="padding-right: 0px; display: inline; padding-left: 0px; float: left; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/VirtualizationWhenisenoughtoomuch_5DE8/server2-8x6.jpg" title="The new mainframe. Just add virtual appliances. " rel="thumbnail"&gt;&lt;img border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/VirtualizationWhenisenoughtoomuch_5DE8/server2_258.png" /&gt;&lt;/a&gt;&lt;/div&gt; Load balancing&lt;/a&gt; used to be done in software before it got married to switching and figured out how to do incredibly interesting things with application traffic at high speeds and high volumes like &lt;a href="http://www.f5.com/solutions/acceleration/"&gt;acceleration&lt;/a&gt;, protocol optimization and &lt;a href="http://www.f5.com/solutions/security/network-protocol/"&gt;security&lt;/a&gt;, and &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/08/12/3529.aspx"&gt;application switching&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;So why are we thinking about reversing the advances in high-speed, high-volume network infrastructure by putting it back onto a platform that, while more powerful than its predecessors, is still heavily limited by the commodity hardware on which it will be deployed? Do we really want reduced capacity? Reduced performance? Limitations on concurrent connections, sessions, and users?  &lt;/p&gt;  &lt;p&gt;Why are we thinking about creating a single point of failure and introducing what would certainly become a single bottleneck in application and network performance? It's hard enough as it is to &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/03/3585.aspx"&gt;troubleshoot a network and an application&lt;/a&gt;, can you imagine the difficulty in troubleshooting a completely virtualized infrastructure? &lt;/p&gt;  &lt;p&gt;How much functionality will we attempt to cram into virtual machines before we realize that we've reversed most of the gains we made with &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/08/07/3522.aspx"&gt;server virtualization&lt;/a&gt; in the first place? Will we really not be happy until we've crammed every piece of network infrastructure back into software on a virtual appliance? Didn't we learn from the 1990s that deploying technology simply for technology's sake was a bad idea? &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Apparently not. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a866126c-7c65-40de-9eca-2a1d2eb34223" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/f5" rel="tag"&gt;f5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/virtualization" rel="tag"&gt;virtualization&lt;/a&gt;,&lt;a href="http://technorati.com/tags/VLAN" rel="tag"&gt;VLAN&lt;/a&gt;,&lt;a href="http://technorati.com/tags/switching" rel="tag"&gt;switching&lt;/a&gt;,&lt;a href="http://technorati.com/tags/mainframes" rel="tag"&gt;mainframes&lt;/a&gt;,&lt;a href="http://technorati.com/tags/pc" rel="tag"&gt;pc&lt;/a&gt;,&lt;a href="http://technorati.com/tags/consolidation" rel="tag"&gt;consolidation&lt;/a&gt;,&lt;a href="http://technorati.com/tags/security" rel="tag"&gt;security&lt;/a&gt;,&lt;a href="http://technorati.com/tags/load%20balancing" rel="tag"&gt;load balancing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/routing" rel="tag"&gt;routing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/server%20virtualization" rel="tag"&gt;server virtualization&lt;/a&gt;,&lt;a href="http://technorati.com/tags/internet" rel="tag"&gt;internet&lt;/a&gt;,&lt;a href="http://technorati.com/tags/networking" rel="tag"&gt;networking&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3625.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/18/3625.aspx</guid>
            <pubDate>Thu, 18 Sep 2008 14:26:49 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3625.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/18/3625.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3625.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3625.aspx</trackback:ping>
        </item>
        <item>
            <title>The impact of the network on ... everything</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/11/3606.aspx</link>
            <description>&lt;table cellspacing="0" cellpadding="2" width="755" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="528"&gt;         &lt;p&gt;Back in the day when I was a technical architect and actually wrote code (yes, they did let me do that once) I got into a discussion with the rest of my team about the impact of our code on performance. I was saying white-space was evil because it can unnecessarily increase the number of packets necessary to transfer data. I wanted to go through the code (mostly &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/11/3605.aspx"&gt;JavaScript&lt;/a&gt; and &lt;a href="http://www.f5.com/news-press-events/news/2008/20080729.html"&gt;HTML&lt;/a&gt; output) and reduce the white-space to make application response time better. &lt;/p&gt;          &lt;p&gt;I was eventually overruled because, well, I just couldn't make the rest of the team understand the &lt;a href="http://www.f5.com/pdf/white-papers/ajax-wp.pdf"&gt;impact of our code on the network&lt;/a&gt; and performance and hey, one extra packet isn't going to really make a difference, is it? &lt;/p&gt;          &lt;p&gt;Just as &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/04/30/3212.aspx"&gt;developers can adversely affect application performance&lt;/a&gt; because they don't always grok the network, network topology and connectivity rates can also affect application performance - and a whole lot more. &lt;/p&gt; I stumbled across &lt;a href="http://www.mysqlperformanceblog.com/2008/09/01/how-network-can-impact-mysql-operations/"&gt;this great post on MySQL operational performance&lt;/a&gt; that describes this very scenario and thought it was awesome anecdotal evidence of the importance of understanding the network. &lt;/td&gt;        &lt;td valign="top" width="223"&gt;&lt;strong&gt;      Where is F5?            &lt;br /&gt;&lt;/strong&gt;          &lt;ul&gt;           &lt;li&gt;&lt;a href="http://www.vmworld.com"&gt;VMWorld&lt;/a&gt;               &lt;br /&gt;Sept 15-18 in Las Vegas &lt;/li&gt;            &lt;li&gt;&lt;a href="http://storagedecisions.techtarget.com/newyork"&gt;Storage Decisions&lt;/a&gt;               &lt;br /&gt;Sept 23-24 in New York &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.networld.com/events"&gt;Networld IT Roadmap&lt;/a&gt;               &lt;br /&gt;Sept 23 in Dallas &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.oracle.com/openworld/2008/"&gt;Oracle Open World&lt;/a&gt;               &lt;br /&gt;Sept 21-25 in San Francisco &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.snwusa.com/"&gt;Storage Networking World&lt;/a&gt; Oct 13-16 in Dallas &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.storage-expo.com/"&gt;Storage Expo 2008 UK&lt;/a&gt;               &lt;br /&gt;Oct 15-16 in London &lt;/li&gt;            &lt;li&gt;&lt;a href="http://www.snweurope.com/"&gt;Storage Networking World&lt;/a&gt; Oct 27-29 in Frankfurt &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;It's also important for network administrators to understand how the topology of their network - and its speeds and feeds - can have an adverse affect on a variety of tasks, not just application performance. The core of the problem in the aforementioned post was a simple uplink between two switches with a significantly lower throughput than &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheImpactoftheNetworkon.Everything_4C4B/esb-1_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 5px 0px 0px 10px; border-left: 0px; border-bottom: 0px" height="162" alt="esb-1" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheImpactoftheNetworkon.Everything_4C4B/esb-1_thumb.jpg" width="240" align="right" border="0" /&gt;&lt;/a&gt; the rest of the network. A simple uplink reduced the total throughput from an anticipated 80 MB/second to 20 MB/second. That's huge, especially when you're talking about tossing around very, very, &lt;em&gt;very&lt;/em&gt; large files. &lt;/p&gt;  &lt;p&gt;Now if we were talking about a WAN link I'd mention &lt;a href="http://www.f5.com/solutions/acceleration/wan-optimization/"&gt;WAN optimization&lt;/a&gt; because, well, there isn't much you can do about throughput limitations on WAN links. But this is a LAN, and while &lt;a href="http://www.f5.com/solutions/acceleration/web-acceleration/"&gt;application acceleration technology&lt;/a&gt; could help with application performance in a similar scenario, the right answer here is simply to &lt;strong&gt;increase the uplink speed&lt;/strong&gt;, or move the database servers all to the same switch with a higher speed uplink to the core switches/routers. &lt;/p&gt;  &lt;p&gt;The network impacts &lt;em&gt;everything&lt;/em&gt; because it delivers &lt;em&gt;everything&lt;/em&gt;. Its toplogy and speeds and feeds &lt;em&gt;are&lt;/em&gt; important for everyone to understand because it impacts the performance of ... everything. While I certainly think you should consider how &lt;a href="http://www.f5.com"&gt;F5&lt;/a&gt; solutions can improve the &lt;a href="http://www.f5.com/solutions/acceleration/"&gt;performance&lt;/a&gt;, &lt;a href="http://www.f5.com/solutions/availability/"&gt;reliability&lt;/a&gt;, and &lt;a href="http://www.f5.com/solutions/security/"&gt;security&lt;/a&gt; of your applications and infrastructure, sometimes the answer really is as simple as a bad cable ... or limited uplink speeds. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:04f46cb0-382b-4a62-96dd-54f5f301d58c" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/MySQL" rel="tag"&gt;MySQL&lt;/a&gt;,&lt;a href="http://technorati.com/tags/performance" rel="tag"&gt;performance&lt;/a&gt;,&lt;a href="http://technorati.com/tags/networking" rel="tag"&gt;networking&lt;/a&gt;,&lt;a href="http://technorati.com/tags/applications" rel="tag"&gt;applications&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20delivery" rel="tag"&gt;application delivery&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3606.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/11/3606.aspx</guid>
            <pubDate>Thu, 11 Sep 2008 15:01:08 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3606.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/11/3606.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3606.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3606.aspx</trackback:ping>
        </item>
        <item>
            <title>Damned if you do, damned if you don't</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/10/3604.aspx</link>
            <description>&lt;p&gt;There has been much fervor around the outages of cloud computing providers of late, which seems to be leading to an increased and perhaps unwarranted emphasis on SLAs the likes of which we haven't seen since...well, the last time the IT saw outsourced anything reach the hype-level of cloud computing. Consider this snippet of goodness for a moment, and pay careful attention to the last paragraph. &lt;/p&gt;  &lt;p&gt;From &lt;a href="http://symbian.sys-con.com/node/659288"&gt;Five Key Challenges of Enterprise Cloud Computing&lt;/a&gt; &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheThreeItysofCloudComputing_461E/start_quote_rb_2.gif"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="13" alt="start_quote_rb" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheThreeItysofCloudComputing_461E/start_quote_rb_thumb.gif" width="24" border="0" /&gt;&lt;/a&gt; I won’t beat the dead “Gmail down, EC2 down, etc down” horse here. But the truth of the matter is enterprises today cannot reasonably rely on the cloud infrastructures/platforms to run their business. There’s almost no SLAs provided by the cloud providers today. Even Jeff Barr from Amazon said that AWS only provides SLA for their S3 service.&lt;/p&gt;    &lt;p&gt;[...]&lt;/p&gt;    &lt;p&gt;Can you imagine enterprises signing up cloud computing contracts without SLAs clearly defined? It’s like going to host their business critical infrastructure in a data center that doesn’t have clearly defined SLA. &lt;/p&gt;    &lt;p&gt;We all know that SLAs really doesn’t buy you much. In most cases, enterprises get refunded for the amount of time that the network was down. No SLA will cover business loss. However, as one of the CSOs I met said, it’s about risk transfer. As long as there’s a defined SLA on paper, when the network/site goes down, they can go after somebody. If there’s no SLA, it will be the CIO/CSO’s head that’s on the chopping block.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Let's look at this rationally for a moment. SLAs really don't buy you much. True. True of cloud computing providers, true of the enterprise. No SLA covers business loss. True. True of cloud computing providers, true of the enterprise. &lt;/p&gt;  &lt;p&gt;What I find amusing about this article is that the author asks if we can imagine "signing up cloud computing contracts without SLAs clearly defined?" Well, why not? Businesses do it every day when IT deploys the latest "Business App v4.5.3.2a". Microsoft Office 2007 relies heavily on on-line components, but we don't demand an SLA from Microsoft for it. Likewise, the anti-phishing capabilities of IE7 don't necessarily come with an SLA and businesses don't shy away from making it their corporate standard anyway.&lt;/p&gt;  &lt;p&gt;In fact, I'd argue that most cloudware today comes with an &lt;em&gt;anti-SLA: &lt;/em&gt;use at your own risk, we don't guarantee anything. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheThreeItysofCloudComputing_461E/Coffee%20Mug%20-%20Far%20Side%20Damned%20if%20You%20Do%20Dont_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" height="305" alt="Coffee Mug - Far Side Damned if You Do Dont" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheThreeItysofCloudComputing_461E/Coffee%20Mug%20-%20Far%20Side%20Damned%20if%20You%20Do%20Dont_thumb.jpg" width="330" align="left" border="0" /&gt;&lt;/a&gt; The CIO/CSO's head is on the chopping block if he does have an SLA, because there's no guarantee that IT can meet it. Oh, usually they do, because the SLA is broadly defined for all of IT in terms of "we'll have 5 9's of &lt;a href="http://www.f5.com/solutions/availability/"&gt;availability&lt;/a&gt; for the network" and "applications will have &lt;a href="http://www.f5.com/solutions/acceleration/"&gt;less than an X second response time&lt;/a&gt;" and so on. But it isn't as if IT and the business sit down and negotiate SLAs for every single application they deploy into the enterprise data center. &lt;/p&gt;  &lt;p&gt;If they do, then they're the exception, not the rule. And the applications this is true of are so time-sensitive and mission critical that it's unlikely the responsibility for them will ever be outsourced. Financial services and brokerages are a good example of this. Outsourced? Unlikely. The IT folks responsible for the applications and networks in those industries are probably laughing uproariously at the idea. &lt;/p&gt;  &lt;p&gt;The argument that an SLA is simply to place a target on &lt;em&gt;someone's &lt;/em&gt;head regarding responsibility for uptime and performance of applications is largely true. But that would seem to indicate that if you're a CIO/CSO and can wrangle &lt;em&gt;any &lt;/em&gt;SLA out of a cloud computing provider that you should immediately use them for everything, because you can pass the mantle of responsibility for failing to meet SLAs to them instead of shouldering it yourself. &lt;/p&gt;  &lt;p&gt;This isn't a cloud computing problem, this is a problem of responsibility and managing expectations. It's a problem with expecting that a million moving parts, hundreds of connections, routers, switches, intermediaries, servers, operating systems, libraries, and applications will somehow always manage to be available. Unpossible, I say, and unrealistic regardless of whether we're talking cloud computing or enterprise infrastructure. &lt;/p&gt;  &lt;p&gt;Basically, the CIO/CSO is damned if he has an SLA because chances are IT is going to fail to meet them at some point, and he's damned if he doesn't have an SLA because that means he's solely responsible for the reliability and performance of all of IT. &lt;/p&gt;  &lt;p&gt;And people wonder why C-level execs command the compensation levels they do. It's to make sure they can afford the steady stream of antacids they need just to get through the day. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:43b8a9c0-e8fd-4a50-9eec-e0e85f099ad6" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/f5" rel="tag"&gt;f5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cloud%20computing%20infrastructure" rel="tag"&gt;cloud computing infrastructure&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SLA" rel="tag"&gt;SLA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/reliability" rel="tag"&gt;reliability&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CIO" rel="tag"&gt;CIO&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CSO" rel="tag"&gt;CSO&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cloud%20computing" rel="tag"&gt;cloud computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/uptime" rel="tag"&gt;uptime&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Microsoft" rel="tag"&gt;Microsoft&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3604.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/10/3604.aspx</guid>
            <pubDate>Wed, 10 Sep 2008 14:03:42 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3604.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/10/3604.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3604.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3604.aspx</trackback:ping>
        </item>
        <item>
            <title>The third greatest (useful) hack in the history of the Web</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/08/3596.aspx</link>
            <description>&lt;p&gt;Developers have an almost supernatural ability to workaround restrictions, even though some of the restrictions on building &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Thethirdgreatestusefulhackinthehistoryof_40AF/superman_emblem_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="94" alt="superman_emblem" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Thethirdgreatestusefulhackinthehistoryof_40AF/superman_emblem_thumb.jpg" width="94" align="right" border="0" /&gt;&lt;/a&gt;applications delivered via the web have been akin to a &lt;a href="http://en.wikipedia.org/wiki/Kryptonite"&gt;kryptonite&lt;/a&gt;. Like Superman fighting through the debilitating effects of the imaginary mineral, they've gotten around those restrictions by coming up with ways to implement functionality and improve the behavior of browsers and thus web applications anyway. &lt;/p&gt;  &lt;p&gt;The first greatest hack was &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/21/3283.aspx"&gt;giving HTTP state&lt;/a&gt;. The second? &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/11/3443.aspx"&gt;Cookie-based persistence&lt;/a&gt;. The third? The &lt;a href="http://en.wikipedia.org/wiki/List_of_DNS_record_types "&gt;CNAME&lt;/a&gt; trick. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;THE PROBLEM&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The reason the "CNAME trick" came about was a limitation on browser connections to a single host imposed by &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Thethirdgreatestusefulhackinthehistoryof_40AF/before-ibr_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="110" alt="before-ibr" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Thethirdgreatestusefulhackinthehistoryof_40AF/before-ibr_thumb.jpg" width="240" align="left" border="0" /&gt;&lt;/a&gt;browsers, but particularly version of &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/05/3593.aspx"&gt;Internet Explorer previous to IE8&lt;/a&gt;. With only 2 connections per host name allowed  and many times that number of objects on a page, the ability of IE in particular but really all browsers to quickly retrieve all those objects and render them was also hampered. This resulted in the appearance that the application performed poorly, when in reality it wasn't the application but the inherent delivery mechanisms that were slow due to limitations beyond the user's, the network admin's, and the developer's control.&lt;/p&gt;  &lt;p&gt;Users, of course, don't care about any of this. All they know is that the application they are using is slow and they want it fast. And when some of those users are corporate business users, the developers are going to hear about it because the help desk is going to call &lt;em&gt;them&lt;/em&gt; when they get barraged with complaints from users. This is the real reason developers develop nearly supernatural powers of hacking; they'll do anything to stop users from complaining. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;THE HACK&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Developers all over (including ours inside &lt;a href="http://www.f5.com"&gt;F5&lt;/a&gt;, working on building our &lt;a href="http://www.f5.com/solutions/acceleration/"&gt;application acceleration solution&lt;/a&gt;, &lt;a href="http://www.f5.com/products/big-ip/product-modules/webaccelerator.html"&gt;WebAccelerator&lt;/a&gt;) figured that if the browser was going to limit the number of connections to a single host that the answer was simply to trick the browser into thinking it was talking to more than one host. Turns out doing this is rather trivial: simply add multiple CNAMEs for the same host to &lt;a href="http://www.f5.com/products/big-ip/product-modules/global-traffic-manager.html"&gt;DNS&lt;/a&gt;, and then reference those as the host for some of the objects in the page. So &lt;a href="http://www.example.com"&gt;&lt;em&gt;www.example.com&lt;/em&gt;&lt;/a&gt;&lt;em&gt; &lt;/em&gt;becomes &lt;em&gt;www1, www2, www3, &lt;/em&gt;and so on. &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Thethirdgreatestusefulhackinthehistoryof_40AF/after-ibr_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 0px 0px 5px; border-right-width: 0px" height="110" alt="after-ibr" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Thethirdgreatestusefulhackinthehistoryof_40AF/after-ibr_thumb.jpg" width="240" align="right" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This required changes to the application so that the additional host names were referenced, unless you made use of a proxy-based solution like WebAccelerator and &lt;a href="http://www.f5.com/products/big-ip/product-modules/local-traffic-manager.html"&gt;BIG-IP Local Traffic Manager&lt;/a&gt; capable of rewriting outbound host names and virtualizing them to appear to the outside world as if they were a single host. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;THE NEW PROBLEMS&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This improved application performance, but at the cost of increasing the number of simultaneous connections to the server. This was "bad" in the sense that a web server, even well tuned, can only support X simultaneous connections at a time, and if each user was consuming Y connections per page, the number of concurrent users that could be supported on a single server was decreased by this hack. This made servers less efficient and required additional servers to ensure availability and scale. &lt;/p&gt;  &lt;p&gt;Along comes &lt;a href="http://www.f5.com/glossary/ajax.html"&gt;AJAX&lt;/a&gt;, and the popularity of the "CNAME trick" rose rapidly. This is because AJAX became a way to provide near real-time updates to web browsers on a per-component basis. The result of this is a rich, interactive application that ends up maintaining a connection to the server on a nearly continual basis. So not only is a single application using &lt;em&gt;more &lt;/em&gt;connections - and thus server resources - to load a page, it is also consuming more resources and connections throughout its execution. &lt;/p&gt;  &lt;p&gt;Some web servers aren't good about dealing with virtual hosts. Rather than pretend that a single instance is all the virtual hosts, it will spawn more and more children instances, each one consuming resources until there are so many instances running that each one can handle fewer concurrent users than the parent. &lt;/p&gt;  &lt;p&gt;The CNAME trick is also difficult to scale. Every time a new CNAME is added, it must be referenced within the application, which often means modifying applications. A costly proposition in terms of time and effort. If the CNAME trick is used as a reactive measure to address poor application performance, the entire application must be modified to reference the new host names. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;THE SOLUTIONS&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;There are several solutions to the problems created by the CNAME trick, but they all take advantage of the same core principle: a proxy-based mediator. The proxy's job is to mediate for the client and aggregate connection requests to the server and make them more efficient, either by reusing connections to servers or by load-balancing them more efficiently, or by rewriting requests. &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Thethirdgreatestusefulhackinthehistoryof_40AF/ibr-after-wa_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; margin: 0px 10px 0px 0px; border-right-width: 0px" height="110" alt="ibr-after-wa" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/Thethirdgreatestusefulhackinthehistoryof_40AF/ibr-after-wa_thumb.jpg" width="266" align="left" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The advantage of implementing a &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/06/17/3365.aspx"&gt;proxy-based solution proactively&lt;/a&gt; is that applications don't necessarily need to be modified if the solution can rewrite host names in outbound responses. Basically, if the proxy is smart enough, it can change the host names in the page before it reaches the browser, and then aggregate and optimize them as the requests for each object come back in, essentially taking advantage of &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/08/12/3529.aspx"&gt;layer 7 switching&lt;/a&gt; to &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/28/3301.aspx"&gt;route all the requests to the appropriate web server&lt;/a&gt;.  &lt;/p&gt;  &lt;p&gt;The problem of additional connections can't be solved without a proxy of some kind. How efficient a web server is at handling the additional connections can be changed with tuning and optimization, but the additional connections and resulting consequences are going to hit that web server regardless without a mediator to deal with them. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;THE FUTURE &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This is a great hack, there is no doubt about it. It's one of the best ways to "workaround" the problems with browser limitations. Now that IE8 is increasing the connection limit from 2 to 6, the CNAME hack will be less necessary to combat the perception of poor application performance. But the problem of inefficiency and resource consumption on servers will not go away; in fact, it's likely to get worse as IE8 is adopted over the next year. &lt;/p&gt;  &lt;p&gt;The increase in connections initiated from browsers will continue to strain the application infrastructure and, in fact, will get &lt;em&gt;worse&lt;/em&gt; primarily because not everyone implemented the "CNAME trick" and thus not everyone's infrastructure felt the strain of those increased connections. With IE8 everyone will feel the impact of additional connections upon their application infrastructure - whether they're a small to medium business, a large enterprise, or a service provider. &lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" border="0" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" width="18" border="0" /&gt;&lt;/a&gt;&lt;a href="http://lmacvittie.tumblr.com" border="0"&gt;&lt;img title="Follow me on Tumblr" height="18" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" width="18" border="0" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img title="Posterous" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" border="0" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" border="0" /&gt;&lt;/a&gt; &lt;a title="Subscribe using any feed reader!" href="http://www.addthis.com/feed.php?pub=lmacvittie&amp;amp;h1=http%3A%2F%2Fdevcentral.f5.com%2Fweblogs%2Fmacvittie%2FRss.aspx&amp;amp;t1="&gt;&lt;img height="18" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" border="0" /&gt;&lt;/a&gt; &lt;a title="Bookmark and Share" onclick="window.open('http://www.addthis.com/bookmark.php?wt=nw&amp;amp;pub=lmacvittie&amp;amp;url='+encodeURIComponent(location.href)+'&amp;amp;title='+encodeURIComponent(document.title), 'addthis', 'scrollbars=yes,menubar=no,width=620,height=520,resizable=yes,toolbar=no,location=no,status=no,screenX=200,screenY=100,left=200,top=100'); return false;" href="http://www.addthis.com/bookmark.php" target="_blank"&gt;&lt;img height="18" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" border="0" /&gt;&lt;/a&gt;&lt;script src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355" type="text/javascript"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~s/f5/XOwx" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;script src="http://feeds.feedburner.com/~d/static/site-tracker.js" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:73d6f9a1-fdb0-4ff9-99fd-e445556592ef" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5" rel="tag"&gt;F5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/BIG-IP" rel="tag"&gt;BIG-IP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20acceleration" rel="tag"&gt;application acceleration&lt;/a&gt;,&lt;a href="http://technorati.com/tags/performance" rel="tag"&gt;performance&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AJAX" rel="tag"&gt;AJAX&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IE8" rel="tag"&gt;IE8&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CNAME%20trick" rel="tag"&gt;CNAME trick&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DNS" rel="tag"&gt;DNS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/proxy" rel="tag"&gt;proxy&lt;/a&gt;,&lt;a href="http://technorati.com/tags/mediator" rel="tag"&gt;mediator&lt;/a&gt;,&lt;a href="http://technorati.com/tags/web" rel="tag"&gt;web&lt;/a&gt;,&lt;a href="http://technorati.com/tags/http" rel="tag"&gt;http&lt;/a&gt;,&lt;a href="http://technorati.com/tags/session" rel="tag"&gt;session&lt;/a&gt;,&lt;a href="http://technorati.com/tags/state" rel="tag"&gt;state&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cookies" rel="tag"&gt;cookies&lt;/a&gt;,&lt;a href="http://technorati.com/tags/persistence" rel="tag"&gt;persistence&lt;/a&gt;,&lt;a href="http://technorati.com/tags/aggregation" rel="tag"&gt;aggregation&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3596.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/08/3596.aspx</guid>
            <pubDate>Mon, 08 Sep 2008 11:13:30 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3596.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/08/3596.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3596.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3596.aspx</trackback:ping>
        </item>
    </channel>
</rss>