<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>Monitoring/Management</title>
        <link>http://devcentral.f5.com/weblogs/macvittie/category/103.aspx</link>
        <description>Cause without it, you wouldn't know what was going on</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>Cloud Computing: What's stopping service-oriented clouds?</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/12/cloud-computing-whats-stopping-service-oriented-clouds.aspx</link>
            <description>&lt;p&gt;Whenever there is a shift in architectural thinking about technology, such as is happening right now with cloud computing and virtualization, we start thinking forward, past the now, and into the future about how that technology might be leveraged. We start looking at the impact to architecture from the top of the stack to the bottom. For &lt;a href="http://www.f5.com"&gt;a company&lt;/a&gt; that's focused on &lt;a href="http://www.f5.com/products/big-ip"&gt;application delivery&lt;/a&gt;, that means taking a good hard look at how that new technology might impact the architecture of applications. &lt;/p&gt;  &lt;p&gt;It's been suggested that perhaps, just maybe, we'll see service-oriented clouds; that the concepts of SOA (service oriented architecture) might be abstracted even further and moved into the cloud. Basically, it's like ripping apart the n-tiered application architecture we've been building on for years and spinning each tier into the cloud; database there, presentation layer here, middleware layer over there. And not just in one place, either, but rather duplicating these "services" to provide failover, availability assurance, and context-aware access that takes into consideration variables like location and response time. &lt;/p&gt;  &lt;p&gt;That would certainly be more efficient than current architectures which deploy entire applications as virtual images or packages in the cloud. If the database tier needs more compute resources, then just the database tier expands, rather than the entire application. That's the principle of SOA at work, as well. Decompose business processes and applications into their composite services and deploy. If one service is heavily reused, you can replicate and load balance just that service, not the entire application. &lt;/p&gt;  &lt;p&gt;But applying SOA to the cloud may be more difficult than it sounds. While there are often discrete tiers of architecture within an application, even within a SOA-based architecture, it is still somewhat difficult to envision deploying those tiers across multiple clouds. Application infrastructure is certainly just as capable of communicating across the Internet as it is a local network, so the problem isn't so much with technology and its capabilities as it is with actually managing such a dispersed and distributed application infrastructure. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/CloudComputingServiceorientedclouds_3C88/ideabulb_2.jpg"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 0px 10px 0px 0px; border-left: 0px; border-bottom: 0px" height="240" alt="ideabulb" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/CloudComputingServiceorientedclouds_3C88/ideabulb_thumb.jpg" width="214" align="left" border="0" /&gt;&lt;/a&gt; Troubleshooting such an architecture would certainly be problematic. Trying to recreate an issues for troubleshooting has always required replicating the environment as closely as possible, and it may be exceedingly difficult to even get that information in a service-oriented cloud architecture. Which data center, which database instance, which front end, which network? The variables become as overwhelming to manage as calculus appears to a third grade math student. &lt;/p&gt;  &lt;p&gt;Further complicating the potential deployment of databases, specifically, into the cloud is the integral web of applications and systems reliant on those databases for day to day operations - both IT and business focused. Data mining, business activity monitoring, business process management, supply chain, and ERP systems are often all tied into databases around the enterprise. Move any single database and you become mired in a dependency chain that is serial, not parallel, in nature with the database being the foremost link in the chain. Access or availability to that database can bring applications - and the business - to a screeching halt. &lt;/p&gt;  &lt;p&gt;It's that kind of risk rather than the traditional security risks and concerns surrounding offsite data storage that needs to be addressed before critical infrastructure like databases can be decoupled from the internal control that exists in the local data center. SOA addresses the architectural coupling of data and logic to applications, but it cannot adequately address at this time the need to have tightly coupled control over the availability of that data. &lt;/p&gt;  &lt;p&gt;Applying the principles of SOA to the enterprise and the cloud can indeed have benefits in terms of reduced infrastructure costs and the ability to scale on-demand, but it still can't address the vulnerabilities inherently present from our reliance on data. &lt;/p&gt;  &lt;p&gt;Data is the lifeblood of an organization. Applications, like the heart, keep that data pumping through the complex network of veins and arteries that are the corporate and Internet infrastructure. But like human beings even though the heart and some of the infrastructure can be outsourced, without blood (data), everything else is irrelevant. &lt;/p&gt;  &lt;p&gt;Given our dependency on data and its availability, it's unlikely we'll see fully service-oriented clouds in the ether anytime soon. Not until we have the same guarantees of availability and access and ultimately, control, that we have in the local data center. &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:611dadc2-45da-409f-9f05-e4ce86841717" 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/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/infrastructure" rel="tag"&gt;infrastructure&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/SOA" rel="tag"&gt;SOA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/services" rel="tag"&gt;services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/database" rel="tag"&gt;database&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/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/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/3775.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/12/cloud-computing-whats-stopping-service-oriented-clouds.aspx</guid>
            <pubDate>Wed, 12 Nov 2008 16:52:03 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3775.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/12/cloud-computing-whats-stopping-service-oriented-clouds.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3775.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3775.aspx</trackback:ping>
        </item>
        <item>
            <title>Virtual Server Sprawl: FUD or FACT?</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/01/virtual-server-sprawl-fud-or-fact.aspx</link>
            <description>&lt;p&gt;At &lt;a target="_blank" href="http://www.interop.com"&gt;Interop&lt;/a&gt; this week, &lt;a target="_blank" href="http://www.networkworld.com/news/2008/043008-interop-virtual-server-sprawl.html?fsrc=rss-security"&gt;security experts have begun sounding the drum&lt;/a&gt; regarding the security risks of virtualization and reminding us that &lt;a target="_blank" href="http://www.networkworld.com/newsletters/datacenter/2006/1030datacenter1.html"&gt;virtual server sprawl&lt;/a&gt; magnifies that risk because, well, there are more virtual servers to manage at risk. &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/VirtualServerSprawlFUDorFACT_221C/quote_2.png"&gt;&lt;img width="18" height="16" border="0" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/VirtualServerSprawlFUDorFACT_221C/quote_thumb.png" alt="quote" style="border-width: 0px;" /&gt;&lt;/a&gt; Virtual sprawl isn't defined by numbers; it's defined as the proliferation of virtual machines without adequate IT control, [David] Lynch said.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;That's good, because the numbers as often cited just don't add up. A &lt;a target="_blank" href="http://www.networkworld.com"&gt;NetworkWorld&lt;/a&gt; &lt;a target="_blank" href="http://www.networkworld.com/news/2007/120307-server-virtualization-growing.html"&gt;article in December 2007&lt;/a&gt; cited two different sets of numbers from &lt;a target="_blank" href="http://www.forrester.com"&gt;Forrester Research&lt;/a&gt; on the implementation of virtualization in surveyed organizations.  &lt;/p&gt;
