<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'Windows Azure', 'Azure Use Cases', and 'Cloud Computing'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=Windows+Azure,Azure+Use+Cases,Cloud+Computing&amp;orTags=0</link><description>Search results matching tags 'Windows Azure', 'Azure Use Cases', and 'Cloud Computing'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Windows Azure Use Case: Supplementing Infrastructure</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/11/01/windows-azure-use-case-supplementing-infrastructure.aspx</link><pubDate>Tue, 01 Nov 2011 13:22:01 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:39516</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;I’ve explained before that Windows Azure is a Platform as a Service - at its simplest, that means that you write software and Azure runs it for you. But what if you are a shop that normally buys “off the shelf” software, and the only software you write is an internal utility here and there - can you still use Windows Azure?&lt;/p&gt;  &lt;p&gt;Absolutely. Windows Azure is made up of several components, such as computing, storage and other objects you can call in code. And as such, some companies have extended software and hardware you can use that is backed by Windows Azure. In some cases that’s simply software you can use like you would any other - making Azure a “Software as a Service”, which I’ll write about later.&lt;/p&gt;  &lt;p&gt;But in other cases the software a vendor provides a utility you can use for your infrastructure. For instance - “BlobShare”, a free codeplex offering, allows you to create a place where you can upload and download files securely. It allows you to hook in your local Windows accounts (without sending names and passwords over the Internet) or even Google, LiveID or Yahoo logins to access the files. You can think of it as a “corporate DropBox”. Download it and read more about it here: &lt;a href="http://blobshare.codeplex.com/"&gt;http://blobshare.codeplex.com/&lt;/a&gt; and learn how to hook in Active Directory here: &lt;span style="font-family:'Calibri','sans-serif';font-size:11pt;mso-fareast-font-family:'Times New Roman';mso-bidi-font-family:'Times New Roman';mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;a href="http://blogs.msdn.com/b/vbertocci/archive/2011/10/31/blobshare-sample-acs-protected-file-sharing.aspx"&gt;&lt;u&gt;&lt;font color="#0000ff" size="2" face="Arial"&gt;http://blogs.msdn.com/b/vbertocci/archive/2011/10/31/blobshare-sample-acs-protected-file-sharing.aspx&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-family:'Calibri','sans-serif';font-size:11pt;mso-fareast-font-family:'Times New Roman';mso-bidi-font-family:'Times New Roman';mso-ansi-language:en-us;mso-fareast-language:en-us;mso-bidi-language:ar-sa;"&gt;&lt;img src="http://download.codeplex.com/Download?ProjectName=blobshare&amp;amp;DownloadId=295232" width="634" height="306" /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;Another option along these lines is using a hardware appliance to store data in Azure. This has a particular attraction, since some of these appliances (&lt;a href="http://www.storsimple.com/product-overview/" target="_blank"&gt;such as the offerings from StorSimple&lt;/a&gt;) do more than just act as a storage target. The device plugs into the network as storage, moves the data to Windows Azure, de-duplicates (thus saving storage costs), encrypts, acts as a backup device, works with SharePoint and more. No coding is required to use their solution, and it can even act as a Disaster Recovery site. &lt;/p&gt;  &lt;p&gt;Storage isn’t the only way to use Windows Azure in place of infrastructure. Using the Application Fabric Service Bus, you can perform some functions of data access and transfer between companies that used to take a VPN setup - which is no longer required. the caching function in the Service Bus can even relieve the need to upgrade a server for performance. And of course SQL Azure allows you to access a SQL Server database without any server at all. &lt;/p&gt;  &lt;p&gt;So if you’re thinking that Windows and SQL Azure aren’t for you, think again. Start with the problem you have, and see what options you have for solving it. &lt;/p&gt;</description></item><item><title>Big Data and the Cloud - More Hype or a Real Workload?</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/10/18/big-data-and-the-cloud-more-hype-or-a-real-workload.aspx</link><pubDate>Tue, 18 Oct 2011 13:57:36 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:39156</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;Last week Microsoft announced several new offerings for “Big Data” - and since I’m a stickler for definitions, I wanted to make sure I understood what that really means. What is “Big Data”? What size hard drive is that? After all, my laptop has 1TB of storage - is my laptop “Big Data”?&lt;/p&gt;  &lt;p&gt;There are actually a few definitions for this term, most notably those involving the &lt;a href="http://nosql.mypopescu.com/post/9621746531/a-definition-of-big-data" target="_blank"&gt;“Four V’s” Volume, Velocity, Variety and Variability&lt;/a&gt;. Others &lt;a href="http://nosql.mypopescu.com/post/10120087314/big-data-and-the-4-vs-volume-velocity-variety" target="_blank"&gt;disagree with this&lt;/a&gt; definition. I tend to try and get things into their simplest form, so I’m using this definition for myself:&lt;/p&gt;  &lt;p align="center"&gt;&lt;font color="#c0504d" size="3"&gt;Big data is defined as a &lt;em&gt;large set &lt;/em&gt;of &lt;em&gt;computationally expensive &lt;/em&gt;data that is &lt;em&gt;worked on simultaneously&lt;/em&gt;.&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;Let me flesh that out a&amp;#160; little. To be sure, “Big Data” has a larger size than say a few megabytes. The reason this is important is that it takes special hardware to be able to move large sets of data around, store it, process it and so on. (&lt;font color="#c0504d"&gt;large set&lt;/font&gt;)&lt;/p&gt;  &lt;p&gt;If you store a LOT of data, but only use a small portion of it at a time, that really isn’t super-hard to do. It’s mainly a storage issue at that point. But, if you do need to work with a large portion of the data at one time, then the memory, CPU and transfer components of the system have to adapt to be responsive - new ways to work with that data (game theory, knot-algorithms, map-reduce, etc.) need to be brought into play. (&lt;font color="#c0504d"&gt;computationally expensive&lt;/font&gt;)&lt;/p&gt;  &lt;p&gt;Once that data is loaded into the processing area (memory or whatever other mechanism is used) it must be worked on in parallel to come back in a reasonable time. You have two options here - you can scale the system up with more internal hardware (CPU’s, memory and so on) or you can scale it out to have multiple systems work on it at the same time using paradigms such as map/reduce and so on. Actually, when you lay this out in an architecture diagram, scale up or out doesn’t actually change the logical structure of the process - in scale out the network becomes the bus, and the nodes become more RAM and computing power. Of course, there are changes in code for how you stitch the workload back together. (&lt;font color="#c0504d"&gt;worked on simultaneously&lt;/font&gt;)&lt;/p&gt;  &lt;p&gt;So back to the original question. Is Big Data, as I have defined it here, a workload for Windows and SQL Azure? Absolutely! In fact, it’s probably one of the main workloads, and I believe it represents the latest, and perhaps also the earliest frontier of computing. Jim &lt;a href="http://research.microsoft.com/en-us/um/people/gray/" target="_blank"&gt;Gray, a former researcher here at Microsoft and a hero of mine, was working on this very topic.&lt;/a&gt; I believe as he did - all computing is simply an interface over data. &lt;/p&gt;  &lt;p&gt;Microsoft has multiple offerings on the topic of Big Data. In posts that follow from myself and my co-workers, we’ll explore when and where you use each one. Whether you are a data professional or a developer, this is the new frontier - &lt;a href="http://www.straightpathsql.com/archives/2011/10/microsoft-loves-your-big-data/" target="_blank"&gt;don’t wait to educate yourself&lt;/a&gt; on how to leverage Big Data for your organization. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Hadoop on Windows Azure and SQL Server&amp;#160; &lt;/strong&gt;- Microsoft’s &lt;a href="http://www.hortonworks.com/the-whys-behind-the-microsoft-and-hortonworks-partnership/" target="_blank"&gt;partnership to include Hadoop workloads on Windows Azure&lt;/a&gt; and &lt;a href="http://www.microsoft.com/download/en/details.aspx?id=27584" target="_blank"&gt;SQL Server/Parallel Data Warehouse (PDW)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;LINQ to HPC &lt;/strong&gt;- Microsoft’s High-Performance Computing SKU of &lt;a href="http://blogs.technet.com/b/windowshpc/archive/2011/05/20/dryad-becomes-linq-to-hpc.aspx" target="_blank"&gt;HPC is now in Azure&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Azure Table Storage &lt;/strong&gt;- A &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh508997.aspx" target="_blank"&gt;key/value pair type storage with full partitioning&lt;/a&gt; that is immediately consistent, able to handle huge loads of data and works with any REST-compatible language&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;strong&gt;Other offerings &lt;/strong&gt;- Including the new &lt;a href="http://www.microsoft.com/en-us/sqlazurelabs/default.aspx" target="_blank"&gt;Data Explorer&lt;/a&gt;, &lt;a href="http://research.microsoft.com/en-us/news/headlines/daytona-071811.aspx" target="_blank"&gt;Project Daytona (with a Big Data Toolkit for Scientists and researchers)&lt;/a&gt;, &lt;a href="http://www.microsoft.com/sqlserver/en/us/future-editions/SQL-Server-2012-breakthrough-insight.aspx" target="_blank"&gt;Power View&lt;/a&gt; and more. &lt;/p&gt;  &lt;p&gt;The era of Big Data is here. And you can use Windows and SQL Azure to bring it to your organization. &lt;/p&gt;</description></item><item><title>Creating a Distributed Computing System Using a Windows Azure Queue</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/10/11/creating-a-distributed-computing-system-using-a-windows-azure-queue.aspx</link><pubDate>Tue, 11 Oct 2011 13:12:42 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:38990</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;&lt;font face="Calibri"&gt;The Windows Azure Queue component, like all Windows Azure components (Roles, Storage, App Fabric, SQL Azure) can be used by itself or with other Windows Azure components. That’s why I refer to Windows Azure as “Distributed Computing” rather than “cloud”. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;font color="#000000" size="3" face="Calibri"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;&lt;font face="Calibri"&gt;Having a distributed off premise queue has a lot of use-cases. An interesting use-case is a company that wanted to harness the power of all of the PC’s and laptops in the company when they were not being used throughout the day. A developer wrote a screen-saver program that connected to an Azure Queue, pulling work off of the queue and placing an entry when it was done. In essence he had a partially connected distributed work relay system, and since he used a Windows Azure Queue, the system worked from anywhere in the world.                 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;   &lt;p&gt;&lt;font color="#000000" size="3" face="Calibri"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;&lt;font face="Calibri"&gt;He uses an on-site central server (which was actually only a workstation-level system) that holds the computations in a scatter/gather paradigm. The computations are broken into less-than-8K chunks, so that it fits within a message. The server connects to a Windows Azure Queue, and places the message marked for computation. It also scrubs the Queue for completed work, and as part of the process puts that kind of message into a mapping function (queues are not guaranteed a message order).                 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;   &lt;p&gt;&lt;font color="#000000" size="3" face="Calibri"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;&lt;font face="Calibri"&gt;The workstations that are not being used (even those systems at remote workers and travelers) connect to the same Windows Azure Queue when the system is not being used for a period of time, when the screen saver kicks in. It then takes one message from the queue, computes the information, and then sets a new message for the server to pick up with the answer. The workstation then deletes the message.                 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;   &lt;p&gt;&lt;font color="#000000" size="3" face="Calibri"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;&lt;font face="Calibri"&gt;The Server picks up the completed work, processes it and then deletes that queue message. He also added logic to process messages for computation on the server as well, when the server function of adding work is not required.                 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;   &lt;p&gt;&lt;font color="#000000" size="3" face="Calibri"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;   &lt;p&gt;&lt;font color="#000000" size="3" face="Calibri"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/2438.AzureQueueDistributedSystem_5F00_2.png"&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="AzureQueueDistributedSystem" border="0" alt="AzureQueueDistributedSystem" src="http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/3603.AzureQueueDistributedSystem_5F00_thumb.png" width="708" height="919" /&gt;&lt;/a&gt;&lt;/font&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;   &lt;p&gt;&amp;#160;&lt;/p&gt; &lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;&lt;font face="Calibri"&gt;There are a few caveats here. This works because of the mapping function on the head server. Order is not guaranteed, so he includes a number for the function step as part of the message body, which cuts the size a bit. Also, he’s careful to watch the encoding, since Azure will hand binary back in Base64 format.                 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;   &lt;p&gt;&lt;font color="#000000" size="3" face="Calibri"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;&lt;font face="Calibri"&gt;He’s found that there are enough systems to ensure that the messages are cleared every few days – important, since the Windows Azure Queue ages out after seven days. Also, he’s careful to use the CloudQueue.PeekMessage function when he wants to monitor the system – that function ensures that the message status doesn’t reset as “read” when he accesses it.                 &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;   &lt;p&gt;&lt;font color="#000000" size="3" face="Calibri"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt; &lt;/p&gt;  &lt;p style="margin:0in 0in 0pt;" class="MsoNormal"&gt;&lt;font size="3"&gt;&lt;font color="#000000"&gt;&lt;font face="Calibri"&gt;This is a great example of using the “cloud” as what it is intended to be – a distributed architecture you can use as needed to solve a business problem. It’s not an “all or nothing” proposition, but instead it is simply another set of components to use where you need them. &lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;</description></item><item><title>Rip and Replace or Extend and Embrace?</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/09/13/rip-and-replace-or-extend-and-embrace.aspx</link><pubDate>Tue, 13 Sep 2011 11:20:05 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:38437</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;As most of you know, I don&amp;rsquo;t like the term &amp;ldquo;cloud&amp;rdquo; very&lt;br /&gt;much. It isn&amp;rsquo;t defined, which means it can be anything. I prefer &amp;ldquo;distributed&lt;br /&gt;computing&amp;rdquo;, which is more technically accurate and describes what you&amp;rsquo;re doing&lt;br /&gt;in more concrete terms.&lt;/p&gt;
&lt;p&gt;So when you think about Windows and SQL Azure, you don&amp;rsquo;t&lt;br /&gt;have to think about an entire product &amp;ndash; you can use parts of the system&lt;br /&gt;together or independently to accomplish what you need to do. You can use the&lt;br /&gt;computing functions, storage, and more and more I see folks leverage the&lt;br /&gt;Service Bus to enable current applications to expose things to the web.&lt;/p&gt;
&lt;p&gt;And that brings up the point of this post. Once you decide&lt;br /&gt;that a distributed architecture works to solve a problem, you&amp;rsquo;re faced with a&lt;br /&gt;decision: should you completely re-write your architecture to take advantage of&lt;br /&gt;the current systems or should you just fold in new code that makes the data or&lt;br /&gt;function available to the web?&lt;/p&gt;
&lt;p&gt;Of course, the answer is always &amp;ldquo;it depends&amp;rdquo; on the situation&lt;br /&gt;&amp;ndash; and it does. But unless you&amp;rsquo;re fixing a problem with current code, I usually&lt;br /&gt;advocate a migration approach. That means at the very least retaining the&lt;br /&gt;business logic (again, unless it&amp;rsquo;s not currently working) and as much of the&lt;br /&gt;code as you can. In fact, if you follow this paradigm, you&amp;rsquo;re on your way to&lt;br /&gt;making a Service Bus out of the functions you currently have. You can expose&lt;br /&gt;the results of a system rather than opening the system up. Let&amp;rsquo;s take an&lt;br /&gt;example.&lt;/p&gt;
&lt;p&gt;Assume for a moment that you have an order-taking system&lt;br /&gt;on-premise. That system performs many functions, one of which might creating a&lt;br /&gt;Purchase Order. Your system might be enclosed, meaning that it has an&lt;br /&gt;application that talks to a middle-tier, and then from there to a database&lt;br /&gt;system. A query is generated from a screen, and passed along to eventually&lt;br /&gt;compute, store and return a Purchase Order Number, along with other&lt;br /&gt;information. Imagine now that you wire up the code not only to return the PO&lt;br /&gt;number to the client, but to make that number available on an endpoint &amp;ndash;&lt;br /&gt;actually really not that hard to do.&lt;/p&gt;
&lt;p&gt;Now you can make that PO number available to the web using&lt;br /&gt;Azure. You could restrict who can make that call to the system, or open it up&lt;br /&gt;to a broader audience. Or instead of the PO Number, you could make a product&lt;br /&gt;list available. And you can go further than that &amp;ndash; EBay, for instance, uses the&lt;br /&gt;OData protocol (which is very cool in and of itself) which you can query from&lt;br /&gt;the web. You could compare your company&amp;rsquo;s product catalog to what is on EBay,&lt;br /&gt;and list the items you have there if there are no competitors in that space.&lt;br /&gt;And on and on it goes.&lt;/p&gt;
&lt;p&gt;So the point is this &amp;ndash; where you can, retain what works.&lt;br /&gt;Fold in systems like Azure where they make sense. Extend and Embrace.&lt;/p&gt;</description></item><item><title>The Conundrum of Cloud Computing Evidence</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/07/26/the-conundrum-of-cloud-computing-evidence.aspx</link><pubDate>Tue, 26 Jul 2011 12:56:08 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:37317</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;“Who is using Windows Azure? How are they doing it?” &lt;/p&gt; &lt;p&gt;I get asked this all the time as I speak to our clients when we mention Windows or SQL Azure as a possible solutions to an architectural problem the company has. I completely understand the question. I’ve worked far longer outside of Microsoft than here, and one of my roles as a Systems Architect was to select solutions from a range of possibilities. When you’re faced with a decision like that, it saves a ton of time if you can find out where others have done the same thing and what problems and successes they had with this or that approach. I’m not a marketing person, so I work with clients directly all the time, and so folks know I’ve seen the way others do things. And they want to know what someone else has done before they try it. &lt;/p&gt; &lt;p&gt;But therein lies the rub.&lt;/p&gt; &lt;p&gt;Most folks aren’t willing to talk about their internal infrastructure much. &lt;a href="http://technet.microsoft.com/en-us/library/bb687780.aspx" target="_blank"&gt;We talk about how we do things here at Microsoft quite frequently, and if you’re not using this resource, definitely go research what we’ve done&lt;/a&gt;. In fact, I don’t think I’ve seen many other technology companies with this depth of information. For instance, here’s a quick list of the areas we talk about on our internal systems: &lt;/p&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl32" href="http://technet.microsoft.com/en-us/library/bb687768.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;BizTalk&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl33" href="http://technet.microsoft.com/en-us/library/bb687782.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Exchange Server&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl34" href="http://technet.microsoft.com/en-us/library/ee862420.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Internet Explorer&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl35" href="http://technet.microsoft.com/en-us/library/gg605859.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Lync&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl36" href="http://technet.microsoft.com/en-us/library/cc982289.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Microsoft Desktop Optimization Pack&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl37" href="http://technet.microsoft.com/en-us/library/dd197309.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Microsoft Dynamics&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl38" href="http://technet.microsoft.com/en-us/library/dd197310.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Microsoft Forefront&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Office System&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl39" href="http://technet.microsoft.com/en-us/library/bb687788.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Office Communications Server&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl40" href="http://technet.microsoft.com/en-us/library/bb687797.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;SharePoint Server&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl41" href="http://technet.microsoft.com/en-us/library/bb687792.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Office&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl42" href="http://technet.microsoft.com/en-us/library/bb687798.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;SQL Server&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;System Center&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl43" href="http://technet.microsoft.com/en-us/library/bb687796.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;System Center Configuration Manager&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl44" href="http://technet.microsoft.com/en-us/library/bb736232.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;System Center Data Protection Manager&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl45" href="http://technet.microsoft.com/en-us/library/bb687791.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;System Center Operations Manager&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl46" href="http://technet.microsoft.com/en-us/library/gg236616.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;System Center Service Manager&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl47" href="http://technet.microsoft.com/en-us/library/hh124528.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Virtual Machine Manager&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl48" href="http://technet.microsoft.com/en-us/library/bb687801.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Visual Studio&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;strong&gt;Windows&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl49" href="http://technet.microsoft.com/en-us/library/gg605186.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Windows Azure&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl50" href="http://technet.microsoft.com/en-us/library/bb687804.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Windows Client&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a id="ctl00_MTCS_main_ctl51" href="http://technet.microsoft.com/en-us/library/bb687806.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;Windows Server&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt; &lt;li class="content-item"&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;li class="content-item"&gt; &lt;p&gt;And yes, Azure as you can see is part of that list - we’ve implemented it everywhere. But when I point out that we’re using IT resources just like any other company, I hear “yeah, but you’re &lt;em&gt;Microsoft&lt;/em&gt;. You have lots of people to handle the systems, and you can just have the developer who wrote the software come over and fix it if it breaks.” Well, that’s not the way it works at all. When I got here, I met with some folks from Microsoft IT, and I was absolutely shocked at how few people manage our systems. From Systems Administrators all the way to the DBA’s, the ratio of technical resource to machines is really extraordinary, and I had far more folks managing systems for me in my other companies than we have here. And no, we don’t send developers to fix production systems “just for us”, although we will do that when we are using a beta of something that we haven’t even released to CTP yet. &lt;/p&gt; &lt;p&gt;But even with this evidence of ourselves, clients want to “see how others are doing things with Azure”. &lt;a href="http://www.microsoft.com/windowsazure/evidence/" target="_blank"&gt;We do have the customer evidence site, and we have lots of case-studies there&lt;/a&gt;. But many of these lack technical details, again, because folks aren’t always willing to share that. That’s understandable - for instance, even though Microsoft does it, I’m not sure I would have the Visio diagrams for my company’s applications posted in a public place. There may even be legal or competitive reasons &lt;em&gt;not &lt;/em&gt;to do that. So as you peruse that list, keep in mind these are only the companies that are willing to talk in public about their experience - we have far more on Azure than this list. &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/b/jmeier/archive/2011/07/25/microsoft-cloud-case-studies-at-a-glance.aspx" target="_blank"&gt;J.D. Meiers has a good blog post entry&lt;/a&gt; of a rundown of the companies that have released case studies on Azure. And be assured that &lt;a href="http://msdn.microsoft.com/en-us/library/ff898430.aspx" target="_blank"&gt;we have a patterns and practices group that works with the teams here at Azure&lt;/a&gt; to make sure we apply what we learn as we help each client. And many of our partners that you use to help you implement technology are here at Microsoft this week, sharing customer stories (with permission, of course), which allows us to learn from them on how you’re doing things - what works and what doesn’t. &lt;/p&gt; &lt;p&gt;As time goes on I think you’ll see more patterns emerge from the engagements we’ve done. Right now those are sometimes a competitive advantage, so you’ll see us generalize the patterns into content we can release. For now, check out those case studies, and do make use of the Internal Microsoft IT sites. They really are quite detailed, and have a lot of information you can use. &lt;/p&gt;</description></item><item><title>Windows Azure Use Case: High-Performance Computing (HPC)</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/02/28/windows-azure-use-case-high-performance-computing-hpc.aspx</link><pubDate>Mon, 28 Feb 2011 15:52:31 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:33829</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;em&gt;&lt;span style="font-size:small;"&gt;This is one in a series of posts on when and where to use a distributed architecture design in your organization's computing needs. You can find the main post here: &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx"&gt;&lt;span style="font-size:small;"&gt;&lt;u&gt;&lt;font color="#800080"&gt;http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx&lt;/font&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;"&gt;&amp;#160;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:small;"&gt;Description:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;High-Performance Computing (also called Technical Computing) at its most simplistic is a layout of computer workloads where a “head node” accepts work requests, and parses them out to “worker nodes'”. This is useful in cases such as scientific simulations, drug research, MatLab work and where other large compute loads are required. It’s not the immediate-result type computing many are used to; instead, a “job” or group of work requests is sent to a cluster of computers and the worker nodes work on individual parts of the calculations and return the work to the scheduler or head node for the requestor in a batch-request fashion.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;This is typical to the way that many mainframe computing use-cases work. You can use commodity-based computers to create an HPC Cluster, such as the &lt;a href="http://beowulf.org/overview/index.html" target="_blank"&gt;Linux application called Beowulf&lt;/a&gt;, and Microsoft has a server product for HPC using standard computers, called the &lt;a href="http://technet.microsoft.com/en-us/magazine/2008.02.ccs.aspx" target="_blank"&gt;Windows Compute Cluster that you can read more about here&lt;/a&gt;. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;img src="http://www.microsoft.com/global/hpc/en/us/PublishingImages/screenshots/scrn_lrg_basic.jpg" width="647" height="354" /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;span&gt;The issue with HPC (from any vendor) that some organization have is the amount of compute nodes they need. Having too many results in excess infrastructure, including computers, buildings, storage, heat and so on. Having too few means that the work is slower, and takes longer to return a result to the calling application. Unless there is a consistent level of work requested, predicting the number of nodes is problematic.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;strong&gt;Implementation:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;Recently, &lt;a href="http://www.hpcinthecloud.com/features/Azure-on-the-Horizon-98320229.html" target="_blank"&gt;Microsoft announced an internal partnership between the HPC group (Now called the Technical Computing Group) and Windows Azure&lt;/a&gt;. You now have two options for implementing an HPC environment using Windows. You can extend the current infrastructure you have for HPC by adding in Compute Nodes in Windows Azure, using a “Broker Node”.&amp;#160; You can then purchase time for adding machines, and then stop paying for them when the work is completed. This is a common pattern in groups that have a constant need for HPC, but need to “burst” that load count under certain conditions.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;The second option is to install only a Head Node and a Broker Node onsite, and host all Compute Nodes in Windows Azure. This is often the pattern for organizations that need HPC on a scheduled and periodic basis, such as financial analysis or actuarial table calculations.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;img src="http://www.microsoft.com/global/hpc/en/us/PublishingImages/screenshots/scrn_lrg_azure.jpg" width="629" height="344" /&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;strong&gt;References:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;Blog entry on Hybrid HPC with Windows Azure: &lt;a href="http://blogs.msdn.com/b/ignitionshowcase/archive/2010/12/13/high-performance-computing-on-premise-and-in-the-windows-azure-cloud.aspx"&gt;http://blogs.msdn.com/b/ignitionshowcase/archive/2010/12/13/high-performance-computing-on-premise-and-in-the-windows-azure-cloud.aspx&lt;/a&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;Links for further research on HPC, includes Windows Azure information: &lt;a href="http://blogs.msdn.com/b/ncdevguy/archive/2011/02/16/handy-links-for-hpc-and-azure.aspx"&gt;http://blogs.msdn.com/b/ncdevguy/archive/2011/02/16/handy-links-for-hpc-and-azure.aspx&lt;/a&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Windows Azure Use Case: Hybrid Applications</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/02/22/windows-azure-use-case-hybrid-applications.aspx</link><pubDate>Tue, 22 Feb 2011 19:44:09 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:33695</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;em&gt;&lt;span style="font-size:small;"&gt;This is one in a series of posts on when and where to use a distributed architecture design in your organization's computing needs. You can find the main post here: &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx"&gt;&lt;span style="font-size:small;"&gt;&lt;u&gt;&lt;font color="#800080"&gt;http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx&lt;/font&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;"&gt;&amp;#160;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:small;"&gt;Description:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;Organizations see the need for computing infrastructures that they can “rent” or pay for only when they need them. They also understand the benefits of distributed computing, but do not want to create this infrastructure themselves. &lt;/span&gt;&lt;span&gt;However, they may have considerations that prevent them from moving all of their current IT investment to a distributed environment:&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;span&gt;Private data (do not want to send or store sensitive data off-site)&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span&gt;High dollar investment in current infrastructure&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span&gt;Applications currently running well, but may need additional periodic capacity&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span&gt;Current applications not designed in a stateless fashion&lt;/span&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;span&gt;In these situations, a “hybrid” approach works best. In fact, with Windows Azure, a hybrid approach is an optimal way to implement distributed computing even when the stipulations above do not apply. Keeping a majority of the computing function in an organization local while exploring and expanding that footprint into Windows and SQL Azure is a good migration or expansion strategy. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;A “hybrid” architecture merely means that part of a computing cycle is shared between two architectures. For instance, some level of computing might be done in a Windows Azure web-based application, while the data is stored locally at the organization.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;strong&gt;Implementation:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;There are multiple methods for implementing a hybrid architecture, in a spectrum from very little interaction from the local infrastructure to Windows or SQL Azure. The patterns fall into two broad schemas, and even these can be mixed.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;em&gt;1. Client-Centric Hybrid Patterns&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;In this pattern, programs are coded such that the client system sends queries or compute requests to multiple systems. The “client” in this case might be a web-based codeset actually stored on another system (which acts as a client, the user’s device serving as the presentation layer) or a compiled program. In either case, the code on the client requestor carries the burden of defining the layout of the requests. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/6523.Hybrid_2D00_01_5F00_2.jpg"&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="Hybrid-01" border="0" alt="Hybrid-01" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/2818.Hybrid_2D00_01_5F00_thumb.jpg" width="750" height="356" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;While this pattern is often the easiest to code, it’s the most brittle. Any change in the architecture must be reflected on each client, but this can be mitigated by using a centralized system as the client such as in the web scenario.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;em&gt;2. System-Centric Hybrid Patterns&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;Another approach is to create a distributed architecture by turning on-site systems into “services” that can be called from Windows Azure using the service Bus or the Access Control Services (ACS) capabilities. Code calls from a series of in-process client application. In this pattern you move the “client” interface into the server application logic.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/2500.Hybrid_2D00_02_5F00_2.jpg"&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="Hybrid-02" border="0" alt="Hybrid-02" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/6138.Hybrid_2D00_02_5F00_thumb.jpg" width="819" height="607" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;If you do not wish to change the application itself, you can “layer” the results of the code return using a product (such as Microsoft BizTalk) that exposes a Web Services Definition Language (WSDL) endpoint to Windows Azure using the Application Fabric. &lt;/span&gt;&lt;span&gt;In effect, this is similar to creating a Service Oriented Architecture (SOA) environment, and has the advantage of de-coupling your computing architecture. If each system offers a “service” of the results of some software processing, the operating system or platform becomes immaterial, assuming it adheres to a service contract. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/2500.Hybrid_2D00_03_5F00_2.jpg"&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="Hybrid-03" border="0" alt="Hybrid-03" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/1348.Hybrid_2D00_03_5F00_thumb.jpg" width="839" height="549" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;There are important considerations when you federate a system, whether to Windows or SQL Azure or any other distributed architecture. While these considerations are consistent with coding any application for distributed computing, they are especially important for a hybrid application.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;Connection resiliency - Applications on-premise normally have low-latency and good connection properties, something you’re not always guaranteed in a distributed and hybrid application. Whether a centralized client or a distributed one, the code should be able to handle extended retry logic.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;Authorization and Access - In a single authorization environment like a Active Directory domain, security is handled at a user-password level. In a distributed computing environment, you have more options. You can mitigate this with&amp;#160; using The Windows Azure Application Fabric feature of ACS to make the Azure application aware of the App Fabric as an ADFS provider. However, a claims-based authentication structure is often a superior choice.&amp;#160; &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;Consistency and Concurrency - When you have a Relational Database Management System (RDBMS), Consistency and Concurrency are part of the design. In a Service Architecture, you need to plan for sequential message handling and lifecycle.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&lt;strong&gt;Resources:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;How to Build a Hybrid On-Premise/In Cloud Application: &lt;a href="http://blogs.msdn.com/b/ignitionshowcase/archive/2010/11/09/how-to-build-a-hybrid-on-premise-in-cloud-application.aspx"&gt;http://blogs.msdn.com/b/ignitionshowcase/archive/2010/11/09/how-to-build-a-hybrid-on-premise-in-cloud-application.aspx&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;General Architecture guidance: &lt;a href="http://blogs.msdn.com/b/buckwoody/archive/2010/12/21/windows-azure-learning-plan-architecture.aspx"&gt;http://blogs.msdn.com/b/buckwoody/archive/2010/12/21/windows-azure-learning-plan-architecture.aspx&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;span&gt;&amp;#160;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>Windows Azure Use Case: Web Applications</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/02/14/windows-azure-use-case-web-applications.aspx</link><pubDate>Mon, 14 Feb 2011 17:22:42 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:33471</guid><dc:creator>BuckWoody</dc:creator><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:4px 0px 4px 0px;"&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;em&gt;&lt;span style="font-size:small;"&gt;This is one in a series of posts on when and where to use a distributed architecture design in your organization's computing needs. You can find the main post here: &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx"&gt;&lt;span style="font-size:small;"&gt;&lt;u&gt;&lt;font color="#800080"&gt;http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx&lt;/font&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;"&gt;&amp;#160;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:small;"&gt;Description:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;Many applications have a requirement to be located outside of the organization’s internal infrastructure control. For instance, the company website for a brick-and-mortar retail company may want to post not only static but interactive content to be available to their external customers, and not want the customers to have access inside the organization’s firewall. &lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;There are also cases of pure web applications used for a great many of the internal functions of the business. This allows for remote workers, shared customer/employee workloads and data and other advantages. Some firms choose to host these web servers internally, others choose to contract out the infrastructure to an “ASP” (Application Service Provider) or an Infrastructure as a Service (IaaS) company.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;In any case, the design of these applications often resembles the following:&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/3122.WebAppsWeb_5F00_2.png"&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="WebAppsWeb" border="0" alt="WebAppsWeb" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/6254.WebAppsWeb_5F00_thumb.png" width="767" height="208" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;In this design, a server (or perhaps more than one) hosts the presentation function (http or https) access to the application, and this same system may hold the computational aspects of the program. Authorization and Access is controlled programmatically, or is more open if this is a customer-facing application. Storage is either placed on the same or other servers, hosted within an RDBMS or NoSQL database, or a combination of the options, all coded into the application.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;High-Availability within this scenario is often the responsibility of the architects of the application, and by purchasing more hosting resources which must be built, licensed and configured, and manually added as demand requires, although some IaaS providers have a partially automatic method to add nodes for scale-out, if the architecture of the application supports it. Disaster Recovery is the responsibility of the system architect as well.&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:small;"&gt;&lt;strong&gt;Implementation:&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;In a Windows Azure Platform as a Service (PaaS) environment, many of these architectural considerations are designed into the system.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/6735.WebAppsAzure_5F00_2.png"&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="WebAppsAzure" border="0" alt="WebAppsAzure" src="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/1057.WebAppsAzure_5F00_thumb.png" width="826" height="238" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The Azure “Fabric” (not to be confused with the Azure implementation of Application Fabric - more on that in a moment) is designed to provide scalability. Compute resources can be added and removed programmatically based on any number of factors. Balancers at the request-level of the Fabric automatically route http and https requests. The fabric also provides High-Availability for storage and other components. Disaster recovery is a shared responsibility between the facilities (which have the ability to restore in case of catastrophic failure) and your code, which should build in recovery.&lt;/p&gt;  &lt;p&gt;In a Windows Azure-based web application, you have the ability to separate out the various functions and components. Presentation can be coded for multiple platforms like smart phones, tablets and PC’s, while the computation can be a single entity shared between them. This makes the applications more resilient and more object-oriented, and lends itself to a SOA or Distributed Computing architecture. &lt;/p&gt;  &lt;p&gt;It is true that you could code up a similar set of functionality in a traditional web-farm, but the difference here is that the components are built into the very design of the architecture. The API’s and DLL’s you call in a Windows Azure code base contains components as first-class citizens. For instance, if you need storage, it is simply called within the application as an object.&amp;#160; Computation has multiple options and the ability to scale linearly. &lt;/p&gt;  &lt;p&gt;You also gain another component that you would either have to write or bolt-in to a typical web-farm: the Application Fabric. This Windows Azure component provides communication between applications or even to on-premise systems. It provides authorization in either person-based or claims-based perspectives. &lt;/p&gt;  &lt;p&gt;SQL Azure provides relational storage as another option, and can also be used or accessed from on-premise systems. It should be noted that you can use all or some of these components individually. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:small;"&gt;Resources:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Design Strategies for Scalable Active Server Applications - &lt;a href="http://msdn.microsoft.com/en-us/library/ms972349.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;http://msdn.microsoft.com/en-us/library/ms972349.aspx&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Physical Tiers and Deployment&amp;#160; - &lt;a href="http://msdn.microsoft.com/en-us/library/ee658120.aspx"&gt;&lt;u&gt;&lt;font color="#0066cc"&gt;http://msdn.microsoft.com/en-us/library/ee658120.aspx&lt;/font&gt;&lt;/u&gt;&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Windows Azure Use Case: New Development</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/02/08/windows-azure-use-case-new-development.aspx</link><pubDate>Tue, 08 Feb 2011 13:46:34 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:33303</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;&lt;em&gt;This is one in a series of posts on when and where to use a distributed architecture design in your organization's computing needs. You can find the main post here: &lt;a href="http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx"&gt;&lt;u&gt;http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx&lt;/u&gt;&lt;/a&gt; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Computing platforms evolve over time. Originally computers were directed by hardware wiring - that, the “code” was the path of the wiring that directed an electrical signal from one component to another, or in some cases a physical switch controlled the path. From there software was developed, first in a very low machine language, then when compilers were created, computer languages could more closely mimic written statements. These language statements can be compiled into the lower-level machine language still used by computers today.&lt;/p&gt;  &lt;p&gt;Microprocessors replaced logic circuits, sometimes with fewer instructions (Reduced Instruction Set Computing, RISC) and sometimes with more instructions (Complex Instruction Set Computing, CISC). &lt;/p&gt;  &lt;p&gt;The reason this history is important is that along each technology advancement, computer code has adapted. Writing software for a RISC architecture is significantly different than developing for a CISC architecture. And moving to a Distributed Architecture like Windows Azure also has specific implementation details that our code must follow.&lt;/p&gt;  &lt;p&gt;But why make a change? As I’ve described, we need to make the change to our code to follow advances in technology. There’s no point in change for its own sake, but as a new paradigm offers benefits to our users, it’s important for us to leverage those benefits where it makes sense.&lt;/p&gt;  &lt;p&gt;That’s most often done in new development projects. It’s a far simpler task to take a new project and adapt it to Windows Azure than to try and retrofit older code designed in a previous computing environment. We can still use the same coding languages (.NET, Java, C++) to write code for Windows Azure, but we need to think about the architecture of that code on a new project so that it runs in the most efficient, cost-effective way in a Distributed Architecture.&lt;/p&gt;  &lt;p&gt;As we receive new requests from the organization for new projects, a distributed architecture paradigm belongs in the decision matrix for the platform target.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Implementation:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When you are designing new applications for Windows Azure (or any distributed architecture) there are many important details to consider. But at the risk of over-simplification, there are three main concepts to learn and architect within the new code:&lt;/p&gt;  &lt;p&gt;Stateless Programming - Stateless program is a prime concept within distributed architectures. Rather than each server owning the complete processing cycle, the information from an operation that needs to be retained (the “state”) should be persisted to another location c(like storage) common to all machines involved in the process.&amp;#160; An interesting learning process for Stateless Programming (although not unique to this language type) is to learn Functional Programming. &lt;/p&gt;  &lt;p&gt;Server-Side Processing - Along with developing using a Stateless Design, the closer you can locate the code processing to the data, the less expensive and faster the code will run. When you control the network layer, this is less important, since you can send vast amounts of data between the server and client, allowing the client to perform processing. In a distributed architecture, you don’t always own the network, so it’s performance is unpredictable. Also, you may not be able to control the platform the user is on (such as a smartphone, PC or tablet), so it’s imperative to deliver only results and graphical elements where possible.&amp;#160; &lt;/p&gt;  &lt;p&gt;Token-Based Authentication - Also called “Claims-Based Authorization”, this code practice means instead of allowing a user to log on once and then running code in that context, a more granular level of security is used. A “token” or “claim”, often represented as a Certificate, is sent along for a series or even one request. In other words, every call to the code is authenticated against the token, rather than allowing a user free reign within the code call. While this is more work initially, it can bring a greater level of security, and it is far more resilient to disconnections.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:small;"&gt;Resources:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;See the references of “Nondistributed Deployment” and “Distributed Deployment” at the top of this article for more information with graphics:&amp;#160; &lt;a href="http://msdn.microsoft.com/en-us/library/ee658120.aspx"&gt;http://msdn.microsoft.com/en-us/library/ee658120.aspx&lt;/a&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Stack Overflow has a good thread on functional programming: &lt;a href="http://stackoverflow.com/questions/844536/advantages-of-stateless-programming"&gt;http://stackoverflow.com/questions/844536/advantages-of-stateless-programming&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Another good discussion on Stack Overflow on server-side processing is here: &lt;a href="http://stackoverflow.com/questions/3064018/client-side-or-server-side-processing"&gt;http://stackoverflow.com/questions/3064018/client-side-or-server-side-processing&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Claims Based Authorization is described here: &lt;a href="http://msdn.microsoft.com/en-us/magazine/ee335707.aspx"&gt;http://msdn.microsoft.com/en-us/magazine/ee335707.aspx&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Windows Azure Use Case: Agility</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/01/25/windows-azure-use-case-agility.aspx</link><pubDate>Tue, 25 Jan 2011 14:56:44 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:32911</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;em&gt;&lt;span style="font-size:small;"&gt;This is one in a series of posts on when and where to use a distributed architecture design in your organization's computing needs. You can find the main post here: &lt;/span&gt;&lt;a href="http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx"&gt;&lt;span style="font-size:small;"&gt;&lt;u&gt;&lt;font color="#800080"&gt;http://blogs.msdn.com/b/buckwoody/archive/2011/01/18/windows-azure-and-sql-azure-use-cases.aspx&lt;/font&gt;&lt;/u&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;"&gt;&amp;#160;&lt;/span&gt;&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:small;"&gt;Description:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Agility in this context is defined as the ability to quickly develop and deploy an application. In theory, the speed at which your organization can develop and deploy an application on available hardware is identical to what you could deploy in a distributed environment. But in practice, this is not always the case. Having an option to use a distributed environment can be much faster for the deployment and even the development process.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;   &lt;p&gt;&lt;a href="http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/5367.image_5F00_4.png"&gt;&lt;font size="2"&gt;&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;   &lt;strong&gt;&lt;span style="font-size:small;"&gt;Implementation:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;When an organization designs code, they are essentially becoming a Software-as-a-Service (SaaS) provider to their own organization. To do that, the IT operations team becomes the Infrastructure-as-a-Service (IaaS) to the development teams. From there, the software is developed and deployed using an Application Lifecycle Management (ALM) process.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;A simplified view of an ALM process is as follows:&lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Requirements&lt;/li&gt;    &lt;li&gt;Analysis &lt;/li&gt;    &lt;li&gt;Design and Development&lt;/li&gt;    &lt;li&gt;Implementation &lt;/li&gt;    &lt;li&gt;Testing &lt;/li&gt;    &lt;li&gt;Deployment to Production &lt;/li&gt;    &lt;li&gt;Maintenance&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="2"&gt;In an on-premise environment, this often equates to the following process map:&lt;/font&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="2"&gt;     &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Requirements &lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Business requirements formed by Business Analysts, Developers and Data Professionals.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Analysis&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Feasibility studies, including physical plant, security, manpower and other resources.          &lt;br /&gt;          &lt;br /&gt;Request is placed on the work task list if approved.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Design and Development&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Code written according to organization’s chosen methodology, either on-premise or to multiple development teams on and off premise.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Implementation&lt;/strong&gt; &lt;/td&gt;        &lt;td&gt;Code checked into main branch.         &lt;br /&gt;          &lt;br /&gt;Code forked as needed. &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Testing&lt;/strong&gt; &lt;/td&gt;        &lt;td&gt;Code deployed to on-premise Testing servers.          &lt;br /&gt;          &lt;br /&gt;If no server capacity available, more resources procured through standard budgeting and ordering processes.           &lt;br /&gt;          &lt;br /&gt;Manual and automated functional, load, security, etc. performed.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Deployment to Production &lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Server team involved to select platform and environments with available capacity.         &lt;br /&gt;          &lt;br /&gt;If no server capacity available, standard budgeting and procurement process followed.          &lt;br /&gt;          &lt;br /&gt;If no server capacity available, systems built, configured and put under standard organizational IT control.          &lt;br /&gt;          &lt;br /&gt;Systems configured for proper operating systems, patches, security and virus scans.          &lt;br /&gt;          &lt;br /&gt;System maintenance, HA/DR, backups and recovery plans configured and put into place.&lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td&gt;&lt;strong&gt;Maintenance&lt;/strong&gt;&lt;/td&gt;        &lt;td&gt;Code changes evaluated and altered according to need.&lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;p&gt;&lt;font size="2"&gt;In a distributed computing environment like Windows Azure, the process maps a bit differently:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;     &lt;table cellspacing="0" cellpadding="2"&gt;         &lt;tr&gt;           &lt;td&gt;&lt;strong&gt;&lt;font color="#d19049"&gt;Requirements&lt;/font&gt; &lt;/strong&gt;&lt;/td&gt;            &lt;td&gt;Business requirements formed by Business Analysts, Developers and Data Professionals.&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td&gt;&lt;strong&gt;&lt;font color="#d19049"&gt;Analysis&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;            &lt;td&gt;Feasibility studies, including budget, security, manpower and other resources.              &lt;br /&gt;              &lt;br /&gt;Request is placed on the work task list if approved.&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td&gt;&lt;strong&gt;&lt;font color="#d19049"&gt;Design and Development&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;            &lt;td&gt;Code written according to organization’s chosen methodology, either on-premise or to multiple development teams on and off premise.&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td&gt;&lt;strong&gt;&lt;font color="#d19049"&gt;Implementation&lt;/font&gt;&lt;/strong&gt; &lt;/td&gt;            &lt;td&gt;Code checked into main branch.             &lt;br /&gt;              &lt;br /&gt;Code forked as needed. &lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td&gt;&lt;strong&gt;&lt;font color="#d19049"&gt;Testing&lt;/font&gt;&lt;/strong&gt; &lt;/td&gt;            &lt;td&gt;Code deployed to Azure.             &lt;br /&gt;               &lt;br /&gt;Manual and automated functional, load, security, etc. performed.&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td&gt;&lt;strong&gt;&lt;font color="#d19049"&gt;Deployment to Production&lt;/font&gt; &lt;/strong&gt;&lt;/td&gt;            &lt;td&gt;Code deployed to Azure.             &lt;br /&gt;              &lt;br /&gt;Point in time backup and recovery plans configured and put into place.(&lt;em&gt;HA/DR and automated backups already present in Azure fabric&lt;/em&gt;)&lt;/td&gt;         &lt;/tr&gt;          &lt;tr&gt;           &lt;td&gt;&lt;strong&gt;&lt;font color="#d19049"&gt;Maintenance&lt;/font&gt;&lt;/strong&gt;&lt;/td&gt;            &lt;td&gt;Code changes evaluated and altered according to need.&lt;/td&gt;         &lt;/tr&gt;       &lt;/table&gt;   &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;This means that several steps can be removed or expedited. It also means that the business function requesting the application can be held directly responsible for the funding of that request, speeding the process further since the IT budgeting process may not be involved in the Azure scenario.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;An additional benefit is the “Azure Marketplace”, In effect this becomes an app store for Enterprises to select pre-defined code and data applications to mesh or bolt-in to their current code, possibly saving development time.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;span style="font-size:small;"&gt;Resources:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Whitepaper download- What is ALM?&amp;#160; &lt;a href="http://go.microsoft.com/?linkid=9743693"&gt;http://go.microsoft.com/?linkid=9743693&lt;/a&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Whitepaper download - ALM and Business Strategy: &lt;a href="http://go.microsoft.com/?linkid=9743690"&gt;http://go.microsoft.com/?linkid=9743690&lt;/a&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;LiveMeeting Recording on ALM and Windows Azure (registration required, but free): &lt;a href="http://www.microsoft.com/uk/msdn/visualstudio/contact-us.aspx?sbj=DevelopingwithWindowsAzure(ALMperspective)-10:00-11:00-19thJan2011" target="_blank"&gt;http://www.microsoft.com/uk/msdn/visualstudio/contact-us.aspx?sbj=Developing with Windows Azure (ALM perspective) - 10:00-11:00 - 19th Jan 2011&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;</description></item></channel></rss>