<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>SOA Delivery</title>
        <link>http://devcentral.f5.com/weblogs/macvittie/category/57.aspx</link>
        <description>The delivery of SOA applications and services is just like traditional application delivery - only "more differenter."</description>
        <language>en-US</language>
        <copyright>Lori MacVittie</copyright>
        <generator>Subtext Version 2.1.1.1</generator>
        <item>
            <title>The API is the Center of the Application (Integration) Universe</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2012/01/23/the-api-is-the-center-of-the-application-integration-universe.aspx</link>
            <description>&lt;p&gt;#mobile #fasterapp #ccevent &lt;em&gt;Today, at least. Tomorrow, who knows? &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-API-is-the-Center-of-the-Application_3C5B/api%20is%20the%20center%20of%20the%20universe_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="api is the center of the universe" border="0" alt="api is the center of the universe" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-API-is-the-Center-of-the-Application_3C5B/api%20is%20the%20center%20of%20the%20universe_thumb.png" width="240" height="163" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Some have tried to distinguish &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/12/20/the-magic-of-mobile-cloud.aspx"&gt;between “mobile cloud” and “cloud”&lt;/a&gt; by claiming the former is the use of the web browser on a mobile device to access services while the latter uses device-native applications. Like all things cloud, the marketing fluff is purposefully obfuscating and sweeping under the rug the technology required to make things work for consumers, whether those consumers be your kids or IT professionals. Infrastructure is not eliminated when organizations take to the cloud nor do the constraints of web-based protocols and methodologies become irrelevant when Bob uses a service to store photos of his kid’s piano recital on Flickr. &lt;/p&gt;  &lt;p&gt;The applications and web browsers on a mobile device are using the same technology, the same protocols, suffering under the same constraints as the rest of us in wireline land. If developers are as smart as they are lazy (and I say that as a compliment because it is the laziness of developers that more often than not leads to innovation) they have already moved to an API-centric model in which web site and device native-app interfaces both leverage the same APIs. &lt;/p&gt;  &lt;p&gt;This isn’t just a social integration phenomenon – it isn’t just about Twitter and Facebook and Google. API usage and demand is growing, and it is not expected to stop any time soon. Given the option, developers asked about desire to connect to services (assuming service = API) the overwhelming response was developers would like to connect to “everything, if it were easy.”  (&lt;a href="https://www.yourtrove.com/blog/2011/08/11/api-integration-pain-survey-results/"&gt;API Integration Pain Survey Results&lt;/a&gt;)   &lt;/p&gt;  &lt;p&gt;The API is rapidly becoming (if it isn’t already) the center of the application (integration) universe. This unfortunately has the potential to cause confusion and chaos in the data center. When a single API is consumed by multiple clients – mobile, remote, applications, partners, etc.. – solutions unique to each quickly seem to make their way into the code to deal with “exceptions” and “peculiarities” inherent to the client platform. &lt;/p&gt;  &lt;p&gt;That’s inefficient and, when one considers the growing number of platforms and form-factors associated with mobile communications alone, it is not scalable from a people and process perspective. &lt;/p&gt;  &lt;p&gt;But reality is that these exceptions and peculiarities – often times caused by a lack of feature parity across form-factors and platforms – must be addressed somewhere, and that somewhere is unfortunately almost unilaterally determined to be the application. Do we need to treat mobile devices differently? In terms of performance and delivery concerns, yes. But that’s where we leverage &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/11/16/at-the-intersection-of-cloud-and-controlhellip.aspx"&gt;the application delivery tier&lt;/a&gt; to differentiate by device to ensure delivery. That’s the beauty of an abstracted, service-enabled data center – there’s an intelligent and agile layer of application delivery services that mediates between clients (regardless of their form factor) and services to ensure that delivery needs (security, performance, and availability) are met in part by addressing the unique characteristics and reality of access via mobile devices. &lt;/p&gt;  &lt;h4&gt;&lt;font color="#d16349"&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-API-is-the-Center-of-the-Application_3C5B/api%20delivery_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 5px 10px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="api delivery" border="0" alt="api delivery" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-API-is-the-Center-of-the-Application_3C5B/api%20delivery_thumb.png" width="459" height="321" /&gt;&lt;/a&gt;ABSTRACT and ISOLATE &lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;This is exactly the type of problem &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/11/16/at-the-intersection-of-cloud-and-controlhellip.aspx"&gt;application delivery is designed to address&lt;/a&gt;. Multiple clients, multiple networks, all accessing the same application service or API but requiring specific authentication, security, and delivery characteristics to ensure that &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/02/21/operational-risk-comprises-more-than-just-security.aspx"&gt;operational risk&lt;/a&gt; is mitigated in the most efficient manner possible. &lt;/p&gt;  &lt;p&gt;This includes the ability to throttle services based on user and client, a common approach used by mega-sites such as Twitter. This includes the ability to provide single sign-on capabilities to all clients, regardless of platform, form-factor and support for enterprise-grade authentication integration to the same API or application service. This includes leveraging the appropriate security policies to ensure inbound and outbound security of data regardless of client, such that corporate data is not infected and spread to other consumers. &lt;/p&gt;  &lt;p&gt;A flexible, scalable application delivery tier addresses the problem of a single API being utilized by a variety of clients in a way that precludes the need to codify specific functionality on a per-platform or form-factor basis in the application logic itself, making the API simpler and easier to maintain as well as test and upgrade. It makes APIs and application services more scalable in terms of people and processes, which in turn makes the development and deployment process more efficient and able to focus on new services rather than constantly modifying and updating existing ones. &lt;/p&gt;  &lt;p&gt;Service-oriented architecture may have begun in the application demesne as a means to abstract and isolate services such that they could more easily be integrated, maintained, and changed without disruption, but the concept is applicable to the data center as a whole. By leveraging &lt;a title="Service Oriented Architecture definition " href="http://www.f5.com/glossary/soa.html" rel="" target="_blank"&gt;SOA&lt;/a&gt; concepts at the data center architecture level, the entire technological landscape of the business can be transformed into one that is ultimately more adaptable, more scalable, and more secure. &lt;/p&gt;  &lt;hr color="#808080" width="100%" noshade="noshade" /&gt;  &lt;p&gt;&lt;a href="http://www.cloudconnectevent.com/"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CC_logo_CMYK" border="0" alt="CC_logo_CMYK" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Enterprise-Apps-are-Not-Written-for-Spee_2FD1/cc_logo_265x126_3.jpg" width="86" height="41" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I’ll be at CloudConnect 2012 and we’ll discuss the subject of cloud and performance a whole lot more at the show! &lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.cloudconnectevent.com/santaclara/2012/speaker-list/?speaker=lori-mac-vittie"&gt;Sessions&lt;/a&gt;&lt;/p&gt;  &lt;hr color="#808080" width="100%" noshade="noshade" /&gt;&lt;center&gt;   &lt;table border="0" cellspacing="0" cellpadding="2" width="324"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="168"&gt;Connect with Lori: &lt;/td&gt;          &lt;td valign="top" width="154"&gt;Connect with &lt;a title="F5 Networks" href="http://www.f5.com/" rel="" target="_blank"&gt;F5&lt;/a&gt;: &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="168"&gt;&lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_linkedin[1]" border="0" alt="o_linkedin[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_linkedin.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="https://plus.google.com/110169987847611210070"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="google " border="0" alt="google " src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Why-Cant-We-Have-Nice-Things-Too_37AC/google+_3.jpg" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/f5/macv"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_rss[1]" border="0" alt="o_rss[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_rss.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://www.facebook.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_facebook[1]" border="0" alt="o_facebook[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_twitter[1]" border="0" alt="o_twitter[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;/td&gt;          &lt;td valign="top" width="154"&gt; &lt;a href="http://bitly.com/nIsT1z?r=bb"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_facebook[1]" border="0" alt="o_facebook[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://bitly.com/ne6W2R?r=bb"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_twitter[1]" border="0" alt="o_twitter[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://bitly.com/nx3XV1?r=bb/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_slideshare[1]" border="0" alt="o_slideshare[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_slideshare.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://bitly.com/reFTmf?r=bb"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_youtube[1]" border="0" alt="o_youtube[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_youtube.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://links.f5.com/f5gplus"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="google " border="0" alt="google " src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Why-Cant-We-Have-Nice-Things-Too_37AC/google+_3.jpg" width="24" height="24" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/center&gt;  &lt;p&gt;Related blogs &amp;amp; articles: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_26.png"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_thumb_8.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://techcrunch.com/2011/08/11/facebook-wins-worst-api-in-developer-survey/"&gt;Facebook Wins “Worst API” in Developer Survey&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_26.png"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_thumb_8.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="https://www.yourtrove.com/blog/2011/08/11/api-integration-pain-survey-results/"&gt;API Integration Pain Survey Results&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_26.png"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_thumb_8.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://www.readwriteweb.com/hack/2011/12/it-survey-businesses-embrace-a.php"&gt;IT Survey: Businesses Embrace APIs for Apps Integration, Not Social&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_26.png"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_thumb_8.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/11/23/the-pythagorean-theorem-of-operational-risk.aspx"&gt;The Pythagorean Theorem of Operational Risk&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_26.png"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_thumb_8.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/11/16/at-the-intersection-of-cloud-and-controlhellip.aspx"&gt;At the Intersection of Cloud and Control…&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_26.png"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_thumb_8.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/02/21/operational-risk-comprises-more-than-just-security.aspx"&gt;Operational Risk Comprises More Than Just Security&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_23.png"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_thumb_7.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/10/24/it-services-creating-commodities-out-of-complexity.aspx"&gt;IT Services: Creating Commodities out of Complexity&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_23.png"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_thumb_7.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2012/01/04/the-three-axioms-of-application-delivery.aspx"&gt;The Three Axioms of Application Delivery&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_23.png"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/c6f51bacf689_E392/Document-icon_thumb_7.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/12/20/the-magic-of-mobile-cloud.aspx"&gt;The Magic of Mobile Cloud&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;                        &lt;hr color="#808080" width="100%" noshade="noshade" /&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3a658b38-5be3-41ec-aac0-8514b0640156" class="wlWriterEditableSmartContent"&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/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application+delivery" rel="tag"&gt;application delivery&lt;/a&gt;,&lt;a href="http://technorati.com/tags/data+center" rel="tag"&gt;data center&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/mobile" rel="tag"&gt;mobile&lt;/a&gt;,&lt;a href="http://technorati.com/tags/API" rel="tag"&gt;API&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/security" rel="tag"&gt;security&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/availability" rel="tag"&gt;availability&lt;/a&gt;,&lt;a href="http://technorati.com/tags/blog" rel="tag"&gt;blog&lt;/a&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/1102505.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2012/01/23/the-api-is-the-center-of-the-application-integration-universe.aspx</guid>
            <pubDate>Mon, 23 Jan 2012 12:42:00 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/1102505.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2012/01/23/the-api-is-the-center-of-the-application-integration-universe.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/1102505.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/1102505.aspx</trackback:ping>
        </item>
        <item>
            <title>F5 Friday: Performance Analytics&amp;ndash;More Than Eye-Candy Reports</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2011/08/12/f5-friday-performance-analyticsndashmore-than-eye-candy-reports.aspx</link>
            <description>&lt;p&gt;#v11 &lt;em&gt;Application-centric analytics provide better visibility into performance, capacity and infrastructure utilization &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday-Stats_2D5F/f5friday_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="f5friday" border="0" alt="f5friday" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday-Stats_2D5F/f5friday_thumb.png" width="240" height="86" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h3&gt;Maintaining performance and capacity of web sites and critical applications – especially those of the revenue-generating ilk – can be particularly difficult in complex environments. &lt;/h3&gt;  &lt;p&gt;The mix of infrastructure and integration can pose problems when trying to determine exactly where capacity may be constrained or from where performance troubles are originating. Visibility into the application delivery chain is critical if we are to determine where and at what points in &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday-Stats_2D5F/image_6.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday-Stats_2D5F/image_thumb_2.png" width="230" height="240" /&gt;&lt;/a&gt;the chain performance is being impaired or constraints on capacity imposed, perhaps artificially. &lt;/p&gt;  &lt;p&gt;The trouble is that the end-user view of application performance tells you only that a site is or isn’t not performing up to expectations. It’s myopic in that sense, and provides little to no assistance in determining why an application may be performing poorly. Is it the Internet? An external component? An integration &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday-Stats_2D5F/image_8.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday-Stats_2D5F/image_thumb_3.png" width="316" height="170" /&gt;&lt;/a&gt;point? A piece of the infrastructure? Is it because of capacity (load on servers) or a lack thereof? It’s easy to point out a site is performing poorly or has unacceptable downtime, it’s quite another to determine why such that operations and developers can resolve the problem. &lt;/p&gt;  &lt;p&gt;Compounding the difficulties inherent in application performance monitoring is the way in which network infrastructure – including application delivery controllers – traditionally report statistics related to performance. It’s very, well, network-focused – with reports that provide details on network-oriented objects such as Virtual IP addresses and network segments. This is problematic because when a specific application is having issues, you want to drill down into the application, not a shared IP address or network segment. &lt;/p&gt;  &lt;p&gt;And you wouldn’t be digging into performance data if you didn’t already know there was a problem. So providing a simple “total response time” report isn’t very helpful at all in pinpointing the root cause. It’s important to be able to break out, by application, a more granular view of performance that provides insight into client, network, and server-side performance. &lt;/p&gt;  &lt;h3&gt;&lt;font style="font-weight: bold" color="#d16349"&gt;iApp Analytics &lt;/font&gt;&lt;/h3&gt;  &lt;h3&gt;BIG-IP v11 introduced &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/07/29/f5-friday-you-will-appsolutely-love-v11.aspx"&gt;iApp&lt;/a&gt;, which addresses a real need to provision and manage application delivery services with an application-centric perspective. Along with iApp comes iApp Analytics, a more application-centric view of performance and capacity-related data. &lt;/h3&gt;  &lt;p&gt;This data provides a more holistic view of performance across network, client and server-side components that allows operations to drill down into a specific application and dig around in the data to determine from where performance problems may be originating. This includes per URI reporting, which is critical for &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday-Stats_2D5F/image_4.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday-Stats_2D5F/image_thumb_1.png" width="227" height="219" /&gt;&lt;/a&gt;understanding API usage and impact on overall capacity. For organizations considered more advanced architectural solutions to addressing performance and capacity, this information is critical. For example, architecting scalability domains as part of a &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/10/04/infrastructure-scalability-pattern-partition-by-function-or-type.aspx"&gt;partitioning&lt;/a&gt; or &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/07/06/forget-hyper-scale.-think-hyper-local-scale.aspx"&gt;hyper-local scalability pattern&lt;/a&gt; will need to have a detailed understanding of per-URI utilization. Being able to tie metrics back to a specific business application enables IT to provide a more accurate operational cost to business stakeholders, which enables more a accurate ROI analysis and proactive approach to addressing potential growth issues before they negatively impact performance or worse, availability.  &lt;/p&gt;  &lt;p&gt;Transactions can be captured for diagnosing customer or application issues.  Filters make it easy to narrow down the results to specific user agents, geographies, pools or even a client IP.  The ability to view the headers and and the response data can shave valuable time off identifying problems. Thresholds on a per application, virtual server or pool member can be configured to identify if transactions or throughput levels increase or decrease significantly.  This can be an early warning sign that problems are occurring.  An alert can be delivered via syslog, SNMP or email when these thresholds are exceeded. &lt;/p&gt;  &lt;p&gt;Viewing of analytics can be accomplished through iApp application-specific view which provides the context of the associated business application.  Metrics can also be delivered to an off-box SIEM solution such as Splunk. &lt;/p&gt;  &lt;p&gt;While detailed, per-application performance and usage data does, in fact, make for very nice eye-candy reports, such data is critical to reducing the time associated with troubleshooting and enabling more advanced, integrated scalability-focused architectures to be designed and deployed. Because without the right data, it’s hard to make the right decisions for your applications and your infrastructure.  &lt;/p&gt;  &lt;p&gt;Happy Performance Monitoring! &lt;/p&gt;  &lt;hr color="#808080" width="100%" noshade="noshade" /&gt;&lt;center&gt;   &lt;table border="0" cellspacing="0" cellpadding="2" width="308"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="168"&gt;Connect with Lori: &lt;/td&gt;          &lt;td valign="top" width="138"&gt;Connect with &lt;a title="F5 Networks" href="http://www.f5.com/" rel="" target="_blank"&gt;F5&lt;/a&gt;: &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="168"&gt;&lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_linkedin[1]" border="0" alt="o_linkedin[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_linkedin.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="https://plus.google.com/110169987847611210070"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="google " border="0" alt="google " src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Why-Cant-We-Have-Nice-Things-Too_37AC/google+_3.jpg" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/f5/macv"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_rss[1]" border="0" alt="o_rss[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_rss.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://www.facebook.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_facebook[1]" border="0" alt="o_facebook[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_twitter[1]" border="0" alt="o_twitter[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;/td&gt;          &lt;td valign="top" width="138"&gt; &lt;a href="http://bitly.com/nIsT1z?r=bb"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_facebook[1]" border="0" alt="o_facebook[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://bitly.com/ne6W2R?r=bb"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_twitter[1]" border="0" alt="o_twitter[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://bitly.com/nx3XV1?r=bb/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_slideshare[1]" border="0" alt="o_slideshare[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_slideshare.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://bitly.com/reFTmf?r=bb"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_youtube[1]" border="0" alt="o_youtube[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_youtube.png" width="24" height="24" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/center&gt;  &lt;p align="center"&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 border="0" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" height="18" /&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 border="0" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" height="18" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Related blogs &amp;amp; articles: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_23d56711-5fac-4ebf-901b-e616786852e0.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/10/04/infrastructure-scalability-pattern-partition-by-function-or-type.aspx"&gt;Infrastructure Scalability Pattern: Partition by Function or Type&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_36a49430-28c2-4f6a-a23c-29e3173e60b1.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/02/18/lots-of-little-virtual-web-applications-scale-out-better-than.aspx"&gt;Lots of Little Virtual Web Applications Scale Out Better than Scaling Up&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_36a49430-28c2-4f6a-a23c-29e3173e60b1.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/07/06/forget-hyper-scale.-think-hyper-local-scale.aspx"&gt;Forget Hyper-Scale. Think Hyper-Local Scale.&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_36a49430-28c2-4f6a-a23c-29e3173e60b1.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/07/29/f5-friday-you-will-appsolutely-love-v11.aspx"&gt;F5 Friday: You Will Appsolutely Love v11&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/f5news/archive/2011/07/25/able-infrastructure-the-next-generation-ndash-introducing-v11.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday--on-a-Monday_510F/Document-icon_73bfc8e6-6d08-4710-896f-daf66d4b762c.png" width="16" height="16" /&gt; Introducing v11: The Next Generation of Infrastructure&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.f5.com/news-press-events/press/2011/20110725a.html"&gt;&lt;img title="f5-red-lg" border="0" alt="f5-red-lg" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday--on-a-Monday_510F/f5-red-lg_de5f8a3e-d166-4c1f-bbed-52369049c1f8.jpg" width="16" height="14" /&gt;&lt;/a&gt; &lt;a href="http://www.f5.com/products/big-ip/v11.html"&gt;BIG-IP v11 Information Page&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/f5news/archive/2011/05/09/medium-is-the-new-large-in-enterprise.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday_2B66/Document-icon_118a1f4d-4114-4f3a-a00c-25eb69a6d32a.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/07/25/the-evolution-toward-it-as-a-service-continues-in-the.aspx"&gt;F5 Monday? The Evolution To IT as a Service Continues … in the Network&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/f5news/archive/2011/05/09/medium-is-the-new-large-in-enterprise.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday_2B66/Document-icon_118a1f4d-4114-4f3a-a00c-25eb69a6d32a.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/07/22/f5-friday-the-gap-that-become-a-chasm.aspx"&gt;F5 Friday: The Gap That become a Chasm&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/f5news/archive/2011/05/09/medium-is-the-new-large-in-enterprise.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday_2B66/Document-icon_118a1f4d-4114-4f3a-a00c-25eb69a6d32a.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/category/1084420.aspx"&gt;All F5 Friday Posts on DevCentral&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/f5news/archive/2011/05/09/medium-is-the-new-large-in-enterprise.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/F5-Friday_2B66/Document-icon_118a1f4d-4114-4f3a-a00c-25eb69a6d32a.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/f5news/archive/2011/07/25/able-infrastructure-the-next-generation-ndash-introducing-v11.aspx"&gt;ABLE Infrastructure: The Next Generation – Introducing v11&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:732cd3c8-4b52-42d6-a0a2-f3c7756216ba" class="wlWriterEditableSmartContent"&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/MacVittie" rel="tag"&gt;MacVittie&lt;/a&gt;,&lt;a href="http://technorati.com/tags/F5+Friday" rel="tag"&gt;F5 Friday&lt;/a&gt;,&lt;a href="http://technorati.com/tags/v11" rel="tag"&gt;v11&lt;/a&gt;,&lt;a href="http://technorati.com/tags/iApp" rel="tag"&gt;iApp&lt;/a&gt;,&lt;a href="http://technorati.com/tags/analytics" rel="tag"&gt;analytics&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/Splunk" rel="tag"&gt;Splunk&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SNMP" rel="tag"&gt;SNMP&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/Web+2.0" rel="tag"&gt;Web 2.0&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;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/1096339.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2011/08/12/f5-friday-performance-analyticsndashmore-than-eye-candy-reports.aspx</guid>
            <pubDate>Fri, 12 Aug 2011 12:08:00 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/1096339.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2011/08/12/f5-friday-performance-analyticsndashmore-than-eye-candy-reports.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/1096339.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/1096339.aspx</trackback:ping>
        </item>
        <item>
            <title>Forget Hyper-Scale. Think Hyper-Local Scale.</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2011/07/06/forget-hyper-scale.-think-hyper-local-scale.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;It’s kind of like thinking globally but acting locally…  &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Hyper-scale-and-Cloud-Computing_542D/hyper%20scalability_2.jpg"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" title="hyper scalability" border="0" alt="hyper scalability" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Hyper-scale-and-Cloud-Computing_542D/hyper%20scalability_thumb.jpg" width="258" height="316" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;While I rail against the use of the too vague and cringe-inducing descriptor “workload” with respect to scalability and &lt;a title="" href="http://www.f5.com/solutions/cloud-computing" rel=""&gt;cloud computing &lt;/a&gt;, it is perhaps at least bringing to the fore an important distinction that needs to be made: that of the impact of different compute resource utilization patterns on scalability. &lt;/h4&gt;  &lt;p&gt;What categorizing workloads has done is to separate “types” of processing and resource needs: some applications require more I/O, some less. Others are CPU hogs while others chew up memory at an alarming rate. Applications have different resource utilization needs across the network, storage and compute spectrum that have a profound impact on their scalability. This leads to models in which some applications scale better horizontally and others vertically. Unfortunately, there are very few “pure” applications that can be dissected down to a simple model in which it is simply a case of providing more “X” as a means to scale. It is more often the case that some portions of the application are more network intensive while others require more compute. Functional partitioning is certainly a better option for scaling out such applications, but is an impractical design methodology during development as the overhead resulting from separation of duties at the functional level requires a more service-oriented approach, one that is not currently aligned with modern web application development practices. &lt;/p&gt;  &lt;p&gt;Yet we see the need on a daily basis for hyper-scalability of applications. Applications are being pushed to their resource limits with more users, more devices, more environments in which they must perform without delay. The “one size fits all” scalability model offered by cloud computing providers today is inadequate as a means to scale our rapidly and nearly infinitely, without overrunning budgets. This is because along with resource consumption patterns comes constraints on concurrency. Cloud computing offers an easy button to this problem – auto-scalability. Concurrency demands are easily met, just spin up another instance. While certainly one answer, it can be an expensive one and it’s absolutely an inefficient model of scalability.&lt;/p&gt;  &lt;h3&gt;&lt;font color="#c0504d"&gt;&lt;font style="font-weight: bold"&gt;HYPER-LOCAL SCALE &lt;/font&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;h4&gt;The lessons we should learn from cloud computing and hyper-scalability demands is that different functional processing scales, well, differently. The resource consumption patterns of one functional process &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Hyper-scale-and-Cloud-Computing_542D/image_2.png"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image" border="0" alt="image" align="right" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Hyper-scale-and-Cloud-Computing_542D/image_thumb.png" width="346" height="332" /&gt;&lt;/a&gt;may differ dramatically from another, and &lt;em&gt;both &lt;/em&gt;need to be addressed in order to efficiently scale the application. &lt;/h4&gt;  &lt;p&gt;If it is impractical to functionally separate “workloads” in the design and development process, then it is necessary to do so during the deployment phase leveraging those identifying contextual clues indicating the type of workload being invoked, i.e. hyper-local scale. &lt;/p&gt;  &lt;p&gt;Hyperlocal scalability requires leveraging &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/06/23/service-virtualization-helps-localize-impact-of-elastic-scalability.aspx"&gt;scalability domains&lt;/a&gt;, those functional workload divisions that are similar in nature and require similar resources to scale. Scalability domains allow functional partitioning as a scalability pattern to be applied to an application without requiring function level separation (and all the management, maintenance and deployment headaches that go along with it). Scalability domains are discrete pools of similar processing workloads, partitioned as part of the architecture, that allow specific configuration and architectural techniques to be applied to the underlying network and platform that specifically increase the performance and scalability of those workloads. &lt;/p&gt;  &lt;p&gt;This is the notion of hyperlocal scalability: an architectural scaling strategy that leverages scalability domains to isolate similar functional partitions requiring hyper-scale from those partitions that do not. In doing so, highly efficient scalability domains can be used to scale up or out those functional partitions requiring it while allowing other functional partitions to scale at a more nominal rate, incurring therefore less costs. Consider the notion a form of offload, where high resource impact processing is offloaded to another instance, thereby increasing the available resources on the first instance which results in higher concurrency. The offloaded processing can hyper-scale as necessary in a purpose-configured instance at higher efficiency, resulting in better concurrency. Where a traditional scalability pattern – effectively replication – may have required ten instances to meet demand, a hyper-localized scalability pattern may require only six or seven, with the plurality of those serving the high resource consuming processing. Fewer instances results in lower costs whilst simultaneously improving performance and efficiency. &lt;/p&gt;  &lt;h3&gt;&lt;font color="#c0504d"&gt;&lt;font style="font-weight: bold"&gt;INFRASTRUCTURE REQUIRED &lt;/font&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;h4&gt;Hyper-localized scalability architectures can leverage a variety of infrastructure scalability patterns, but the fact that they are dependent upon infrastructure and its ability to perform application layer routing and switching is paramount to success. &lt;/h4&gt;  &lt;p&gt;Today’s demanding business and operational requirements cannot be met with the simple scalability strategies of yesterday. Not only are legacy strategies based on infinite resources and budgets, they are inherently based on legacy application design in which functional partitioning was not only difficult, it was nearly impossible without the aid of methodologies like &lt;a title="Service Oriented Architecture definition " href="http://www.f5.com/glossary/soa.html" rel="" target="_blank"&gt;SOA&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Web applications are uniquely positioned such that they are perfectly suited to partitioning strategies whether at the functional or type or session layers. The contextual data shared by web applications with infrastructure capable of intercepting, inspecting and acting upon that data means more modern, architectural-based scaling strategies can be put into play. Doing so affords organizations the means to achieve higher efficiency and utilization rates, while in turn improving the performance, resiliency and availability of those applications. &lt;/p&gt;  &lt;p&gt;These strategies require infrastructure services and an understanding of the resource needs and usage patterns of the application as well as the ability to implement that architecture using infrastructure services and platform optimization. &lt;/p&gt;  &lt;p&gt;It’s a job for devops. &lt;/p&gt;  &lt;p&gt;   &lt;/p&gt;&lt;hr color="#808080" width="100%" noshade="noshade" /&gt;    &lt;center&gt;   &lt;table border="0" cellspacing="0" cellpadding="2" width="263"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="129"&gt;Connect with Lori: &lt;/td&gt;          &lt;td valign="top" width="132"&gt;Connect with &lt;a title="F5 Networks" href="http://www.f5.com/" rel="" target="_blank"&gt;F5&lt;/a&gt;: &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="129"&gt;&lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_linkedin[1]" border="0" alt="o_linkedin[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_linkedin.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_rss[1]" border="0" alt="o_rss[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_rss.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://www.facebook.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_facebook[1]" border="0" alt="o_facebook[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_twitter[1]" border="0" alt="o_twitter[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;/td&gt;          &lt;td valign="top" width="132"&gt; &lt;a href="http://www.facebook.com/f5networksinc"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_facebook[1]" border="0" alt="o_facebook[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/f5networks"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_twitter[1]" border="0" alt="o_twitter[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://www.slideshare.net/f5dotcom/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_slideshare[1]" border="0" alt="o_slideshare[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_slideshare.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://www.youtube.com/f5networksinc"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_youtube[1]" border="0" alt="o_youtube[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_youtube.png" width="24" height="24" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/center&gt;  &lt;p align="center"&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 border="0" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" height="18" /&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 border="0" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" height="18" /&gt;&lt;/a&gt; &lt;script type="text/javascript" src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355"&gt;&lt;/script&gt;&lt;/p&gt;  &lt;p&gt;Related blogs &amp;amp; articles: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_3da35ae1-c9f8-4fab-a0f2-6c9f5071336b.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/06/23/service-virtualization-helps-localize-impact-of-elastic-scalability.aspx"&gt;Service Virtualization Helps Localize Impact of Elastic Scalability&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_3da35ae1-c9f8-4fab-a0f2-6c9f5071336b.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/06/27/intercloud-are-you-moving-applications-or-architectures.aspx"&gt;Intercloud: Are You Moving Applications or Architectures?&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_3da35ae1-c9f8-4fab-a0f2-6c9f5071336b.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/06/13/it-as-a-service-a-stateless-infrastructure-architecture-model.aspx"&gt;IT as a Service: A Stateless Infrastructure Architecture Model&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_3da35ae1-c9f8-4fab-a0f2-6c9f5071336b.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/06/06/load-balancing-fu-beware-the-algorithm-and-sticky-sessions.aspx"&gt;Load Balancing Fu: Beware the Algorithm and Sticky Sessions&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_3da35ae1-c9f8-4fab-a0f2-6c9f5071336b.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/11/01/infrastructure-scalability-pattern-sharding-sessions.aspx"&gt;Infrastructure Scalability Pattern: Sharding Sessions&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_23d56711-5fac-4ebf-901b-e616786852e0.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/10/04/infrastructure-scalability-pattern-partition-by-function-or-type.aspx"&gt;Infrastructure Scalability Pattern: Partition by Function or Type&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_8aa4e837-0207-41ba-8ceb-a6d20732ac81.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/01/05/itrsquos-2am-do-you-know-what-algorithm-your-load-balancer.aspx"&gt;It’s 2am: Do You Know What Algorithm Your Load Balancer is Using?&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_36a49430-28c2-4f6a-a23c-29e3173e60b1.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/02/18/lots-of-little-virtual-web-applications-scale-out-better-than.aspx"&gt;Lots of Little Virtual Web Applications Scale Out Better than Scaling Up&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_c1ce56f1-7607-4f60-b4de-7d68ec8f9e34.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/22/sessions-sessions-everywhere.aspx"&gt;Sessions, Sessions Everywhere&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/22/wils-why-does-load-balancing-improve-application-performance.aspx"&gt;&lt;img title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/Load-Balancing-Fu-Beware-the-Algorithm-a_30F5/Document-icon_6663ae2a-c8d8-448b-9b42-7e9196f7257a.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/07/choosing-a-load-balancing-algorithm-requires-devops-fu.aspx"&gt;Choosing a Load Balancing Algorithm Requires DevOps Fu&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;                      &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:e2bfc1ea-7d7f-4051-ad80-65a6d3d20680" class="wlWriterEditableSmartContent"&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/scalability+domain" rel="tag"&gt;scalability domain&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/hyperscale" rel="tag"&gt;hyperscale&lt;/a&gt;,&lt;a href="http://technorati.com/tags/hyperlocal+scale" rel="tag"&gt;hyperlocal scale&lt;/a&gt;,&lt;a href="http://technorati.com/tags/load+balancing" rel="tag"&gt;load balancing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cloud+computing" rel="tag"&gt;cloud computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/devops" rel="tag"&gt;devops&lt;/a&gt;,&lt;a href="http://technorati.com/tags/infrastructure+2.0" rel="tag"&gt;infrastructure 2.0&lt;/a&gt;,&lt;a href="http://technorati.com/tags/dynamic+infrastructure" rel="tag"&gt;dynamic infrastructure&lt;/a&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/1094519.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2011/07/06/forget-hyper-scale.-think-hyper-local-scale.aspx</guid>
            <pubDate>Wed, 06 Jul 2011 10:43:57 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/1094519.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2011/07/06/forget-hyper-scale.-think-hyper-local-scale.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/1094519.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/1094519.aspx</trackback:ping>
        </item>
        <item>
            <title>As Client-Server Style Applications Resurface Performance Metrics Must Include the API</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2011/05/23/as-client-server-style-applications-resurface-performance-metrics-must-include-the.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;Mobile and tablet platforms are hyping HTML5, but many applications are bound to a traditional client-server model, making API performance a top concern for organizations. &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;I recently received an e-mail from &lt;a href="http://www.strangeloopnetworks.com/"&gt;Strangeloop Networks&lt;/a&gt; with a subject of: “The quest for the holy grail of Web speed: 2-second page load times". Being focused on optimizing the user-interface, they appropriately quoted usability expert Jakob Nielsen, but also included some interesting statistics:  &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;57% of site visitors will bounce after waiting 3 seconds or less for a page to load. &lt;/li&gt;    &lt;li&gt;Aberdeen Group surveyed 160 companies and discovered that, on average, slowing down a site by just one second results in a 7% reduction in conversions. &lt;/li&gt;    &lt;li&gt;Shopzilla accelerated its average page load time from 6 seconds to 1.2 seconds and experienced a 12% increase in revenue and a 25% increase in page views. &lt;/li&gt;    &lt;li&gt;Amazon performed its own page speed optimization and announced that, for every 100 milliseconds of improvement, revenues increased by 1%. &lt;/li&gt;    &lt;li&gt;Microsoft slowed down its Bing site by two seconds, which led to a 4.3% loss in revenue per visitor. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The problem is not that this information is inaccurate in any way. It’s not that I don’t agree that performance is a top concern for organizations – especially those for whom web applications directly generate revenue. It’s that “applications” are quickly becoming a mash-up of architectural models, not all of which leverage the ubiquitous web browser as the client. It is particularly true on mobile and tablet platforms, but increasingly true of web-delivered applications, as well. &lt;/p&gt;  &lt;p&gt;Too, many applications are dependent upon third-party services via the use of Web 2.0 APIs that can compromise performance of any application, browser-based or not. &lt;/p&gt;  &lt;h3&gt;&lt;font style="font-weight: bold" color="#c0504d"&gt;API PERFORMANCE WILL BECOME CRITICAL &lt;/font&gt;&lt;/h3&gt;  &lt;h3&gt;I was browsing Blackberry’s App World on my Playbook with my youngest the other day, looking for some games appropriate for a 3-year old. He was helping, navigating like a pro, and pulling up descriptions of &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/IMG_00000024_2.jpg"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 5px 10px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="IMG_00000024" border="0" alt="IMG_00000024" align="right" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/IMG_00000024_thumb.jpg" width="362" height="213" /&gt;&lt;/a&gt;applications he found interesting based on their icon.&lt;/h3&gt;  &lt;p&gt;When the application descriptions started loading slowly, i.e. took more than about 3 seconds to pop up on the screen, he started hitting the “back” button and trying another one. And another one. And another one. Ultimately he became quite frustrated with the situation and decided his Transformers were more interesting as they were more interactive at the moment. Turns out I was having some connectivity issues that, in turn, impacted the Playbook’s performance. &lt;/p&gt;  &lt;p&gt;I took away two things from the experience: &lt;/p&gt;  &lt;p&gt;1. A three-year old’s patience with application load times is approximately equal to the “ideal” load time for adults. Interesting, isn’t it? &lt;/p&gt;  &lt;p&gt;2. These mobile and tablet-deployed “applications” often require server-side, API, access. Therefore, API performance is critical to maintaining a responsive application. &lt;/p&gt;  &lt;p&gt;It is further unlikely that all applications will simply turn to HTML5 as the answer to address the challenges inherent in application platform deployment diversity. APIs have become a staple traffic on the Internet as a means to interconnect and integrate disparate services and it is folly to think they are going anywhere.  What’s more, if you know a thing or three about web applications, APIs are enabling real-time updating in record numbers today, with more and more application logic responsible for parsing and displaying data returned from those API calls residing on the client. &lt;/p&gt;  &lt;p&gt;Consider, if you will, the data from the “API Billionaires Club” presented last year in “&lt;a href="http://www.readwriteweb.com/cloud/2010/05/pen-api-madness-the-party-has.php"&gt;Open API Madness: The Party Has Just Begun for Cloud Developers&lt;/a&gt;”&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/image_2.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/image_thumb.png" width="438" height="303" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;These are not just API calls coming from external sources; these are API calls coming from each organization’s own applications as well as integrated, external sources. These APIs are generally calls for data in JSON or XML formats, not pre-formatted user interface markup (HTML*). &lt;/p&gt;  &lt;p&gt;No amount of HTML manipulation is likely to improve the performance of API calls because there is no HTML to optimize. It’s data, pure and simple, which means the bulk of the responsibility for ensuring wicked fast performance suitable to a three-year old’s patience is going to land squarely on the application delivery chain and the application developer. &lt;/p&gt;  &lt;p&gt;That means minimizing processing and delivery time through carefully optimizing code (developers) and the delivery chain (operations). &lt;/p&gt;  &lt;h3&gt;&lt;font color="#c0504d"&gt;&lt;font style="font-weight: bold"&gt;OPTIMIZING the DELIVERY CHAIN &lt;/font&gt;&lt;/font&gt;&lt;/h3&gt;  &lt;h3&gt;When the web first became popular any one who could use a scripting language and spit out HTML called themselves “web developers.” The need for highly optimized code to support the demanding performance requirements of end-users means that it’s no longer enough to be able to spit out HTML or even JSON.&lt;/h3&gt;  &lt;p&gt;It means developers need to be highly skilled in optimizing code on the server-side such that processing times are as tight as can be.  Calculating &lt;a href="http://en.wikipedia.org/wiki/Big_O_notation"&gt;Big (O)&lt;/a&gt; may become a valued skill once again. &lt;/p&gt;  &lt;p&gt;But applications are not islands and even the most highly optimized function in the world can be negatively impacted by factors outside the developer’s control. The load on the application server – whether physical or virtual – can have a deleterious effect on application performance. Higher loads, more RAM, fewer CPU cycles translates into slower executing code – no matter how optimized it may be. &lt;/p&gt;  &lt;p&gt;Processing cryptographic operations of any kind, be it for compression or security purposes, can consume resources and introduce latency into processing times when performed on the server. And the overhead from managing connections, usually TCP, can take as much time as processing a request. All those operations add up to latency that can drive the end-user response time over the patience threshold that results in an aborted transaction. And when I say transaction I mean request-reply transaction, not necessarily those that involve money. Aborted transactions are also bad for application performance because it’s wasting resources. That connection is held open based on the web or application server’s configuration, and if the end-user aborted the transaction, it’s ignoring the response but tying up resources that could be used elsewhere. &lt;/p&gt;  &lt;p&gt;Application delivery chain optimization is a critical component to improving response time. Offloading cryptographic processing and protocol management can alleviate much of the load that negatively impacts application processing times and shifts the delivery-time component of application performance  management from the developer to operations, where optimization and acceleration technologies can be applied regardless of data format. Whether it’s HTML or JSON or XML is irrelevant, compression, caching and cryptographic offload can benefit both end-users and developers by mitigating those factors outside the developer’s demesne that impact performance negatively. &lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;&lt;font color="#c0504d"&gt;THE WHOLE is GREATER than the SUM of its PARTS &lt;/font&gt;&lt;/strong&gt;&lt;/h3&gt;  &lt;h3&gt;It is no longer enough to measure the end-user experience based on load times in a browser. The growing use of mobile devices – whether phones or tablets – and the increasingly interconnected web of integrated applications means performance of an application is more complicated than it was in the past. &lt;/h3&gt;  &lt;p&gt;The performance of an application today is highly dependent on the performance of APIs, and thus testing APIs specifically from a variety of devices and platforms is critical in understand the impact high volume and load has on overall application performance.  Testing API performance is critical to ensuring the end-user experience is acceptable regardless of the form factor of the client.  &lt;/p&gt;  &lt;p&gt;If you aren’t sure what acceptable performance might be, grab the nearest three-year old; they’ll let you know loud and clear. &lt;/p&gt;  &lt;hr color="#808080" width="100%" noshade="noshade" /&gt;&lt;center&gt; &lt;/center&gt;&lt;center&gt;   &lt;table border="0" cellspacing="0" cellpadding="2" width="263"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="129"&gt;Connect with Lori: &lt;/td&gt;          &lt;td valign="top" width="132"&gt;Connect with &lt;a title="F5 Networks" href="http://www.f5.com/" rel="" target="_blank"&gt;F5&lt;/a&gt;: &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="129"&gt;&lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_linkedin[1]" border="0" alt="o_linkedin[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_linkedin.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_rss[1]" border="0" alt="o_rss[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_rss.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://www.facebook.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_facebook[1]" border="0" alt="o_facebook[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_twitter[1]" border="0" alt="o_twitter[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;/td&gt;          &lt;td valign="top" width="132"&gt; &lt;a href="http://www.facebook.com/f5networksinc"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_facebook[1]" border="0" alt="o_facebook[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/f5networks"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_twitter[1]" border="0" alt="o_twitter[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://www.slideshare.net/f5dotcom/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_slideshare[1]" border="0" alt="o_slideshare[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_slideshare.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://www.youtube.com/f5networksinc"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_youtube[1]" border="0" alt="o_youtube[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_youtube.png" width="24" height="24" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/center&gt;  &lt;p align="center"&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 border="0" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" height="18" /&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 border="0" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" height="18" /&gt;&lt;/a&gt; &lt;script type="text/javascript" src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355"&gt;&lt;/script&gt;&lt;/p&gt;  &lt;p&gt;Related blogs &amp;amp; articles: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/18/how-to-earn-your-data-center-merit-badge.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/Document-icon_47cc4e1e-77e5-47a7-9f35-511aba07db6d.png" width="16" height="16" /&gt; How to Earn Your Data Center Merit Badge&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/18/how-to-earn-your-data-center-merit-badge.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/Document-icon_d7c77969-78b5-4510-a572-105ae6dcbbb3.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/27/the-stealthy-ascendancy-of-json.aspx"&gt;The Stealthy Ascendancy of JSON&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/18/how-to-earn-your-data-center-merit-badge.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/Document-icon_daab55ea-8e98-42c9-8906-082f45cdd2bb.png" width="16" height="16" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/06/29/cloud-testing-the-next-generation.aspx"&gt;Cloud Testing: The Next Generation&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/18/how-to-earn-your-data-center-merit-badge.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/Document-icon_7cbc8626-172d-4be4-9cee-5ad1a82bc89e.png" width="16" height="16" /&gt; &lt;/a&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/13/predictable-performance-eliminating-variable-latency-with-hardware.aspx"&gt;Data Center Feng Shui: Architecting for Predictable Performance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/18/how-to-earn-your-data-center-merit-badge.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/Document-icon_2e71162d-34aa-4133-ab79-39aa69e47799.png" width="16" height="16" /&gt; &lt;/a&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/06/now-witness-the-power-of-this-fully-operational-feedback-loop.aspx"&gt;Now Witness the Power of this Fully Operational Feedback Loop&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/18/how-to-earn-your-data-center-merit-badge.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/Document-icon_19416859-f6db-4e7a-86cb-eb262c1d84ac.png" width="16" height="16" /&gt; &lt;/a&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/04/on-cloud-integration-and-performance.aspx"&gt;On Cloud, Integration and Performance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/18/how-to-earn-your-data-center-merit-badge.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/Document-icon_902d5c52-801b-440c-a7d7-d6a20dc08dae.png" width="16" height="16" /&gt; &lt;/a&gt;&lt;a href="http://www.networkworld.com/newsletters/nsm/2011/022811nsm2.html?source=NWWNLE_nlt_network_optimization_2011-03-10"&gt;The cost of bad cloud-based application performance&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/18/how-to-earn-your-data-center-merit-badge.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/Document-icon_f8a1febc-8abe-4183-b66b-9cf901d9e711.png" width="16" height="16" /&gt; &lt;/a&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/04/20/i-find-your-lack-of-win-disturbing.aspx"&gt;I Find Your Lack of Win Disturbing&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/18/how-to-earn-your-data-center-merit-badge.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/Document-icon_bc932bca-1cb9-4f89-8548-450375cc8677.png" width="16" height="16" /&gt; &lt;/a&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/02/21/operational-risk-comprises-more-than-just-security.aspx"&gt;Operational Risk Comprises More Than Just Security&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/18/how-to-earn-your-data-center-merit-badge.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="Document-icon" border="0" alt="Document-icon" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/Document-icon_46b1c7f0-fb4e-465d-91ba-0560b6b80b4e.png" width="16" height="16" /&gt; &lt;/a&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2011/02/16/challenging-the-firewall-data-center-dogma.aspx"&gt;Challenging the Firewall Data Center Dogma&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/f5news/archive/2011/05/16/50-ways-to-use-your-big-ip-performance.aspx"&gt;&lt;img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="f5-red-lg" border="0" alt="f5-red-lg" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/14db2cdea6d7_2925/f5-red-lg_72844fa0-4368-4152-a631-8383b9ad3566.jpg" width="16" height="14" /&gt; 50 Ways to Use Your BIG-IP: Performance&lt;/a&gt;  &lt;/li&gt; &lt;/ul&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:09c881a1-816a-42bd-994f-55426cf9d965" class="wlWriterEditableSmartContent"&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/performance" rel="tag"&gt;performance&lt;/a&gt;,&lt;a href="http://technorati.com/tags/mobile" rel="tag"&gt;mobile&lt;/a&gt;,&lt;a href="http://technorati.com/tags/50+Ways" rel="tag"&gt;50 Ways&lt;/a&gt;,&lt;a href="http://technorati.com/tags/cloud+computing" rel="tag"&gt;cloud computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/API" rel="tag"&gt;API&lt;/a&gt;,&lt;a href="http://technorati.com/tags/HTML5" rel="tag"&gt;HTML5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AJAX" rel="tag"&gt;AJAX&lt;/a&gt;&lt;/div&gt;  &lt;ul&gt;    &lt;/ul&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/1094428.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2011/05/23/as-client-server-style-applications-resurface-performance-metrics-must-include-the.aspx</guid>
            <pubDate>Mon, 23 May 2011 09:55:16 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/1094428.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2011/05/23/as-client-server-style-applications-resurface-performance-metrics-must-include-the.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/1094428.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/1094428.aspx</trackback:ping>
        </item>
        <item>
            <title>The Stealthy Ascendancy of JSON</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/27/the-stealthy-ascendancy-of-json.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;While everyone was focused on cloud, JSON has slowly but surely been taking over the application development world&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;It looks like the debate between XML and JSON may be coming to a close with JSON poised to take the title of preferred format for web applications.&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/image_6.png"&gt;&lt;img width="240" height="145" border="0" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/image_thumb_2.png" alt="image" title="image" style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/image_8.png"&gt;&lt;img width="240" height="145" border="0" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/image_thumb_3.png" alt="image" title="image" style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;If you don’t consider these statistics to be impressive, consider that ProgrammableWeb indicated that its “&lt;em&gt;own statistics on ProgrammableWeb show a significant increase in the number of JSON APIs over 2009/2010. During 2009 there were only 191 JSON APIs registered. So far in 2010 [August] there are already 223!&lt;/em&gt;” &lt;/p&gt;