&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/VirtualServerSprawlFUDorFACT_221C/lotsoflaptops_2.jpg"&gt;&lt;img width="240" height="222" border="0" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/VirtualServerSprawlFUDorFACT_221C/lotsoflaptops_thumb.jpg" alt="lotsoflaptops" style="border: 0px none ; margin: 0px 10px 0px 0px;" /&gt;&lt;/a&gt; First we are told that: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;IT departments already using virtualization have virtualized 24% of servers, and that number is expected to grow to 45% by 2009.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;And later in the article we are told: &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;The latest report finds that 37% of IT departments have virtualized servers already, and another 13% plan to do so by July 2008. An additional 15% think they will virtualize x86 servers by 2009.&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;It's not clear where the first data point is coming from, but it appears to come from a &lt;a target="_blank" href="http://www.forrester.com"&gt;Forrester Research&lt;/a&gt; &lt;a target="_blank" href="http://www.forrester.com/Research/Document/Excerpt/0,7211,43892,00.html"&gt;survey&lt;/a&gt; cited in the first paragraph while the latter data set appears to come from the same recent study. The Big Hairy Question is: how many virtual servers does that mean? &lt;br /&gt;
&lt;/p&gt;
&lt;p&gt;This sounds a lot like the great BPM (Business Process Management) scare of 2005 when it was predicted that business users would be creating SOA-based &lt;a target="_blank" href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=117"&gt;composite applications&lt;/a&gt; willy nilly using BPM tools because it required no development skills, just a really good mouse finger with which you could drag and drop web services to create your own customized application. &lt;/p&gt;
&lt;p&gt;Didn't happen. Or if it did, it happened in development and test and local environments and never made it to the all important production environment, where IT generally maintains strict control. Every time you hear virtual server sprawl mentioned it goes something like this: "When your &lt;em&gt;users &lt;/em&gt;figure out how easy it is..." &lt;/p&gt;
&lt;p&gt;"Users", whether IT or business, are not launching virtual servers in production in the data center. If they are, then an organization has bigger concerns on their hands than the issue of sprawl. Are they launching virtual servers on their desktop? Might be. On a test or development machine? Probably. In production? Not likely. And that's where management and capacity issues matter; that's where the bottom line is potentially impacted from a technological black plague like virtual server sprawl; that's where the biggest security and management risks associated with virtualization are going to show themselves. &lt;/p&gt;
&lt;p&gt;None of the research cited ever discusses &lt;em&gt;the number of virtual servers running&lt;/em&gt;, just the number of organizations in which virtualization has been implemented. That could mean 1 or 10 or 100 virtual servers. We just don't know because no one has real numbers to back it up; nothing but limited anecdotal evidence has been presented to indicate that there is a problem with virtual server sprawl. &lt;/p&gt;
&lt;p&gt;I see problems with virtualization. I see the potential for &lt;a target="_blank" href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/18/3625.aspx"&gt;virtualizing solutions that shouldn't be virtualized&lt;/a&gt; for myriad reasons. I see the &lt;a target="_blank" href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/24/the-day-of-the-virtual-desktop-has-come.and-gone.aspx"&gt;potential problems inherent in virtualizing everything from the desktop to the data center.&lt;/a&gt; But I don't see virtual server sprawl as the Big Hairy Monster hiding under the virtual bed. &lt;/p&gt;
&lt;p&gt;So as much as I'd like to jump on the virtual sprawl bandwagon and make scary faces in your general direction about the dangers that lie within the virtual world - because many of them are very real and you do need to be aware of them - there just doesn't seem to be any real data to back up the claim that virtual sprawl is - or will become - a problem. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img width="18" height="18" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" alt="Follow me on Twitter" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img border="0" src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" alt="" /&gt;&lt;/a&gt;&lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img width="18" height="18" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" alt="View Lori's profile on SlideShare" /&gt;&lt;/a&gt;&lt;a border="0" href="http://lmacvittie.tumblr.com"&gt;&lt;img width="18" height="18" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_tumblr.gif" title="Follow me on Tumblr" alt="" /&gt;&lt;/a&gt; &lt;a href="http://lmacvittie.posterous.com/"&gt;&lt;img border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_posterous.png" title="Posterous" alt="" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" alt="" /&gt;&lt;/a&gt; &lt;a 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=" title="Subscribe using any feed reader!"&gt;&lt;img width="125" height="18" border="0" src="http://s9.addthis.com/button1-fd.gif" alt="AddThis Feed Button" /&gt;&lt;/a&gt; &lt;a target="_blank" href="http://www.addthis.com/bookmark.php" 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;" title="Bookmark and Share"&gt;&lt;img width="125" height="18" border="0" src="http://s9.addthis.com/button1-share.gif" alt="Bookmark and Share" /&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 style="margin: 0px; padding: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:ed1ce127-93fa-4bfe-9b27-ec689259ca42" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/MacVittie"&gt;MacVittie&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/F5"&gt;F5&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/virtual%20server%20sprawl"&gt;virtual server sprawl&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/server%20sprawl"&gt;server sprawl&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/virtualization"&gt;virtualization&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/consolidation"&gt;consolidation&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/security"&gt;security&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/capacity"&gt;capacity&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/management"&gt;management&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/Interop"&gt;Interop&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/NetworkWorld"&gt;NetworkWorld&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3669.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/01/virtual-server-sprawl-fud-or-fact.aspx</guid>
            <pubDate>Wed, 01 Oct 2008 10:43:49 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3669.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/01/virtual-server-sprawl-fud-or-fact.aspx#feedback</comments>
            <slash:comments>6</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3669.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3669.aspx</trackback:ping>
        </item>
        <item>
            <title>Load Balancing: Welcome to the 21st Century</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/06/11/3352.aspx</link>
            <description>&lt;p&gt;&lt;a href="http://kevinsaitta.blogspot.com/" target="_blank"&gt;Kevin Saitta&lt;/a&gt;, a solution consultant, has a &lt;a href="http://kevinsaitta.blogspot.com/2008/06/biztalk-2006-r2-scaled-down-solution.html" target="_blank"&gt;nice blog post on architecting a Microsoft BizTalk 2006 R2&lt;/a&gt; solution. Unfortunately, amidst the goodness, is a statement regarding load balancers that needs to be corrected. Kevin is not alone in his beliefs regarding load balancers, unfortunately, I've seen a lot of posts lately that seem to indicate that folks out there still have a &lt;a href="http://gigaom.com/2008/06/06/why-amazon-went-down-and-what-it-means-to-you/#comment-882608" target="_blank"&gt;circa 1999 knowledge set regarding the capabilities of load balancers&lt;/a&gt;. &lt;/p&gt; &lt;fieldset style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px"&gt;&lt;legend&gt;Kevin writes&lt;/legend&gt;    &lt;p&gt;&lt;b&gt;Load Balancer&lt;/b&gt;       &lt;br /&gt;A load balancer balances the load between servers, but more importantly, if one server goes down, the load balancer sends all requests to the server(s) left running. An example of hardware load balancing is &lt;a href="http://www.f5.com/products/big-ip/"&gt;BIG-IP from F5 Networks&lt;/a&gt;. An example of software load balancing is the &lt;a href="http://support.microsoft.com/kb/303751"&gt;Network Load Balancing Service&lt;/a&gt; included in Windows.&lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;&lt;i&gt;&lt;b&gt;NOTE:&lt;/b&gt; Load balancers only understand server level availability and have no understanding of the application that run on the servers. This means that if the application is unavailable the load balancer will still deliver request to the server, hence the need for a monitoring solution as SCOM.&lt;/i&gt;&lt;/p&gt; &lt;/fieldset&gt;  &lt;p&gt;It is the "NOTE" that needs to be addressed, especially given the reference to &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;BIG-IP&lt;/a&gt;, which is absolutely capable of understanding applications that run on the servers and, in fact, does understand the applications and their protocols and is capable of optimizing, accelerating, and securing those applications. &lt;/p&gt;  &lt;p&gt;&lt;img style="margin: 5px 10px 0px 0px" height="156" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_Not-again-picard.jpg" width="240" align="left" /&gt;BIG-IP is capable of recognizing the difference between the server being available, and the application being available &lt;em&gt;and &lt;/em&gt;has the ability to understand when the application is serving the right content or not. BIG-IP can even dig into the payload, the application messages, and apply policies based on the application-specific nuggets of information, rather than just HTTP headers or even application(HTTP)/transport layer (TCP) protocols. Add in &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=75" target="_blank"&gt;iRules&lt;/a&gt; and BIG-IP becomes an &lt;em&gt;&lt;strong&gt;application delivery platform&lt;/strong&gt;&lt;/em&gt;: extensible, dynamic, and extremely intelligent. &lt;/p&gt;  &lt;p&gt;The problem is that load balancers &lt;em&gt;aren't&lt;/em&gt; &lt;em&gt;&lt;strong&gt;just&lt;/strong&gt; load balancers&lt;/em&gt; any more. They have &lt;a href="http://www.f5.com/pdf/white-papers/evolution-adc-wp.pdf" target="_blank"&gt;evolved into application delivery controllers&lt;/a&gt;, and are capable of much more intelligence and integration with the applications they are tasked to deliver and are just as capable of intelligent monitoring of applications to ensure they are actually available. &lt;/p&gt;  &lt;p&gt;Kevin's assertion that a load balancer will deliver requests to the server even if it's down is wrong, at least in the case of BIG-IP. While Windows NLB is certainly incapable of this particular functionality (it's called &lt;strong&gt;&lt;em&gt;network &lt;/em&gt;&lt;/strong&gt;load balancing for a reason), &lt;a href="http://www.f5.com/glossary/application-delivery-controller.html" target="_blank"&gt;application delivery controllers&lt;/a&gt; like &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;BIG-IP&lt;/a&gt; and its competitors &lt;em&gt;are &lt;/em&gt;capable of intelligent monitoring, dynamic routing, and recognizing when an application is no longer available or responding correctly. &lt;/p&gt;  &lt;p&gt;As &lt;a href="http://devcentral.f5.com/weblogs/deb/" target="_blank"&gt;Deb&lt;/a&gt; pointed out in &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/06/10/3349.aspx" target="_blank"&gt;response to a previous post&lt;/a&gt;, there are plenty of examples and samples for BIG-IP which illustrate the powerful, flexible, application aware monitoring capabilities of BIG-IP. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://devcentral.f5.com/Wiki/default.aspx/AdvDesignConfig.CodeShare" target="_blank"&gt;Sample Monitors in the Adv Design &amp;amp; Config codeshare&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=232" target="_blank"&gt;Tech tip: Passive Application Monitoring with LTM&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/wiki/default.aspx/AdvDesignConfig/HealthMonitor.html" target="_blank"&gt;Health Monitor page in the Adv Design &amp;amp; Config wiki&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=169" target="_blank"&gt;HTTP Monitoring with POST&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/Default.aspx?tabid=53&amp;amp;view=topics&amp;amp;forumid=32" target="_blank"&gt;Monitoring &amp;amp; Management Forum&lt;/a&gt; on &lt;a href="http://devcentral.f5.com" target="_blank"&gt;DevCentral&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.f5.com/pdf/white-papers/passive-monitoring-wp.pdf" target="_blank"&gt;Passive Monitoring - Maintaining Performance and Health (white paper)&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;To be fair to Kevin, who wrote a really informative and interesting post, this is not the first blog or forum post I've seen in the last two weeks that improperly tags modern load balancers as "dumb" network devices incapable of understanding application layer protocols and messages. There's a perception - and a wrong one at that- that load balancers are still just simple layer 4 devices that add very little value to the network or application architecture. &lt;/p&gt;  &lt;p&gt;As it's part of my job to educate folks on topics like this, I guess I'm not doing very well, am I? I'll get to work on that, pronto, after my &lt;a href="http://devcentral.f5.com/weblogs/dmacvittie/archive/2008/06/09/3348.aspx" target="_blank"&gt;upcoming mini-vacation&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;For starters I'd like to say to everyone out there interested in load balancing: welcome to the 21st century, where application delivery controllers have replaced load balancers, and where intelligent, application aware devices are capable of much, much more than their predecessors. &lt;/p&gt;  &lt;p&gt;Stay tuned, there's much, much more to come. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Imbibing: Coffee&lt;/em&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:acbac6d7-78e0-4f24-9d64-f592a368fa81" 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/load%20balancing" rel="tag"&gt;load balancing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application%20aware" rel="tag"&gt;application aware&lt;/a&gt;,&lt;a href="http://technorati.com/tags/monitoring" rel="tag"&gt;monitoring&lt;/a&gt;,&lt;a href="http://technorati.com/tags/iRules" rel="tag"&gt;iRules&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/3352.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/06/11/3352.aspx</guid>
            <pubDate>Wed, 11 Jun 2008 12:12:19 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3352.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/06/11/3352.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3352.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3352.aspx</trackback:ping>
        </item>
        <item>
            <title>Top 3 Lessons We Can Learn from Amazon's Outage</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/06/10/3349.aspx</link>
            <description>&lt;p&gt;Everyone's now familiar with last week's &lt;a href="http://gigaom.com/2008/06/06/amazon-down-anyone-know-whats-up/" target="_blank"&gt;Amazon outage&lt;/a&gt;, it's been all over the web. &lt;a href="http://www.amazon.com" target="_blank"&gt;Amazon&lt;/a&gt; is still not detailing what went wrong, but lots of folks are speculating on the reasons for the failure. &lt;a href="http://gigaom.com/author/acroll/" target="_blank"&gt;Alistair Croll&lt;/a&gt; over at &lt;a href="http://www.gigaom.com" target="_blank"&gt;gigaom&lt;/a&gt; had a &lt;a href="http://gigaom.com/2008/06/06/why-amazon-went-down-and-what-it-means-to-you/" target="_blank"&gt;nice recap of the recent Amazon outage&lt;/a&gt;, including a list of facts and what we can deduce them, and the rumor mill is, of course, churning away with fantastic stories of what went wrong. &lt;/p&gt;  &lt;p&gt;Rather than add to the speculation on the reasons behind Amazon's outage - because we may never know the truth - it's a good time to look at the outage from the perspective of what lessons we can learn about application delivery and building a resilient web architecture. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;3. Implement GSLB (&lt;/strong&gt;&lt;a href="http://www.f5.com/news-press-events/news/archive/20020809.html" target="_blank"&gt;&lt;strong&gt;Global Server Load Balancing&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;)&lt;/strong&gt; &lt;/p&gt;    &lt;p&gt;In the fact of disaster - natural or otherwise - a secondary data center physically separated from the main data center can be used to enable business continuity as well as disaster recovery. Using a &lt;a href="http://www.f5.com/products/big-ip/product-modules/global-traffic-manager.html" target="_blank"&gt;global server load balancer&lt;/a&gt;, if the primary data center is down - regardless of the reasons - requests can be automatically directed to a second data center until the primary returns to service. This results in less disruption of service to customers and remote employees alike. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;2. Configure "Apology" pages&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;Apology pages are simply content displayed when no servers can be reached. Apology pages are similar to "maintenance" pages often displayed when a site is unavailable due to maintenance, upgrades, or problems. The ability to display apology or maintenance pages is available in all major load balancers (&lt;a href="http://www.f5.com/glossary/application-delivery-controller.html" target="_blank"&gt;application delivery controllers&lt;/a&gt;) today and are fully configurable. The pages need not even be "real" pages, as most &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;application delivery controllers&lt;/a&gt; are capable of &lt;a href="http://devcentral.f5.com/wiki/default.aspx/iRules/http__respond" target="_blank"&gt;returning content directly&lt;/a&gt;. &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;1. Use intelligent health checks&lt;/strong&gt; (a.k.a. Advanced health monitoring) &lt;/p&gt;    &lt;p&gt;All load balancers are capable of "health checks" on servers. This is basic feature that uses &lt;a href="http://en.wikipedia.org/wiki/Internet_Control_Message_Protocol" target="_blank"&gt;ICMP&lt;/a&gt; or a &lt;a href="http://en.wikipedia.org/wiki/Transmission_Control_Protocol" target="_blank"&gt;TCP&lt;/a&gt; connection to verify that a server in the pool (farm) is available. The problem with basic health checks is that they only verify network connectivity (ICMP) or transport layer connectivity (TCP) or, if you're lucky, application layer connectivity (&lt;a href="http://www.w3.org/Protocols/" target="_blank"&gt;HTTP&lt;/a&gt;). &lt;/p&gt;    &lt;p&gt;What's really necessary is to be able to not only verify that the server is reachable, available, and responding but that it is also responding with the appropriate content. Just because a web servers returns a 200 OK status does not mean the content is correct. It's quite possible that one or more dependent services responded incorrectly, leaving the page with "most of its content" but potentially with errors embedded. This is often the case with data-driven web sites, where SQL errors are not properly caught and end up returning errors &lt;em&gt;inside &lt;/em&gt;otherwise appropriate content. &lt;/p&gt;    &lt;p&gt;Advanced health monitoring in &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;application delivery controllers&lt;/a&gt; provides organizations with the means by which both servers and applications can be verified as being "available". By not only verifying IP and TCP availability, organizations can ensure that should an "HTTP 1.1" message be returned by a server that the application delivery controller can (1) detect the problem and (2) remove the affected server from the pool of available servers. If enough of the servers are responding incorrectly, the application delivery controller would discover that no servers are available and then respond with an "apology page". &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;"&lt;a href="http://www.f5.com/glossary/load-balancing.html" target="_blank"&gt;Load balancing&lt;/a&gt;" has come a long way, baby, since the days of simple round-robin DNS. It has &lt;a href="http://www.f5.com/pdf/white-papers/evolution-adc-wp.pdf" target="_blank"&gt;evolved into application delivery&lt;/a&gt;, and the &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;products providing application delivery services&lt;/a&gt; are no longer dumb endpoints on the network, they're sophisticated, intelligent devices capable of not only providing basic load balancing services, but augmenting the entire application delivery process by ensuring that applications are always available through intelligence and advanced feature sets. &lt;/p&gt;  &lt;p&gt;Application delivery controllers aren't your daddy's load balancers, so take advantage of capabilities like advanced health monitoring and dynamic server selection to build a resilient, failsafe architecture that responds to your customers no matter what might be going on behind the data center doors. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Imbibing: Coffee&lt;/em&gt;&lt;/p&gt; &lt;font size="1"&gt;   &lt;p&gt;Resources on &lt;a href="http://www.f5.com/products/big-ip" target="_blank"&gt;BIG-IP&lt;/a&gt; and its advanced health checking capabilities: &lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=169" target="_blank"&gt;HTTP Monitoring with POST&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://devcentral.f5.com/Default.aspx?tabid=53&amp;amp;view=topics&amp;amp;forumid=32" target="_blank"&gt;Monitoring &amp;amp; Management Forum&lt;/a&gt; on &lt;a href="http://devcentral.f5.com" target="_blank"&gt;DevCentral&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a href="http://www.f5.com/pdf/white-papers/passive-monitoring-wp.pdf" target="_blank"&gt;Passive Monitoring - Maintaining Performance and Health (white paper)&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/font&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:cdab00cc-1625-42b1-a5bf-62d368d44e7d" 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%20delivery" rel="tag"&gt;application delivery&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/health%20checking" rel="tag"&gt;health checking&lt;/a&gt;,&lt;a href="http://technorati.com/tags/apology%20page" rel="tag"&gt;apology page&lt;/a&gt;,&lt;a href="http://technorati.com/tags/availability" rel="tag"&gt;availability&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3349.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/06/10/3349.aspx</guid>
            <pubDate>Tue, 10 Jun 2008 12:50:11 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3349.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/06/10/3349.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3349.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3349.aspx</trackback:ping>
        </item>
        <item>
            <title>iControl and Web 2.0</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/13/3255.aspx</link>
            <description>&lt;p&gt;There's a lot of things that &lt;a href="http://www.f5.com/products-big-ip" target="_blank"&gt;BIG-IP&lt;/a&gt; can do to improve the &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/11/19/2993.aspx" target="_blank"&gt;reliability&lt;/a&gt;, &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/11/12/2985.aspx" target="_blank"&gt;scalability&lt;/a&gt;, and &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/02/21/3086.aspx" target="_blank"&gt;performance&lt;/a&gt; of Web 2.0 applications. But there are always two sides to every story, and so it is with &lt;a href="http://www.f5.com/products-big-ip" target="_blank"&gt;BIG-IP&lt;/a&gt; and Web 2.0, or specifically, &lt;a href="http://www.f5.com/glossary/ajax.html" target="_blank"&gt;AJAX&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;This latest article, &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=218" target="_blank"&gt;Getting Started with iControl and AJAX&lt;/a&gt;, offers advice and code to get you started building a custom AJAX-based dashboard for BIG-IP. &lt;/p&gt;  &lt;p&gt;&lt;em&gt;Imbibing: Coffee&lt;/em&gt;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0f306fa3-321d-40ff-bf23-1993dfea1c92" 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/development" rel="tag"&gt;development&lt;/a&gt;,&lt;a href="http://technorati.com/tags/iControl" rel="tag"&gt;iControl&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/F5" rel="tag"&gt;F5&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/Web%202.0" rel="tag"&gt;Web 2.0&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3255.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/13/3255.aspx</guid>
            <pubDate>Tue, 13 May 2008 12:05:01 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3255.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/13/3255.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3255.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3255.aspx</trackback:ping>
        </item>
        <item>
            <title>A Virtual Challenge</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/06/3229.aspx</link>
            <description>&lt;p&gt;According to a recent &lt;a href="http://www.cio.com"&gt;CIO&lt;/a&gt; &lt;a href="http://www.cio.com/article/168401/Virtualization_in_the_Enterprise_Survey_Your_Virtualized_State_in_/2"&gt;article&lt;/a&gt; and survey data, the top challenge to virtualization success today is balancing server workloads and maintaining application service levels.  That makes sense; if you're going to create 3 or 4 or 99 virtual servers you need to be sure that the workload isn't going to suck dry the resources available on any particular machine. And, too, you'll probably need some solution to load balance those applications across virtual instances. &lt;/p&gt;
&lt;p&gt;That part, at least, seems easy: &lt;em&gt;get thee a load balancer&lt;/em&gt;, pronto. Turns out that the concern regarding balancing server workloads is more complex than most likely realize. A load balancer will, in fact, distribute server workloads across virtual instances. It likely won't, however, do so in an intelligent way and it almost certainly won't do much to ensure that service levels are maintained. &lt;/p&gt;
&lt;h3&gt;&lt;font color="#990000"&gt;Top Challenges to Virtualization Success&lt;/font&gt;&lt;/h3&gt;
&lt;table cellspacing="0" cellpadding="5"&gt;
    &lt;tbody&gt;
        &lt;tr style="background-color: rgb(204, 204, 255);"&gt;
            &lt;td class="col_1"&gt;&lt;strong&gt;Balancing server workloads and maintaining application service levels&lt;/strong&gt;&lt;/td&gt;
            &lt;td class="col_2"&gt;&lt;strong&gt;64%&lt;/strong&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color: rgb(255, 204, 204);"&gt;
            &lt;td class="col_1"&gt;IT organization politics&lt;/td&gt;
            &lt;td class="col_2"&gt;37%&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color: rgb(204, 204, 255);"&gt;
            &lt;td class="col_1"&gt;Measuring ROI&lt;/td&gt;
            &lt;td class="col_2"&gt;30%&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color: rgb(255, 204, 204);"&gt;
            &lt;td class="col_1"&gt;Governance&lt;/td&gt;
            &lt;td class="col_2"&gt;24%&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color: rgb(204, 204, 255);"&gt;
            &lt;td class="col_1"&gt;Pushback from business leaders&lt;/td&gt;
            &lt;td class="col_2"&gt;20%&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color: rgb(255, 204, 204);"&gt;
            &lt;td class="col_1"&gt;Revamping chargeback systems for the business&lt;/td&gt;
            &lt;td class="col_2"&gt;20%&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr style="background-color: rgb(204, 204, 255);"&gt;
            &lt;td&gt;None of the above/not applicable&lt;/td&gt;
            &lt;td class="col_2"&gt;11%&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;p style="font-size: 10px;"&gt;(Respondents chose up to three)&lt;/p&gt;
&lt;p style="font-size: 10px;"&gt;&lt;a href="http://www.cio.com/article/168401/Virtualization_in_the_Enterprise_Survey_Your_Virtualized_State_in_/2"&gt;SOURCE: CIO research&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Application delivery will, however, address &lt;em&gt;both &lt;/em&gt;those challenges in an easy, consolidated, green, efficient (have I hit all the buzzwords yet?) and flexible way. Seriously, an &lt;a href="http://www.google.com/url?sa=t&amp;amp;ct=res&amp;amp;cd=1&amp;amp;url=http%3A%2F%2Fwww.f5.com%2Fglossary%2Fapplication-delivery-fabric.html&amp;amp;ei=TEMfSOHpMJjOgAOP5dmhDQ&amp;amp;usg=AFQjCNHL1-e26a53BP7HK3wwnfiSDTb-xw&amp;amp;sig2=5xPAfO-2YZgFFUO47xx9EA"&gt;application delivery fabric&lt;/a&gt; is the best way to address this type of challenge and it does provide all benefits in one way or another.  &lt;/p&gt;
&lt;p&gt;You see, an intelligent &lt;a href="http://www.f5.com/products/big-ip"&gt;application delivery controller&lt;/a&gt; understands the load on the server and can decide - in real-time - whether any given request should go to one server or another based on that understanding. So if &lt;em&gt;Virtual Server A &lt;/em&gt;on &lt;em&gt;Real Server 1 &lt;/em&gt;super busy at the moment, an application delivery controller can send the request to &lt;em&gt;Virtual Server B &lt;/em&gt;&lt;em&gt;, &lt;/em&gt;instead. &lt;em&gt;Virtual Server B &lt;/em&gt;might be on &lt;em&gt;Real Server 1, &lt;/em&gt;or it might be on &lt;em&gt;Real Server 2&lt;/em&gt;. It really doesn't matter, unless you want to start factoring in both the current application performance within a virtual server AND the resources available on the real server. Regardless of what factors you want to consider, an intelligent application delivery controller can take them into consideration and &lt;strong&gt;balance server workload&lt;/strong&gt; across instances in a way that &lt;strong&gt;maintains application service levels&lt;/strong&gt;. &lt;/p&gt;
&lt;p&gt;Want to take it further? Do you want to automatically provision those servers to get the most out of your resources? Consider an application delivery network that can &lt;a href="http://devcentral.f5.com/wiki/default.aspx/iControl/VMWareAutomation.html"&gt;integrate with popular virtualization technology&lt;/a&gt; like &lt;a href="http://www.vmware.com"&gt;VMWare&lt;/a&gt;. Such integration takes solves the problem of balancing server workload by dynamically increasing or decreasing the available server instances in real-time, according to current network, server, and user conditions. &lt;/p&gt;
&lt;p&gt;So if you're struggling with balancing the load across servers - virtual or not - check out an application delivery network so you can move on to the next challenge: IT organizational politics. &lt;/p&gt;
&lt;p&gt;Sorry, I wouldn't touch &lt;em&gt;that &lt;/em&gt;one with a 10 foot patch cable. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Imbibing: Coffee&lt;/em&gt;&lt;/p&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline;" contenteditable="false" id="0767317B-992E-4b12-91E0-4F059A8CECA8:70113efc-eb2e-4394-8937-00c1ee61e230" class="wlWriterSmartContent"&gt;Technorati tags: &lt;a rel="tag" href="http://technorati.com/tags/MacVittie"&gt;MacVittie&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/F5"&gt;F5&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/application%20delivery"&gt;application delivery&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/virtualization"&gt;virtualization&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/load%20balancing"&gt;load balancing&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/service%20level%20agreements"&gt;service level agreements&lt;/a&gt;&lt;/div&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/3229.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/06/3229.aspx</guid>
            <pubDate>Tue, 06 May 2008 13:38:26 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/3229.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2008/05/06/3229.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/3229.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/3229.aspx</trackback:ping>
        </item>
        <item>
            <title>KPiRules</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2007/07/13/2881.aspx</link>
            <description>&lt;p&gt;KPI (Key Performance Indicators) are quantifiable metrics that can be measured against organizational goals. KPIs vary from business to business, based on what the company does. If it's a sales oriented company, a KPI might be something like "increase sales by X% year over year"; if it's a retail company it might be both "increase sales" and "increase customer retention". The key is that a KPI must be measurable in some way. That's why most KPIs are directly related to revenue, customer retention/churn, and other quantifiable aspects of doing business.  &lt;/p&gt;&lt;p&gt;Aggregating this measurable data is generally the responsibility of BI (Business Intelligence) suites. These products aggregate and assemble massive amounts of data, usually on a weekly or monthly basis, into a form that analysts can use to determine whether the company is on track to meeting its goals. These forms are often OLAP cubes and require lengthy processing to assemble, so they're usually only created on a weekly or nightly basis.  &lt;/p&gt;&lt;p&gt;But what if you wanted something a bit more "real time"? Maybe you wanted to know on an hourly basis how sales was doing so you weren't surprised when you finally got the weekly or daily update.  &lt;/p&gt;&lt;p&gt;If you've got a &lt;a href="http://www.f5.com/products/bigip/"&gt;BIG-IP&lt;/a&gt; (v9.2+) and it's part of the infrastructure managing transactions, you're in luck. Using &lt;a href="http://devcentral.f5.com/wiki/Default.aspx/iRules.HomePage"&gt;iRules&lt;/a&gt; and custom statistics profiles you can collect that data in real-time so you can satisfy your curiosity any time of the day or week.  &lt;/p&gt;&lt;p&gt;&lt;strong&gt;What You Need&lt;/strong&gt;  &lt;/p&gt;&lt;p&gt;First you'll need a custom statistics profile so you have a place to store the data as it's collected. Joe's got a &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=70"&gt;great article&lt;/a&gt; on how to create a custom statistics profile and walks through the steps required to assign it to the appropriate virtual server.  &lt;/p&gt;&lt;p&gt;As an example, I created a custom statistics profile with two custom fields: &lt;strong&gt;total_value&lt;/strong&gt; and &lt;strong&gt;orders&lt;/strong&gt;. After saving it, I then assigned it to a virtual server. Use the &lt;strong&gt;Advanced &lt;/strong&gt;settings to find the "Statistics Profile" drop-down associated with your virtual server, and choose your newly created custom profile.  &lt;/p&gt;&lt;p&gt;The last step is to create an iRule that extracts the data you're interested in and stores it in your custom statistics profile. You might also add a few additional processing-oriented rules within the iRule to handle resetting the statistics as well as displaying the statistics.  &lt;/p&gt;&lt;p&gt;Basically, we're creating a KPIService with a REST style interface. By default, the rule will extract the appropriate data and update the statistics profile, but by directly invoking a specific URI, e.g. /statistics/display, /statistics/reset, you can create a service that provides some amount of control over your custom profile.  &lt;/p&gt;&lt;p&gt;&lt;strong&gt;The iRule &lt;/strong&gt; &lt;/p&gt;&lt;p&gt;The following iRule is not optimized and it's rather simplistic in its nature, but it does present the basic concept of extracting specific data from transactions and storing them in a custom profile for retrieval whenever you desire. If you were really ambitious, you could output the statistics in XML or CSV and import them right into something like Microsoft Excel so you could view the data over time.  &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;pre&gt;when HTTP_REQUEST {&lt;br /&gt;set PROFILE_NAME "MyKPIStats" 
set t [STATS::get $PROFILE_NAME "total_value"]&lt;br /&gt;set o [STATS::get $PROFILE_NAME "orders"] 
set uri [HTTP::uri]&lt;/pre&gt;&lt;pre&gt;set FIELD_NAME "totalvalue" &lt;/pre&gt;&lt;pre&gt;if {$uri starts_with "/statistics/display"} {
   HTTP::respond 200 content "&amp;lt;format your data how you like, with fields placed where appropriate&amp;gt;"&lt;/pre&gt;&lt;pre&gt;} 
else if {$uri starts_with "/statistics/reset"} {
    STATS::set $PROFILE_NAME "total_value" 0&lt;br /&gt;    STATS::set $PROFILE_NAME "orders" 0&lt;/pre&gt;&lt;pre&gt;    HTTP::respond 200 content "Statistics have been reset"&lt;/pre&gt;&lt;pre&gt;} else {&lt;/pre&gt;&lt;pre&gt;   set postvalues [split [HTTP::payload] "&amp;amp;"]&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;   foreach p $postvalues {&lt;br /&gt;      set pval [split $p "="] &lt;/pre&gt;&lt;pre&gt;      if {[lindex $pval 0] eq $FIELD_NAME} {      &lt;br /&gt;         set newtotal [expr [lindex $pval 1] + $t]&lt;/pre&gt;&lt;pre&gt;      }&lt;br /&gt;   }&lt;br /&gt;   STATS::set $PROFILE_NAME "total_value" $newtotal&lt;/pre&gt;&lt;pre&gt;   // This piece of the profile counts the number of orders we've received &lt;br /&gt;   set neworders [expr $o + 1]&lt;br /&gt;   STATS::set $PROFILE_NAME "orders" $neworders&lt;/pre&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;}&lt;/p&gt;
&lt;p&gt;KPIs aren't the only thing you could capture with custom profiles - you could measure a lot of customer-oriented actions as well, such as the number of users who loaded the "checkout" page and how many loaded the "final_checkout" page, as a real time view of abandonment rates. While &lt;a href="http://devcentral.f5.com/wiki/Default.aspx/iRules.HomePage"&gt;iRules&lt;/a&gt; aren't meant to - and won't - take the place of business intelligence suites, they can provide some interesting real-time visibility into your business without requiring modification to existing applications or the purchase of additional software. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Imbibing: Coffee&lt;/em&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:b82b3378-ea54-4125-a908-758bc13473e7" contenteditable="false" 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/iRule" rel="tag"&gt;iRule&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/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;, &lt;a href="http://technorati.com/tags/business%20rules" rel="tag"&gt;business rules&lt;/a&gt;, &lt;a href="http://technorati.com/tags/SOA" rel="tag"&gt;SOA&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/2881.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2007/07/13/2881.aspx</guid>
            <pubDate>Fri, 13 Jul 2007 16:36:08 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/2881.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2007/07/13/2881.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/2881.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/2881.aspx</trackback:ping>
        </item>
        <item>
            <title>Syndicate your BIG-IP</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2007/03/22/2796.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;Enhancing visibility through iRules and RSS&lt;/em&gt;&lt;/p&gt; &lt;p&gt;The business folks in your organization like to have visibility into every aspect of the business, including the disparate pieces of infrastructure that deliver the applications crucial to the company's bottom line. There are a number of ways in which you can provide visiblity into the delivery of those applications via &lt;a href="http://www.f5.com/products/bigip/"&gt;BIG-IP&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;Yes, you could export logs and create charts in Excel, but that's not very real-time. You could also use the administrative domain features in v9.4 to give business owners view-only access to your BIG-IP so they can view the statistics themselves. &lt;/p&gt; &lt;p&gt;Another possibility (and much cooler in my opinion) is to provide an RSS feed via an iRule. Yes, I'm saying you can syndicate the performance of your BIG-IP. This provides an easy mechanism through which business and management stakeholders can monitor the performance and delivery statistics of their mission critical applications without you generating reports or requiring the stakeholders to bother IT for their credentials yet again. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;How to Set up an RSS Feed for your BIG-IP &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;First, find an appropriate URI that is unique that can return the RSS feed on your virtual server. For example, I chose "/rss". Then collect the appropriate statistics from the &lt;strong&gt;stats &lt;/strong&gt;profile and craft your RSS response. If you aren't familiar with RSS there are number of &lt;a href="http://www.rss-tools.com/rss-example.htm"&gt;sites&lt;/a&gt; that provide good examples for the most popular RSS format specifications (0.9, 0.91, 2.0). I like 2.0, but that's a matter of (sometimes hotly debated) opinion. &lt;/p&gt; &lt;p&gt;Here's a simple example of an RSS 2.0 feed: &lt;/p&gt;&lt;pre&gt;&amp;lt;?xml version="1.0"?&amp;gt; &lt;/pre&gt;&lt;pre&gt;  &amp;lt;rss version="2.0"&amp;gt; &lt;/pre&gt;&lt;pre&gt;      &amp;lt;channel&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;title&amp;gt;BIG-IP Statistics&amp;lt;/title&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;link&amp;gt;http://myvirtualip.com/&amp;lt;/link&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;description&amp;gt;Statistics for My Virtual Server&amp;lt;/description&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;item&amp;gt; &lt;/pre&gt;&lt;pre&gt;            &amp;lt;title&amp;gt;Current Connections&amp;lt;/title&amp;gt; &lt;/pre&gt;&lt;pre&gt;            &amp;lt;description&amp;gt;12345&amp;lt;/description&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;/item&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;item&amp;gt; &lt;/pre&gt;&lt;pre&gt;            &amp;lt;title&amp;gt;Total Requests&amp;lt;/title&amp;gt; &lt;/pre&gt;&lt;pre&gt;            &amp;lt;description&amp;gt;456781919&amp;lt;/description&amp;gt; &lt;/pre&gt;&lt;pre&gt;         &amp;lt;/item&amp;gt; &lt;/pre&gt;&lt;pre&gt;      &amp;lt;/channel&amp;gt; &lt;/pre&gt;&lt;pre&gt;   &amp;lt;/rss&amp;gt;&lt;/pre&gt;
&lt;p&gt;You'll of course want to modify the titles, and if you really get crazy RSS 2.0 includes the ability to embed images as well. You can use iRules to gather virtual server specific information such as its name, active members, etc... as well, so you can really customize the heck out of the feed. &lt;/p&gt;
&lt;p&gt;You can put whatever statistics you think are relevant from the statistics profile, and just because we like flexibility you can even create custom statistics profiles and report on more application specific statistics. &lt;a href="http://devcentral.f5.com/weblogs/Joe/"&gt;Joe&lt;/a&gt; wrote a great &lt;a href="http://devcentral.f5.com/Default.aspx?tabid=63&amp;amp;articleType=ArticleView&amp;amp;articleId=66"&gt;tech tip on retreiving statistics from your BIG-IP using iRules&lt;/a&gt; that is a great place to start checking out the possibilities. His examples include the ability to reset the statistics, and outputs in HTML, but the concept is the same. &lt;/p&gt;
&lt;p&gt;This iRule itself is pretty simple, Joe's includes the ability to process several reporting-specific URIs so you could modify his example to support multiple syndication formats based on the URI.  &lt;/p&gt;&lt;pre&gt;when HTTP_REQUEST {&lt;/pre&gt;&lt;pre&gt;   set uri [HTTP::uri]&lt;/pre&gt;&lt;pre&gt;   if { $uri starts_with "/rss"} {&lt;/pre&gt;&lt;pre&gt;       # get the statistics you want to report &lt;/pre&gt;&lt;pre&gt;       HTTP::respond 200 " ** output the RSS format of choice with the statistics ** "&lt;/pre&gt;&lt;pre&gt;   }&lt;/pre&gt;&lt;pre&gt;}&lt;/pre&gt;
&lt;p&gt;Go on, syndicate your BIG-IP. Your enterprise stakeholders will thank you for it. &lt;/p&gt;
&lt;p&gt;&lt;em&gt;Imbibing: Mountain Dew&lt;/em&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:cd751ec7-d123-4729-a9d6-96346f1f48fe" contenteditable="false" 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/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%20delivery" rel="tag"&gt;application delivery&lt;/a&gt;, &lt;a href="http://technorati.com/tags/XML" rel="tag"&gt;XML&lt;/a&gt;, &lt;a href="http://technorati.com/tags/Web%202.0" rel="tag"&gt;Web 2.0&lt;/a&gt;, &lt;a href="http://technorati.com/tags/iRules" rel="tag"&gt;iRules&lt;/a&gt;&lt;/div&gt;&lt;pre&gt; &lt;/pre&gt;&lt;pre&gt; &lt;/pre&gt;&lt;div class='blogtags'&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/2796.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2007/03/22/2796.aspx</guid>
            <pubDate>Thu, 22 Mar 2007 22:04:41 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/2796.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2007/03/22/2796.aspx#feedback</comments>
            <slash:comments>3</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/2796.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/2796.aspx</trackback:ping>
        </item>
    </channel>
</rss>