<?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 'cloud computing' and 'Compute'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=cloud+computing,Compute&amp;orTags=0</link><description>Search results matching tags 'cloud computing' and 'Compute'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Why do I need two Instances in Windows Azure?</title><link>http://sqlblog.com/blogs/buck_woody/archive/2012/03/20/why-do-i-need-two-roles-in-windows-azure.aspx</link><pubDate>Tue, 20 Mar 2012 13:23:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:42411</guid><dc:creator>BuckWoody</dc:creator><description>&lt;div style="float:none;margin:0px;padding:4px 0px 4px 0px;" class="wlWriterHeaderFooter"&gt;&lt;/div&gt;
&lt;p&gt;Windows Azure as a Platform as a Service (PaaS) means that there are various components you can use in it to solve a problem:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Compute &amp;ldquo;Roles&amp;rdquo;&lt;/strong&gt; - Computers running an OS and optionally IIS - you can have more than one "Instance" of a given Role&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Storage&lt;/strong&gt; - Blobs, Tables and Queues for Storage&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Other Services&lt;/strong&gt; - Things like the Service Bus, Azure Connection Services, SQL Azure and Caching&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;It&amp;rsquo;s important to understand that some of these services are &lt;em&gt;Stateless&lt;/em&gt; and others &lt;em&gt;maintain State&lt;/em&gt;. &lt;em&gt;Stateless &lt;/em&gt;means (at least in this case) that a system might disappear from one physical location and appear elsewhere. You can think of this as a cashier at the front of a store. If you&amp;rsquo;re in line, a cashier might take his break, and another person might replace him. As long as the order proceeds, you as the customer aren&amp;rsquo;t really affected except for the few seconds it takes to change them out. The cashier function in this example is stateless.&lt;/p&gt;
&lt;p&gt;The Compute Role Instances in Windows Azure are Stateless. To upgrade hardware, because of a fault or many other reasons, a Compute Role's Instance&amp;nbsp;might stop on one physical server, and another will pick it up. This is done through the controlling fabric that Windows Azure uses to manage the systems.&lt;/p&gt;
&lt;p&gt;It&amp;rsquo;s important to note that storage in Azure &lt;em&gt;does &lt;/em&gt;maintain State. Your data will not simply disappear - it is maintained - in fact, it&amp;rsquo;s maintained three times in a single datacenter and all those copies are replicated to another for safety. Going back to our example, storage is similar to the cash register itself. Even though a cashier leaves, the record of your payment is maintained.&lt;/p&gt;
&lt;p&gt;So if a Compute Role Instance can disappear and re-appear, the things running on that first Instance would stop working. If you wrote your code in a Stateless way, then another Role Instance simply re-starts that transaction and keeps working, just like the other cashier in the example.&lt;/p&gt;
&lt;p&gt;But if you only have one Instance of a Role, then when the Role Instance is re-started, or when you need to upgrade your own code, you can face downtime, since there&amp;rsquo;s only one. That means you should deploy at least two of each Role Instance not only for scale to handle load, but so that the first &amp;ldquo;cashier&amp;rdquo; has someone to replace them when they disappear. It&amp;rsquo;s not just a good idea - to gain the Service Level Agreement (SLA) for our uptime in Azure it&amp;rsquo;s a requirement. We point this out right in the Management Portal when you deploy the application:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/2703.Uptime1_5F00_2.jpg"&gt;&lt;img style="background-image:none;padding-left:0px;padding-right:0px;display:inline;padding-top:0px;border:0px;" title="Uptime1" border="0" alt="Uptime1" src="http://sqlblog.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-79-79-metablogapi/7180.Uptime1_5F00_thumb.jpg" width="587" height="362" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;(Click to enlarge)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;When you deploy a Role Instance you can also set the &amp;ldquo;Upgrade Domain&amp;rdquo;. Placing Roles on separate Upgrade Domains means that you have a continuous service whenever you upgrade&amp;nbsp;(more on upgrades in another post) - the process looks like this for two Roles. This example covers the scenario for upgrade, so you have four roles total&amp;nbsp;- One Web and one Worker running the "older" code, and one of each running the new code. In all those Roles you want at least two instances, and this example shows that you're covered for High Availability and upgrade paths:&lt;/p&gt;
&lt;p&gt;&lt;img src="http://i.msdn.microsoft.com/dynimg/IC345880.png" /&gt;&lt;/p&gt;
&lt;p&gt;The take-away is this - always plan for forward-facing Roles to have at least two copies. For Worker Roles that do background processing, there are ways to architect around this number, but it does affect the SLA if you have only one.&lt;/p&gt;</description></item><item><title>Java Resources for Windows Azure</title><link>http://sqlblog.com/blogs/buck_woody/archive/2012/03/12/java-resources-for-windows-azure.aspx</link><pubDate>Tue, 13 Mar 2012 00:45:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:42264</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p&gt;Windows Azure is a Platform as a Service &amp;ndash; a PaaS &amp;ndash; that runs code you write. That code doesn&amp;rsquo;t just mean the languages on the .NET platform &amp;ndash; you can run code from multiple languages, including Java. In fact, you can develop for Windows and SQL Azure using not only Visual Studio but the Eclipse Integrated Development Environment (IDE) as well.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;Although not an exhaustive list, here are several links that deal with Java and Windows Azure:&lt;/p&gt;
&lt;table style="width:909px;height:1151px;" cellspacing="0" cellpadding="0"&gt;