&lt;p&gt;Today there are 1262 JSON APIs registered, which means a growth rate of 565% in the past eight months, nearly catching up to XML which currently lists 2162 APIs. At this rate, JSON will likely overtake XML as the preferred format by the end of 2011. &lt;/p&gt;
&lt;p&gt;This is significant to both infrastructure vendors and &lt;a rel="" href="http://www.f5.com/solutions/cloud-computing" title=""&gt;cloud computing &lt;/a&gt; providers alike, because it indicates a preference for a programmatic model that must be accounted for when developing services, particularly those in the PaaS (Platform as a Service) domain. &lt;/p&gt;
&lt;p&gt;PaaS has yet to grab developers mindshare and it may be that support for JSON will be one of the ways in which that mindshare is attracted. Consider the results of the “State of Web Development 2010” survey from Web Directions in which developers were asked about their cloud computing usage; only 22% responded in the affirmative to utilizing cloud computing. But of those 22% that do leverage cloud computing, the providers they use are telling: &lt;/p&gt;
&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/image_10.png"&gt;&lt;img width="616" height="503" border="0" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/image_thumb_4.png" alt="image" title="image" style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;PaaS represents a mere 7.35% of developers use of cloud computing, with storage (Amazon S3) and IaaS (Infrastructure as a Service) garnering 26.89% of responses. Google App Engine is the dominant PaaS platform at the moment, most likely owing to the fact that it is primarily focused on JavaScript, UI, and other utility-style services as opposed to Azure’s middle-ware and definitely more enterprise-class focused services. &lt;/p&gt;
&lt;p&gt;SaaS, too, is failing to recognize the demand from developers and the growing ascendancy of JSON. Consider &lt;a href="http://success.salesforce.com/ideaView?id=08730000000Bq5ZAAS"&gt;this exchange on the Salesforce.com forums regarding JSON&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_start_quote_rb.gif"&gt;&lt;img width="24" height="13" border="0" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_start_quote_rb.gif" alt="quote-badge" title="quote-badge" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /&gt;&lt;/a&gt; Come on salesforce lets get this done. We need to integrate, we need this [JSON].&lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_end_quote_rb.gif" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;If JSON continues its steady rise into ascendancy, PaaS and SaaS providers alike should be ready to support JSON-style integration as its growth pattern indicates it is not going away, but is instead picking up steam. Providers able to support JSON for PaaS and SaaS will have a competitive advantage over those that do not, especially as they vie for the hearts and minds of developers which are, after all, their core constituency. &lt;/p&gt;
&lt;h3&gt;&lt;font color="#c0504d" style="font-weight: bold"&gt;THE IMPACT &lt;/font&gt;&lt;/h3&gt;
&lt;h3&gt;What the steady rise of JSON should trigger for providers and vendors alike is a need to support JSON as the means by which services are integrated, invoked, and data exchanged. &lt;/h3&gt;
&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/12/10/json-versus-xml-your-choice-matters-more-than-you-think.aspx"&gt;Application delivery, service-providers and Infrastructure 2.0 focused solutions need to provide APIs that are JSON compatible and which are capable of handling the format&lt;/a&gt; to provide core infrastructure services such as firewalling and data scrubbing duties. The increasing use of JSON-based APIs to integrate with external, third-party services continues to grow and the demand for enterprise-class service to support JSON as well will continue to rise.&lt;/p&gt;
&lt;p&gt;There are drawbacks, and this steady movement toward JSON has in some cases a profound impact on the infrastructure and architectural choices made by IT organizations, especially in terms of providing for consistency of services across what is likely a very mixed-format environment. Identity and access management and security services may not be prepared to handle JSON APIs nor provide the same services as it has for XML, which through long established usage and efforts comes with its own set of standards. &lt;/p&gt;
&lt;p&gt;Including social networking “streams” in applications and web-sites is now as common as including images, but changes to APIs may make basic security chores difficult. Consider that Twitter – very quietly – has moved to supporting JSON only for its Streaming API. Organizations that were, as well they should, scrubbing such streams to prevent both embarrassing as well as malicious code from being integrated unknowingly into their sites, may have suddenly found that infrastructure providing such services no longer worked: &lt;/p&gt;
&lt;blockquote style="border-left: black 5px solid; margin: 10px; padding-left: 10px; padding-right: 10px; background: white; border-right: black 5px solid"&gt;
&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_start_quote_rb.gif"&gt;&lt;img width="24" height="13" border="0" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_start_quote_rb.gif" alt="quote-badge" title="quote-badge" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;API providers and developers are making their choice quite clear when it comes to choosing between XML and JSON. A nearly unanimous choice seems to be JSON. Several API providers, including Twitter, have either stopped supporting the XML format or are even introducing newer versions of their API with only JSON support. In our ProgrammableWeb API directory, &lt;a href="http://blog.programmableweb.com/2010/08/11/is-json-the-developers-choice/"&gt;JSON seems to be the winner&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;A couple of items are of interest this week in the XML versus JSON debate. We had earlier reported that come early December, &lt;a href="http://blog.programmableweb.com/2010/11/10/twitter-goes-json-only-with-one-api-more-to-come/"&gt;Twitter plans to stop support for XML in its Streaming API&lt;/a&gt;. &lt;img src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_end_quote_rb.gif" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;--&lt;a href="http://blog.programmableweb.com/2010/12/03/json-continues-its-winning-streak-over-xml/"&gt;JSON Continues its Winning Streak Over XML&lt;/a&gt;, &lt;a href="http://www.programmableweb.com/"&gt;ProgrammableWeb&lt;/a&gt; (Dec 2010) &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Similarly, caching and acceleration services may be confused by a change from XML to JSON; from a format that was well-understood and for which solutions were enabled with parsing capabilities to one that is not. &lt;/p&gt;
&lt;h3&gt;&lt;font color="#c0504d"&gt;&lt;font style="font-weight: bold"&gt;IT’S THE DATA, NOT the API &lt;/font&gt;&lt;/font&gt;&lt;/h3&gt;
&lt;h3&gt;The fight between JSON and XML is one we continue to see in a general sense. See, it isn’t necessarily the API that matters, in the end, but the data format (the semantics) used to exchange that data which matters. &lt;/h3&gt;
&lt;p&gt;XML is considered unstructured, though in practice it’s far more structured than JSON in the sense that there are meta-data standards for XML that constrain security, identity, and even application formats. JSON, however, although having been included natively in ECMA v5 (&lt;a href="http://www.computerworld.com/s/article/9142237/JSON_data_interchange_format_gets_Ecma_standards_blessing"&gt;JSON data interchange format gets ECMA standards blessing&lt;/a&gt;) has very few standards aside from those imposed by frameworks and toolkits such as JQuery.  This will make it challenging for infrastructure vendors to support services targeting application data – data scrubbing, &lt;a rel="" href="http://www.f5.com/glossary/web-application-firewall.html" title=""&gt;web application firewall&lt;/a&gt;, IDS, IPS, caching, advanced routing – to continue to effectively deliver such applications without recognizing JSON as an option. &lt;/p&gt;
&lt;p&gt;The API has become little more than a set of URIs and nearly all infrastructure directly related to application delivery is more than capable of handling them. It is the data, however, that presents a challenge and which makes the developers’ choice of formats so important in the big picture. It isn’t just the application and integration that is impacted, it’s the entire infrastructure and architecture that must adapt to support the data format. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/07/27/the-world-doesnrsquot-care-about-apis.aspx"&gt;The World Doesn’t Care About APIs&lt;/a&gt; – but it does care about the data, about the model. Right now, it appears that model is more than likely going to be presented in a JSON-encoded format. &lt;/p&gt;
&lt;hr width="100%" noshade="noshade" color="#808080" /&gt;
&lt;center&gt;
&lt;table width="263" cellspacing="0" cellpadding="2" border="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td width="129" valign="top"&gt;Connect with Lori: &lt;/td&gt;
            &lt;td width="132" valign="top"&gt;Connect with &lt;a target="_blank" rel="" href="http://www.f5.com/" title="F5 Networks"&gt;F5&lt;/a&gt;: &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="129" valign="top"&gt;&lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img width="24" height="24" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_linkedin.png" alt="o_linkedin[1]" title="o_linkedin[1]" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img width="24" height="24" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_rss.png" alt="o_rss[1]" title="o_rss[1]" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /&gt;&lt;/a&gt; &lt;a href="http://www.facebook.com/lmacvittie"&gt;&lt;img width="24" height="24" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" alt="o_facebook[1]" title="o_facebook[1]" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img width="24" height="24" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" alt="o_twitter[1]" title="o_twitter[1]" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /&gt;&lt;/a&gt; &lt;/td&gt;
            &lt;td width="132" valign="top"&gt; &lt;a href="http://www.facebook.com/f5networksinc"&gt;&lt;img width="24" height="24" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" alt="o_facebook[1]" title="o_facebook[1]" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/f5networks"&gt;&lt;img width="24" height="24" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" alt="o_twitter[1]" title="o_twitter[1]" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /&gt;&lt;/a&gt; &lt;a href="http://www.slideshare.net/f5dotcom/"&gt;&lt;img width="24" height="24" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_slideshare.png" alt="o_slideshare[1]" title="o_slideshare[1]" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /&gt;&lt;/a&gt; &lt;a href="http://www.youtube.com/f5networksinc"&gt;&lt;img width="24" height="24" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_youtube.png" alt="o_youtube[1]" title="o_youtube[1]" style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" /&gt;&lt;/a&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;/center&gt;
&lt;p align="center"&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 type="text/javascript" src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355"&gt;&lt;/script&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Related blogs &amp;amp; articles: &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.computerworld.com/s/article/9142237/JSON_data_interchange_format_gets_Ecma_standards_blessing"&gt;&lt;img width="14" height="14" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/icon-html_1ab4c1d6-b896-4723-9e8a-71572660e96f.gif" alt="icon-html" title="icon-html" style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 4px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;JSON data interchange format gets ECMA standards blessing&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.computerworld.com/s/article/9142237/JSON_data_interchange_format_gets_Ecma_standards_blessing"&gt;&lt;img width="14" height="14" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/icon-html_7cc0b92d-cc75-4d11-833a-cc171aec42ea.gif" alt="icon-html" title="icon-html" style="background-image: none; border-bottom: 0px; border-left: 0px; margin: 0px 4px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt;&lt;a href="http://blog.programmableweb.com/2010/12/03/json-continues-its-winning-streak-over-xml/"&gt;JSON Continues its Winning Streak Over XML&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.computerworld.com/s/article/9142237/JSON_data_interchange_format_gets_Ecma_standards_blessing"&gt;&lt;img width="14" height="14" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/icon-html_42bd6051-f222-494d-9374-c14f4545f2c4.gif" alt="icon-html" title="icon-html" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/12/10/json-versus-xml-your-choice-matters-more-than-you-think.aspx"&gt;JSON versus XML: Your Choice Matters More Than You Think&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.computerworld.com/s/article/9142237/JSON_data_interchange_format_gets_Ecma_standards_blessing"&gt;&lt;img width="14" height="14" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/icon-html_95ff2a2a-f27a-4711-8133-30164f8003a8.gif" alt="icon-html" title="icon-html" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/01/15/i-am-in-your-http-headers-attacking-your-application.aspx"&gt;I am in your HTTP headers, attacking your application&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.computerworld.com/s/article/9142237/JSON_data_interchange_format_gets_Ecma_standards_blessing"&gt;&lt;img width="14" height="14" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/icon-html_2e16f387-9c00-4850-b2aa-cf34b2a9e655.gif" alt="icon-html" title="icon-html" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/04/01/the-web-2.0-api-from-collaborating-to-compromised.aspx"&gt;The Web 2.0 API: From collaborating to compromised&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.computerworld.com/s/article/9142237/JSON_data_interchange_format_gets_Ecma_standards_blessing"&gt;&lt;img width="14" height="14" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/icon-html_b96f3c34-a295-4942-83bd-953b5f129df8.gif" alt="icon-html" title="icon-html" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/03/30/would-you-risk-31000-for-milliseconds-of-application-response-time.aspx"&gt;Would you risk $31,000 for milliseconds of application response time?&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.computerworld.com/s/article/9142237/JSON_data_interchange_format_gets_Ecma_standards_blessing"&gt;&lt;img width="14" height="14" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/icon-html_1552d8c4-19e5-44e5-8f46-025422d81344.gif" alt="icon-html" title="icon-html" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/01/05/stop-brute-force-listing-of-http-options-with-network-side-scripting.aspx"&gt;Stop brute force listing of HTTP OPTIONS with network-side scripting&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.computerworld.com/s/article/9142237/JSON_data_interchange_format_gets_Ecma_standards_blessing"&gt;&lt;img width="14" height="14" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/icon-html_4cf397b3-f41f-4e52-8d33-5a19addeab40.gif" alt="icon-html" title="icon-html" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/07/08/new-three-tiered-architecture-changes-everything.aspx"&gt;The New Distribution of The 3-Tiered Architecture Changes Everything&lt;/a&gt; &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.computerworld.com/s/article/9142237/JSON_data_interchange_format_gets_Ecma_standards_blessing"&gt;&lt;img width="14" height="14" border="0" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/Windows-Live-Writer/The-Stealthy-Ascendancy-of-JSON_22B4/icon-html_2caacc4c-79ce-4280-8ae7-ac1e9c394eca.gif" alt="icon-html" title="icon-html" style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/03/25/are-you-scrubbing-the-twitter-stream-on-your-web-site.aspx"&gt;Are You Scrubbing the Twitter Stream on Your Web Site?&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:84ccebb6-5550-44eb-b256-1a70b74319a4" style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px"&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/JSON"&gt;JSON&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/XML"&gt;XML&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/APIs"&gt;APIs&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/PaaS"&gt;PaaS&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/IaaS"&gt;IaaS&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/cloud+computing"&gt;cloud computing&lt;/a&gt;,&lt;a rel="tag" href="http://technorati.com/tags/development"&gt;development&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/Web+2.0"&gt;Web 2.0&lt;/a&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/1094360.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/27/the-stealthy-ascendancy-of-json.aspx</guid>
            <pubDate>Wed, 27 Apr 2011 10:39:49 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/1094360.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2011/04/27/the-stealthy-ascendancy-of-json.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/1094360.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/1094360.aspx</trackback:ping>
        </item>
        <item>
            <title>Cloud-Tiered Architectural Models are Bad Except When They Aren&amp;rsquo;t</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2011/02/09/cloud-tiered-architectural-models-are-bad-except-when-they-arenrsquot.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;Database as a service is part of an emerging model that should be evaluated as an architecture, not based on where it might be deployed &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[
tweetmeme_source = 'f5networks';
tweetmeme_style = 'compact';
tweetmeme_service = 'bit.ly';
service_api = 'R_782503f4d9754dae4543383cee6ad988';
]]&gt;&lt;/script&gt;&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InternetTieredApplicationArchitecturesAr_988C/clock%20scary_2.jpg"&gt;&lt;img style="border-right-width: 0px; margin: 0px 15px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clock scary" border="0" alt="clock scary" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InternetTieredApplicationArchitecturesAr_988C/clock%20scary_thumb.jpg" width="239" height="240" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;h4&gt;&lt;strong&gt;These days everything is being delivered “as a Service”. Compute, storage, platforms, IT, databases. The concept, of course, is sound and it is generally speaking a good one. &lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;If you’re going to offer an environment in which applications can be deployed, you’d best offer the services appropriate to the deployment and delivery of that application. And that includes data services; some kind of database. &lt;/p&gt;  &lt;p&gt;Shortly after the announcement by &lt;a href="http://www.salesforce.com/"&gt;Salesforce.com&lt;/a&gt; of its database as a platform service – database.com – &lt;a href="http://www.zdnet.com/blog/saas"&gt;Phil Wainewright&lt;/a&gt; posited that such an offering might “squish” smaller providers. Some vehemently disagreed, and Mr. Wainewright recently published a guest post, written by Matt McAdams, CEO of &lt;a href="http://www.trackvia.com/"&gt;TrackVia&lt;/a&gt;, regarding the offering that disputes that prediction: &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InternetTieredApplicationArchitecturesAr_988C/blockquote_2.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="blockquote" border="0" alt="blockquote" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InternetTieredApplicationArchitecturesAr_988C/blockquote_thumb.gif" width="46" height="28" /&gt;&lt;/a&gt; Rather, Salesforce.com is making the existing database that currently underlies its CRM and Force.com platforms accessible to subscribers who don’t have accounts on one of those two platforms. The target audience is programmers who want to build an application outside of Force.com, but want a hosted database.&lt;/p&gt;    &lt;p&gt;Unfortunately, web application developers will find the idea of hosting their data outside their application platform severely unappealing. The reason is latency. &lt;/p&gt;    &lt;p&gt;&lt;a href="http://www.zdnet.com/blog/saas/databasecom-nice-name-shame-about-the-platform/1238"&gt;Database.com: nice name, shame about the platform&lt;/a&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Mr. McAdams goes into more detail about the architecture of modern web applications and explains the logic behind his belief. He’s right about latency being an issue and is backed up by research conducted by developer-focused Evans Data Corporation. &lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InternetTieredApplicationArchitecturesAr_988C/blockquote_4.gif"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="blockquote" border="0" alt="blockquote" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InternetTieredApplicationArchitecturesAr_988C/blockquote_thumb_1.gif" width="46" height="28" /&gt;&lt;/a&gt; Developers report that &lt;strong&gt;performance is the second-most important attribute found in frameworks and platforms&lt;/strong&gt;. The ability of a framework or a platform to deliver high throughput, minimal latency and efficient use of computing resources is a major factor in decisions regarding which application frameworks to use for development. [emphasis added]&lt;/p&gt;    &lt;p&gt;-- &lt;a href="http://www.evansdata.com/"&gt;Evans Data Corporation&lt;/a&gt; &lt;em&gt;Users’ Choice: 2010 Frameworks (&lt;/em&gt;April 2010) &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;So performance is definitely a factor, but there’s more going on here than just counting ticks and some of what’s happening completely obviates his concerns. That’s because he ignored the &lt;strong&gt;architectural&lt;/strong&gt; model in favor of narrowing in on a specific &lt;strong&gt;deployment&lt;/strong&gt; model. There are a few critical trends that may ultimately make the Database as a Service (DaaS) &lt;strong&gt;architectural &lt;/strong&gt;model (not necessarily the provider-based &lt;strong&gt;deployment &lt;/strong&gt;model)&lt;em&gt; &lt;/em&gt;a success.   &lt;/p&gt;  &lt;h3&gt;&lt;font color="#800000"&gt;The CLIENT-DATABASE ARCHITECTURAL MODEL &lt;/font&gt;&lt;/h3&gt;  &lt;h3&gt;The consumerization of IT is well underway. &lt;/h3&gt;  &lt;p&gt;No one lightly dismisses the impact on application platform development of consumer-oriented gadgets like the iPad and the iPhone. More and more vendors as well as organizations are taking these “toys” seriously and subsequently targeting these environments as clients for what have traditionally been considered &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InternetTieredApplicationArchitecturesAr_988C/image_4.png"&gt;&lt;img style="border-right-width: 0px; margin: 5px 10px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InternetTieredApplicationArchitecturesAr_988C/image_thumb_1.png" width="449" height="316" /&gt;&lt;/a&gt;enterprise-class applications. &lt;/p&gt;  &lt;p&gt;But the application architecture of the applications deployed on mobile devices is different from traditional web-based applications. In most cases an “app” for a mobile device employs a modernized version of the client-server model with nearly all client and application logic deployed on the device and only the data store – the database – residing on the “server”. It’s more accurate to call these “client-database” models than “client-server” as often it’s the case that the “server” portion of these applications is little more than a set of services encapsulating database-focused functions. In other words, it’s leveraging data &lt;em&gt;as a service&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;It’s still a three-tiered application architecture, to be sure, but the tiers involved have slightly different responsibilities than a modern web application. A modern web application generally “hosts” all three tiers – web (interface or ‘presentation’ in developer-speak), application, and data – in one location. For all the reasons cited by Mr. McAdams in his guest post, developers and subsequently organizations are loathe to break apart those tiers and distribute them around the “cloud”. I’d add that reliability and availability as well as security (in terms of access control and the enforcement of roles in a complex, enterprise-class application) play a part in that decision but it’s the latency that really is the deal-breaker especially between the application and the database&lt;em&gt;.&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;But Lori, you say, HTML5 and tablets are going to change all that. Applications will &lt;em&gt;all &lt;/em&gt;be HTML5 and even mobile devices will return to the more comfortable three-tiered architecture. &lt;/p&gt;  &lt;p&gt;Will it? &lt;a href="http://dev.w3.org/html5/spec/Overview.html"&gt;HTML5 has some interesting changes and additions&lt;/a&gt; that make it more compatible with a mobile application architecture than earlier versions of the specification. Offline storage, more application logic capabilities, more control. HTML5 is a step toward a &lt;strike&gt;fatter&lt;/strike&gt; robust, more complete application client platform. Couple that with the fact that &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/07/12/does-this-application-make-my-browser-look-fat.aspx"&gt;web applications have been moving toward a more client-centric deployment&lt;/a&gt; model for years and you’ve got a trend toward a more client-database application architectural model. Web applications have been getting fatter and fatter with more and more application logic being pushed onto the client. HTML5 appears to support and even encourage that trend. Consider, for a moment, this &lt;a href="http://wiki.pageforest.com/#mckoss-3535"&gt;web application written nearly entirely in JavaScript.&lt;/a&gt; Yes, that’s right. Nearly all of the functionality in this application is contained within the client, in 80 lines of JavaScript code. That’s a client-database model. &lt;/p&gt;  &lt;p&gt;Even on mobile devices, on tablets designed to better support “traditional” web-applications, they are there almost as an after-thought. The browser is used for reading articles and watching video – not interacting with data. It’s the applications, the ones developed specifically for that device, that make or break the platform these days. If that weren’t the case, you wouldn’t need separate “applications” for Facebook, or Twitter, or Salesforce.com. You’d just leverage the existing web application, wouldn’t you? And you certainly wouldn’t need APIs upon which &lt;em&gt;applications &lt;/em&gt;could be built, would you? &lt;/p&gt;  &lt;p&gt;Of course not. So what, you might be asking, does all this have to do with the success or failure of database as a service? &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InternetTieredApplicationArchitecturesAr_988C/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="image" border="0" alt="image" align="right" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InternetTieredApplicationArchitecturesAr_988C/image_thumb_2.png" width="424" height="311" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The answer is this: developers are lazy, and because we’re lazy we’re masters at architecting solutions that can be reused as much as possible to limit the amount of tedious and mundane coding we have to do. Innovation and change is often driven not by inspiration, but by the inherent laziness of developers looking for an "easier" way to do a thing. And supporting two completely separate application architectures is certainly in the category of “tedious”. &lt;/p&gt;  &lt;h3&gt;&lt;font color="#800000"&gt;WHEN BEING LAZY is a BONUS  &lt;/font&gt;&lt;/h3&gt;  &lt;h4&gt;&lt;strong&gt;As more and more organizations decide to support both mobile and web versions of their critical business applications, it’s the development staff that’s going to be called upon to provide them. And developers are - no offense intended as I still self-identify as a developer - lazy. &lt;/strong&gt;&lt;/h4&gt;  &lt;p&gt;We don’t like the tedious and the mundane; we don’t like to repeat the same code over and over and over. We look for ways to reuse and simplify such that we can concentrate on those pieces of development that are exciting to us – and that doesn’t include anything repetitious. &lt;/p&gt;  &lt;p&gt;So as developers look at the two models, they’re eventually going to abstract them, especially as they explore HTML5 and find more and more ways to align the two models. They’re going to note the differences and the similarities in architecture and come to the conclusion that it is inefficient and potentially risky to support two completely different versions of the same application, especially when the option exists to simplify them. An architectural model in which the data access portions are shared – hosted as a service – for both mobile and traditional desktop clients makes a lot more sense in terms of cost to develop and maintain than does attempting to support two completely separate architectural models. &lt;/p&gt;  &lt;p&gt;Given the movement toward more client-centric applications – whether because of platform restrictions (mobile devices) or increasing demand for functionality that only comes from client-deployed application logic (Web 2.0) – it is likely we’ll see a shift in deployment models toward client-database models more and more often in the future. That means&lt;strong&gt; data as a service &lt;em&gt;is &lt;/em&gt;going to be an integral part&lt;/strong&gt; of a developers’ lives. &lt;/p&gt;  &lt;p&gt;That’s really the crux of what Mr. McAdams is arguing against – that a data as a service &lt;strong&gt;deployment &lt;/strong&gt;model is untenable due to the latency. But what he misses is that we’re already half-way there with mobile device applications and we’ve been moving in that direction for several years with web-based applications &lt;em&gt;anyway.&lt;/em&gt; APIs for web applications today exist to provide access to what – data. Even when they’re performing what appears to be application “tasks” – say, following a Twitter user – they’re really just manipulating &lt;em&gt;data&lt;/em&gt; in the &lt;em&gt;database. &lt;/em&gt;There is no real difference between accessing a data service over the Internet that is deployed in the enterprise data center versus in a &lt;a title="" href="http://www.f5.com/solutions/cloud-computing" rel=""&gt;cloud computing &lt;/a&gt; provider’s data center. So the real question is not whether such an &lt;strong&gt;architectural &lt;/strong&gt;model will be employed – it will – it’s &lt;em&gt;where will those data services reside?&lt;/em&gt; &lt;/p&gt;  &lt;p&gt;And the answer to that question doesn’t necessarily require a lot of technical discussion; ultimately that has to be a &lt;em&gt;business &lt;/em&gt;decision.  &lt;/p&gt;  &lt;p /&gt;  &lt;hr color="#808080" width="100%" noshade="noshade" /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt; &lt;center&gt;   &lt;table border="0" cellspacing="0" cellpadding="2" width="263"&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td valign="top" width="129"&gt;Connect with Lori: &lt;/td&gt;          &lt;td valign="top" width="132"&gt;Connect with &lt;a title="F5 Networks" href="http://www.f5.com/" rel="" target="_blank"&gt;F5&lt;/a&gt;: &lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td valign="top" width="129"&gt;&lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_linkedin[1]" border="0" alt="o_linkedin[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_linkedin.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_rss[1]" border="0" alt="o_rss[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_rss.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://www.facebook.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_facebook[1]" border="0" alt="o_facebook[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_twitter[1]" border="0" alt="o_twitter[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;/td&gt;          &lt;td valign="top" width="132"&gt; &lt;a href="http://www.facebook.com/f5networksinc"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_facebook[1]" border="0" alt="o_facebook[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_facebook.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://twitter.com/f5networks"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_twitter[1]" border="0" alt="o_twitter[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_twitter.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://www.slideshare.net/f5dotcom/"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_slideshare[1]" border="0" alt="o_slideshare[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_slideshare.png" width="24" height="24" /&gt;&lt;/a&gt; &lt;a href="http://www.youtube.com/f5networksinc"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="o_youtube[1]" border="0" alt="o_youtube[1]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/1086440/o_youtube.png" width="24" height="24" /&gt;&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/center&gt;  &lt;p align="center"&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 border="0" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" height="18" /&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 border="0" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" height="18" /&gt;&lt;/a&gt; &lt;script type="text/javascript" src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355"&gt;&lt;/script&gt;&lt;/p&gt;  &lt;p&gt;Related blogs &amp;amp; articles: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/19/the-myth-of-100-it-efficiency.aspx"&gt;&lt;img title="icon-html[2][6]" border="0" alt="icon-html[2][6]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheDatabaseTierisnotElastic_3A84/icon-html%5B2%5D%5B6%5D_5ae3def9-2495-4f99-980f-d4c0ceed85d2.gif" width="14" height="14" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/12/01/the-database-tier-is-not-elastic.aspx"&gt;The Database Tier is Not Elastic&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/19/the-myth-of-100-it-efficiency.aspx"&gt;&lt;img title="icon-html[2][6]" border="0" alt="icon-html[2][6]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheDatabaseTierisnotElastic_3A84/icon-html%5B2%5D%5B6%5D_5ae3def9-2495-4f99-980f-d4c0ceed85d2.gif" width="14" height="14" /&gt;&lt;/a&gt; &lt;a href="http://wiki.pageforest.com/#mckoss-3535"&gt;80-line JavaScript Web Application&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/19/the-myth-of-100-it-efficiency.aspx"&gt;&lt;img title="icon-html[2][6]" border="0" alt="icon-html[2][6]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheDatabaseTierisnotElastic_3A84/icon-html%5B2%5D%5B6%5D_5ae3def9-2495-4f99-980f-d4c0ceed85d2.gif" width="14" height="14" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/07/12/does-this-application-make-my-browser-look-fat.aspx"&gt;Does This Application Make My Browser Look Fat?&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/19/the-myth-of-100-it-efficiency.aspx"&gt;&lt;img title="icon-html[2][6]" border="0" alt="icon-html[2][6]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheDatabaseTierisnotElastic_3A84/icon-html%5B2%5D%5B6%5D_5ae3def9-2495-4f99-980f-d4c0ceed85d2.gif" width="14" height="14" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/07/20/http-now-serving-everything.aspx"&gt;HTTP Now Serving … Everything&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/19/the-myth-of-100-it-efficiency.aspx"&gt;&lt;img title="icon-html[2][6]" border="0" alt="icon-html[2][6]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheDatabaseTierisnotElastic_3A84/icon-html%5B2%5D%5B6%5D_5ae3def9-2495-4f99-980f-d4c0ceed85d2.gif" width="14" height="14" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/07/08/new-three-tiered-architecture-changes-everything.aspx"&gt;The New Distribution of The 3-Tiered Architecture Changes Everything&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/19/the-myth-of-100-it-efficiency.aspx"&gt;&lt;img title="icon-html[2][6]" border="0" alt="icon-html[2][6]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheDatabaseTierisnotElastic_3A84/icon-html%5B2%5D%5B6%5D_5ae3def9-2495-4f99-980f-d4c0ceed85d2.gif" width="14" height="14" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/02/02/the-great-client-server-architecture-myth.aspx"&gt;The Great Client-Server Architecture Myth&lt;/a&gt;  &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/19/the-myth-of-100-it-efficiency.aspx"&gt;&lt;img title="icon-html[2][6]" border="0" alt="icon-html[2][6]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheDatabaseTierisnotElastic_3A84/icon-html%5B2%5D%5B6%5D_5ae3def9-2495-4f99-980f-d4c0ceed85d2.gif" width="14" height="14" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/11/01/infrastructure-scalability-pattern-sharding-sessions.aspx"&gt;Infrastructure Scalability Pattern: Sharding Sessions&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/19/the-myth-of-100-it-efficiency.aspx"&gt;&lt;img title="icon-html[2][8]" border="0" alt="icon-html[2][8]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheDatabaseTierisnotElastic_3A84/icon-html%5B2%5D%5B8%5D_4e8f7a92-3f86-4578-956a-4f17d9bdd6e9.gif" width="14" height="14" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/10/04/infrastructure-scalability-pattern-partition-by-function-or-type.aspx"&gt;Infrastructure Scalability Pattern: Partition by Function or Type&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/19/the-myth-of-100-it-efficiency.aspx"&gt;&lt;img title="icon-html[2][10]" border="0" alt="icon-html[2][10]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheDatabaseTierisnotElastic_3A84/icon-html%5B2%5D%5B10%5D_0b1da341-b318-4001-ab57-db99f3220bae.gif" width="14" height="14" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/13/applying-scalability-patterns-to-infrastructure-architecture.aspx"&gt;Applying Scalability Patterns to Infrastructure Architecture&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/08/19/the-myth-of-100-it-efficiency.aspx"&gt;&lt;img title="icon-html[2][12]" border="0" alt="icon-html[2][12]" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheDatabaseTierisnotElastic_3A84/icon-html%5B2%5D%5B12%5D_f6b83ae6-161f-439a-abf7-b8c1aea9fd95.gif" width="14" height="14" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/22/sessions-sessions-everywhere.aspx"&gt;Sessions, Sessions Everywhere&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:eac317be-a893-4ed7-b7ef-f845f887bc18" class="wlWriterEditableSmartContent"&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/architecture" rel="tag"&gt;architecture&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/cloud+computing" rel="tag"&gt;cloud computing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SaaS" rel="tag"&gt;SaaS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/database+as+a+service" rel="tag"&gt;database as a service&lt;/a&gt;,&lt;a href="http://technorati.com/tags/salesforce.com" rel="tag"&gt;salesforce.com&lt;/a&gt;,&lt;a href="http://technorati.com/tags/database.com" rel="tag"&gt;database.com&lt;/a&gt;,&lt;a href="http://technorati.com/tags/mobile+applications" rel="tag"&gt;mobile applications&lt;/a&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/1092386.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2011/02/09/cloud-tiered-architectural-models-are-bad-except-when-they-arenrsquot.aspx</guid>
            <pubDate>Wed, 09 Feb 2011 11:07:44 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/1092386.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2011/02/09/cloud-tiered-architectural-models-are-bad-except-when-they-arenrsquot.aspx#feedback</comments>
            <slash:comments>2</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/1092386.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/1092386.aspx</trackback:ping>
        </item>
        <item>
            <title>WILS: Controllers and Gateways</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2010/11/29/wils-controllers-and-gateways.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;Why these two are very different but complementary technologies &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[
tweetmeme_source = 'f5networks';
tweetmeme_style = 'compact';
tweetmeme_service = 'bit.ly';
service_api = 'R_782503f4d9754dae4543383cee6ad988';
]]&gt;&lt;/script&gt;&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;em /&gt;&lt;/p&gt;  &lt;p&gt;&lt;em /&gt;&lt;/p&gt;  &lt;p&gt;Have you ever wondered why one network product is called a “controller” while another seemingly similar in function solution is called a “gateway”? There’s actually a very good reason for the naming and despite &lt;em&gt;appearing &lt;/em&gt;to act similarly they do fill different roles in an architecture and are often called upon to work together. &lt;/p&gt;  &lt;h3&gt;&lt;font color="#800000"&gt;GATEWAYS &lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;If you loosely defined a gateway as a “converter” or “translator” you’d be very close to nailing down a simple definition. Gateways act as mediators between disparate networks. In networking terms this is most commonly associated with routers (your “default gateway”) as it is designed as a transition point between two similar resources (networks) that generally utilize different protocols or in some way require a translation of messages/packets in order to traverse the network on the “other side” of the gateway. &lt;a title="Service Oriented Architecture definition " href="http://www.f5.com/glossary/soa.html" rel="" target="_blank"&gt;SOA&lt;/a&gt; (or XML) gateways, for example, provide a transition point between XML/Web Service endpoints and clients that can translate application messages from one format to another, either between different XML subsets or even between transport protocols: HTTP –&amp;gt; JMS, for example. &lt;/p&gt;  &lt;p&gt;Cloud gateways, and in particular cloud storage gateways of late, are products that mediate between enterprise users and applications (in some cases) and cloud-based storage services. These devices provide translation from an internal protocol such as SAMBA or CIFS to the specific cloud-based service “language” (API)  required to access data stored in cloud-based locations. &lt;/p&gt;  &lt;h3&gt;&lt;font color="#800000"&gt;CONTROLLER &lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;A “controller” has traditionally referred to devices that control (hence the name) the transfer of data between a computer and its peripheral devices, and vice versa. The use of controller in the data center/architectural context means much the same, with the caveat that the “peripherals” involved are the endpoints, i.e. the client and the server(s). This is why some folks fly into a rage when hearing an “application delivery controller” referred to as a “load balancer”. An &lt;a title="I CAN HAZ DEFINISHUN of SoftADC and vADC? " href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/03/11/soft-adc-vadc-definition.aspx" rel="" target="_blank"&gt;application delivery controller&lt;/a&gt; of course provides &lt;a title="" href="http://www.f5.com/glossary/load-balancing.html" rel=""&gt;load balancing&lt;/a&gt; services but it also &lt;u&gt;controls the transfer of data&lt;/u&gt; &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/ControllersversusGateways_99FD/image_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 10px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/ControllersversusGateways_99FD/image_thumb.png" width="349" height="220" /&gt;&lt;/a&gt; between the client and the servers (in myriad ways) as a means to provide other services as well, e.g. application and protocol security, acceleration, and optimization. &lt;/p&gt;  &lt;p&gt;Network-deployed controllers generally have more intelligence and flexibility built into them in terms of directing the flow of data. For example, a file virtualization controller governs the storage of files (data) across a variety of storage tiers based on rules specified by the business or operations staff. An application delivery controller can make a wealth of decisions regarding where to direct an HTTP request again based on rules specified by the business or operations staff. &lt;/p&gt;  &lt;h3&gt;&lt;font color="#800000"&gt;DIFFERENT but COMPLEMENTARY &lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;Often times an architecture will be comprised of both gateways and controllers, because the controllers often lack the translation capabilities of a gateway and the gateway lacks the intelligence and flexibility of the controller. Consider SOA gateways and application delivery controllers.  It is often the case that a “farm” of gateways is front-ended (load balanced) by an application delivery controller. This is true of many types of “gateways” because if you think about, the process of transforming data and protocols is intense and these devices were not necessarily designed with scale and volume in mind, but rather functionality or, in the case of XML gateways with the scale and performance of a single type of process: parsing XML. They are not necessarily designed with network stack security or intelligent routing &lt;em&gt;other &lt;/em&gt;than a specific, niche application. &lt;/p&gt;  &lt;p&gt;Similarly, the beginnings of a &lt;a href="http://devcentral.f5.com/weblogs/dmacvittie/archive/2010/09/21/certainly-cirtas-cloud-storage-gains-momentum.aspx"&gt;dual architecture comprising storage virtualization solutions and cloud storage gateways&lt;/a&gt; is beginning to emerge. This is because the storage virtualization solution (the controller) has the intelligence to make decisions regarding whether files/data should be stored locally or remotely, in a cloud-based storage environment. &lt;/p&gt;  &lt;p style="text-transform: uppercase; font-size: 10px"&gt;WILS: Write It Like Seth. Seth Godin always gets his point across with brevity and wit. WILS is an ATTEMPT TO BE concise about application delivery TOPICS AND just get straight to the point. NO DILLY DALLYING AROUND.&lt;/p&gt;  &lt;hr color="#808080" width="100%" noshade="noshade" /&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="100%"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="70%"&gt;Related blogs &amp;amp; articles:          &lt;br /&gt;          &lt;br /&gt;          &lt;ul&gt;           &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/03/11/soft-adc-vadc-definition.aspx"&gt;I CAN HAS DEFINISHUN of SoftADC and vADC?&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/06/30/intercloud-the-evolution-of-global-application-delivery.aspx"&gt;Intercloud: The Evolution of Global Application Delivery&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/01/04/the-application-delivery-deus-ex-machina.aspx"&gt;The Application Delivery Deus Ex Machina&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/Tutorials/TechTips/tabid/63/articleType/ArticleView/articleId/1086382/Dynamic-Intelligent-Application-Delivery-in-a-Distributed-Environment.aspx"&gt;Dynamic Intelligent Application Delivery in a Distributed ...&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/01/12/optimize-prime-the-self-optimizing-application-delivery-network.aspx"&gt;Optimize Prime: The Self-Optimizing Application Delivery Network&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/09/can-the-future-of-application-delivery-networks-be-found-in.aspx"&gt;Can the future of application delivery networks be found in neural ...&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/09/22/3634.aspx"&gt;ROI Justification(s) for Application Delivery Controllers&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/07/29/wils-load-balancing-and-ephemeral-port-exhaustion.aspx"&gt;WILS: Load Balancing and Ephemeral Port Exhaustion&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="https://devcentral.f5.com/weblogs/macvittie/category/4335.aspx"&gt;All WILS Entries on DevCentral &lt;/a&gt;  &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/09/23/concise-guide-to-load-balancing.aspx"&gt;WILS: The Concise Guide to *-Load Balancing&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/12/30/wils-what-does-it-mean-to-align-it-with-the.aspx"&gt;WILS: What Does It Mean to Align IT with the Business&lt;/a&gt; &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td valign="top" width="30%"&gt;         &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img border="0" 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" height="18" /&gt;&lt;/a&gt; &lt;a title="Follow F5 Networks on Twitter" href="http://tweepml.org/F5-Networks-Tweeple/"&gt;&lt;img border="0" src="http://tweepml.org/s/tweepml16.png" width="18" height="18" /&gt;&lt;/a&gt; &lt;a title="Follow F5 DevCentral on Twitter" href="http://tweepml.org/F5-DevCentral/"&gt;&lt;img border="0" src="http://tweepml.org/s/tweepml16.png" width="18" height="18" /&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" /&gt;&lt;/a&gt; &lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img border="0" 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" height="18" /&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" /&gt;&lt;/a&gt; &lt;a href="http://www.friendfeed.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="friendfeed" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InfrastructureasaServiceHowcontextawares_69CD/friendfeed_3.jpg" width="18" height="18" /&gt;&lt;/a&gt; &lt;a href="http://www.facebook.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="icon_facebook" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InfrastructureasaServiceHowcontextawares_69CD/icon_facebook_4.png" width="18" height="18" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p&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 border="0" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" height="18" /&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 border="0" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" height="18" /&gt;&lt;/a&gt; &lt;script type="text/javascript" src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355"&gt;&lt;/script&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:56134b69-8156-463b-abfe-ba07c5510944" class="wlWriterEditableSmartContent"&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/WILS" rel="tag"&gt;WILS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application+delivery" rel="tag"&gt;application delivery&lt;/a&gt;,&lt;a href="http://technorati.com/tags/controller" rel="tag"&gt;controller&lt;/a&gt;,&lt;a href="http://technorati.com/tags/gateway" rel="tag"&gt;gateway&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/XML" rel="tag"&gt;XML&lt;/a&gt;,&lt;a href="http://technorati.com/tags/load+balancing" rel="tag"&gt;load balancing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/network" rel="tag"&gt;network&lt;/a&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/1090368.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2010/11/29/wils-controllers-and-gateways.aspx</guid>
            <pubDate>Mon, 29 Nov 2010 14:24:00 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/1090368.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2010/11/29/wils-controllers-and-gateways.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/1090368.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/1090368.aspx</trackback:ping>
        </item>
        <item>
            <title>Infrastructure 2.0 + Cloud + IT as a Service = An Architectural Parfait</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/15/infrastructure-2-enables-cloud-enables-it-as-a-service.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;Infrastructure 2.0 ≠ &lt;a title="" href="http://www.f5.com/solutions/cloud-computing" rel=""&gt;cloud computing &lt;/a&gt; ≠ IT as a Service. There is a difference between Infrastructure 2.0 and cloud. There is also a difference between cloud and IT as a Service. But they do go together, like a parfait. And everybody likes a parfait…&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[
tweetmeme_source = 'f5networks';
tweetmeme_style = 'compact';
tweetmeme_service = 'bit.ly';
service_api = 'R_782503f4d9754dae4543383cee6ad988';
]]&gt;&lt;/script&gt;&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheSubtleDifferenceBetweenComponentandCl_25C8/image_14.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheSubtleDifferenceBetweenComponentandCl_25C8/image_thumb_6.png" width="240" height="214" /&gt;&lt;/a&gt; The introduction of the newest member of the cloud computing buzzword family is “IT as a Service.” It is &lt;a href="http://www.ebizq.net/blogs/ebizq_forum/2010/09/will-it-as-a-service-be-the-next-phase-for-the-cloud.php" target="_blank"&gt;understandably causing some confusion&lt;/a&gt; because, after all, isn’t that just another way to describe “private cloud”?  No, actually it isn’t. There’s a lot more to it than that, and it’s very applicable to both private and public models. Furthermore, equating “cloud computing” to “IT as a Service” does both a big a disservice as making synonyms of “Infrastructure 2.0” and “cloud computing.” These three [ concepts | models | technologies ] are highly intertwined and in some cases even interdependent, but they are not the same. &lt;/p&gt;  &lt;p&gt;In the simplest explanation possible: infrastructure 2.0 enables cloud computing which enables IT as a service. &lt;/p&gt;  &lt;p&gt;Now that we’ve got &lt;em&gt;that &lt;/em&gt;out of the way, let’s dig in. &lt;/p&gt;  &lt;h3&gt;&lt;font color="#800000"&gt;ENABLE DOES NOT MEAN EQUAL TO &lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;One of the core issues seems to be the rush to equate “enable” with “equal”. There is a relationship between these three technological concepts but they are in no wise equivalent nor should be they be treated as such. Like &lt;a title="Service Oriented Architecture definition " href="http://www.f5.com/glossary/soa.html" rel="" target="_blank"&gt;SOA&lt;/a&gt;, the differences between them revolve primarily around the level of abstraction and the layers at which they operate. Not the layers of the OSI model or the technology stack, but the layers of a data center &lt;em&gt;architecture. &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Let’s start at the bottom, shall we? &lt;/p&gt;  &lt;h4&gt;&lt;font color="#800000"&gt;INFRASTRUCTURE 2.0 &lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;At the very lowest layer of the architecture is &lt;a href="http://www.infra20.com" target="_blank"&gt;Infrastructure 2.0&lt;/a&gt;. Infrastructure 2.0 is focused on enabling dynamism and collaboration across the network and application delivery network infrastructure. It is the way in which traditionally disconnected (from a communication and management point of view) data center foundational components are imbued with the ability to connect and collaborate. This is primarily accomplished via &lt;a href="http://devcentral.f5.com/iControl" target="_blank"&gt;open, standards-based APIs&lt;/a&gt; that provide a granular set of operational functions that can be invoked from a variety of programmatic methods such as orchestration systems, custom applications, and via integration with traditional data center management solutions. Infrastructure 2.0 is about making the network &lt;em&gt;smarter &lt;/em&gt;both from a management and a run-time (execution) point of view, but in the case of its relationship to cloud and &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/08/you-canrsquot-have-it-as-a-service-until-it-has.aspx" target="_blank"&gt;IT as a Service&lt;/a&gt; the view is primarily focused on &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheSubtleDifferenceBetweenComponentandCl_25C8/image_10.png"&gt;&lt;img style="border-right-width: 0px; margin: 10px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheSubtleDifferenceBetweenComponentandCl_25C8/image_thumb_4.png" width="549" height="352" /&gt;&lt;/a&gt;management. &lt;/p&gt;  &lt;p&gt;Infrastructure 2.0 includes the service-enablement of everything from routers to switches, from load balancers to &lt;a href="http://www.f5.com/solutions/acceleration" target="_blank"&gt;application acceleration&lt;/a&gt;, from firewalls to web &lt;a href="http://www.f5.com/solutions/security/" target="_blank"&gt;application security&lt;/a&gt; components to server (physical and virtual) infrastructure. It is, distilled to its core essence, API-enabled components. &lt;/p&gt;  &lt;h4&gt;&lt;font color="#800000"&gt;CLOUD COMPUTING &lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;Cloud computing is the closest to SOA in that it is about enabling operational services in much the same way as SOA was about enabling business services. Cloud computing takes the infrastructure layer services and orchestrates them together to codify an operational process that provides a more efficient means by which compute, network, storage, and security resources can be provisioned and managed. This, like Infrastructure 2.0, is an enabling technology. Alone, these operational services are generally discrete and are packaged up specifically as the means to an end – on-demand provisioning of IT services. &lt;/p&gt;  &lt;p&gt;Cloud computing is the service-enablement of operational services and also carries along the notion of an API. In the case of cloud computing, this API serves as a framework through which specific operations can be accomplished in a push-button like manner. &lt;/p&gt;  &lt;h4&gt;&lt;font color="#800000"&gt;IT as a SERVICE &lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;At the top of our technology pyramid, as it is likely obvious at this point we are building up to the “pinnacle” of IT by laying more aggressively focused layers atop one another, we have IT as a Service. IT as a Service, unlike cloud computing, is designed not only to be consumed by other IT-minded folks, but also by (allegedly) business folks. IT as a Service broadens the provisioning and management of resources and begins to include not only operational services but those services that are more, well, businessy, such as identity management and &lt;em&gt;access &lt;/em&gt;to resources. &lt;/p&gt;  &lt;p&gt;IT as a Service builds on the services provided by cloud computing, which is often called a “cloud framework” or a “cloud API” and provides the means by which resources can be provisioned and managed. Now that &lt;em&gt;sounds &lt;/em&gt;an awful lot like “cloud computing” but the abstraction is a bit higher than what we expect with cloud. Even in a cloud computing API we are steal interacting more directly with operational and compute-type resources. We’re provisioning, primarily, infrastructure services but we are doing so at a much higher layer and in a way that makes it easy for both business and application developers and analysts to do so. &lt;/p&gt;  &lt;p&gt;An example is probably in order at this point. &lt;/p&gt;  &lt;h3&gt;&lt;font color="#800000"&gt;THE THREE LAYERS in the ARCHITECTURAL PARFAIT &lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheSubtleDifferenceBetweenComponentandCl_25C8/image_12.png"&gt;&lt;img style="border-right-width: 0px; margin: 10px 15px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/TheSubtleDifferenceBetweenComponentandCl_25C8/image_thumb_5.png" width="479" height="371" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p /&gt;  &lt;p&gt;Let us imagine a simple “application” which itself requires only one server and which must be available at all times. &lt;/p&gt;  &lt;p&gt;That’s the “service” IT is going to provide to the business. &lt;/p&gt;  &lt;p&gt;In order to accomplish this seemingly simple task, there’s a lot that actually has to go on under the hood, within the bowels of IT. &lt;/p&gt;  &lt;h4&gt;&lt;font color="#800000"&gt;LAYER ONE &lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;Consider, if you will, what fulfilling that request means. You need at least two servers and a &lt;a title="" href="http://www.f5.com/glossary/load-balancer.html" rel=""&gt;Load balancer&lt;/a&gt;, you need a server and some storage, and you need – albeit unknown to the business user – firewall rules to ensure the application is only accessible to those whom you designate. So at the bottom layer of the stack (Infrastructure 2.0) you need a set of components that match these functions &lt;em&gt;and &lt;/em&gt;they must be all be enabled with an API (or at a minimum by able to be automated via traditional scripting methods). Now the actual task of configuring a load balancer is not just a single API call. Ask &lt;a href="http://www.rackspace.com" target="_blank"&gt;RackSpace&lt;/a&gt;, or &lt;a href="http://www.gogrid.com" target="_blank"&gt;GoGrid&lt;/a&gt;, or &lt;a href="http://www.terremark.com" target="_blank"&gt;Terremark&lt;/a&gt;, or any other cloud provider. It takes multiple steps to authenticate and configure – in the right order – that component. The same is true of many components at the infrastructure layer: the APIs are necessarily granular enough to provide the flexibility necessary to be combined in a way as to be customizable for each unique environment in which they may be deployed. So what you end up with is a set of infrastructure &lt;em&gt;services &lt;/em&gt;that comprise the appropriate API calls for each component based on the specific operational policies in place. &lt;/p&gt;  &lt;h4&gt;&lt;font color="#800000"&gt;LAYER TWO &lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;At the next layer up you’re providing even more abstract frameworks. The “&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/07/27/the-world-doesnrsquot-care-about-apis.aspx" target="_blank"&gt;cloud API&lt;/a&gt;” at this layer may provide services such as “auto-scaling” that require a great deal of configuration and registration of components with other components. There’s automation and orchestration occurring at this layer of the IT Service Stack, as it were, that is much more complex but narrowly focused than at the previous infrastructure layer. It is at &lt;em&gt;this &lt;/em&gt;layer that the services become more customized and able to provide business and customer specific options. It is also at this layer where things become more operationally focused, with the provisioning of “application resources” comprising perhaps the provisioning of both compute and storage resources. This layer also lays the foundation for metering and monitoring (cause you want to provide visibility, right?) which essentially overlays, i.e. makes a service of, multiple infrastructure resource monitoring services. &lt;/p&gt;  &lt;h4&gt;&lt;font color="#800000"&gt;LAYER THREE &lt;/font&gt;&lt;/h4&gt;  &lt;p&gt;At the top layer is IT as a Service, and this is where systems become very abstracted and get turned into the &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/05/07/cloud-computing-is-not-burger-king.-you-canrsquot-have-it.aspx" target="_blank"&gt;IT King “A La Carte” Menu&lt;/a&gt; that is the ultimate goal according to everyone who’s anyone (and a few people who aren’t). This layer offers an interface to the cloud in such a way as to make self-service possible. It &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/12/04/next-generation-management-of-data-centers-should-be-modeled-on-social.aspx" target="_blank"&gt;may not be Infrabook or even very pretty&lt;/a&gt;, but as long as it gets the job done cosmetics are just enhancing the value of what exists in the first place. IT as a Service is the culmination of all the work done at the previous layers to fine-tune services until they are at the point where they are consumable – in the sense that they are easy to understand and require no real technical understanding of what’s actually going on. After all, a business user or application developer doesn’t really need to know &lt;em&gt;how &lt;/em&gt;the server and storage resources are provisioned, just in what sizes and how much it’s going to cost. &lt;/p&gt;  &lt;p&gt;IT as a Service ultimately enables the end-user – whomever that may be – to easily “order” IT services to fulfill the application specific requirements associated with an application deployment. That means availability, scalability, security, monitoring, and performance. &lt;/p&gt;  &lt;h3&gt;&lt;font color="#800000"&gt;A DYNAMIC DATA CENTER ARCHITECTURE &lt;/font&gt;&lt;/h3&gt;  &lt;p&gt;One of the first questions that should come to mind is: why does it matter? After all, one could cut out the “cloud computing” layer and go straight from infrastructure services to IT as a Service. While that’s &lt;em&gt;technically&lt;/em&gt; true it eliminates one of the biggest benefits of a layered and highly abstracted architecture : &lt;strong&gt;agility&lt;/strong&gt;. By presenting each layer to the layer above as services, we are effectively employing the principles of a service-oriented architecture and separating the implementation from the interface. This provides the ability to modify the implementation without impacting the interface, which means less down-time and very little – if any – modification in layers above the layer being modified. This translates into, at the lowest level, vender agnosticism and the ability to avoid vendor-lock in. If two components, say a &lt;a href="http://www.juniper.net" target="_blank"&gt;Juniper&lt;/a&gt; switch and a &lt;a href="http://www.cisco.com" target="_blank"&gt;Cisco&lt;/a&gt; switch, are enabled with the means by which they can be enabled as services, then it becomes possible to switch the two at the &lt;em&gt;implementation &lt;/em&gt;layer without requiring the changes to trickle upward through the interface and into the higher layers of the architecture. &lt;/p&gt;  &lt;p&gt;It’s polymorphism applied to an data center operation rather than a single object’s operations, to put it in developer’s terms. It’s SOA applied to a data center rather than an application, to put it in an architect’s terms. &lt;/p&gt;  &lt;p&gt;It’s an architectural parfait and, as we all know, everybody loves a parfait, right? &lt;/p&gt;  &lt;hr color="#808080" width="100%" noshade="noshade" /&gt;  &lt;table border="0" cellspacing="0" cellpadding="2" width="100%"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="70%"&gt;Related blogs &amp;amp; articles:          &lt;br /&gt;          &lt;br /&gt;          &lt;ul class="ArrowList"&gt;           &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/13/applying-scalability-patterns-to-infrastructure-architecture.aspx"&gt;Applying Scalability Patterns to Infrastructure Architecture&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/04/09/the-other-hybrid-cloud-architecture.aspx"&gt;The Other Hybrid Cloud Architecture&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/07/08/new-three-tiered-architecture-changes-everything.aspx"&gt;The New Distribution of The 3-Tiered Architecture Changes Everything&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/10/infrastructure-2.0-aligning-the-network-with-the-business-and-the.aspx"&gt;Infrastructure 2.0: Aligning the network with the business (and ...&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/01/28/infrastructure-2.0-as-a-matter-of-fact-that-isnt-what.aspx"&gt;Infrastructure 2.0: As a matter of fact that isn't what it means&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="https://devcentral.f5.com/weblogs/macvittie/archive/2009/01/06/infrastructure-2.0-flexibility-is-key-to-dynamic-infrastructure.aspx"&gt;Infrastructure 2.0: Flexibility is Key to Dynamic Infrastructure&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/24/infrastructure-2.0-the-diseconomy-of-scale-virus.aspx"&gt;Infrastructure 2.0: The Diseconomy of Scale Virus&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="https://devcentral.f5.com/weblogs/macvittie/category/1082349.aspx"&gt;Lori MacVittie - Infrastructure 2.0&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/01/18/infrastructure-2.0-squishy-name-for-a-squishy-concept.aspx"&gt;Infrastructure 2.0: Squishy Name for a Squishy Concept&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="https://devcentral.f5.com/weblogs/macvittie/archive/2010/02/26/pay-no-attention-to-the-infrastructure-behind-the-cloudy-curtain.aspx"&gt;Pay No Attention to the Infrastructure Behind the Cloudy Curtain&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/22/making-infrastructure-2.0-reality-may-require-new-standards.aspx"&gt;Making Infrastructure 2.0 reality may require new standards&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/08/18/the-inevitable-eventual-consistency-of-cloud-computing.aspx"&gt;The Inevitable Eventual Consistency of Cloud Computing&lt;/a&gt; &lt;/li&gt;            &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/05/07/cloud-computing-is-not-burger-king.-you-canrsquot-have-it.aspx"&gt;Cloud computing is not Burger King. You can't have it your way. Yet.&lt;/a&gt; &lt;/li&gt;         &lt;/ul&gt;       &lt;/td&gt;        &lt;td valign="top" width="30%"&gt;         &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img border="0" 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" height="18" /&gt;&lt;/a&gt; &lt;a title="Follow F5 Networks on Twitter" href="http://tweepml.org/F5-Networks-Tweeple/"&gt;&lt;img border="0" src="http://tweepml.org/s/tweepml16.png" width="18" height="18" /&gt;&lt;/a&gt; &lt;a title="Follow F5 DevCentral on Twitter" href="http://tweepml.org/F5-DevCentral/"&gt;&lt;img border="0" src="http://tweepml.org/s/tweepml16.png" width="18" height="18" /&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" /&gt;&lt;/a&gt; &lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img border="0" 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" height="18" /&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" /&gt;&lt;/a&gt; &lt;a href="http://www.friendfeed.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="friendfeed" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InfrastructureasaServiceHowcontextawares_69CD/friendfeed_3.jpg" width="18" height="18" /&gt;&lt;/a&gt; &lt;a href="http://www.facebook.com/lmacvittie"&gt;&lt;img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="icon_facebook" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InfrastructureasaServiceHowcontextawares_69CD/icon_facebook_4.png" width="18" height="18" /&gt;&lt;/a&gt; &lt;/p&gt;          &lt;p&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 border="0" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" width="125" height="18" /&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 border="0" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" width="125" height="18" /&gt;&lt;/a&gt; &lt;script type="text/javascript" src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355"&gt;&lt;/script&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p /&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:67cb5b15-ec96-4530-8bc4-9ed235467fa6" class="wlWriterEditableSmartContent"&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+computing" rel="tag"&gt;cloud computing&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/IaaS" rel="tag"&gt;IaaS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IT+as+a+Service" rel="tag"&gt;IT as a Service&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/services" rel="tag"&gt;services&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/infrastructure+2.0" rel="tag"&gt;infrastructure 2.0&lt;/a&gt;,&lt;a href="http://technorati.com/tags/infrastructure" rel="tag"&gt;infrastructure&lt;/a&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/1088426.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/15/infrastructure-2-enables-cloud-enables-it-as-a-service.aspx</guid>
            <pubDate>Wed, 15 Sep 2010 14:42:39 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/1088426.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/15/infrastructure-2-enables-cloud-enables-it-as-a-service.aspx#feedback</comments>
            <slash:comments>1</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/1088426.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/1088426.aspx</trackback:ping>
        </item>
        <item>
            <title>Applying Scalability Patterns to Infrastructure Architecture</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/13/applying-scalability-patterns-to-infrastructure-architecture.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;Too often software design patterns are overlooked by network and application delivery network architects but these patterns are often equally applicable to addressing a broad range of architectural challenges in the application delivery tier of the data center. &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[
tweetmeme_source = 'f5networks';
tweetmeme_style = 'compact';
tweetmeme_service = 'bit.ly';
service_api = 'R_782503f4d9754dae4543383cee6ad988';
]]&gt;&lt;/script&gt;&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;       &lt;/p&gt;
&lt;p&gt; The “&lt;a href="http://highscalability.com/" target="_blank"&gt;High Scalability&lt;/a&gt;” blog is fast becoming one of my favorite reads. Last week did not disappoint with a post &lt;a href="http://highscalability.com/blog/2010/9/8/4-general-core-scalability-patterns.html" target="_blank"&gt;highlighting a set of scalability design patterns&lt;/a&gt; that was, apparently, inspired by yet another High Scalability post on “&lt;a href="http://highscalability.com/blog/2010/8/23/6-ways-to-kill-your-servers-learning-how-to-scale-the-hard-w.html" target="_blank"&gt;6 Ways to Kill Your Servers: Learning to Scale the Hard Way.&lt;/a&gt;”  &lt;/p&gt;
&lt;span style="float: left;"&gt;
&lt;p align="center"&gt;&lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/ApplyingScalabilityPatternsinInfrastruct_BE06/cheese-curds_2.jpg"&gt;&lt;img width="240" height="160" border="0" style="border-width: 0px; margin: 0px 15px 0px 0px; display: inline;" title="cheese-curds" alt="cheese-curds" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/ApplyingScalabilityPatternsinInfrastruct_BE06/cheese-curds_thumb.jpg" /&gt;&lt;/a&gt;       &lt;br /&gt;
&lt;font size="1" style="text-transform: uppercase;"&gt;Credit:Michael Chow/azcentral.com&lt;/font&gt; &lt;/p&gt;
&lt;/span&gt;
&lt;p&gt;This particular post caught my attention primarily because although I’ve touched on many of these patterns in the past, I’ve never thought to call them &lt;/p&gt;
&lt;p&gt;what they are: scalability patterns. That’s probably a side-effect of forgetting that &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/08/30/cloud-is-not-rocket-science-but-it-is-computer-science.aspx" target="_blank"&gt;building an architecture of any kind is at its core computer science&lt;/a&gt; and thus algorithms and design patterns are applicable to both micro- and macro-architectures, such as those used when designing a scalable architecture. &lt;/p&gt;
&lt;p&gt;This is actually more common than you’d think, as it’s rarely the case that a network guy and a developer sit down and discuss scalability patterns over beer and deep fried cheese curds (hey, I live in Wisconsin and it’s my blog post so just stop making faces until you’ve tried it). Developers and architects sit over &lt;em&gt;there &lt;/em&gt;and think about how to design a scalable application from the perspective of its components – databases, application servers, middleware, etc… Network architects sit over &lt;em&gt;here&lt;/em&gt; and think about how to scale an application from the perspective of network components – load balancers, trunks, VLANs, and switches. The thing is that the scalability patterns leveraged by developers and architects can almost universally be abstracted and applied to the application delivery network – the set of components integrated as a means to ensure availability, performance, and security of applications. That’s why devops is so important and why devops has to bring dev into ops as much as its necessary to bring some ops into dev. There needs to be more cross-over, more discussion, between the two groups if not an entirely new group in order to leverage the knowledge and skills that each has in new and innovative ways. &lt;/p&gt;
&lt;h3&gt;&lt;font color="#800000"&gt;ABSTRACT and APPLY &lt;/font&gt;&lt;/h3&gt;
&lt;p&gt;So the aforementioned post is just a summary of a longer and more detailed post, but for purposes of &lt;em&gt;this &lt;/em&gt;post I think the summary will do with the caveat that the original, “&lt;a href="http://thebigsoftwareblog.blogspot.com/2010/08/scalability-fundamentals-and.html"&gt;Scalability patterns and an interesting story...&lt;/a&gt;” by Jesper Söderlund is a great read that should definitely be on your “to read” list in the very near future. &lt;/p&gt;
&lt;p&gt;For now, let’s briefly touch on the scalability patterns and sub-patterns Jesper described with some commentary on how they fit into scalability from a network and application delivery network perspective. The original text from the High Scalability blog are in &lt;font color="#800000"&gt;red(dish)&lt;/font&gt; text. &lt;/p&gt;
&lt;blockquote&gt;
&lt;li&gt;&lt;font color="#800000"&gt;&lt;strong&gt;Load distribution&lt;/strong&gt; - Spread the system load across multiple processing units&lt;/font&gt;         &lt;br /&gt;
&lt;br /&gt;
This is a horizontal scaling strategy that is well-understood. It may take the form of “clustering” or “load balancing” but in both cases it is essentially an aggregation coupled with a distributed processing model. The secret sauce is almost always in the way in which the aggregation point (&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/06/17/what-is-a-strategic-point-of-control-anyway.aspx" target="_blank"&gt;strategic point of control&lt;/a&gt;) determines how best to distribute the load across the “multiple processing units.”   &lt;br /&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;font color="#800000"&gt;&lt;strong&gt;&lt;a title="" href="http://www.f5.com/glossary/load-balancing.html" rel=""&gt;load balancing&lt;/a&gt; / load sharing&lt;/strong&gt; - Spreading the load across many components with equal properties for handling the request&lt;/font&gt;             &lt;br /&gt;
    This is what most people think of when they hear “load balancing”, it’s just that at the application delivery layer we think in terms of directing application requests (usually HTTP but can just about any application protocol) to equal “servers” (physical or virtual) that handle the request. This is a “scaling out” approach that is most typically associated today with &lt;a title="" href="http://www.f5.com/solutions/cloud-computing" rel=""&gt;cloud computing &lt;/a&gt; and auto-scaling: launch additional clones of applications as virtual instances in order to increase the total capacity of an application. The load balancing distributes requests across all instances based on the configured load balancing algorithm.             &lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;font color="#800000"&gt;&lt;strong&gt;Partitioning&lt;/strong&gt; - Spreading the load across many components by routing an individual request to a component that owns that data specific               &lt;br /&gt;
    &lt;/font&gt;&lt;font color="#000000"&gt;This is really where the architecture comes in and where efficiency and performance can be dramatically increased in an &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/ApplyingScalabilityPatternsinInfrastruct_BE06/image_2.png"&gt;&lt;img width="373" height="233" border="0" align="right" style="border-width: 0px; margin: 5px 0px; display: inline;" title="image" alt="image" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/ApplyingScalabilityPatternsinInfrastruct_BE06/image_thumb.png" /&gt;&lt;/a&gt; application delivery architecture. Rather than each instance of an application being identical to every other one, each instance (or pool of instances) is designated as the “owner”. This allows for devops to tweak configurations of the underlying operating system, web and application server software for the specific type of request being handled. This is, also, where the &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/08/12/3529.aspx" target="_blank"&gt;difference between “application switching” and “load balancing”&lt;/a&gt; becomes abundantly clear as “application switching” is used as a means to determine where to route a particular request which is/can be then load balanced across a pool of resources. It’s a subtle distinction but an important one when architecting not only efficient and fast but resilient and reliable delivery networks. &lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/blockquote&gt;
&lt;ul&gt;
    &lt;ul&gt;
        &lt;ul&gt;
            &lt;ul&gt;
                &lt;li&gt;&lt;font color="#800000"&gt;&lt;strong&gt;Vertical partitioning&lt;/strong&gt; - Spreading the load across the functional boundaries of a problem space, separate functions being handled by different processing units&lt;/font&gt;             &lt;br /&gt;
                When it comes to routing application requests we really don’t separate by function unless that function is easily associated with a URI. The most common implementation of vertical partitioning at the application switching layer will be by content. Example: creating resource pools based on the Content-Type HTTP header: images in pool “image servers” and content in pool “content servers”. This allows for greater optimization of the web/application server based on the usage pattern and the content type, which can often also be related to a range of sizes. This also, in a distributed environment, allows architects to leverage say cloud-based storage for static content while maintaining dynamic content (and its associated data stores) on-premise. This kind of hybrid cloud strategy has been postulated as one of the most common use cases since the first wispy edges of cloud were seen on the horizon.             &lt;br /&gt;
                &lt;/li&gt;
                &lt;li&gt;&lt;font color="#800000"&gt;&lt;strong&gt;Horizontal partitioning &lt;/strong&gt;- Spreading a single type of data element across many instances, according to some partitioning key, e.g. hashing the player id and doing a modulus operation, etc. Quite often referred to as sharding.&lt;/font&gt;             &lt;br /&gt;
                This sub-pattern is inline with the way in which persistence-based load balancing is accomplished, as well as the handling of object caching. This also describes the way in which you might direct requests received from specific users to designated instances that are specifically designed to handle their unique needs or requirements, such as the separation of “gold” users from “free” users based on some partitioning key which in HTTP land is often a cookie containing the relevant data. &lt;/li&gt;
            &lt;/ul&gt;
        &lt;/ul&gt;
    &lt;/ul&gt;
&lt;/ul&gt;
&lt;blockquote&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;font color="#800000"&gt;&lt;strong&gt;Queuing and batch&lt;/strong&gt; - Achieve efficiencies of scale by processing batches of data, usually because the overhead of an operation is amortized across multiple request  &lt;br /&gt;
    &lt;font color="#000000"&gt;I admit defeat in applying this sub-pattern to application delivery. I know, you’re surprised, but this really is very specific to middleware and aside from the ability to leverage queuing for Quality of Service (QoS) at the delivery layer this one is just not fitting in well. If you have an idea how this fits, feel free to let me know – I’d love to be able to apply &lt;em&gt;all &lt;/em&gt;the scalability patterns and sub-patterns to a broader infrastructure architecture. &lt;/font&gt;          &lt;br /&gt;
    &lt;/font&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;font color="#800000"&gt;&lt;strong&gt;Relaxing of data constraints &lt;/strong&gt;- Many different techniques and trade-offs with regards to the immediacy of processing / storing / access to data fall in this strategy&lt;/font&gt;         &lt;br /&gt;
        This one takes us to storage virtualization and tiering and the way in which data storage and access is intelligently handled in varying properties based on usage and prioritization of the content. If one relaxes the constraints around access times for certain types of data, it is possible to achieve a higher efficiency use of storage by subjugating some content to secondary and tertiary tiers which may not have the same performance attributes as your primary storage tier. And make no mistake, storage virtualization is a part of the application delivery network – has been since its inception – and as cloud computing and virtualization have grown so has the importance of a well-defined storage tiering strategy.         &lt;br /&gt;
        &lt;br /&gt;
        We can bring this back up to the application layer by considering that a relaxation of data constraints with regards to immediacy of access can be applied by architecting a solution that separates data &lt;em&gt;reads&lt;/em&gt; from &lt;em&gt;writes&lt;/em&gt;. This implies eventual consistency, as data updated/written to one database must necessarily be replicated to the databases from which reads are, well, read, but that’s part of relaxing a data constraint. This is a technique used by many large, social sites such as &lt;a href="http://www.facebook.com" target="_blank"&gt;Facebook&lt;/a&gt; and &lt;a href="http://highscalability.com/plentyoffish-architecture" target="_blank"&gt;Plenty of Fish&lt;/a&gt; in order to scale the system to the millions upon millions of requests it handles in any given hour.         &lt;br /&gt;
        &lt;/li&gt;
        &lt;li&gt;&lt;font color="#800000"&gt;&lt;strong&gt;Parallelization&lt;/strong&gt; - Work on the same task in parallel on multiple processing units&lt;/font&gt;         &lt;br /&gt;
        I’m not going to be able to apply this one either, unless it was in conjunction with optimizing something like &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/12/02/grokking-the-goodness-of-mapreduce-and-spdy.aspx" target="_blank"&gt;MapReduce and SPDY&lt;/a&gt;. I’ve been thinking hard about this one, and the problem is the implication that “same task” is really the “same task”, and that processing is distributed. That said, if the actual task can be performed by multiple processing units, then an &lt;a title="I CAN HAZ DEFINISHUN of SoftADC and vADC? " href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/03/11/soft-adc-vadc-definition.aspx" rel="" target="_blank"&gt;application delivery controller&lt;/a&gt; could certainly be configured to recognize that a specific URL should be essentially sent to some other proxy/solution that performs the actual distribution, but the processing model here deviates sharply from the request-reply paradigm under which most applications today operate. &lt;/li&gt;
    &lt;/ul&gt;
    &lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;h3&gt;&lt;font color="#800000"&gt;DEVOPS CAN MAKE THIS HAPPEN &lt;/font&gt;&lt;/h3&gt;
&lt;p&gt;I hate to sound-off too much on the “devops” trumpet, but one of the primary ways in which devops will be of significant value in the future is exactly in this type of practical implementation. Only by recognizing that many architectural patterns are applicable to not only application but infrastructure architecture can we start to apply a whole lot of “lessons that have already been learned” by developers and architects to emerging infrastructure architectural models. This abstraction and application from well-understood patterns in application design and architecture will be invaluable in designing the new network; the next iteration of network theory and implementation that will allow it to scale along with the applications it is delivering. &lt;/p&gt;
&lt;hr width="100%" noshade="noshade" color="#808080" /&gt;
&lt;table width="100%" cellspacing="0" cellpadding="2" border="0"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td width="70%" valign="top"&gt;Related blogs &amp;amp; articles:          &lt;br /&gt;
            &lt;br /&gt;
            &lt;ul class="ArrowList"&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/08/30/cloud-is-not-rocket-science-but-it-is-computer-science.aspx"&gt;Cloud is not Rocket Science but it is Computer Science&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/03/29/2799.aspx"&gt;Implementing SOA Patterns: The Router&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/05/14/2834.aspx"&gt;Implementing SOA Patterns: The Service Firewall&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2007/04/03/2800.aspx"&gt;Implementing SOA Patterns: Input/Output Validator&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/Tags/interstitial%20request%20pattern/default.aspx"&gt;Lori MacVittie - interstitial request pattern&lt;/a&gt; (AJAX) &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/07/15/business-layer-load-balancing.aspx"&gt;Business-Layer Load Balancing&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="https://devcentral.f5.com/weblogs/macvittie/archive/2010/04/20/i-find-your-lack-of-win-disturbing.aspx"&gt;I Find Your Lack of Win Disturbing&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="https://devcentral.f5.com/weblogs/macvittie/archive/2008/11/25/cloud-computing-vertical-scalability-is-still-your-problem.aspx"&gt;Cloud Computing: Vertical Scalability is Still Your Problem&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/27/vertical-scalability-cloud-computing-style.aspx"&gt;Vertical Scalability Cloud Computing Style&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/07/10/scalability-only-one-half-the-reliability-equation.aspx"&gt;Scalability Only One Half the Reliability Equation&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/15/automating-scalability-and-high-availability-services.aspx"&gt;Automating scalability and high availability services&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/06/23/service-virtualization-helps-localize-impact-of-elastic-scalability.aspx"&gt;Service Virtualization Helps Localize Impact of Elastic Scalability&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/07/01/3416.aspx"&gt;Web 2.0: Integration, APIs, and Scalability&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/28/to-take-advantage-of-cloud-computing-you-must-unlearn.aspx"&gt;To Take Advantage of Cloud Computing You Must Unlearn, Luke.&lt;/a&gt;&lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/jhendrickson/archive/2009/09/18/statistics-collection-and-management-pack-scalability.aspx"&gt;Statistics Collection and Management Pack Scalability&lt;/a&gt;&lt;/li&gt;
            &lt;/ul&gt;
            &lt;br /&gt;
            &lt;/td&gt;
            &lt;td width="30%" valign="top"&gt;
            &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img width="18" height="18" border="0" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" /&gt;&lt;/a&gt; &lt;a title="Follow F5 Networks on Twitter" href="http://tweepml.org/F5-Networks-Tweeple/"&gt;&lt;img width="18" height="18" border="0" alt="" src="http://tweepml.org/s/tweepml16.png" /&gt;&lt;/a&gt; &lt;a title="Follow F5 DevCentral on Twitter" href="http://tweepml.org/F5-DevCentral/"&gt;&lt;img width="18" height="18" border="0" alt="" src="http://tweepml.org/s/tweepml16.png" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img border="0" alt="" src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" /&gt;&lt;/a&gt; &lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img width="18" height="18" border="0" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img border="0" alt="" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" /&gt;&lt;/a&gt; &lt;a href="http://www.friendfeed.com/lmacvittie"&gt;&lt;img width="18" height="18" border="0" style="border-width: 0px;" alt="friendfeed" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InfrastructureasaServiceHowcontextawares_69CD/friendfeed_3.jpg" /&gt;&lt;/a&gt; &lt;a href="http://www.facebook.com/lmacvittie"&gt;&lt;img width="18" height="18" border="0" style="border-width: 0px;" alt="icon_facebook" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InfrastructureasaServiceHowcontextawares_69CD/icon_facebook_4.png" /&gt;&lt;/a&gt; &lt;/p&gt;
            &lt;p&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 width="125" height="18" border="0" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" /&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 width="125" height="18" border="0" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" /&gt;&lt;/a&gt; &lt;script type="text/javascript" src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355"&gt;&lt;/script&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div style="margin: 0px; padding: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a1803c41-8cff-4bee-88f5-ac45ad0732e4" class="wlWriterEditableSmartContent"&gt;&lt;em&gt;&lt;em&gt;&lt;em&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/devops" rel="tag"&gt;devops&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/scalability+domain" rel="tag"&gt;scalability domain&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/design+patterns" rel="tag"&gt;design patterns&lt;/a&gt;,&lt;a href="http://technorati.com/tags/load+balancing" rel="tag"&gt;load balancing&lt;/a&gt;,&lt;a href="http://technorati.com/tags/application+switching" rel="tag"&gt;application switching&lt;/a&gt;,&lt;a href="http://technorati.com/tags/computer+science" rel="tag"&gt;computer science&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/em&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/1088421.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/13/applying-scalability-patterns-to-infrastructure-architecture.aspx</guid>
            <pubDate>Mon, 13 Sep 2010 09:51:37 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/1088421.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/13/applying-scalability-patterns-to-infrastructure-architecture.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/1088421.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/1088421.aspx</trackback:ping>
        </item>
        <item>
            <title>You Can&amp;rsquo;t Have IT as a Service Until IT Has Infrastructure as a Service</title>
            <link>http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/08/you-canrsquot-have-it-as-a-service-until-it-has.aspx</link>
            <description>&lt;p&gt;&lt;em&gt;The underlying premise of delivering information technology “as a service” is that the services exist to be delivered in the first place. &lt;/em&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
 
&lt;p&gt;&lt;script type="text/javascript"&gt;&lt;![CDATA[
tweetmeme_source = 'f5networks';
tweetmeme_style = 'compact';
tweetmeme_service = 'bit.ly';
service_api = 'R_782503f4d9754dae4543383cee6ad988';
]]&gt;&lt;/script&gt;&lt;script type="text/javascript" src="http://tweetmeme.com/i/scripts/button.js"&gt;&lt;/script&gt;&lt;/p&gt;
 
&lt;p&gt; Oh, it’s on now. IT has been served with a declaration of intent and that is to eliminate IT and its associated bottlenecks that are apparently at the heart of a long application deployment lifecycle. Ignoring reality, the concept of IT as a Service in many ways is well-suited to solving both issues (real and perceived) on the business and the IT sides of the house. By making the acquisition and deployment of server infrastructure a self-service process, IT abrogates responsibility for deploying applications. It means if a project is late, business stakeholders can no longer point to the easy scapegoat of IT and must accept accountability. &lt;/p&gt;
 
&lt;p&gt;Or does it? &lt;/p&gt;
 
&lt;h3&gt;&lt;font color="#800000"&gt;WHAT does “IT as a SERVICE” MEAN ANYWAY? &lt;/font&gt;&lt;/h3&gt;

&lt;p&gt;We can’t really answer that question until we understand what all this “IT as a Service” hype is about, can we?&lt;/p&gt;

&lt;p&gt;The way tech journalists report on “IT as a Service” and its underlying business drivers you’d think the concept is essentially centered on the elimination of IT in general. That’s not the case, not really. On the surface it appears to be, but appearances are only skin deep. What businesses want is a faster provisioning cycle across IT: access, server infrastructure, applications, data. They want “push-button IT”, they want IT as a vending machine with a cornucopia of services available for their use with as little human interaction as possible.&lt;/p&gt;

&lt;p&gt;What that all boils down is this: the business stakeholders want efficiency of process.  &lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.infoworld.com/blogs/eric-knorr" target="_blank"&gt;Eric Knorr&lt;/a&gt; of &lt;a href="http://www.infoworld.com" target="_blank"&gt;InfoWorld&lt;/a&gt; summed it well when he recently wrote in “&lt;a href="http://www.infoworld.com/t/cloud-computing/what-the-private-cloud-really-means-463?page=0,2&amp;amp;source=IFWNLE_nlt_daily_2010-09-06" target="_blank"&gt;What the ‘private cloud’ really means&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/YouCantHaveITasaServiceUntilITisaService_3343/blockquote_2.gif"&gt;&lt;img height="28" border="0" align="left" width="46" style="border-width: 0px; display: inline; margin-left: 0px; margin-right: 0px;" title="blockquote" alt="blockquote" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/YouCantHaveITasaServiceUntilITisaService_3343/blockquote_thumb.gif" /&gt;&lt;/a&gt; Nonetheless, the model of providing commodity services on top of pooled, well-managed virtual resources has legs, because it has the potential to take a big chunk of cost and menial labor out of the IT equation. The lights in the data center will never go out. The drive for greater efficiency, though, has had a dozen names in the history of IT, and the private cloud just happens to be the latest one.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;In reality all we’re talking about with “IT as a Service” really is private cloud, but it appears that “IT as a Service” has a strong(er) set of legs upon which to stand primarily because purists and pundits prefer to distinguish between the two. So be it, what you call it is not nearly as important as what it does – or is intended to do.&lt;/p&gt;

&lt;p&gt;Interestingly enough, &lt;a href="http://www.vmware.com" target="_blank"&gt;VMware&lt;/a&gt; made a huge push for “IT as a Service” at &lt;a href="http://www.vmworld.com" target="_blank"&gt;VMworld&lt;/a&gt; last month and, in conjunction with that, released a number of product offerings to support the vision of “IT as a Service.” But while there was much brouhaha regarding the flexibility of a virtualized infrastructure there was very little to support the longer vision of “IT as a Service.” It was more “IT as a Bunch of Virtual Machines and Provisioning Services” than anything else. Now, that’s not to say that virtualization of infrastructure doesn’t enable “IT as a Service”; it does in the sense that it makes one piece of the overall concept possible: self-service provisioning. But it &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/YouCantHaveITasaServiceUntilITisaService_3343/image_4.png"&gt;&lt;img height="257" border="0" align="left" width="354" style="border-width: 0px; margin: 15px 10px 10px 0px; display: inline;" title="image" alt="image" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/YouCantHaveITasaServiceUntilITisaService_3343/image_thumb_1.png" /&gt;&lt;/a&gt;does not in any way, shape or form assist in the much larger and complex task of actually enabling the services that need to be provisioned. Even the integration across the application delivery network with the core server infrastructure provisioning services – so necessary to accomplish something like &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/03/f5-friday-elastic-applications-are-enabled-by-dynamic-infrastructure.aspx" target="_blank"&gt;live cloudbursting on-demand&lt;/a&gt; – relies upon virtualization only for the server/application resources. The integration to instruct and integrate the application delivery network is accomplished via services, &lt;a href="http://devcentral.f5.com/iControl" target="_blank"&gt;via an API&lt;/a&gt;, and whether the underlying form-factor is virtual or iron is completely irrelevant. &lt;/p&gt;

&lt;h3&gt;&lt;font color="#800000"&gt;IT as a SERVICE REALLY MEANS a SERVICE-ORIENTED OPERATIONAL INFRASTRUCTURE&lt;/font&gt;&lt;font color="#800000"&gt; &lt;/font&gt;&lt;/h3&gt;

&lt;p&gt;I’m going to go out on a limb and say that what we’re really doing here is applying the principles of &lt;a title="Service Oriented Architecture definition " href="http://www.f5.com/glossary/soa.html" rel="" target="_blank"&gt;SOA&lt;/a&gt; to IT and departmental function. Yeah, I said that. Again. &lt;/p&gt;

&lt;p&gt;Take a close look at this diagram and tell me what you see. No, never mind, I’ll tell you what I see: a set of service across the entire IT infrastructure landscape that, when integrated together, form a holistic application deployment and delivery architecture. A service-oriented architecture. And what this whole “IT as a Service” thing is about is really offering up operational processes as a service to business folks. Just as SOA was meant to encapsulate business functions as services when it’s IT being pushed into the service-oriented mold you get operational functions as services: provisioning, metering, migration, scalability.&lt;/p&gt;

&lt;p&gt;It’s Infrastructure as a Service, when you get down to it.&lt;/p&gt;

&lt;p&gt;In order for IT to be a push-button, self-service, never-talk-to-the-geeks-in-the-basement again organization (which admittedly looks just as good from the other side as a never-talk-to-the-overly-demanding-business-folks again organization) IT not only has to enable provisioning of compute resources suitable for automated billing and management, but it also has to make available the rest of the infrastructure as services that can be (1) provisioned just as easily, (2) managed uniformly, and (3) integrated with some sort of human-readable/configurable policy creation tool that can translate business language, a la “make it faster”, into something that can actually be implemented in the infrastructure, a la “apply an application acceleration policy”. I’m simplifying, of course, but ultimately we really do want it &lt;a href="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/YouCantHaveITasaServiceUntilITisaService_3343/image_6.png"&gt;&lt;img height="240" border="0" align="right" width="198" style="border-width: 0px; margin: 0px 0px 0px 10px; display: inline;" title="image" alt="image" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/YouCantHaveITasaServiceUntilITisaService_3343/image_thumb_2.png" /&gt;&lt;/a&gt;that simply, don’t we? We’ll never get there if we don’t have the services available in the first place. &lt;/p&gt;

&lt;p&gt;Sound familiar, SOA architects? Business analysts? It should. A complete application deployment consists of a set of dynamic services that can be provisioned in conjunction with application resources that provide for a unified “application” that is fast, reliable, and secure. A composite “application” that is essentially a mash-up comprised of infrastructure &lt;u&gt;services&lt;/u&gt; that enforce application specific policies to meet the requirements of the business stakeholder. &lt;/p&gt;

&lt;p&gt;It’s SOA. Pure and simple. And while rapid provisioning is made easier by virtualization of those components, it’s not a necessity. What’s necessary is that the components provide for and are managed through services. Remember, there’s &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/03/26/magic-virtualization-fairy-dust-and-the-new-network.aspx" target="_blank"&gt;no magical fairy dust that goes along with the hardware/software –&amp;gt; virtual network appliance transformation&lt;/a&gt; that suddenly springs forth a set of services like a freaking giant beanstalk out of a magic bean. The components must be enabled to both be and provide services and from those the components can be deployed, configured, integrated, and managed as a service. &lt;/p&gt;

&lt;h3&gt;&lt;font color="#800000"&gt;WITHOUT the SERVICES IT IS IT as USUAL &lt;/font&gt;&lt;/h3&gt;

&lt;p&gt;If the only services available in this new “IT as a Service” paradigm are provisioning and metering and possibly migration, then IT as a Service does not actually exist. What happens then is the angst of the business regarding the lengthy acquisition cycles for compute resources simply becomes focused on the next phase of the deployment – the network, or the security, or the application delivery components. And as each set of components is servified and made available in the &lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/05/07/cloud-computing-is-not-burger-king.-you-canrsquot-have-it.aspx" target="_blank"&gt;Burger King IT Infrastructure menu&lt;/a&gt;, the business will turn its baleful eye on the next set of components..and the next…and the next. &lt;/p&gt;

&lt;p&gt;Until there exists an end-to-end set of services for deploying, managing, and migrating applications, “IT as a Service” will not truly exist and the role of IT will remain largely the same – manual configuration, integration, and management of a large and varied set of infrastructure components. &lt;/p&gt;
&lt;hr noshade="noshade" color="#808080" width="100%" /&gt;

&lt;table cellspacing="0" cellpadding="2" border="0" width="100%"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td width="70%" valign="top"&gt;Related blogs &amp;amp; articles:          &lt;br /&gt;
            &lt;br /&gt;
            &lt;ul class="ArrowList"&gt;
                &lt;li&gt;&lt;a href="http://www.infoworld.com/t/cloud-computing/what-the-private-cloud-really-means-463?page=0,0&amp;amp;source=IFWNLE_nlt_daily_2010-09-06" target="_blank"&gt;What the ‘private cloud’ really means | InfoWorld&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/01/26/cloud-interoperability-must-dig-deeper-than-the-virtualization-layer.aspx"&gt;Cloud interoperability must dig deeper than the virtualization layer&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/06/16/virtual-network-infrastructure-virtually-good-enough.aspx"&gt;Virtual Network Infrastructure: Virtually Good Enough?&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/08/07/3522.aspx"&gt;Server Virtualization versus Server Virtualization&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2010/06/23/service-virtualization-helps-localize-impact-of-elastic-scalability.aspx"&gt;Service Virtualization Helps Localize Impact of Elastic Scalability&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/05/07/cloud-computing-is-not-burger-king.-you-canrsquot-have-it.aspx"&gt;Cloud computing is not Burger King. You can't have it your way. Yet.&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/03/cloud-computing-its-the-destination-not-the-journey-that-is.aspx"&gt;Cloud Computing: It's the destination, not the journey that is ...&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/10/28/to-take-advantage-of-cloud-computing-you-must-unlearn.aspx"&gt;To Take Advantage of Cloud Computing You Must Unlearn, Luke.&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2009/12/17/cloud-computing-application-acceleration-connection.aspx"&gt;The Cloud Computing – Application Acceleration Connection&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/11/12/cloud-computing-whats-stopping-service-oriented-clouds.aspx"&gt;Cloud Computing: What's stopping service-oriented clouds?&lt;/a&gt; &lt;/li&gt;
                &lt;li&gt;&lt;a href="http://devcentral.f5.com/weblogs/macvittie/archive/2008/10/17/cloud-computing-and-infrastructure-2.0.aspx"&gt;Cloud Computing and Infrastructure 2.0&lt;/a&gt; &lt;/li&gt;
            &lt;/ul&gt;
            &lt;/td&gt;
            &lt;td width="30%" valign="top"&gt;
            &lt;p&gt;&lt;a href="http://twitter.com/lmacvittie"&gt;&lt;img height="18" border="0" width="18" alt="Follow me on Twitter" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_twitt-twoo-icon.png" /&gt;&lt;/a&gt; &lt;a title="Follow F5 Networks on Twitter" href="http://tweepml.org/F5-Networks-Tweeple/"&gt;&lt;img height="18" border="0" width="18" alt="" src="http://tweepml.org/s/tweepml16.png" /&gt;&lt;/a&gt; &lt;a title="Follow F5 DevCentral on Twitter" href="http://tweepml.org/F5-DevCentral/"&gt;&lt;img height="18" border="0" width="18" alt="" src="http://tweepml.org/s/tweepml16.png" /&gt;&lt;/a&gt; &lt;a href="http://devcentral.f5.com/weblogs/macvittie/Rss.aspx"&gt;&lt;img border="0" alt="" src="http://devcentral.f5.com/Portals/0/images/Icons/icon_xml_18.gif" /&gt;&lt;/a&gt; &lt;a href="http://www.slideshare.net/lmacvittie"&gt;&lt;img height="18" border="0" width="18" alt="View Lori's profile on SlideShare" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_slideshare.png" /&gt;&lt;/a&gt; &lt;a href="http://www.linkedin.com/in/lmacvittie"&gt;&lt;img border="0" alt="" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/125/o_linkedin_16.png" /&gt;&lt;/a&gt; &lt;a href="http://www.friendfeed.com/lmacvittie"&gt;&lt;img height="18" border="0" width="18" style="border-width: 0px;" alt="friendfeed" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InfrastructureasaServiceHowcontextawares_69CD/friendfeed_3.jpg" /&gt;&lt;/a&gt; &lt;a href="http://www.facebook.com/lmacvittie"&gt;&lt;img height="18" border="0" width="18" style="border-width: 0px;" alt="icon_facebook" src="http://devcentral.f5.com/weblogs/images/devcentral_f5_com/weblogs/macvittie/WindowsLiveWriter/InfrastructureasaServiceHowcontextawares_69CD/icon_facebook_4.png" /&gt;&lt;/a&gt; &lt;/p&gt;
            &lt;p&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" border="0" width="125" alt="AddThis Feed Button" src="http://s9.addthis.com/button1-fd.gif" /&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" border="0" width="125" alt="Bookmark and Share" src="http://s9.addthis.com/button1-share.gif" /&gt;&lt;/a&gt; &lt;script type="text/javascript" src="http://track.mybloglog.com/js/jsserv.php?mblID=2008070914270355"&gt;&lt;/script&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;

&lt;p /&gt;

&lt;div style="margin: 0px; padding: 0px; display: inline; float: none;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:93c75d29-a8c3-498e-8748-b873a2a987fa" class="wlWriterEditableSmartContent"&gt;&lt;em&gt;&lt;em&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+computing" rel="tag"&gt;cloud computing&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/IT+as+a+Service" rel="tag"&gt;IT as a Service&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/dynamic+services+model" rel="tag"&gt;dynamic services model&lt;/a&gt;,&lt;a href="http://technorati.com/tags/infrastructure+as+a+service" rel="tag"&gt;infrastructure as a service&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IaaS" rel="tag"&gt;IaaS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/integration" rel="tag"&gt;integration&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/div&gt;&lt;img src="http://devcentral.f5.com/weblogs/macvittie/aggbug/1088414.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>Lori MacVittie</dc:creator>
            <guid>http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/08/you-canrsquot-have-it-as-a-service-until-it-has.aspx</guid>
            <pubDate>Wed, 08 Sep 2010 10:57:19 GMT</pubDate>
            <wfw:comment>http://devcentral.f5.com/weblogs/macvittie/comments/1088414.aspx</wfw:comment>
            <comments>http://devcentral.f5.com/weblogs/macvittie/archive/2010/09/08/you-canrsquot-have-it-as-a-service-until-it-has.aspx#feedback</comments>
            <wfw:commentRss>http://devcentral.f5.com/weblogs/macvittie/comments/commentRss/1088414.aspx</wfw:commentRss>
            <trackback:ping>http://devcentral.f5.com/weblogs/macvittie/services/trackbacks/1088414.aspx</trackback:ping>
        </item>
    </channel>
</rss>