&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="color:#ff0000;font-size:medium;"&gt;&lt;b&gt;Resource&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;span style="color:#ff0000;font-size:medium;"&gt;&lt;b&gt;Link&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Windows Azure Java Development Center&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://www.windowsazure.com/en-us/develop/java/"&gt;http://www.windowsazure.com/en-us/develop/java/&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Java Development Guidance&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/hh690943(VS.103).aspx"&gt;http://msdn.microsoft.com/en-us/library/hh690943(VS.103).aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Running a Java Environment on Windows Azure&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/b/port25/archive/2010/10/28/running-a-java-environment-on-windows-azure.aspx"&gt;http://blogs.technet.com/b/port25/archive/2010/10/28/running-a-java-environment-on-windows-azure.aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Running a Java Environment on Windows Azure&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://blogs.technet.com/b/port25/archive/2010/10/28/running-a-java-environment-on-windows-azure.aspx"&gt;http://blogs.technet.com/b/port25/archive/2010/10/28/running-a-java-environment-on-windows-azure.aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Run Java with Jetty in Windows Azure&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://sqlblog.com/b/dachou/archive/2010/03/21/run-java-with-jetty-in-windows-azure.aspx"&gt;http://blogs.msdn.com/b/dachou/archive/2010/03/21/run-java-with-jetty-in-windows-azure.aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Using the plugin for Eclipse&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://sqlblog.com/b/craig/archive/2011/03/22/new-plugin-for-eclipse-to-get-java-developers-off-the-ground-with-windows-azure.aspx"&gt;http://blogs.msdn.com/b/craig/archive/2011/03/22/new-plugin-for-eclipse-to-get-java-developers-off-the-ground-with-windows-azure.aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Run Java with GlassFish in Windows Azure&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://sqlblog.com/b/dachou/archive/2011/01/17/run-java-with-glassfish-in-windows-azure.aspx"&gt;http://blogs.msdn.com/b/dachou/archive/2011/01/17/run-java-with-glassfish-in-windows-azure.aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Improving experience for Java developers with Windows&lt;br /&gt;&amp;nbsp; Azure&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://sqlblog.com/b/interoperability/archive/2011/02/23/improving-experience-for-java-developers-with-windows-azure.aspx"&gt;http://blogs.msdn.com/b/interoperability/archive/2011/02/23/improving-experience-for-java-developers-with-windows-azure.aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Java Access to SQL Azure via the JDBC Driver for SQL&lt;br /&gt;&amp;nbsp; Server&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://sqlblog.com/b/brian_swan/archive/2011/03/29/java-access-to-sql-azure-via-the-jdbc-driver-for-sql-server.aspx"&gt;http://blogs.msdn.com/b/brian_swan/archive/2011/03/29/java-access-to-sql-azure-via-the-jdbc-driver-for-sql-server.aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;How to Get Started with Java, Tomcat on Windows Azure&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://sqlblog.com/b/usisvde/archive/2011/03/04/how-to-get-started-with-java-tomcat-on-windows-azure.aspx"&gt;http://blogs.msdn.com/b/usisvde/archive/2011/03/04/how-to-get-started-with-java-tomcat-on-windows-azure.aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Deploying Java Applications in Azure&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://sqlblog.com/b/mariok/archive/2011/01/05/deploying-java-applications-in-azure.aspx"&gt;http://blogs.msdn.com/b/mariok/archive/2011/01/05/deploying-java-applications-in-azure.aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Using the Windows Azure Storage Explorer in Eclipse&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://sqlblog.com/b/brian_swan/archive/2011/01/11/using-the-windows-azure-storage-explorer-in-eclipse.aspx"&gt;http://blogs.msdn.com/b/brian_swan/archive/2011/01/11/using-the-windows-azure-storage-explorer-in-eclipse.aspx&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Windows Azure Tomcat Solution Accelerator&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://archive.msdn.microsoft.com/winazuretomcat"&gt;http://archive.msdn.microsoft.com/winazuretomcat&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Deploying a Java application to Windows Azure with&lt;br /&gt;&amp;nbsp; Command-line Ant&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://java.interoperabilitybridges.com/articles/deploying-a-java-application-to-windows-azure-with-command-line-ant"&gt;http://java.interoperabilitybridges.com/articles/deploying-a-java-application-to-windows-azure-with-command-line-ant&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Video: Open in the Cloud: Windows Azure and Java&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://channel9.msdn.com/Events/PDC/PDC10/CS10"&gt;http://channel9.msdn.com/Events/PDC/PDC10/CS10&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;AzureRunMe&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://azurerunme.codeplex.com/"&gt;http://azurerunme.codeplex.com/&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Windows Azure SDK for Java&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://www.interoperabilitybridges.com/projects/windows-azure-sdk-for-java"&gt;http://www.interoperabilitybridges.com/projects/windows-azure-sdk-for-java&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;AppFabric SDK for Java&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://www.interoperabilitybridges.com/projects/azure-java-sdk-for-net-services"&gt;http://www.interoperabilitybridges.com/projects/azure-java-sdk-for-net-services&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Information Cards for Java&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://www.interoperabilitybridges.com/projects/information-card-for-java"&gt;http://www.interoperabilitybridges.com/projects/information-card-for-java&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Apache Stonehenge&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://www.interoperabilitybridges.com/projects/apache-stonehenge"&gt;http://www.interoperabilitybridges.com/projects/apache-stonehenge&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;p&gt;Channel 9 Case Study on Java and Windows Azure&lt;/p&gt;
&lt;/td&gt;
&lt;td&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/casestudies/Windows-Azure/Gigaspaces/Solution-Provider-Streamlines-Java-Application-Deployment-in-the-Cloud/400000000081"&gt;http://www.microsoft.com/casestudies/Windows-Azure/Gigaspaces/Solution-Provider-Streamlines-Java-Application-Deployment-in-the-Cloud/400000000081&lt;/a&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;

&lt;/table&gt;
&lt;p&gt;&amp;nbsp;&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 Emulators On Your Desktop</title><link>http://sqlblog.com/blogs/buck_woody/archive/2011/02/01/windows-azure-emulators-on-your-desktop.aspx</link><pubDate>Tue, 01 Feb 2011 14:39:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:33096</guid><dc:creator>BuckWoody</dc:creator><description>&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;Many people feel they have to set up a full Azure subscription online to try out and develop on Windows Azure. But you don&amp;rsquo;t have to do that right away. In fact, you can download the Windows Azure Compute Emulator &amp;ndash; a &amp;ldquo;cloud development environment&amp;rdquo; &amp;ndash; right on your desktop. No, it&amp;rsquo;s not for production use, and no, you won&amp;rsquo;t have other people using your system as a cloud provider, &lt;/span&gt;&lt;a target="_blank" href="http://msdn.microsoft.com/en-us/library/gg432960.aspx"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="font-family:Calibri;color:#0000ff;font-size:small;"&gt;and yes, there are some differences with Production Windows Azure&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;, but you&amp;rsquo;ll be able code, run, test, diagnose, watch, change and configure code without having any connection to the Internet at all. The best thing about this approach is that when you are ready to deploy the code you&amp;rsquo;ve been testing, a few clicks deploys it to your subscription when you make one. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;So what deep-magic does it take to run such a thing right on your laptop or even a Virtual PC? Well, it&amp;rsquo;s actually not all that difficult. You simply download and install the Windows Azure SDK (&lt;em&gt;you can even get a free version of Visual Studio for it to run on &amp;ndash; you&amp;rsquo;re welcome&lt;/em&gt;) from here: &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/windowsazure/cc974146.aspx"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="font-family:Calibri;color:#0000ff;font-size:small;"&gt;http://msdn.microsoft.com/en-us/windowsazure/cc974146.aspx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;This SDK will also install the Windows Azure Compute Emulator and the Windows Azure Storage Emulator &amp;ndash; and then you&amp;rsquo;re all set. Right-click the icon for Visual Studio and select &amp;ldquo;Run as Administrator&amp;rdquo;:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="color:#000000;font-size:small;"&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/1072.azure1_5F00_2.png"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img height="163" width="244" src="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/0083.azure1_5F00_thumb.png" alt="azure1" border="0" title="azure1" 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;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Now open a new &amp;ldquo;Cloud&amp;rdquo; type of project: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="color:#000000;font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/8004.azure2_5F00_2.png"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img height="163" width="244" src="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/5466.azure2_5F00_thumb.png" alt="azure2" border="0" title="azure2" 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;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Add your Web and Worker Roles that you want to code: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="color:#000000;font-size:small;"&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/2630.azure2b_5F00_2.png"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img height="163" width="244" src="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/0181.azure2b_5F00_thumb.png" alt="azure2b" border="0" title="azure2b" 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;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;And when you&amp;rsquo;re done with your design, press F5 to start the desktop version of Azure: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="color:#000000;font-size:small;"&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/2046.azure3_5F00_2.png"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img height="163" width="244" src="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/1157.azure3_5F00_thumb.png" alt="azure3" border="0" title="azure3" 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;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Want to learn more about what&amp;rsquo;s happening underneath? Right-click the tray icon with the Azure logo, and select the two emulators to see what they are doing: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="color:#000000;font-size:small;"&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/5873.azure4_5F00_2.png"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img height="163" width="244" src="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/3113.azure4_5F00_thumb.png" alt="azure4" border="0" title="azure4" 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;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp; &lt;/span&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/6837.azure5_5F00_2.png"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img height="162" width="244" src="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/4300.azure5_5F00_thumb.png" alt="azure5" border="0" title="azure5" 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;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/5367.azure6_5F00_2.png"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img height="162" width="244" src="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/7002.azure6_5F00_thumb.png" alt="azure6" border="0" title="azure6" 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;/span&gt;&lt;/a&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/0160.azure7_5F00_2.png"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;img height="162" width="244" src="http://sqlblog.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-79-79-metablogapi/6428.azure7_5F00_thumb.png" alt="azure7" border="0" title="azure7" 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;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;In the configuration files, you&amp;rsquo;ll see a &amp;ldquo;Use Development Storage&amp;rdquo; setting. You can call the BLOB, Table or Queue storage and it will all run on your desktop. When you&amp;rsquo;re ready to deploy everything to Windows Azure, you simply change the configuration settings and add the storage keys and so on that you need. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;Want to learn more about all this? &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt;&lt;span style="mso-spacerun:yes;"&gt;&amp;nbsp;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;Overview of the Windows Azure Compute Emulator: &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432968.aspx"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="font-family:Calibri;color:#0000ff;font-size:small;"&gt;http://msdn.microsoft.com/en-us/library/gg432968.aspx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;Overview of the Windows Azure Storage Emulator: &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/gg432983.aspx"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="font-family:Calibri;color:#0000ff;font-size:small;"&gt;http://msdn.microsoft.com/en-us/library/gg432983.aspx&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-size:small;"&gt;&lt;span style="font-family:Calibri;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;January 2011 Training Kit: &lt;/span&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;amp;displaylang=en"&gt;&lt;span style="text-decoration:underline;"&gt;&lt;span style="font-family:Calibri;color:#0000ff;font-size:small;"&gt;http://www.microsoft.com/downloads/en/details.aspx?FamilyID=413E88F8-5966-4A83-B309-53B7B77EDF78&amp;amp;displaylang=en&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size:small;"&gt;&lt;span style="color:#000000;"&gt;&lt;span style="font-family:Calibri;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p class="MsoNormal"&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;color:#000000;font-size:small;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-family:Calibri;"&gt;&lt;/span&gt;&lt;/p&gt;</description></item><item><title>The Proper Use of the VM Role in Windows Azure</title><link>http://sqlblog.com/blogs/buck_woody/archive/2010/12/28/the-proper-use-of-the-vm-role-in-windows-azure.aspx</link><pubDate>Tue, 28 Dec 2010 14:49:30 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:32049</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;At the Professional Developer’s Conference (PDC) in 2010 we announced an addition to the Computational Roles in Windows Azure, called the &lt;em&gt;VM Role&lt;/em&gt;. This new feature allows a great deal of control over the applications you write, but some have confused it with our full infrastructure offering in Windows Hyper-V. There is a proper architecture pattern for both of them. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Virtualization&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Virtualization is the process of taking all of the hardware of a physical computer and replicating it in software alone. This means that a single computer can “host” or run several “virtual” computers. These virtual computers can run anywhere - including at a vendor’s location. Some companies refer to this as Cloud Computing since the hardware is operated and maintained elsewhere. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;IaaS&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The more detailed definition of this type of computing is called &lt;em&gt;Infrastructure as a Service&lt;/em&gt; (Iaas) since it removes the need for you to maintain hardware at your organization. The operating system, drivers, and all the other software required to run an application are still under your control and your responsibility to license, patch, and scale. Microsoft has an offering in this space called &lt;em&gt;Hyper-V&lt;/em&gt;, that runs on the Windows operating system. Combined with a hardware hosting vendor and the &lt;em&gt;System Center&lt;/em&gt; software to create and deploy Virtual Machines (a process referred to as &lt;em&gt;provisioning&lt;/em&gt;), you can create a Cloud environment with full control over all aspects of the machine, including multiple operating systems if you like. Hosting machines and provisioning them at your own buildings is sometimes called a &lt;em&gt;Private Cloud&lt;/em&gt;, and hosting them somewhere else is often called a &lt;em&gt;Public Cloud&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;State-ful and Stateless Programming&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This paradigm does not create a new, scalable way of computing. It simply moves the hardware away. The reason is that when you limit the Cloud efforts to a Virtual Machine, you are in effect limiting the computing resources to what that single system can provide. This is because much of the software developed in this environment maintains “state” - and that requires a little explanation.&lt;/p&gt;  &lt;p&gt;“State-ful programming” means that all parts of the computing environment stay connected to each other throughout a compute cycle. The system expects the memory, CPU, storage and network to remain in the same state from the beginning of the process to the end. You can think of this as a telephone conversation - you expect that the other person picks up the phone, listens to you, and talks back all in a single unit of time. &lt;/p&gt;  &lt;p&gt;In “Stateless” computing the system is designed to allow the different parts of the code to run independently of each other. You can think of this like an e-mail exchange. You compose an e-mail from your system (it has the state when you’re doing that) and then you walk away for a bit to make some coffee. A few minutes later you click the “send” button (the network has the state) and you go to a meeting. The server receives the message and stores it on a mail program’s database (the mail server has the state now) and continues working on other mail. Finally, the other party logs on to their mail client and reads the mail (the other user has the state) and responds to it and so on. These events might be separated by milliseconds or even days, but the system continues to operate. The entire process doesn’t maintain the state, each component does. This is the exact concept behind coding for Windows Azure.&lt;/p&gt;  &lt;p&gt;The stateless programming model allows amazing rates of scale, since the message (think of the e-mail) can be broken apart by multiple programs and worked on in parallel (like when the e-mail goes to hundreds of users), and only the order of re-assembling the work is important to consider. For the exact same reason, if the system makes copies of those running programs as Windows Azure does, you have built-in redundancy and recovery. It’s just built into the design.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Difference Between Infrastructure Designs and Platform Designs&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When you simply take a physical server running software and virtualize it either privately or publicly, you haven’t done anything to allow the code to scale or have recovery. That all has to be handled by adding more code and more Virtual Machines that have a slight lag in maintaining the running state of the system. Add more machines and you get more lag, so the scale is limited. This is the primary limitation with IaaS. It’s also not as easy to deploy these VM’s, and more importantly, you’re often charged on a longer basis to remove them. your agility in IaaS is more limited.&lt;/p&gt;  &lt;p&gt;Windows Azure is a &lt;em&gt;Platform&lt;/em&gt; - meaning that you get objects you can code against. The code you write runs on multiple nodes with multiple copies, and it all works because of the magic of Stateless programming. you don’t worry, or even care, about what is running underneath. It could be Windows (and it is in fact a type of Windows Server), Linux, or anything else - but that' isn’t what you want to manage, monitor, maintain or license. You don’t want to deploy an &lt;em&gt;operating system &lt;/em&gt;- you want to deploy an &lt;em&gt;application&lt;/em&gt;. You want your code to run, and you don’t care how it does that. &lt;/p&gt;  &lt;p&gt;Another benefit to PaaS is that you can ask for hundreds or thousands of new nodes of computing power - there’s no provisioning, it just happens. And you can stop using them quicker - and the base code for your application does not have to change to make this happen.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Azure Roles and Their Use&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If you need your code to have a user interface, in Visual Studio you add a &lt;em&gt;Web Role &lt;/em&gt;to your project, and if the code needs to do work that doesn’t involve a user interface you can add a &lt;em&gt;Worker Role&lt;/em&gt;. They are just containers that act a certain way. I’ll provide more detail on those later.&lt;/p&gt;  &lt;p align="center"&gt;&lt;strong&gt;Note: &lt;/strong&gt;That’s a general description, so it’s not entirely accurate, but it’s accurate enough for this discussion.&lt;/p&gt;  &lt;p&gt;So now we’re back to that &lt;em&gt;VM Role&lt;/em&gt;. Because of the name, some have mistakenly thought that you can take a Virtual Machine running, say Linux, and deploy it to Windows Azure using this Role. But you can’t. That’s not what it is designed for at all. If you do need that kind of deployment, you should look into Hyper-V and System Center to create the Private or Public Infrastructure as a Service. What the VM Role is actually designed to do is to allow you to have a great deal of control over the system where your code will run. Let’s take an example.&lt;/p&gt;  &lt;p&gt;You’ve heard about Windows Azure, and Platform programming. You’re convinced it’s the right way to code. But you have a lot of things you’ve written in another way at your company. Re-writing all of your code to take advantage of Windows Azure will take a long time. Or perhaps you have a certain version of Apache Web Server that you need for your code to work. In both cases, you think you can (or already have) code the the software to be “Stateless”, you just need more control over the place where the code runs. That’s the place where a VM Role makes sense.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Recap&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Virtualizing servers alone has limitations of scale, availability and recovery. Microsoft’s offering in this area is Hyper-V and System Center, not the VM Role. The VM Role is still used for running Stateless code, just like the Web and Worker Roles, with the exception that it allows you more control over the environment of where that code runs.&lt;/p&gt;</description></item></channel></rss>