<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Nuno Filipe Godinho</title><link>http://msmvps.com/blogs/nunogodinho/default.aspx</link><description>All about .NET Development and Architecture</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/msmvps/NunoGodinho" /><feedburner:info uri="msmvps/nunogodinho" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item><title>Lessons Learned: Taking the best out of Windows Azure Virtual Machines</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/Y2N66HxqYqE/lessons-learned-taking-the-best-out-of-windows-azure-virtual-machines.aspx</link><pubDate>Mon, 22 Apr 2013 23:14:51 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1828075</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>12</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1828075</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1828075</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2013/04/22/lessons-learned-taking-the-best-out-of-windows-azure-virtual-machines.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Introduction&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now that &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2013/04/16/the-power-of-and.aspx" target="_blank"&gt;Windows Azure IaaS offerings are out and made GA&lt;/a&gt; a lot of new workloads can be enabled with Windows Azure. Workloads like, SQL Server, SharePoint, System Center 2012, Server Roles like AD, ADFS DNS and so on, and even Team Foundation Server. More of the supported list of server software that is currently supported in Windows Azure Virtual Machines can be found &lt;a href="http://support.microsoft.com/kb/2721672" target="_blank"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;But knowing what we can leverage in the Cloud isn’t enough, every features has its tricks in order to take the best out of it. In this case in order to take the best performance out of the Windows Azure Virtual Machines, I’ll provide you with a list of things you should always do, and so making your life easier and the performance a lot better.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Place each data disk in a single storage account to improve IOPS&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Last November 2012 Windows Azure Storage had an update which was called &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2012/11/02/windows-azure-s-flat-network-storage-and-2012-scalability-targets.aspx" target="_blank"&gt;“Windows Azure’s Flat Network Storage”&lt;/a&gt; which provided some new scalability targets to the blob storage accounts. In this case it went from 5,000 to 20,000, which means that we can actually have something like 20,000 IOPS now.&lt;/p&gt;  &lt;p&gt;Having 20,000 IOPS is good but if we have several disks for the same Virtual Machine this means that we’ll need to share those IOPS with all those disks, so if we have 2 disks in the same storage account we’ll have 10,000 IOPS for each one (roughly). This isn’t optimal.&lt;/p&gt;  &lt;p&gt;So, in order to achieve optimal we should create each disk in a separate storage account, because that will mean that each disk has it’s 20,000 IOPS just for itself and not sharing with any other disk.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Always use Data Disks for Read/Write intensive operations, never the OS Disk&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure Virtual Machines have two types of disks, which are OS and Data Disks. The OS Disk goal is to have everything that has to do with OS installation or any other product installation information, but isn’t actually a good place to install your highly intensive read/write software. In order to do that, you should actually leverage Data Disks, because their goal is to provide a faster and read/write capability and also separate this from the OS Disk.&lt;/p&gt;  &lt;p&gt;So since data disks are better than OS Disks it’s easy to understand why we should always place read/write intensive operations on data disks. Just be careful on the maximum number of data disks you can associate to your virtual machine, since it will differ. 16 Data Disks is the maximum you are allowed but for that you need to have an extra large virtual machine.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. Use striped disks to achieve better performance&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So we told that you should always place your read/write intensive operations software on data disks and in different storage accounts because of the IOPS you can get, and we told it was 20k IOPS, but is that enough? Can we live with only 20k IOPS in a disk? &lt;/p&gt;  &lt;p&gt;Sometimes the answer might be yes, but in some cases it won’t because we need more. For example if we think about SQL Server or SharePoint they will require a lot more, and so how can we get more IOPS?&lt;/p&gt;  &lt;p&gt;The answer is data disks striped together. What this means is that you’ll need to understand your requirements and know what’s the IOPS you’re going to need and based on that you’ll create several data disks and attach them to the virtual machine and finally stripe them together like they were a single disk. For the user of the virtual machine it will look like a single disk but it’s actually several ones striped together, which means each of the parts of that “large disk presented to the user” has 20k IOPS capability. &lt;/p&gt;  &lt;p&gt;For example, imagine we’re building a virtual machine for SQL Server and that the size of the database is 1TB but requires at least 60k IOPS. What can we do?&lt;/p&gt;  &lt;p&gt;Option 1, we could create a 1TB Data Disk and place the database files in there but that would max out to 20k IOPS only and not the 60k we need.&lt;/p&gt;  &lt;p&gt;Option 2, we will create 4 data disks of 250GB each and place each of them in a single storage account. Then we’ll attach it to the virtual machine and in the Disk Management we’ll choose to stripe them together. Now this means that we have a 1TB disk in the virtual machine that is actually composed by 4 data disks. So this means that we can actually get something like a max of 80k IOPS for this. So a lot better than before.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4. Configure Data Disks HostCache for ReadWrite&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;By now you already understood that data disks are your friends, and so one of the ways to achieve better performance with them is leveraging the HostCache. Windows Azure provides three options for data disk HostCache, which are None, ReadOnly and ReadWrite. Of course most of the times you would choose the ReadWrite because it will provide you a lot better performance, since now instead of going directly to the data disk in the storage account it will have some cached content making IOPS even better, but that doesn’t work in all cases. For example in SQL Server you should never use it since they don’t play well together, in that case you should use None instead.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5. Always create VMs inside a Affinity Group or VNET to decrease latency&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Also another big improvement you can do is to place always de VM inside an affinity group or a VNET, which in turn will live inside the affinity group. This is important because when you’re creating the several different storage accounts that will have data disks, OS disks and so on, you&amp;#39; want to make sure the latency is decreased to the max and so affinity groups will provide you with that.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;6. Always leverage Availability Sets to get SLA&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Windows Azure Virtual Machines provide a 99,95% SLA but only if you have 2 or more virtual machines running inside an availability set, so leverage it, always create your virtual machines inside an availability set.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;7. Always sysprep your machines&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;One of the important parts of the work when we take on Windows Azure Virtual Machines is to create a generalized machine that we can use later as a base image. Some people ask me, why is this important? why should I care?&lt;/p&gt;  &lt;p&gt;The answer is simple, because we need to be able to quickly provision a new machine if it’s required and if we have it syspreped we’ll be able to use it as a base and then reducing the time of installation and provisioning.&lt;/p&gt;  &lt;p&gt;Examples of where we would need this would be for Disaster Recovery and Scaling.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;8. Never place intensive read/write information on the Windows System Drive for improved performance&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;As stated before, OS Disks aren’t good for intensive IOPS so avoid leveraging them for read/write intensive work, leverage data disks instead.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;9. Never place persistent information on the Temporary Drive (D:)&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Careful what you place inside the Temporary Drive (D: ) since that’s &lt;strong&gt;temporary&lt;/strong&gt; and so if the machine recycles it will go away, so only place there something that can be deleted without issues. Things like the IIS Temporary files, ASP.NET Temp files, SQL Server TempDB (this has some challenges but can be achieved like it’s shown &lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/14337.change-tempdb-to-temporary-drive-on-azure-sql-iaas.aspx" target="_blank"&gt;here&lt;/a&gt;, and it’s actually a best practice). &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Summary&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So in summary, Windows Azure Virtual Machines are a great addition to Windows Azure but there’s a lot of tricks in order to make it better and these are some of them. If you need any help feel free to contact me and I’ll help you in anyway possible. But best of all, start to take the best out of Windows Azure Virtual Machines today and take your solutions into the next level.&lt;/p&gt;  &lt;p&gt;Also if you need some help doing that, please check Aditi’s offerings around Windows Azure IaaS &lt;a href="http://www.aditi.com/windows-azure-infrastructure-services.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1828075" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/Y2N66HxqYqE" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Virtual+Machines/default.aspx">Windows Azure Virtual Machines</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Best+Practices/default.aspx">Best Practices</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2013/04/22/lessons-learned-taking-the-best-out-of-windows-azure-virtual-machines.aspx</feedburner:origLink></item><item><title>How to make Windows Azure as an Extension of On-Premises Data Center - Windows Azure Virtual Networks - Part 1</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/C6kNpH2jflw/how-to-make-windows-azure-as-an-extension-of-on-premises-data-center-windows-azure-virtual-networks-part-1.aspx</link><pubDate>Thu, 28 Feb 2013 15:01:18 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1824444</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1824444</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1824444</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2013/02/28/how-to-make-windows-azure-as-an-extension-of-on-premises-data-center-windows-azure-virtual-networks-part-1.aspx#comments</comments><description>&lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;Now with Windows Azure Virtual Machines and Virtual Networks a lot more capabilities are available to be able to look at Windows Azure not as a &amp;#39;yet another platform&amp;#39; and not your network, but really think of it as a real extension of your On-Premises Data Center. Of course that this always depends on the type of company we are talking about, since if we talk with Enterprises this is a MUST-HAVE because they have a lot of investments still in the On-Premises world and some that aren&amp;#39;t still ready, and might never be, for the Public Cloud, but if we talk to ISV&amp;#39;s this isn&amp;#39;t that important because they want to reduce as much as possible their On-Premises needs. &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;font size="2"&gt;&lt;span style="color:black;"&gt;In order to achieve this extension there is a component in Windows Azure that is key, which is Windows Azure Virtual Network, since it allows to create a VPN between On-Premises and your Windows Azure resources. But there are some important considerations to have in mind, like: &lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;Windows Azure Virtual Networks is currently still on Preview &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;In order to use Windows Azure Virtual Network it&amp;#39;s required to have a Router device that supports VPN on the On-Premises location. &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;The On-Premises VPN devices that are currently tested can be found &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj156075.aspx"&gt;&lt;font size="2"&gt;here&lt;/font&gt;&lt;/a&gt;&lt;font size="2"&gt;. This doesn&amp;#39;t mean that they are the only ones you can use, it just means that those are a lot simpler to configure because Windows Azure provides a configuration file that is required to import into the device and it&amp;#39;s done. &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;    &lt;li&gt;     &lt;div&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;Windows Azure Virtual Networks do not span Regions or Subscriptions, which means that if you have multiple deployments in the same region and within the same subscription you can use the same VNET, if not you&amp;#39;re required to create multiple VNET&amp;#39;s. Here are some scenarios: &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;div&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;&lt;strong&gt;Scenario A:&lt;/strong&gt; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;          &lt;ul&gt;           &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;&lt;strong&gt;Description:&lt;/strong&gt; Subscription A, has Service B deployed into Windows Azure Cloud Services in North Europe region and Service C deployed in Windows Azure Cloud Services in West Europe region &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;            &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;font size="2"&gt;&lt;span style="color:black;"&gt;&lt;strong&gt;Comments:&lt;/strong&gt; Even though they are in the same subscriptions since they are in different regions you would need to create a VNET for Subscription A for the North Europe region and another for the West Europe region. &lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;&lt;strong&gt;Scenario B:&lt;/strong&gt; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;          &lt;ul&gt;           &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;&lt;strong&gt;Description:&lt;/strong&gt; Subscription A , has Service A and B deployed Windows Azure Cloud or Windows Azure Virtual Machines, and it&amp;#39;s required that they are in the same VNET &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;            &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;font size="2"&gt;&lt;span style="color:black;"&gt;&lt;strong&gt;Comments:&lt;/strong&gt; In this case you only need one VNET for both since they do not span either subscriptions or regions. &lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;&lt;strong&gt;Scenario C:&lt;/strong&gt; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;          &lt;ul&gt;           &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;&lt;strong&gt;Description: &lt;/strong&gt;Subscription A has Service B and C deployed in Windows Azure Cloud Service within the same region, but it&amp;#39;s required to create security when connecting between them. &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;            &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;font size="2"&gt;&lt;span style="color:black;"&gt;&lt;strong&gt;Comments: &lt;/strong&gt;In order to achieve this it&amp;#39;s only required to create one VNET since they are in the same subscription and region, but 2 different subnets one for each service, and then it&amp;#39;s the On-Premises VPN/Firewall device that will create the restrictions for each Subnet. &lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;div&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;strong&gt;&lt;font size="2"&gt;Scenario D: &lt;/font&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;          &lt;ul&gt;           &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;&lt;strong&gt;Description: &lt;/strong&gt;Subscription A has Service B deployed in Windows Azure on the North Central US region, and Subscription C has Service D deployed in Windows Azure on the North Central US region, but they need to communicate between themselves. &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;            &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;font size="2"&gt;&lt;span style="color:black;"&gt;&lt;strong&gt;Comments: &lt;/strong&gt;in order to achieve this it&amp;#39;s required to create a 2 separate VPN connections, one for Subscription A and another for Subscription C, because VNET&amp;#39;s don&amp;#39;t span across different subscriptions even if they are in the same region. &lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;Currently there&amp;#39;s no ACLing for subnet isolation, so that needs to be done in one of three ways. &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;      &lt;ul&gt;       &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;Create different VNET for each Subnet and this way they aren&amp;#39;t known &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;Perform the ACLing and restrictions between the different subnets on the Windows Firewall level of the instance &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;        &lt;li&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;Perform the ACLing in and On-Premises Firewall device. &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;span style="font-size:12pt;"&gt;&lt;span style="color:black;"&gt;&lt;font size="2"&gt;So by leveraging Windows Azure Virtual Networks we&amp;#39;ll be able to connect everything we have deployed in Windows Azure Compute with our On-Premises Data Center. By doing this companies gain the ability of leveraging more of their existing investments and look at Windows Azure in a more &amp;quot;extension of Data Center&amp;quot; way and less as a &amp;quot;Black box&amp;quot; which you don&amp;#39;t have a lot of control. &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style="font-size:12pt;color:black;"&gt;&lt;font size="2"&gt;In future posts I&amp;#39;ll go through the process of how-to setup a new Windows Azure Virtual Network between On-Premises and Windows Azure.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1824444" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/C6kNpH2jflw" height="1" width="1"/&gt;</description><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2013/02/28/how-to-make-windows-azure-as-an-extension-of-on-premises-data-center-windows-azure-virtual-networks-part-1.aspx</feedburner:origLink></item><item><title>March 2013 Windows Azure Speaking Engagements</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/mG-fM6wyRnU/march-2013-windows-azure-speaking-engagements.aspx</link><pubDate>Mon, 11 Feb 2013 16:36:25 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1823666</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1823666</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1823666</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2013/02/11/march-2013-windows-azure-speaking-engagements.aspx#comments</comments><description>&lt;p&gt;been doing a lot of work in Windows Azure both on the PaaS and IaaS world and since we’re entering the typical time where the Cloud Events start to happen, I’d like to share where you guys can see me talking about Windows Azure.&lt;/p&gt;  &lt;p&gt;The events I’m currently speaking are:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;DevWeek 2013 (&lt;/strong&gt;&lt;a href="http://www.devweek.com/"&gt;&lt;strong&gt;http://www.devweek.com/&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; and &lt;/strong&gt;&lt;a href="http://www.devweek.com/speakers/"&gt;&lt;strong&gt;http://www.devweek.com/speakers/&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;) &lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;March 5th&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;- SQL Azure overview – how to develop and manage it (&lt;a href="http://www.devweek.com/sessions/conference1.asp"&gt;http://www.devweek.com/sessions/conference1.asp&lt;/a&gt;) &lt;/b&gt;&lt;/p&gt;    &lt;p&gt;· In this session we will be looking at an overview of SQL Azure in terms of Architecture, Application Topologies that can be used and its Provisioning Model. We’ll also be looking at how Deployment can be done, and which Security we can expect on it. One of the important parts will be understanding the elements that are currently supported and not supported on the current version of SQL Azure, and what we can expect about the future.&lt;/p&gt;    &lt;p&gt;&lt;b&gt;- Advanced SQL Azure – performance and scalability (&lt;a href="http://www.devweek.com/sessions/conference1.asp"&gt;http://www.devweek.com/sessions/conference1.asp&lt;/a&gt;) &lt;/b&gt;&lt;/p&gt;    &lt;p&gt;· In this session we’ll look at some more important SQL Azure topics like performance and scalability, and how concepts like Sharding, SQL Azure Federation are important in order to achieve scalability improvements. We will also look at how SQL Azure Data Sync is important for these concepts and also to keep a local replica of the SQL Azure Database, SQL Azure Backups, Import and Exports and other new features that are being release by the SQL Azure team.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;March 6&lt;sup&gt;th&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;b&gt;- Tips &amp;amp; tricks to build Multi-Tenant databases with Windows Azure SQL Databases (&lt;a href="http://www.devweek.com/sessions/conference2.asp"&gt;http://www.devweek.com/sessions/conference2.asp&lt;/a&gt;)&lt;/b&gt;&lt;/p&gt;    &lt;p&gt;· When we talk about the Cloud it’s very important the we do our solutions in a highly scalable way as well as in a Multi-Tenant way, since this actually helps us lower the costs to the end customer and so grab the long tail. In order to do this a lot of adjustments need to happen on the database side of things, and in this session we’ll look at ways we can achieve Multi-Tenancy with Windows Azure SQL Databases, and how that can be integrated with the work performed while scaling out Windows Azure SQL Databases, using SQL Federations.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;strong&gt;TechDays Netherlands 2013 (&lt;/strong&gt;&lt;a href="http://www.microsoft.com/netherlands/techdays/home.aspx"&gt;&lt;strong&gt;http://www.microsoft.com/netherlands/techdays/home.aspx&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; and &lt;/strong&gt;&lt;a href="http://www.microsoft.com/netherlands/techdays/SpeakerDetail.aspx?speakerId=1441"&gt;&lt;strong&gt;http://www.microsoft.com/netherlands/techdays/SpeakerDetail.aspx?speakerId=1441&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;)&amp;#160; &lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;March 7&lt;sup&gt;th&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;- Crash Course on &amp;quot;Automating deployments in Windows Azure Virtual Machines&amp;quot;. How and which tools? (&lt;a href="http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=3735"&gt;http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=3735&lt;/a&gt;) &lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· Windows Azure Virtual Machines have a very interesting interface in the new Windows Azure management portal and it&amp;#39;s very usable when thinking about a small number of Virtual Machines, but when we start building large deployments like 10, 20, 100, 500 virtual machines with VNETs, failover, and so on things start to be different and less doable using the management portal. For this type of work we actually need some form of automation and this is actually what we&amp;#39;ll be covering in this session. And so in this session we&amp;#39;ll look at tools that can enable us to automate Windows Azure Virtual Machines deployments, like PowerShell, ScaleXtreme, RightScale, and other in order to take the automation issue out of the way and really take advantage of Windows Azure.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;March 8&lt;sup&gt;th&lt;/sup&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;b&gt;- Lessons Learned: Bridging Windows Azure and On-Premises environments with Windows Azure Virtual Network (&lt;a href="http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=3736"&gt;http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=3736&lt;/a&gt;)&amp;#160; &lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· Windows Azure Virtual Network is a very important feature in Windows Azure since it provides a way to extend the existing On-Premises environment into the Cloud, making Windows Azure look as an Extension of the already existing Data Center. Setting up Virtual Network seems simple but sometimes have some important topics that need to be considered. Topics like, Which DNS should I use? How to configure create DMZ&amp;#39;s within the Cloud? How to place PaaS components in the same Virtual Network? How do I configure the Gateway between Cloud and On-Premises? How to troubleshoot the connection? These are some of the concerns that you normally handle when configuring and using Windows Azure Virtual Networks, and so in these session we&amp;#39;ll cover these topics based on the lessons learned from doing this with a great deal of customer and going through each of those concerns.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;- &lt;b&gt;Achieve High Availability with SQL Server on Windows Azure Virtual Machines (&lt;a href="http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=3737"&gt;http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=3737&lt;/a&gt;) &lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· SQL Server has been massively used by organizations in order to provide a RDBMS and when moving into the Cloud one of the elements that normally caused some concerns was &amp;#39;THE DATABASE&amp;#39;, since SQL Databases are Shared Instances and don&amp;#39;t have feature parity with SQL Server, which causes some changes in the existing codebase. Now Windows Azure Virtual Machines opens a new door for the Cloud Migration process, since it allows to completely move our SQL Server into the Cloud and keep feature parity with On-Premises, which is important. But with this great news some new concerns appear also. Concerns like How to achieve High-Availability, Failover, Clustering, Data Security and so on with SQL Server in Windows Azure Virtual Machines. In this session, we&amp;#39;ll look at SQL Server in Windows Azure and how we can use it and achieve a Highly Available environment for out RDBMS.&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;- &lt;b&gt;Lessons Learned: Taking the best performance out of Windows Azure Virtual Machines (&lt;a href="http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=3738"&gt;http://www.microsoft.com/netherlands/techdays/SessionDetail.aspx?sessionId=3738&lt;/a&gt;) &lt;/b&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;· Windows Azure Virtual Machines are still new in Windows Azure and have a lot of tweaks needed in order to take the best out of their capabilities. After being working with them since the early beginning a lot of lessons were learned in the process in terms of how to achieve the best performance. In this process we&amp;#39;ll cover some topics and strategies that will enable us to take the best performance out of Windows Azure Virtual Machines but at the same time also achieve the best SLA possible.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Hope to see you in one of my sessions and if you would like to send any requests for some of the sessions you’re attending just send me a Tweet for @NunoGodinho. This way I’ll be able to create those Windows Azure sessions more related to what all of you really want to see.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1823666" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/mG-fM6wyRnU" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Virtual+Machines/default.aspx">Windows Azure Virtual Machines</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2013/02/11/march-2013-windows-azure-speaking-engagements.aspx</feedburner:origLink></item><item><title>Scheduler in Windows Azure</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/LNpUZbDgrhQ/scheduler-in-windows-azure.aspx</link><pubDate>Tue, 05 Feb 2013 23:48:25 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1823516</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1823516</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1823516</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2013/02/05/scheduler-in-windows-azure.aspx#comments</comments><description>&lt;p&gt;Windows Azure has been growing significantly and adding more and more services, but something that has always missed has been a Windows Azure Scheduler service. The windows azure just release one version of it that seems to have potential but still in very early stages.&lt;/p&gt;  &lt;p&gt;Recently Aditi Product Services created their first Windows Azure Service available in the Windows Azure Store, and this new service is actually a Cloud Based CRON Scheduler.&lt;/p&gt;  &lt;p&gt;This new service basically allows the user to create schedule tasks using a set of HTTP webhooks that run CRON schedules, being either simple or complex.&lt;/p&gt;  &lt;p&gt;You can check more about this service and why it was built in &lt;a href="http://blog.aditicloud.com/2013/01/22/introducing-scheduler-a-cloud-based-cron-scheduler/"&gt;this great post&lt;/a&gt; by Wade Wegner.&lt;/p&gt;  &lt;p&gt;Looking at the features:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Support for CRON statements for reoccurrence scheduling. &lt;/li&gt;    &lt;li&gt;Allows simple HTTP GET requests—easily allowing developers to use Scheduler to execute webhooks. With Scheduler, there is no requirement for a Windows Azure machine instance — every endpoint is an HTTP API. Scheduler supports development directly against the API or using our NuGet package. &lt;/li&gt;    &lt;li&gt;Fully integrated into the Windows Azure store. &lt;/li&gt;    &lt;li&gt;Run up to 5000 jobs in a month (during our Free Trial). &lt;/li&gt;    &lt;li&gt;HTTP GET requests to your services and a full Web API for CRUD operations. &lt;/li&gt;    &lt;li&gt;Simple and complex CRON job expressions. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;For future releases will include HTTP POST, Auth, sending jobs into message queues and more&lt;/p&gt;  &lt;p&gt;In terms of the architecture you can check &lt;a href="http://dunnry.com/blog/2013/01/29/AnatomyOfAScalableTaskScheduler.aspx"&gt;this other post&lt;/a&gt; from Ryan Dunn&lt;/p&gt;  &lt;p&gt;Now looking at all those features I can remember several different use cases where this might be helpful, one of them is something a lot of DBAs have been asking which is Database Backups. So what do we need to do in order to do this with this Scheduler Service?&lt;/p&gt;  &lt;p&gt;1. Add Scheduler to your Subscription by going into the &lt;a href="http://manage.windowsazure.com"&gt;http://manage.windowsazure.com&lt;/a&gt; as choosing &amp;quot;PURCHASE ADD-ONS&amp;quot;&lt;/p&gt;  &lt;p&gt;2. Choose the Scheduler Add-On&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/3678.clip_5F00_image001_5F00_42263508.png"&gt;&lt;img title="clip_image001" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="clip_image001" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/5265.clip_5F00_image001_5F00_thumb_5F00_0EE9FB9F.png" width="559" height="328" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. Now Create a Visual Studio Project and Add the Aditi.Scheduler Nuget package&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/3124.clip_5F00_image002_5F00_66D74C7F.png"&gt;&lt;img title="clip_image002" style="border-left-width:0px;border-right-width:0px;background-image:none;border-bottom-width:0px;padding-top:0px;padding-left:0px;display:inline;padding-right:0px;border-top-width:0px;" border="0" alt="clip_image002" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/4150.clip_5F00_image002_5F00_thumb_5F00_05ADC05E.png" width="555" height="372" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;4. Open your code where you want to add your Scheduler information and just add the following code:&lt;/p&gt;   &lt;div class="csharpcode"&gt;   &lt;pre&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; tenantId = &lt;span class="str"&gt;&amp;quot;YOUR TENANT ID&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; secretKey = &lt;span class="str"&gt;&amp;quot;YOUR SECRET KEY&amp;quot;&lt;/span&gt;;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; scheduledTasks = &lt;span class="kwrd"&gt;new&lt;/span&gt; ScheduledTasks(tenantId, secretKey);&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="kwrd"&gt;var&lt;/span&gt; backupTask = &lt;span class="kwrd"&gt;new&lt;/span&gt; TaskModel()&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;            {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;                Name = &lt;span class="str"&gt;&amp;quot;Import/Export SQL Azure Database&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;                JobType = JobType.Webhook,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;                CronExpression = &lt;span class="str"&gt;&amp;quot;0 0 12 1/1 * ? *&amp;quot;&lt;/span&gt;, &lt;span class="rem"&gt;// taken from http://cronmaker.com/&lt;/span&gt;&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;                Start = DateTime.Now,&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;                Params = &lt;span class="kwrd"&gt;new&lt;/span&gt; Dictionary&amp;lt;&lt;span class="kwrd"&gt;string&lt;/span&gt;, &lt;span class="kwrd"&gt;object&lt;/span&gt;&amp;gt;() &lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;                {&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;                    {&lt;span class="str"&gt;&amp;quot;url&amp;quot;&lt;/span&gt;, &lt;span class="str"&gt;&amp;quot;http://myurl/api/BackupDB/TestDB&amp;quot;&lt;/span&gt;}&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;                }&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;            };&lt;/pre&gt;

  &lt;pre&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;scheduledTasks.CreateTask(backupTask);&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;5. You&amp;#39;re done. What you need now is your BackupDB Service to be listening in that URL and executing the requests. For that you can use this project &lt;a href="http://sqldacexamples.codeplex.com/"&gt;http://sqldacexamples.codeplex.com/&lt;/a&gt; that will help you do that.&lt;/p&gt;

&lt;p&gt;There are a lot more scenarios for this but this looked like something a lot of people would be interested, but scenarios like:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Validating is a service or page is available by pinging a url &lt;/li&gt;

  &lt;li&gt;Performing backups of DB, Storage and so on &lt;/li&gt;

  &lt;li&gt;Deployments for Windows Azure based on specific conditions 
    &lt;ul&gt;
      &lt;li&gt;Example would be a company that has an infrastructure On-Premises and wants to continue to use it but there are certain hours of the day that needs to scale-out into Windows Azure to handle more load. In this case it would do a CRON Task based on a specific time of day to deploy the solution to Windows Azure and change the Load Balancer for example, and doing the same for deleting the deployment when it&amp;#39;s not required anymore. This is important because a lot of customer look at Windows Azure in this moment only as a Scale-out platform and need something to help automate the tasks of spinning up new machines. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;

  &lt;li&gt;Perform Archiving processes of data 
    &lt;ul&gt;
      &lt;li&gt;Example would be every day a process would be executed that would analyze all the data in Windows Azure SQL Databases and Table Storage and would provide an archiving mechanism passing the data that is older than 1 month into the Table Storage in order to save costs and to maintain only &amp;quot;live/active/most used&amp;quot; data in Windows Azure SQL Databases. &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There&amp;#39;s a lot of other scenarios but those seemed good to start.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1823516" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/LNpUZbDgrhQ" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Storage/default.aspx">Windows Azure Storage</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Store/default.aspx">Windows Azure Store</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2013/02/05/scheduler-in-windows-azure.aspx</feedburner:origLink></item><item><title>Back to Writing and Experiences Sharing</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/_5K2UZgE2Bk/back-to-writing-and-experiences-sharing.aspx</link><pubDate>Tue, 05 Feb 2013 23:18:46 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1823514</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1823514</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1823514</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2013/02/05/back-to-writing-and-experiences-sharing.aspx#comments</comments><description>&lt;p&gt;Hello everyone, I’ve completely stopped writing a while back and I really miss sharing my experiences&amp;#160; in this b#log, and so I’d like to inform everyone that I’m back on the writing part again and in order to make myself more compliant with writing I’ll make sure I’ll write at least once a week sharing all my crazy experiences and works around Windows Azure.&lt;/p&gt;  &lt;p&gt;Lately I’ve been working with a lot of different moving parts of Windows Azure like, IaaS, Media Services, Mobile Service, as well as BigData (HDInsight) and HPC and so a lot to share on those from practices to mistakes I did and will try to help you not to do the same mistakes as I did.&lt;/p&gt;  &lt;p&gt;Thanks, and hope my sharing helps you more from now on.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1823514" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/_5K2UZgE2Bk" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2013/02/05/back-to-writing-and-experiences-sharing.aspx</feedburner:origLink></item><item><title>How to choose the right Relational Database Service you should use in Windows Azure</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/reBWCe4N7us/how-to-choose-the-relational-database-service-in-windows-azure.aspx</link><pubDate>Thu, 20 Sep 2012 21:51:19 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1816967</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1816967</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1816967</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/09/20/how-to-choose-the-relational-database-service-in-windows-azure.aspx#comments</comments><description>&lt;p&gt;Now with Windows Azure SQL Database as well as SQL Server inside a Windows Azure Virtual Machine an important question comes up, and that is, Which Relational Database Service should I use for my solution in Windows Azure?&lt;/p&gt;  &lt;p&gt;In order to help answering this question I did a flowchart that should help. (this is a simplification of the process but should answer most of the questions)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/6366.image_5F00_6E883842.png"&gt;&lt;img title="image" style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" alt="image" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/0246.image_5F00_thumb_5F00_0471AA93.png" width="477" height="342" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;What are the features that aren’t supported in SQL Database you might be asking. Here’s a list:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SQL Server Utility&lt;/li&gt;    &lt;li&gt;SQL Server PowerShell Provider. PowerShell scripts can be run on an on-premise computer, however, and connect to Windows Azure SQL Database using supported objects (such as System Management Objects or Data-tier Applications Framework).&lt;/li&gt;    &lt;li&gt;Master Data Services&lt;/li&gt;    &lt;li&gt;Change Data Capture&lt;/li&gt;    &lt;li&gt;Data Auditing&lt;/li&gt;    &lt;li&gt;Data Compression&lt;/li&gt;    &lt;li&gt;Extension of spatial types and methods through Common Language Runtime (CLR)&lt;/li&gt;    &lt;li&gt;External Key Management / Extensible Key Management&lt;/li&gt;    &lt;li&gt;FILESTREAM Data&lt;/li&gt;    &lt;li&gt;Integrated Full-Text Search&lt;/li&gt;    &lt;li&gt;Large User-Defined Aggregates (UDAs)&lt;/li&gt;    &lt;li&gt;Large User-Defined Types (UDTs)&lt;/li&gt;    &lt;li&gt;Performance Data Collection (Data Collector)&lt;/li&gt;    &lt;li&gt;Policy-Based Management&lt;/li&gt;    &lt;li&gt;Resource Governor&lt;/li&gt;    &lt;li&gt;SQL Server Replication&lt;/li&gt;    &lt;li&gt;Transparent Data Encryption&lt;/li&gt;    &lt;li&gt;Common Language Runtime (CLR) and CLR User-Defined Types&lt;/li&gt;    &lt;li&gt;Database Mirroring&lt;/li&gt;    &lt;li&gt;Service Broker&lt;/li&gt;    &lt;li&gt;Table Partitioning&lt;/li&gt;    &lt;li&gt;Typed XML and XML indexing is not supported. The XML data type is supported by Windows Azure SQL Database.&lt;/li&gt;    &lt;li&gt;Backup and Restore&lt;/li&gt;    &lt;li&gt;Replication&lt;/li&gt;    &lt;li&gt;Extended Stored Procedures&lt;/li&gt;    &lt;li&gt;SQL Server Agent/Jobs&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;More about this Windows Azure SQL Database:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/windowsazure/ee336245.aspx" href="http://msdn.microsoft.com/en-us/library/windowsazure/ee336245.aspx" target="_blank"&gt;General Guidelines and Limitations (Windows Azure SQL Database)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/windowsazure/ff394115.aspx" href="http://msdn.microsoft.com/en-us/library/windowsazure/ff394115.aspx" target="_blank"&gt;SQL Server Feature Limitations (Windows Azure SQL Database)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/ff394108.aspx" target="_blank"&gt;Security Guidelines and Limitations (Windows Azure SQL Database)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/hh597469.aspx" target="_blank"&gt;Federation Guidelines and Limitations&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/windowsazure/archive/2012/09/19/announcing-updates-to-windows-azure-sql-database.aspx" href="http://blogs.msdn.com/b/windowsazure/archive/2012/09/19/announcing-updates-to-windows-azure-sql-database.aspx" target="_blank"&gt;Announcing Updates to Windows Azure SQL Database&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;More about SQL Server inside a Windows Azure Virtual Machine:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="http://blogs.msdn.com/b/windowsazure/archive/2012/07/16/data-series-how-to-setup-sql-server-on-windows-azure-virtual-machines.aspx" href="http://blogs.msdn.com/b/windowsazure/archive/2012/07/16/data-series-how-to-setup-sql-server-on-windows-azure-virtual-machines.aspx" target="_blank"&gt;Data Series: How To Setup SQL Server on Windows Azure Virtual Machines&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://social.technet.microsoft.com/wiki/contents/articles/11567.getting-started-running-sql-server-in-windows-azure-virtual-machine-en-us.aspx" target="_blank"&gt;Getting Started Running SQL Server in Windows Azure Virtual Machine&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hope this helps you to make the right choice.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1816967" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/reBWCe4N7us" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/SQL+Azure/default.aspx">SQL Azure</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/09/20/how-to-choose-the-relational-database-service-in-windows-azure.aspx</feedburner:origLink></item><item><title>Tips &amp; Tricks to Build Multi-Tenant Databases with SQL Databases</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/RNKcdFPj4sE/tips-amp-tricks-to-build-multi-tenant-databases-with-sql-databases.aspx</link><pubDate>Sat, 11 Aug 2012 12:55:17 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1815010</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1815010</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1815010</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/08/11/tips-amp-tricks-to-build-multi-tenant-databases-with-sql-databases.aspx#comments</comments><description>&lt;p&gt;Last Wednesday I delivered another session at the Visual Studio Live @ Redmond conference this time about “Tips &amp;amp; Tricks to Build Multi-Tenant Databases with SQL Databases”. The feedback from the session attendees was very good and this is a quick summary of the most important aspects.&lt;/p&gt;  &lt;p&gt;First thing in order to be successful is understanding exactly what is Windows Azure SQL Databases (formally SQL Azure) and how it works. If we look at it from a high level, SQL Databases are actually:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SQL Server database technology delivered as a service on Windows Azure&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;This is actually a Shared Environment where we have SQL Server capabilities and features available in a pay as you go, and scalable mode. This of course doesn’t mean we have all the existing features and capabilities from SQL Server, since some of them would probably create some issues since this is a Shared Environment and also because the goal is High Availability and Scalability.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Ideal for both simple and complex applications&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;It’s a way for us to have a Relational Database as a Service quickly and powerful which can be used in all types of solutions, but in order to get the best out of it we really need to understand and adjust how it works and avoid things like being throttled, for example. &lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Enterprise-ready with automatic support for HA&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;True since it provide a higher level of management since we don’t deal with physical machines anymore but with the actual storing of data this way focusing more on what’s more important for our solution and our business.&lt;/li&gt;      &lt;li&gt;Also this provides us an automatic support that enables us to have High Availability without ‘a lot of work’.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Designed to scale out elastically with demand&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;SQL Databases were created to scale and of course that’s part of it’s DNA, since without the ability to scale elastically it wouldn’t be fit for the Cloud. This will be allowed with SQL Federations.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;After a high-level understanding of what is a SQL Database in Windows Azure, it’s important to understand also what are the scaling strategies that we can use, since this way we can better use them whenever needed. And so the strategies are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Horizontal Partitioning or Sharding&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Spreads data across similar nodes&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;All nodes have the same schema&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;Allows us to achieve massive scale out both in terms of Data Size and Load&lt;/li&gt;      &lt;li&gt;We need to understand that while doing that we aren’t going to be able to get the complete list of data within a single query, and so it’s something we need to understand and consider.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Vertical Partitioning&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Spreads data across Dis-Similar nodes&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;Each node has it’s own schema where the data is stored. Eg. SQL Database, Table Storage, Blob Storage, …&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;Allows us to place the data where it makes more sense by slitting the data we have for a solution and understanding how it’s used and how it should be stored so we can take the best out of it.&lt;/li&gt;      &lt;li&gt;In this case we need to understand that by doing that we a splitting at the row level, so if we want a complete row (if we were to be thinking about a regular database) we won’t be able to get that in 1 only query, since one part can be in a DB, another in Table Storage and another in Blob Storage.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Hybrid Partitioning&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;This is when we spread our data both in Vertically and Horizontally.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Now let’s have a quick look at SQL Federations:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Integrated database sharding that can scale to hundreds of nodes&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Provides the ability to do Horizontal Partitioning or Sharding to data inside SQL Databases in a quick and ‘easy’ way.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Multi-tenancy via flexible repartitioning&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Provide the ability to achieve multi-tenancy inside the same Database by providing the ability to split data horizontally.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;Online split operations to minimize downtime&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Automatic data discovery regardless of changes in how data is partitioned&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Finally, before we get to the actual Tips &amp;amp; Tricks we need to understand the multi-tenancy strategies that are typically used, and they are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Separate Servers&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;This provides the best isolation possible and it’s regularly done On-Premises, but it’s also the one that doesn’t enable cutting costs, since each tenant has it’s own server, sql, license and so on.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Separate Databases&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Very used in order to provide isolation for customer, because we can associate different logins, permissions and so on to each DB. Considered by many the only way to provide isolation for tenants.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Separate Schema&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Also a very good way to achieve multi-tenancy but at the same time share some resources since everything it’s inside the same DB but the schemas used are different, one for each Tenant. That allows us to even customize a specific tenant without affecting others.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Row Isolation&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Everything is shared in this option, Server, Database and even Schema. The only way they are differentiated is based on a TenantId or some other column that exists on the table level.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;So now that we had a high-level view of all this let’s take a look at some of the Tips &amp;amp; Tricks for it, and they are:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Choose the right Multi-Tenancy Strategy&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;One of the most important steps for delivering a Multi-Tenant solution is understand exactly what should be the approach we should use, and normally the simplest one isn’t actually the best. For example, if we think about Isolation the best might seem Separate Server or Separate Database, but that means that from an economics standpoint we aren’t going to be very competitive, and so for this we need to understand that is we go further for a more shared approach, like Row Isolation, the impact in terms of development might be that at the beginning the investment is bigger, but in the long run that will pay off. &lt;/li&gt;      &lt;li&gt;Also important is that if we want Multi-Tenancy and Isolation the only solution is not separating everything, since that is something we can enforce programmatically, through security permissions and so on. It’s just might take a bit more effort but the end result should be that we achieve some other customers that we usual didn’t because of the prices.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Don’t forget Security Patterns&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Some time when we start creating Multi-Tenant Databases we start thinking about sharing everything and forget about the Security part of that. This is actually a common mistake that can cost a lot, and in order to make things work we should never forget to:&lt;/li&gt;      &lt;ol&gt;       &lt;li&gt;Filter&lt;/li&gt;        &lt;ul&gt;         &lt;li&gt;Use an intermediate layer that will receive all the requests to the DB and infer the Tenant filter, so that nobody has access to something that shouldn’t. Of course this also means that no one should have direct access to the DB.&lt;/li&gt;       &lt;/ul&gt;        &lt;li&gt;Permissions&lt;/li&gt;        &lt;ul&gt;         &lt;li&gt;Very important when we consider Multi-Tenant Databases is the Permissions and how we can affect them. When we use Separate Servers, Databases or either Schemas, we can actually associate different logins, roles and so on to the different Tenants, but when we are in a Row Isolation model that isn’t possible, and that’s why the intermediate layer, that is actually your Data Layer will be very important since not only provides access to the data inferring the filter by Tenant, but also allows us to introduce permissions to access certain parts of the data. For example by leveraging Windows Azure Active Directory Access Control Service.&lt;/li&gt;       &lt;/ul&gt;        &lt;li&gt;Encryption&lt;/li&gt;        &lt;ul&gt;         &lt;li&gt;This is of a huge importance. IF YOUR DATA IS SENSITIVE JUST ENCRYPT IT. SQL Databases don’t have the ‘With Encryption’ for Columns but this doesn’t mean I can’t really insert encrypted data in the database, I just need to do it on another layer, again in an intermediate layer.&lt;/li&gt;          &lt;li&gt;Also very important when we encrypt our data is to understand the method we’re going to use. Normally one of the best methods, if we don’t want anyone that isn’t part of a Tenant to access the data and have different encryptions per Tenant so that even if someone gets the full DB it won’t access the full data, is to use X.509 Client Certificates. This is a very good approach since the Client is actually the one that has the Certificate that is used, but it also means that we cannot count of doing background calculation with that data in the Cloud since we don’t have the certificate. So it’s a balance.&lt;/li&gt;          &lt;li&gt;A quick reminder is that IF YOU SHARE A SECRET IT STOPS BEING A SECRET, it’s just like telling a secret to a child. So for this reason, if you use X.509 Client Certificates to encrypt the data, and then register all those certificates in a Windows Azure Role, that isn’t the best approach because if someone get access to that role it will have access to the KEYS OF THE KINGDOM.&lt;/li&gt;       &lt;/ul&gt;     &lt;/ol&gt;   &lt;/ul&gt;    &lt;li&gt;Choose your partitions wisely&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;When you choose the partitions it should be based on the ‘hotness’ of the data and not on the ‘# of records’. This is a very important premise since we normally see partitions being made in a way that they all have the same amount of records and data, and this doesn’t mean the solution will perform, because if we have one partition that has all the most commonly used data and another one with less common we won’t have any benefit with the partition. So the important part is to partition your data based on how the data is used and how commonly it is used, since in order to get good partitioning sometimes we can have a partition with very few records and another one with thousands.&lt;/li&gt;      &lt;li&gt;So it’s also important to before partitioning the data understand how that data will be consumed and used, since that will allow us to better understand what is the most used data or not.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Choose your Partition Keys correctly&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;We can have several ways of defining partition keys and the most common are:&lt;/li&gt;      &lt;ol&gt;       &lt;li&gt;Natural Keys&lt;/li&gt;        &lt;ul&gt;         &lt;li&gt;Choosing a Natural key is usually one of the most used ways in order to select a partition key, and some samples are:&lt;/li&gt;          &lt;ul&gt;           &lt;li&gt;Tenant&lt;/li&gt;            &lt;li&gt;Country&lt;/li&gt;            &lt;li&gt;Region&lt;/li&gt;            &lt;li&gt;Date&lt;/li&gt;            &lt;li&gt;…&lt;/li&gt;         &lt;/ul&gt;          &lt;li&gt;But sometimes this isn’t the best approach since if we go for the Tenant that doesn’t partition based on the ‘hotness’ just based on the Tenant and if a tenant is small has less information and so it will be faster than a tenant that is larger because it has more data and all in the same partition. This is exactly what we want to avoid. The same thing happens with Country, since really isn’t the best way since if we use this we might have more customers from a specific customer than from another, and the same with region. When we partition by data, it will mean that everybody would be affected by everyone else data, since everything would be in the same partition.&lt;/li&gt;          &lt;li&gt;What this mean is that while Natural Keys are one of the most used partition keys they aren’t actually the best choice because it’s very difficult to find something that allows us to partition it optimally.&lt;/li&gt;       &lt;/ul&gt;        &lt;li&gt;Mathematical&lt;/li&gt;        &lt;ul&gt;         &lt;li&gt;This is another option for partition key since what we can do is used things like Hash or Modulo operator and other options to generate a mathematical calculation in order to find the ‘hotness’ point.&lt;/li&gt;          &lt;li&gt;Being this a very interesting approach is actually really difficult also since you need to understand your data very well as well as built mathematical formulas which isn’t everyone best hobby and capability.&lt;/li&gt;       &lt;/ul&gt;        &lt;li&gt;Lookup Based&lt;/li&gt;        &lt;ul&gt;         &lt;li&gt;Another option is this one, Lookup based, this is actually the best since it really looks at how the data is used and consumed in order to find out the best partition key. In some cases this will mean a concatenation of something like ‘TenantId+Date’ or something like that, because in this case we’ll be saying that every tenant is partitioned independently and even at the same time is partitioning its own data making it faster.&lt;/li&gt;       &lt;/ul&gt;     &lt;/ol&gt;   &lt;/ul&gt;    &lt;li&gt;Leverage SQL Federations to handle Multi-Tenancy&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;SQL Federations is a very good way to leverage Horizontal Partitioning (Sharding) of data for you solutions since allows us a ‘quick and easy’ way to partition our data and provide at the same time Isolation, since each Federation Member is actually a separate DB that is generated, but when we look at it we only see the main DB.&lt;/li&gt;      &lt;li&gt;Currently the limitations with this is actually the fact the SQL Federations only allow the partition key to be of types BigInt, Int, UniqueIdentifier and VarBinary. It would be great if it would support also Varchar but we can’t have all, unfortunately, but if we go for a partition key like ‘TenantId+Date’ this can be actually a number and so fall inside the BigInt possibility.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Don’t forget that you’ll continue to need to perform backups&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Sometimes when we are in a multi-tenant environment we forget we still need to provide backups and not only for us, but most of the times the customer wants also to have a copy of the data and that is more challenging.&lt;/li&gt;      &lt;li&gt;In order to do that backups we can use the Export capability from SQL Databases as well as some third-party tools like RedGate’s SQL Azure Backup.&lt;/li&gt;      &lt;li&gt;To leverage a backup of the data for the customer we can leverage SQL Data Sync since it allows us to create filters in the data sets and so we can filter by tenant and get one Data Sync per Tenant this way making everyone happy.&lt;/li&gt;   &lt;/ul&gt; &lt;/ol&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So those are some of the Tips &amp;amp; Tricks you can use in order to be successful building Multi-Tenant Databases in Windows Azure SQL Databases. I hope that helps and would love to have your thoughts about it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1815010" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/RNKcdFPj4sE" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/SQL+Azure/default.aspx">SQL Azure</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/08/11/tips-amp-tricks-to-build-multi-tenant-databases-with-sql-databases.aspx</feedburner:origLink></item><item><title>Tips and Tricks on Building Event Driven Architectures with Windows Azure Service Bus</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/0b61SIh0o7Q/tips-and-tricks-on-building-event-driven-architectures-with-windows-azure-service-bus.aspx</link><pubDate>Tue, 07 Aug 2012 21:15:45 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1814897</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>7</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1814897</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1814897</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/08/07/tips-and-tricks-on-building-event-driven-architectures-with-windows-azure-service-bus.aspx#comments</comments><description>&lt;p&gt;Just now I did a presentation at Visual Studio Live @ Redmond under the topic “Tips &amp;amp; Tricks on Building Event Driven Architecture with Service Bus”.&lt;/p&gt;  &lt;p&gt;One of the very interesting things to understand is that a lot of us already use Event Driven Architectures even without knowing it. That was one of the parts I explained in the session, since a lot of us currently use messaging mechanisms to decouple our solutions, and that’s already building things in an event driven way.&lt;/p&gt;  &lt;p&gt;A summary of the session for the people who didn’t attend is:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;What is Event Driven Architecture?      &lt;ul&gt;       &lt;li&gt;Architecture Pattern that orchestrates behavior around:          &lt;ul&gt;           &lt;li&gt;Production &lt;/li&gt;            &lt;li&gt;Detection &lt;/li&gt;            &lt;li&gt;Consumption of events &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;Method for building decoupled enterprise solution &lt;/li&gt;        &lt;li&gt;Suited for Async and unpredictable environment (like the cloud for example) &lt;/li&gt;        &lt;li&gt;Has 3 types of processing:          &lt;ul&gt;           &lt;li&gt;Simple Event Processing              &lt;ul&gt;               &lt;li&gt;Events that are directly related to specific and measurable changes &lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;            &lt;li&gt;Stream Event Processing              &lt;ul&gt;               &lt;li&gt;Events that can be notable (important) or ordinary (not so important) &lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;            &lt;li&gt;Complex Event Processing              &lt;ul&gt;               &lt;li&gt;Both Notable and Ordinary events allowing to search for patterns &lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;What is Windows Azure Service Bus?      &lt;ul&gt;       &lt;li&gt;Connectivity          &lt;ul&gt;           &lt;li&gt;Service Relay &lt;/li&gt;            &lt;li&gt;Protocol Tunnel Eventing &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;Messaging          &lt;ul&gt;           &lt;li&gt;Queuing Pub/Sub &lt;/li&gt;            &lt;li&gt;Reliable Transfer &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;Svc Management          &lt;ul&gt;           &lt;li&gt;Naming, Discovery &lt;/li&gt;            &lt;li&gt;Monitoring &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;Integration Routing          &lt;ul&gt;           &lt;li&gt;Coordination Transformation &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Going now for the Tips &amp;amp; Tricks&lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;strong&gt;Choose your Event Stream wisely&lt;/strong&gt;       &lt;ul&gt;       &lt;li&gt;Messaging&lt;strong&gt; (Applicable when you need reliability)&lt;/strong&gt;           &lt;ul&gt;           &lt;li&gt;Windows Azure Service Bus Queues &lt;/li&gt;            &lt;li&gt;Windows Azure Service Bus Topics &lt;/li&gt;            &lt;li&gt;Windows Azure Storage Queues &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;Relay &lt;strong&gt;(Applicable when you don’t need reliability but only a way to sent a message to all the subscribers)&lt;/strong&gt;           &lt;ul&gt;           &lt;li&gt;NetEventRelayBinding &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;Twitter &lt;strong&gt;(Never forget the power of Twitter. For example &lt;a title="http://twitter.com/fltadvisor" href="http://twitter.com/fltadvisor"&gt;http://twitter.com/fltadvisor&lt;/a&gt; provides you information about flight delays in US. Why not leverage Twitter to do the same for your app?)&lt;/strong&gt; &lt;/li&gt;        &lt;li&gt;RSS Feed &lt;strong&gt;(Also very interesting. For example Windows Azure Service Dashboard uses RSS Feeds.)&lt;/strong&gt; &lt;/li&gt;        &lt;li&gt;Other sources &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Create different types of messages, DON’T GENERALIZE IT      &lt;ul&gt;       &lt;li&gt;One of the important parts is never generalize event types. &lt;/li&gt;        &lt;li&gt;You have 4 types of events you need to work on          &lt;ul&gt;           &lt;li&gt;Business &lt;/li&gt;            &lt;li&gt;Execution &lt;/li&gt;            &lt;li&gt;Lifecycle &lt;/li&gt;            &lt;li&gt;Management &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;Those are the type of events but you shouldn’t generalize because each event has it’s own properties that are notable for them. For example a DataChangeEvent is different from a NotificationSentEvent. Do the two, don’t generalize into one only with different types. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Choose the right Event processing Type      &lt;ul&gt;       &lt;li&gt;Simple Event Processing          &lt;ul&gt;           &lt;li&gt;Use it whenever you need to handle events in a simple way, without having differences between the events. You just need to process all of them. &lt;/li&gt;            &lt;li&gt;Eg.              &lt;ul&gt;               &lt;li&gt;Coordinating Worker Roles &lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;Stream Event Processing          &lt;ul&gt;           &lt;li&gt;Use this whenever you need to handle events in a simple way, but you have different types of events with different importance, like Notable and Ordinary events. &lt;/li&gt;            &lt;li&gt;Eg.              &lt;ul&gt;               &lt;li&gt;Notification System that received events but some are priority notifications and other non-priority &lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;        &lt;li&gt;Complex Event Processing          &lt;ul&gt;           &lt;li&gt;Use this whenever, and only, when you need to search for a pattern inside the event stream. if not, don’t use it. &lt;/li&gt;            &lt;li&gt;Eg.              &lt;ul&gt;               &lt;li&gt;Stock Exchange. If the Index A goes up 20% and Index B goes up more than 5% in a 5 min period. Do Something &lt;/li&gt;             &lt;/ul&gt;           &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Keep your modules Loosely-Coupled      &lt;ul&gt;       &lt;li&gt;Event Driven Architecture is all about decoupling every module of the solution, so continue with that. Do you modules as they don’t need to know who creates the events and why they do it. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;‘Shard’ your Event Stream      &lt;ul&gt;       &lt;li&gt;It’s important to think from the start how you are going to shard your Event Stream, because if the solution is going to be unpredictable in growth you need to be prepared. &lt;/li&gt;        &lt;li&gt;Some simple way is to think Sharding on the Type (Business, Execution, Lifecycle, Management) but then you can for further. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Consider Windows Azure IaaS with Microsoft StreamInsight for Complex Event Processing      &lt;ul&gt;       &lt;li&gt;Very interesting product for Complex Event Processing and that can easily be placed in the Cloud, and of course Windows Azure Virtual Machines &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Consider ‘Project Austin’ from Microsoft      &lt;ul&gt;       &lt;li&gt;This is really good since it’s Microsoft StreamInsight as a Service in Windows Azure &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I presented a sample based on this &lt;a title="http://www.codeproject.com/Articles/55620/Event-Driven-Architecture-in-the-Clouds-with-Windo" href="http://www.codeproject.com/Articles/55620/Event-Driven-Architecture-in-the-Clouds-with-Windo"&gt;http://www.codeproject.com/Articles/55620/Event-Driven-Architecture-in-the-Clouds-with-Windo&lt;/a&gt; that can’t be found here &lt;a href="http://eventdrivensample.cloudapp.net"&gt;http://eventdrivensample.cloudapp.net&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Also very interesting to check out is the new CQRS Journey from Microsoft Patterns &amp;amp; Practices &lt;a href="http://msdn.microsoft.com/en-us/library/jj554200.aspx" target="_blank"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Hope this helps you in future developments, and also I’d love to hear you thoughts about this, so please comment and let’s build a conversation about it and generate other posts.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1814897" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/0b61SIh0o7Q" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/EDA/default.aspx">EDA</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Service+Bus/default.aspx">Service Bus</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/08/07/tips-and-tricks-on-building-event-driven-architectures-with-windows-azure-service-bus.aspx</feedburner:origLink></item><item><title>Service Bus 1.0 Beta</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/75mLd-k2lKg/service-bus-1-0-beta.aspx</link><pubDate>Fri, 03 Aug 2012 13:43:41 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1814724</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1814724</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1814724</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/08/03/service-bus-1-0-beta.aspx#comments</comments><description>&lt;p&gt;We all know about &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/ee732537" target="_blank"&gt;Windows Azure Service Bus&lt;/a&gt; and how it allows features like Relay, Messaging and even integration. Personally this is one of my favorite features in &lt;a href="http://www.windowsazure.com/en-us/" target="_blank"&gt;Windows Azure&lt;/a&gt; but all this only worked in the Cloud and sometimes the same features and capabilities would be very good if they were available On-Premises also. That’s exactly what Service Bus 1.0 is, it’s getting those capabilities and features to the On-Premises world also, making it easier to have a complete parity between Cloud and On-Premises.&lt;/p&gt;  &lt;p&gt;Of course this version isn’t still the full version of what we see on the Windows Azure version but will help a lot, I’m sure. This Beta is what the Team calls &lt;a href="http://stackoverflow.com/questions/11644262/does-service-bus-for-windows-server-service-bus-1-0-beta-support-relay-functio" target="_blank"&gt;“Service Bus Messaging Engine” release&lt;/a&gt; as stated by Clemens Vasters in one of his responses at StackOverflow, and so this version still doesn’t have any features related to the Relay part, but only with the Messaging part. &lt;/p&gt;  &lt;p&gt;Another very important part of this release is that by using it we’ll start getting the same (or at least very similar at this moment) API for both Cloud and On-Premises versions, which make things a lot easier when we build solutions that need to be deployed in both. &lt;/p&gt;  &lt;p&gt;For more information about Service Bus 1.0 Beta check &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10)" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;In terms of Architecture, this version has the following:&lt;/p&gt;  &lt;p&gt;&lt;img src="http://i.msdn.microsoft.com/dynimg/IC593633.jpg" alt="" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;(Figure 1 – Service Bus 1.0 Architecture from &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj193012(v=azure.10)" target="_blank"&gt;Windows Azure site&lt;/a&gt;)&lt;/p&gt;  &lt;p align="left"&gt;&amp;#160;&lt;/p&gt;  &lt;p align="left"&gt;So we can see that all this uses very well known elements like, SQL Server, PowerShell, .NET Framework, and the 3 most important elements of it are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="left"&gt;Service Bus Gateway&lt;/div&gt;   &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;div align="left"&gt;Receives all the incoming requests and provides the necessary Authentication, Authorization as well as address resolution sending then the request for the appropriate block so it can be handled.&lt;/div&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;div align="left"&gt;&lt;strong&gt;Currently only allows communications using NET.TCP or REST over HTTP protocols.&lt;/strong&gt;&lt;/div&gt;     &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p align="left"&gt;&lt;img style="border-top:0px;border-right:0px;background-image:none;border-bottom:0px;float:none;padding-top:0px;padding-left:0px;margin-left:auto;border-left:0px;display:block;padding-right:0px;margin-right:auto;" border="0" src="http://i.msdn.microsoft.com/dynimg/IC593635.jpg" width="577" height="396" alt="" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;(Figure 2 – Service Bus Gateway High-level Architecture – &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj193012(v=azure.10)" target="_blank"&gt;Windows Azure Site&lt;/a&gt;)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="left"&gt;Service Bus Message Broker&lt;/div&gt;   &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;div align="left"&gt;Responsible for providing the Messaging capabilities, so can be seen as the Service Bus Messaging Engine. &lt;/div&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;div align="left"&gt;Provides Queues and Topics/Subscriptions features to this release.&lt;/div&gt;     &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p align="center"&gt;&lt;img src="http://i.msdn.microsoft.com/dynimg/IC593636.jpg" alt="" /&gt;&lt;/p&gt;  &lt;p align="center"&gt;(Figure 3 – Service Bus Message Broker High-level Architecture – &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj193012(v=azure.10)" target="_blank"&gt;Windows Azure Site&lt;/a&gt;)&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="left"&gt;Windows Fabric&lt;/div&gt;   &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;       &lt;div align="left"&gt;Provides capabilities like High availability, farm and cluster formation as well as load balancing across farm machines.&lt;/div&gt;     &lt;/li&gt;      &lt;li&gt;       &lt;div align="left"&gt;We can think about it as being the ‘orchestrator’ of all services since all services will connect to it in order to have those capabilities and be able to work in a success way and with high quality.&lt;/div&gt;     &lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;        &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;So by releasing &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj193022(v=azure.10)" target="_blank"&gt;Service Bus 1.0 (Beta)&lt;/a&gt; Microsoft is actually showing that they were really serious when they were saying that they were working on lowering the differences between Cloud and On-Premises and bringing the best solutions to both worlds.&lt;/p&gt;  &lt;p&gt;What I believe this will bring to customer is:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Highly-Scalable (and proven) Messaging System&lt;/li&gt;    &lt;li&gt;Parity between Cloud and On-Premises making it possible to &lt;a href="http://msdn.microsoft.com/en-us/library/windowsazure/jj218331(v=azure.10)" target="_blank"&gt;code once and work on both deployments.&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Hope this post helps you better understand what’s Service Bus 1.0 (Beta) is all about and you can expect future post around this topic going deeper in terms of how to use it and benefits of it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1814724" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/75mLd-k2lKg" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Service+Bus/default.aspx">Service Bus</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/08/03/service-bus-1-0-beta.aspx</feedburner:origLink></item><item><title>TechEd North America Keynote – Day 1 Rough Notes</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/olMBAzSdrqg/teched-north-america-keynote-day-1-rough-notes.aspx</link><pubDate>Mon, 11 Jun 2012 14:37:04 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1810896</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1810896</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1810896</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/06/11/teched-north-america-keynote-day-1-rough-notes.aspx#comments</comments><description>&lt;h5&gt;Satya Nadella, President of Server and Tools Business @ Microsoft&lt;/h5&gt;  &lt;p&gt;It’s time for Microsoft to reinvent itself. Why?&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Modern Data Center: New Hardware abstraction making the OS worry about Resource Management&lt;/li&gt;    &lt;li&gt;Modern Apps&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Converged Systems&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Compute (multi-core, memory density, system density)&lt;/li&gt;    &lt;li&gt;Storage (SSD, costs, ..)&lt;/li&gt;    &lt;li&gt;Network&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Services at internet scale&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;runs the world biggest apps&lt;/li&gt;    &lt;li&gt;feedback loop&lt;/li&gt;    &lt;li&gt;global scale, 24/6&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Last week Bing was migrated into Windows Server 2012 RC&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Modern Data Center&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Inside the modern DC&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;Scalable &amp;amp; Elastic&lt;/strong&gt;&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;64 nodes &amp;amp; 4000 VMs&lt;/strong&gt;&lt;/li&gt;        &lt;li&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;&lt;strong&gt;Always up and on&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Shared resources&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Automated &amp;amp; self service&lt;/strong&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;strong&gt;Windows Server 2012&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;Scalable &amp;amp; Elastic&lt;/strong&gt;&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;64 virtual processes per VM, with up to 4000 VMs with HyperV 3.0&lt;/strong&gt;&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;&lt;strong&gt;Always up and on&lt;/strong&gt;&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;Ability to update the cluster without needing to take it down&lt;/strong&gt;&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;&lt;strong&gt;Shared resources&lt;/strong&gt;&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;Ability to have storage virtualization, network virtualization and isolation of workloads using policies&lt;/strong&gt;&lt;/li&gt;        &lt;li&gt;&lt;strong&gt;64TB per virtual disk&lt;/strong&gt;&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;&lt;strong&gt;Automated &amp;amp; self service&lt;/strong&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;strong&gt;Host&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Windows Server 2012&lt;/li&gt;      &lt;li&gt;256 GB RAM, 80 logical processors, 5 HBAs, &lt;/li&gt;      &lt;li&gt;About 985,000 IOPS from a single machine and it can be faster.&lt;/li&gt;      &lt;li&gt;With ODX enabled you can get now around 1GB/sec without any Network utilization&lt;/li&gt;      &lt;li&gt;Networking&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;strong&gt;Windows Azure&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Scalable&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;Windows Azure VMs&lt;/li&gt;        &lt;li&gt;Windows Azure Web Sites&lt;/li&gt;        &lt;li&gt;Windows Azure Cloud Services&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;Always on&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;99.95% SLA&lt;/li&gt;        &lt;li&gt;Highly available&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;Shared Resources&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;Network Virtualization capability&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;Automated &amp;amp; Self-Services&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;Everything available through PowerShell and APIs&lt;/li&gt;     &lt;/ul&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Modern Apps&lt;/strong&gt;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Visual Studio 2012&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Visual Studio LightSwitch inside Visual Studio by default&lt;/li&gt;      &lt;li&gt;Announcement: LightSwitch has support for OData and also HTML5&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;New Lifecycle&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Define&lt;/li&gt;      &lt;li&gt;Develop&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;Sprint&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;Operate&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;Integration between Visual Studio Web Tests and System Center in order to use the same Web Test file to configure the monitoring and at the end debug problems back in Visual Studio with the Historical Debugger (IntelliTrace)&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Windows Intune&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Integrated with Windows Azure and AD&lt;/li&gt;      &lt;li&gt;Self Service&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&lt;strong&gt;Data-powered Apps&lt;/strong&gt;&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Any data, any size, anywhere&lt;/li&gt;      &lt;li&gt;rich capabilities to reason over data. Add intelligence to your data like adding machine learning&lt;/li&gt;      &lt;li&gt;Connect this data with other solutions. Capability to connect Excel to BigData&lt;/li&gt;   &lt;/ul&gt;&lt;/blockquote&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1810896" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/olMBAzSdrqg" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Visual+Studio+LightSwitch/default.aspx">Visual Studio LightSwitch</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/TechEd+NA+2012/default.aspx">TechEd NA 2012</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/06/11/teched-north-america-keynote-day-1-rough-notes.aspx</feedburner:origLink></item><item><title>IIS Express support for local development in Windows Azure SDK 1.7</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/n2lgCDxvtUM/iis-express-support-for-local-development-in-windows-azure-sdk-1-7.aspx</link><pubDate>Fri, 08 Jun 2012 01:00:17 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1810731</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1810731</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1810731</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/06/07/iis-express-support-for-local-development-in-windows-azure-sdk-1-7.aspx#comments</comments><description>&lt;p&gt;Another new feature that was brought by the new Windows Azure SDK 1.7 was the way the Compute Emulator emulates the Web Roles, since it now uses IIS Express instead of Full IIS.&lt;/p&gt;  &lt;p&gt;You might be thinking that isn&amp;#39;t very important, but it really is since it allows the developer to be more productive even with a less powerful machine, since IIS Express is able to run most of the roles without demanding so much from the machine as IIS does. But on the other hand, if we really have something in our Web Role that requires the use of IIS we are able to change the local development server into Full IIS. By having this we can go from a lightweight development process that doesn&amp;#39;t require a huge machine, but changing to a much robust solution only if we require some of the features that only exist in Full IIS.&lt;/p&gt;  &lt;p&gt;By default the local development server for the cloud project is set to &amp;quot;Use IIS Express&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/0247.clip_5F00_image0011_5F00_7D11E330.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="clip_image001[1]" border="0" alt="clip_image001[1]" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/1665.clip_5F00_image0011_5F00_thumb_5F00_42B66D4F.png" width="471" height="156" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(Figure 1 - Windows Azure Cloud Project Properties window)&lt;/p&gt;  &lt;p&gt;In order to change to use Full IIS instead of IIS Express for emulating the Web Role locally we just need to change it to &amp;quot;Use IIS Web Server&amp;quot;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/6153.clip_5F00_image0021_5F00_3A5297F8.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="clip_image002[1]" border="0" alt="clip_image002[1]" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/1541.clip_5F00_image0021_5F00_thumb_5F00_72910F10.png" width="502" height="158" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(Figure 2 - Windows Azure Cloud Project Properties window)&lt;/p&gt;  &lt;p&gt;So, with this new feature we can get a lot more productive since the development and emulation of Windows Azure requires less machine resources, making things go faster.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1810731" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/n2lgCDxvtUM" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/06/07/iis-express-support-for-local-development-in-windows-azure-sdk-1-7.aspx</feedburner:origLink></item><item><title>Side-by-Side support in Windows Azure SDK 1.7</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/Kj0QxvD9Is4/side-by-side-installation-with-windows-azure-sdk-1-7.aspx</link><pubDate>Fri, 08 Jun 2012 00:58:10 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1810730</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1810730</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1810730</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/06/07/side-by-side-installation-with-windows-azure-sdk-1-7.aspx#comments</comments><description>&lt;p&gt;As you already seen Windows Azure SDK 1.7 brings a very interesting feature with the development tools that is the ability to run both version 1.6 and 1.7 side-by-side. &lt;/p&gt;  &lt;p&gt;You might be thinking about why this is so interesting, so let me help you with that.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;First a bit of history, since almost with every release of Windows Azure SDK the recurrent discussion would be about the changes that the new SDK was bringing and how that would affect the existing developed solutions. A lot of time we would hear that some developers couldn&amp;#39;t start to use the new version of the SDK immediately because they still had something done in the previously version and would first need to take a look in what was changed and only after that they would be able to start working. &lt;/li&gt;    &lt;li&gt;So with this new feature this problem is finally addressed since we can maintain both SDK versions running side by side and so allowing us to get the best out of both worlds, using the new version for new development and the previous version for maintaining the existing ones. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Now that you already know the Why associated with this features, let&amp;#39;s take a look at How we can take advantage of that and also what it allows. In order to do this let&amp;#39;s start from the beginning and look at the Create new Project windows in Visual Studio.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/3465.clip_5F00_image001_5F00_53373077.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="clip_image001" border="0" alt="clip_image001" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/8688.clip_5F00_image001_5F00_thumb_5F00_78C0ADD8.png" width="435" height="311" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(Figure 1 - New Windows Azure Cloud Service dialog in Visual Studio 2010)&lt;/p&gt;  &lt;p&gt;This dialog allows us to choose the version of the Windows Azure Tools we would like to use in order to start the project, and by doing that adjusting the Role list based on the version we choose.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/6747.clip_5F00_image002_5F00_4FD598CF.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="clip_image002" border="0" alt="clip_image002" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/6523.clip_5F00_image002_5F00_thumb_5F00_551459B3.png" width="448" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(Figure 2 - Role Templates for Windows Azure SDK 1.6)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/8032.clip_5F00_image003_5F00_67E8DD5D.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="clip_image003" border="0" alt="clip_image003" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/6318.clip_5F00_image003_5F00_thumb_5F00_496E76A7.png" width="456" height="275" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;(Figure 3 - Role Templates for Windows Azure SDK 1.7)&lt;/p&gt;  &lt;p&gt;So this is a very interesting feature that will enable everyone to be even more productive but first of all, be able to start taking advantage of the new SDK without needing to go through uninstalling the previous version and installing the new version or even needing to ignore the newest version for a period of time because they are supporting some project that is still in the previous version.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1810730" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/Kj0QxvD9Is4" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/06/07/side-by-side-installation-with-windows-azure-sdk-1-7.aspx</feedburner:origLink></item><item><title>What's new in Windows Azure June Release - SDK 1.7</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/hDdNONahtzQ/what-s-new-in-windows-azure-june-release-sdk-1-7.aspx</link><pubDate>Thu, 07 Jun 2012 17:23:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1810716</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1810716</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1810716</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/06/07/what-s-new-in-windows-azure-june-release-sdk-1-7.aspx#comments</comments><description>&lt;p&gt;Windows Azure just had a very interesting upgrade as it was discussed at the &lt;a href="http://www.meetwindowsazure.com/"&gt;MeetWindowsAzure event&lt;/a&gt;. This event basically showed how Windows Azure is moving and becoming even more powerful and at the same time incorporating the community feedback. &lt;/p&gt;
&lt;p&gt;In this new release of the SDK the interesting parts are: &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Side-by-Side installation with SDK 1.7&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a&gt;&lt;/a&gt;&amp;nbsp;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/7242.SidebySide.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/7242.SidebySide.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Figure 1 - Create New Windows Azure Cloud Service window with SxS 1.6 and 1.7 SDKs) &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. IIS Express support for local development&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Now instead of the Windows Azure Compute Emulator using the Full IIS for emulating the Web Role, it uses only the IIS Express version in order to make the process less intensive for the machine. &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/2234.IISExpress.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/2234.IISExpress.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Figure 2 - Windows Azure Web Role running in the Compute Emulator under IIS Express) &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. New approach for Caching in Windows Azure called &amp;quot;Windows Azure Cache&amp;quot;. &lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This new approach to Windows Azure Caching is made available in two different scenarios: 
&lt;ul&gt;
&lt;li&gt;Dedicated Caching Nodes 
&lt;ul&gt;
&lt;li&gt;Made available by a new Worker Role called &amp;quot;Cache Worker Role&amp;quot;. Used when we want 1 or more dedicated node(s) for Caching purposes only&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;.&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/2330.CacheWorker.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/2330.CacheWorker.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a&gt;&lt;/a&gt;&amp;nbsp;(Figure 3 - New Windows Azure Cloud Service dialog with the new Cache Worker Role) &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Shared Caching Nodes 
&lt;ul&gt;
&lt;li&gt;Made available through the Role Properties, since now we have a Caching Tab in which we can define how we want to configure our Windows Azure Cache, and so reuse our existing Roles in order to also provide Caching capabilities.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/7510.CachingProperties.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/7510.CachingProperties.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a&gt;&lt;/a&gt;&amp;nbsp;(Figure 4 - Properties Windows for a Windows Azure Role with the Caching Tab Selected) &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Improved Visual Studio Server Explorer support for Windows Azure&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/5187.ServerExplorer.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/5187.ServerExplorer.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Figure 5 - New Visual Studio Server Explorer with Services Bus and Windows Azure VMs support) &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Service Bus Queues and Topics&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;With this new support from inside Visual Studio it makes our life easier to manage and even understand what&amp;#39;s happening inside both Queues and Topics, as well as allowing us to Create new Queues, Topics and Subscriptions and also Sending and receiving messages directly from Visual Studio. This is a great improvement in terms of making our life easier since we have an one stop shop for doing everything related to both of these Service Bus features.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/8270.SB.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/8270.SB.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Figure 6 - Managing Service Bus Queues and Topics from the Visual Studio Server Explorer) &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Virtual Machines&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;New support in Visual Studio Server Explorer to manage the new IaaS offering available in Windows Azure.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;RDP&lt;/strong&gt; 
&lt;ul&gt;
&lt;li&gt;In this version we&amp;#39;ll be able to Connect directly to the Instance through Remote Desktop without ever leaving Visual Studio.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/0574.ServerExplorerRD.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/0574.ServerExplorerRD.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Figure 7 - Connect using Remote Desktop option from Server Explorer) &lt;/p&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/4812.ServerExplorerRDConnect.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/4812.ServerExplorerRDConnect.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Figure 8 - Remote Desktop Connection for the Windows Azure instance based on the choice in Server Explorer) &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. Improvements in the Publishing Process&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New &amp;quot;Delete Deployment on failure&amp;quot; option&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/5277.Publish.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/5277.Publish.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Figure 9 - Windows Azure Advanced Publishing Settings dialog) &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Improved &amp;quot;Deployment Update&amp;quot; Options allowing two options: 
&lt;ul&gt;
&lt;li&gt;Incremental Update. 
&lt;ul&gt;
&lt;li&gt;Make the update process a rolling update by performing the update on 1 (one) instance at a time.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Simultaneous Update 
&lt;ul&gt;
&lt;li&gt;Makes the update process a full and complete update, so every instance is update at the same time (or virtually at the same time). This might mean some downtime for you cloud service.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Note: 
&lt;ul&gt;
&lt;li&gt;Also Very important is the new option &amp;quot;If deployment can&amp;#39;t be updated, do a full deployment&amp;quot; which makes the update process smart enough to understand if the full deployment is the best option for it and so always being able to have the update being made.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/4505.DeploySettings.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/4505.DeploySettings.png" border="0" alt="" /&gt;&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;(Figure 10 - Deployment Update Settings window) &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New CloudConfigurationManager 
&lt;ul&gt;
&lt;li&gt;This class provides an automatic cascade for setting lookups from csdef/cscfg first to web/app.config next. &lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;6. Reference improvements (NuGet(s), client libs)&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;More use of NuGet in order to make the updating of project references easier.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;New NuGet Packages for consuming the new Windows Azure Caching 
&lt;ul&gt;
&lt;li&gt;Windows Azure Caching Preview 
&lt;ul&gt;
&lt;li&gt;All client helper classes and configurations to consume the new Windows Azure Caching Role. &lt;/li&gt;
&lt;li&gt;Package Name: Microsoft.WindowsAzure.Caching.1.7.0.0.nupkg&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Windows Azure Caching Memcache Shim Preview 
&lt;ul&gt;
&lt;li&gt;All client helper classes and configurations to consume the new Windows Azure Caching Role using the memcache protocol. &lt;/li&gt;
&lt;li&gt;Package Name: Microsoft.WindowsAzure.Caching.MemcacheShim.1.7.0.0.nupkg&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Windows Azure Shared Caching 
&lt;ul&gt;
&lt;li&gt;All client classes and configurations to consume the current version of Windows Azure Caching. &lt;/li&gt;
&lt;li&gt;Package Name: WindowsAzure.Caching.1.7.0.0.nupkg&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Windows Azure Configuration Manager NuGet Package 
&lt;ul&gt;
&lt;li&gt;Classes that enable the new Configuration Manager class to work in providing an automatic cascade for setting lookups from Service Configuration to Web.Config/App.Config. &lt;/li&gt;
&lt;li&gt;Package Name: Microsoft.WindowsAzure.ConfigurationManager.1.7.0.0.nupkg&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Windows Azure Storage 
&lt;ul&gt;
&lt;li&gt;Set of helper classes and configurations to make working with Windows Azure Storage simpler. &lt;/li&gt;
&lt;li&gt;Package Name:WindowsAzure.Storage.1.7.0.0.nupkg&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Windows Azure Service Bus 
&lt;ul&gt;
&lt;li&gt;Set of helper classes and configurations that make working with Windows Azure Service Bus simpler. &lt;/li&gt;
&lt;li&gt;Package Name: WindowsAzure.ServiceBus.1.7.0.0.nupkg&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/1563.Nuget.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/1563.Nuget.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;(Figure 11 - Contents of the packages folder that is installed with the new Windows Azure SDK 1.7) &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7. New Worker Role with Service Bus Queue&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;New Worker Role Template that has everything needed to consume Messages from Windows Azure Service Bus Queues, as well as also having code blocks on the OnStart, OnStop and Run methods of the RoleEntryPoint class for the Worker role that will handle the configuration, graceful shutdown and of course the receiving and processing of the message&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/1373.SBWorker.png"&gt;&lt;img src="http://msmvps.com/resized-image.ashx/__size/550x0/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho/1373.SBWorker.png" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a&gt;&lt;/a&gt;&amp;nbsp;(Figure 12 - Add New Role to Project dialog) &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;8. UDP support &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;9. LightSwitch publishing improvements&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So those are only 9 of the very interesting things that I come across with the new Windows Azure SDK 1.7 release. &lt;/p&gt;
&lt;p&gt;Expect more details about the several elements described here in other blog posts.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1810716" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/hDdNONahtzQ" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Storage/default.aspx">Windows Azure Storage</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/06/07/what-s-new-in-windows-azure-june-release-sdk-1-7.aspx</feedburner:origLink></item><item><title>Social Meet Up for ‘MEET Windows Azure’ on June 7th</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/dim7z54k9Pc/social-meet-up-for-meet-windows-azure-on-june-7th.aspx</link><pubDate>Wed, 16 May 2012 22:35:38 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1809876</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1809876</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1809876</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/05/16/social-meet-up-for-meet-windows-azure-on-june-7th.aspx#comments</comments><description>&lt;p&gt;So as you might already know, June 7th will be the ‘Meet Windows Azure’ event online where &lt;a href="http://weblogs.asp.net/scottgu/" target="_blank"&gt;Scott Guthrie&lt;/a&gt; and other technologists from Microsoft will present the &lt;a href="http://www.windowsazure.com" target="_blank"&gt;Windows Azure&lt;/a&gt; platform. This will surely be a great event and in order to make it even better Windows Azure MVP &lt;a href="http://www.magnusmartensson.com/"&gt;Magnus Mårtensson&lt;/a&gt; is thought about an initiative called &lt;a href="http://lanyrd.com/2012/meetazure/"&gt;MEET Windows Azure on Twitter (+ Beer)&lt;/a&gt; that will allow us to create a social discussion about all that we hear and create a way to answer questions and at the same time be ‘together’ discussing it. The beer part would be great. &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://msmvps.com/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/nunogodinho.metablogapi/2703.wlEmoticon_2D00_smile_5F00_3CB5C8F0.png" /&gt;&lt;/p&gt;  &lt;p&gt;If you would like to participate in this unique event, here’s what you should do:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Register yourself at &lt;a href="http://register.meetwindowsazure.com/?ocid=aff-n-we-loc--DEV40916&amp;amp;WT.mc_id=aff-n-we-loc--DEV40916"&gt;MEET Windows Azure&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;Register yourself (click Attend) at the Lanyrd event &lt;a href="http://lanyrd.com/2012/meetazure/"&gt;MEET Windows Azure on Twitter (+ Beer)&lt;/a&gt;. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://register.meetwindowsazure.com/"&gt;&lt;img title="AzureBanner_728x90" border="0" alt="AzureBanner_728x90" src="http://www.magnusmartensson.com/image.axd?picture=AzureBanner_728x90.png" width="732" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I think this will be a very nice opportunity to get to know &lt;a href="http://windowsazure.com?ocid=aff-n-we-loc--DEV40916&amp;amp;WT.mc_id=aff-n-we-loc--DEV40916"&gt;Windows Azure&lt;/a&gt; &lt;strong&gt;and&lt;/strong&gt; the great communities supporting this technology. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MEET Windows Azure Blog Relay:&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Roger Jennings (&lt;a href="https://twitter.com/#!/rogerjenn"&gt;@rogerjenn&lt;/a&gt;): &lt;a href="http://oakleafblog.blogspot.se/2012/05/social-meet-up-on-twitter-for-meet.html"&gt;Social meet up on Twitter for Meet Windows Azure on June 7th&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Anton Staykov (&lt;a href="https://twitter.com/#!/astaykov"&gt;@astaykov&lt;/a&gt;): &lt;a href="http://blogs.staykov.net/2012/05/meet-windows-azure-on-june-7th.html"&gt;MEET Windows Azure on June the 7th&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Patriek van Dorp (&lt;a href="https://twitter.com/#!/pvandorp"&gt;@pvandorp&lt;/a&gt;): &lt;a href="http://cloudythoughts.siadis.com/windows-azure/social-meet-up-for-meet-windows-azure-on-june-7th"&gt;Social Meet Up for ‘MEET Windows Azure’ on June 7th&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Marcel Meijer (&lt;a href="https://twitter.com/#!/MarcelMeijer"&gt;@MarcelMeijer&lt;/a&gt;): &lt;a href="http://blogs.msmvps.com/marcelmeijer/blog/2012/05/16/meet-windows-azure-on-june-the-7th"&gt;MEET Windows Azure on June the 7th&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Nuno Godinho (&lt;a href="https://twitter.com/#!/NunoGodinho"&gt;@NunoGodinho&lt;/a&gt;): &lt;a href="http://msmvps.com/blogs/nunogodinho/archive/2012/05/16/social-meet-up-for-meet-windows-azure-on-june-7th.aspx"&gt;Social Meet Up for ‘MEET Windows Azure’ on June 7th&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Shaun Xu (&lt;a href="https://twitter.com/#%21/shaunxu"&gt;@shaunxu&lt;/a&gt;) &lt;a href="http://blogs.shaunxu.me/archive/2012/05/16/letrsquos-meet-windows-azure.aspx"&gt;Let&amp;#39;s MEET Windows Azure&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Maarten Balliauw (&lt;a href="https://twitter.com/#!/maartenballiauw"&gt;@maartenballiauw&lt;/a&gt;): &lt;a href="http://blog.maartenballiauw.be/post/2012/05/17/Social-meet-up-on-Twitter-for-MEET-Windows-Azure-on-June-7th.aspx"&gt;Social meet up on Twitter for MEET Windows Azure on June 7th&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Brent Stineman (&lt;a href="https://twitter.com/#!/brentcodemonkey"&gt;@brentcodemonkey&lt;/a&gt;): &lt;a href="http://brentdacodemonkey.wordpress.com/2012/05/17/meet-windows-azure-june72012/"&gt;Meet Windows Azure (aka Learn Windows Azure v2)&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Herve Roggero (&lt;a href="http://twitter.com/hroggero"&gt;@hroggero&lt;/a&gt;): &lt;a href="http://geekswithblogs.net/hroggero/archive/2012/05/17/social-meet-up-on-twitter-for-meet-windows-azure-on.aspx"&gt;Social Meet up on Twitter for Meet Windows Azure on June 7th&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Paras Doshi (&lt;a href="http://twitter.com/#!/paras_doshi"&gt;@paras_doshi&lt;/a&gt;): &lt;a href="http://parasdoshi.com/2012/05/19/get-started-on-windows-azure-attend-meet-windows-azure-event-online/"&gt;Get started on Windows Azure: Attend “Meet Windows Azure” event Online&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Simran Jindal (&lt;a href="http://twitter.com/#!/SimranJindal"&gt;@SimranJindal&lt;/a&gt;): &lt;a href="http://simranjindal.wordpress.com/2012/05/21/meet-windows-azure-an-online-and-in-person-event-social-meetup-meetazure-beer-for-beer-lovers-on-june-7th-2012/"&gt;Meet Windows Azure – an online and in person event, social meetup #MeetAzure (+ Beer for Beer lovers) on June 7th 2012&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Michael Wood (&lt;a href="https://twitter.com/#!/mikewo"&gt;@mikewo&lt;/a&gt;): &lt;a href="http://mvwood.com/blog/learn-about-windows-azure-and-chat-with-experts-june-7th/"&gt;Learn about Windows Azure and Chat with Experts, June 7th&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Shiju Varghese (&lt;a href="http://twitter.com/#!/shijucv/"&gt;@shijucv&lt;/a&gt;): &lt;a href="http://weblogs.asp.net/shijuvarghese/archive/2012/05/28/social-meet-up-on-twitter-for-meet-windows-azure-on-june-the-7th.aspx"&gt;Social meet up on Twitter for MEET Windows Azure on June the 7th&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Jeremie Devillard (&lt;a href="http://twitter.com/#!/jeremiedev/"&gt;@jeremiedev&lt;/a&gt;): &lt;a href="http://jeremiedevillard.wordpress.com/2012/05/16/meet-the-cloudwindows-azure-event-7th-june/"&gt;Meet the Cloud–Windows Azure Event 7th June&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Kris van der Mast (&lt;a href="https://twitter.com/#!/KvdM"&gt;@KvdM&lt;/a&gt;): &lt;a href="http://blog.krisvandermast.com/GetReadyToMeetWindowsAzure.aspx"&gt;Get ready to meet Windows Azure&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Mike Martin (&lt;a href="https://twitter.com/#!/techmike2kx"&gt;@TechMike2KX&lt;/a&gt;): &lt;a href="http://techmike2kx.wordpress.com/2012/05/30/dont-miss-the-online-windows-azure-event-of-the-year-meet-windows-azure-on-june-7th"&gt;Don’t miss the online Windows Azure event of the year : MEET Windows Azure on June 7th &lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Bill Wilder (&lt;a href="https://twitter.com/#!/codingoutloud"&gt;@codingoutloud&lt;/a&gt;): &lt;a href="http://blog.codingoutloud.com/2012/06/04/meet-windowsazure-live-streamed-event-june-7-2012/"&gt;Get ready to “Meet #WindowsAzure” in a live streamed event June 7 at 4:00 PM Boston time&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Eric Boyd (&lt;a href="https://twitter.com/#!/EricDBoyd"&gt;@EricDBoyd&lt;/a&gt;): &lt;a href="http://ericdboyd.com/2012/06/05/meet-windows-azure-unveiling-the-latest-platform/"&gt;Meet Windows Azure – Unveiling the Latest Platform&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Magnus Mårtensson (&lt;a href="https://twitter.com/#!/noopman"&gt;@noopman&lt;/a&gt;): &lt;a href="http://www.magnusmartensson.com/post/2012/05/16/Social-meet-up-on-Twitter-for-MEET-Windows-Azure-on-June-7th.aspx"&gt;Social meet up on Twitter for MEET Windows Azure on June 7th&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;We’ll definitely meet online and try to answer all your questions and learn also from you.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1809876" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/dim7z54k9Pc" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Storage/default.aspx">Windows Azure Storage</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/05/16/social-meet-up-for-meet-windows-azure-on-june-7th.aspx</feedburner:origLink></item><item><title>Visual Studio Live @ Las Vegas Presentations – Tips and Tricks on Architecting Windows Azure for Costs</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/jjorbKlFRxU/visual-studio-live-las-vegas-presentations-tips-and-tricks-on-architecting-windows-azure-for-costs.aspx</link><pubDate>Thu, 29 Mar 2012 17:03:09 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1808129</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1808129</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1808129</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/03/29/visual-studio-live-las-vegas-presentations-tips-and-tricks-on-architecting-windows-azure-for-costs.aspx#comments</comments><description>&lt;p&gt;Unfortunately I wasn’t able to go and speak in Visual Studio Live @ Las Vegas as it was scheduled, due to an illness that made it impossible for me to travel, and stay in bed for a few days.&lt;/p&gt;  &lt;p&gt;But even if I wasn’t there I would like to share with you some of the points on this topic “Tips and Tricks on Architecting Windows Azure for Costs”.&lt;/p&gt;  &lt;div style="width:425px;" id="__ss_12211158"&gt;&lt;strong style="margin:12px 0px 4px;display:block;"&gt;&lt;a title="Tips &amp;amp; Tricks On Architecting Windows Azure For Costs" href="http://www.slideshare.net/Nuno.Godinho/tips-tricks-on-architecting-windows-azure-for-costs" target="_blank"&gt;Tips &amp;amp; Tricks On Architecting Windows Azure For Costs&lt;/a&gt;&lt;/strong&gt;           &lt;div style="padding-bottom:12px;padding-left:0px;padding-right:0px;padding-top:5px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/Nuno.Godinho" target="_blank"&gt;Nuno Godinho&lt;/a&gt; &lt;/div&gt;    &lt;div style="padding-bottom:12px;padding-left:0px;padding-right:0px;padding-top:5px;"&gt;The Key points to achieve this are:&lt;/div&gt;    &lt;ul&gt;     &lt;li&gt;Cloud pricing isn’t more complex than on-premises, it’s just different&lt;/li&gt;      &lt;li&gt;Every component has it’s own characteristics, adjust them to your needs&lt;/li&gt;      &lt;li&gt;Always remember that &lt;strong&gt;Requirements&lt;/strong&gt; impact costs, choose the ones that are really important&lt;/li&gt;      &lt;li&gt;Always remember that &lt;strong&gt;Developers and the way things are developed&lt;/strong&gt; impact costs, so plan, learn and then code.&lt;/li&gt;      &lt;li&gt;Windows Azure pricing model can improve code quality, because you pay what you use and very early can discover where things are going out of plan&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;But don’t over-analyze! Don’t just block because things have impacts, because even today the same things are impacting you, the difference is that normally you don’t see them that quickly and transparently, so “GO FOR IT”, you’ll find it’s really worth it.&lt;/strong&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;In some next posts I’ll go in-depth into each one of those.&lt;/p&gt;    &lt;p&gt;Special thanks for &lt;a href="http://blog.maartenballiauw.be/"&gt;Maarten Balliauw&lt;/a&gt; for providing a presentation he did previously that I could work on.&lt;/p&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1808129" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/jjorbKlFRxU" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Visual+Studio+Live+_4000_+Las+Vegas+2012/default.aspx">Visual Studio Live @ Las Vegas 2012</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/03/29/visual-studio-live-las-vegas-presentations-tips-and-tricks-on-architecting-windows-azure-for-costs.aspx</feedburner:origLink></item><item><title>Visual Studio Live @ Las Vegas Presentations – Architecture Best Practices in Windows Azure</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/b0yQb3xnuvQ/visual-studio-live-las-vegas-presentations-architecture-best-practices-in-windows-azure.aspx</link><pubDate>Thu, 29 Mar 2012 16:50:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1808128</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1808128</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1808128</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/03/29/visual-studio-live-las-vegas-presentations-architecture-best-practices-in-windows-azure.aspx#comments</comments><description>&lt;p&gt;Unfortunately I wasn’t able to go and speak in Visual Studio Live @ Las Vegas as it was scheduled, due to an illness that made it impossible for me to travel, and stay in bed for a few days.&lt;/p&gt;  &lt;p&gt;But even if I wasn’t there I would like to share with you some of the points on this topic “Architecture Best Practices in Windows Azure”.&lt;/p&gt;  &lt;div style="width:425px;" id="__ss_12211159"&gt;&lt;strong style="margin:12px 0px 4px;display:block;"&gt;&lt;a title="Architecture Best Practices on Windows Azure" href="http://www.slideshare.net/Nuno.Godinho/architecture-best-practices-on-windows-azure"&gt;Architecture Best Practices on Windows Azure&lt;/a&gt;&lt;/strong&gt;    &lt;div style="padding-bottom:12px;padding-left:0px;padding-right:0px;padding-top:5px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/Nuno.Godinho"&gt;Nuno Godinho&lt;/a&gt;.&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;strong&gt;Here are 10 key Architecture Best Practices in Windows Azure:&lt;/strong&gt;&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Architect for Scale &lt;/li&gt;    &lt;li&gt;Plan for Disaster Recovery&lt;/li&gt;    &lt;li&gt;Secure your Communications&lt;/li&gt;    &lt;li&gt;Pick the right Compute size &lt;/li&gt;    &lt;li&gt;Partition your Data &lt;/li&gt;    &lt;li&gt;Instrument your Solution&lt;/li&gt;    &lt;li&gt;Federate your Identity&lt;/li&gt;    &lt;li&gt;Use Asynchronous and Reduce Coupling&lt;/li&gt;    &lt;li&gt;Reduce Latency&lt;/li&gt;    &lt;li&gt;Make Internal Communication Secure&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;In some next entries I’ll go in-depth into each one of those.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1808128" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/b0yQb3xnuvQ" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/SQL+Azure/default.aspx">SQL Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Storage/default.aspx">Windows Azure Storage</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Visual+Studio+Live+_4000_+Las+Vegas+2012/default.aspx">Visual Studio Live @ Las Vegas 2012</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/03/29/visual-studio-live-las-vegas-presentations-architecture-best-practices-in-windows-azure.aspx</feedburner:origLink></item><item><title>Lessons Learned from last week's Windows Azure Outage - Data Recovery</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/T-kNIiMzsok/lessons-learned-from-last-week-s-windows-azure-outage-data-recovery.aspx</link><pubDate>Tue, 06 Mar 2012 12:46:57 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1807015</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1807015</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1807015</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/03/06/lessons-learned-from-last-week-s-windows-azure-outage-data-recovery.aspx#comments</comments><description>&lt;p&gt;With last week’s Windows Azure Outage I’ve learned some lessons and I already talked about some in the previous posts, in this one I’ll focus on Data Recovery, since one of the important part of the outage is that we get scared of losing our data. Fortunately this didn’t happened in this one, and why was that? Have you thought about it?&lt;/p&gt;  &lt;p&gt;So why wasn’t any data loss in this outage? Let’s dig into this one.&lt;/p&gt;  &lt;p&gt;Normally our data is either placed inside Windows Azure Storage or even SQL Azure, and so Windows Azure has in-place for both of them one automatic process that for each content we place in these two options we get 3 replicas and they are placed in different parts of the Data Center, or in the Windows Azure Storage case 1 of the replicas is placed in a different Data Center in the same Region. This was very important to avoid data loss, since what happened was that in this “Leap Year bug outage” we didn’t have the complete Data Centers shutting down and so there were parts that still continued working maintaining our data. Of course this replication strategy doesn’t work for all problems since if all the Data Center crashes at the same time there might be data loss, but that isn’t the most normal outage, and so this way they are solving the biggest problems.&lt;/p&gt;  &lt;p&gt;Also the fact that Microsoft has at least 2 Data Centers in the same region reduces a lot the possibilities of having some data loss.&lt;/p&gt;  &lt;p&gt;But what if all the Data Center had went completely destroyed for some reason. Would I continue to have my Data?&lt;/p&gt;  &lt;p&gt;And the answer is “it depends”. In the case of Windows Azure Storage the answer would be no, because we would have a replica in the other Data Center in the same region so we would be able to get back into action, it would take just a bit more time. If we were talking about the other services the answer would be different because the replicas in SQL Azure is placed inside the same Data Center and so if everything goes down, and also the machines goes down we could lose everything, but what’s the odds of that? Not two high.&lt;/p&gt;  &lt;p&gt;If you don’t like your odds with this the best thing you could do was implementing a Data Recovery strategy, like replicating all your data to another Data Center inside your app, like for example with SQL Azure, we could use SQL Azure Data Sync to sync the database to another one in a different Data Center and even Region, or even use the SQL Azure Import/Export capability to have some “backups” (this isn’t a really backup since we don’t have the actual transaction log, but will be enough since it has all the Schema and Data in a particular time providing us a way to “restore” our data to a previous state) being placed in a Windows Azure Blob Storage Container, or even copied to one of our On-Premises machines or any other machine.&lt;/p&gt;  &lt;p&gt;Another option would be to had the service available in several different geographies and fallback to the other ones in case of a outage like this, but of course this has costs, and maybe in some cases it would be enough to just point it to a static site inside Windows Azure Storage, or in other cases point into another deployment you have elsewhere in order not to stop working. It always depends on the business requirements we are talking in this case.&lt;/p&gt;  &lt;p&gt;So with this I think one thing we should never forget is &lt;strong&gt;Data Recovery&lt;em&gt; &lt;/em&gt;&lt;/strong&gt;since thinking about this in the architecture phase will help a lot your business when something like this happens, and not even only in situations like this since there are also some that happen even without outages, like because of some bad update that was pushed, or any other issue.&lt;/p&gt;  &lt;p&gt;I hope this helps you also understand how to plan and have measures in place to avoid data loss. Also I’ll continue to blog about some other lessons learned here.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1807015" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/T-kNIiMzsok" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Storage/default.aspx">Windows Azure Storage</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/03/06/lessons-learned-from-last-week-s-windows-azure-outage-data-recovery.aspx</feedburner:origLink></item><item><title>Lessons Learned from last week Windows Azure outage – Redundancy</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/IWlBDOl5LOA/lessons-learned-from-last-week-windows-azure-outage.aspx</link><pubDate>Sun, 04 Mar 2012 20:09:29 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1806900</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1806900</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1806900</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/03/04/lessons-learned-from-last-week-windows-azure-outage.aspx#comments</comments><description>&lt;p&gt;As you might already know, Windows Azure had an Outage last week, and this generated a lot of “fuzz” around it, as well as when the same happened to Amazon last year, or even other providers. Based on these outages, lots of people are now saying that Cloud Computing shouldn’t be an option because it sometimes fails, because it has outages and so on. This isn’t really a very correct approach to the issue, since when we have everything inside our own Data Center, sometimes bad things happen also, from someone doing an update in the network and that crashes it, machines that just “die” from one moment to the other, and a lot more.&lt;/p&gt;  &lt;p&gt;What these outages remind us is that even when going to the Cloud, and Windows Azure for example, we need to continue to analyze the impacts that an outage in our solution might have in our business, because Cloud Computing provides us a better platform and a way for us to be more secure, since they already have some Disaster Recovery and Data Replication mechanisms, but they also provide SLA’s and if we need more than those we need to really work on it and architect for it right from the start. And this isn’t a Cloud Computing fault, it’s really a requirement that our business has, and will have inside or outside or our own Data Center. &lt;/p&gt;  &lt;p&gt;When we are dealing with something that is inside out own Data Center what we do is &lt;strong&gt;Redundancy&lt;/strong&gt;. Let’s talk on a real-world example not IT related. Airplanes don’t need so many engines to fly, but they have them because if 50% fails, the other 50% will still get the airplane to reach to the desired destination without problems, and of course the level of redundancy depends on the reliability of the engines, and also the impact of that failure. Since airplanes don’t work very well without engines working, this is critical so sometimes you see 50% Redundancy and some other 75% Redundancy, like it happened in the earlier days. So we need to do the same with our solutions when building the on Windows Azure, and that is understand the impacts that an outage has for the business and then plan Redundancy and Disaster Recovery based on those, but we have some things that we can count on already, that is how Windows Azure takes care of Storage, SQL Azure, Compute and so on, since it provides us SLA’s that will provide us a level of security already very good. Also in case of Storage, provide us 3 replicas of everything that is placed inside the Storage account, being it Tables, Queues or even Blobs, and also Geo-Replicates 1 copy into another Data Center in the same region. What this does is that when for example a Data Center goes down, like it happened last week with Windows Azure, normally isn’t all the Data Center, and so some part will continue to be available, and as soon as the platform identifies that some part of the Data Center is down, the same platform will take the primary replica and place it as the original one, and them everything works again, but if for some reason all the Data Center goes down, it will continue to have a replica in the other Data Center of the same Region. &lt;/p&gt;  &lt;p&gt;If we talk about SQL Azure, the same thing happen as the Storage, just the Geo-Replication isn’t there, so if all the Data Center goes down, there’s no Geo-Replica fallback process and so we need to plan for it.&lt;/p&gt;  &lt;p&gt;So based on all this we should really look at Redundancy and Disaster Recovery as a very important part of our Architecture and System design, but we also need to take into account that this means costs, and so we need to get the right approach for the customer, because there’s no solution “One fits all” for this.&lt;/p&gt;  &lt;p&gt;In some next posts I’ll talk about some approaches to designing Windows Azure for Redundancy and Disaster Recovery. &lt;/p&gt;  &lt;p&gt;Also you can leave a comment and say what you’d like to hear about and I’ll do my best to write about it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1806900" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/IWlBDOl5LOA" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Storage/default.aspx">Windows Azure Storage</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Disaster+Recovery/default.aspx">Disaster Recovery</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/03/04/lessons-learned-from-last-week-windows-azure-outage.aspx</feedburner:origLink></item><item><title>Importance of Affinity Groups in Windows Azure</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/uN9dGu3LVzk/importance-of-affinity-groups-in-windows-azure.aspx</link><pubDate>Sun, 04 Mar 2012 06:28:37 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1806875</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>3</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1806875</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1806875</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2012/03/04/importance-of-affinity-groups-in-windows-azure.aspx#comments</comments><description>&lt;p&gt;During this last week some friends asked me more about what are the Affinity Groups in Windows Azure, and their benefits since for some people this is nothing more than a way to logically group both Compute and Storage.&lt;/p&gt;  &lt;p&gt;In order to explain this we need to dig a little deep in terms of how Windows Azure Data Centers are created. Basically Windows Azure Data Centers are built using “Containers” that inside are full of clusters and racks. Each of those Containers have specific services, like for example, Compute and Storage, SQL Azure, Service Bus, Access Control Service, and so on. Those containers are spread across the data center and each time we subscribe/deploy a service the Fabric Controller (which chooses based on our solution configuration where the services should be deployed) can place our services spread across the data center. &lt;/p&gt;  &lt;p&gt;Now one thing that can happen is we need to be very careful in where we create the several services, because if we place the Hosted Service in North Central US and then the Storage Account in South Central US, this won’t be very good both in terms of Latency or Costs, since we’ll get charged whenever we get out of the Data Center. But even if we choose the same Data Center, nothing tells us that the services will be close together, since one can be placed in one end of the Data Center and the other in the other end, and so this will remote the costs and make the latency better, but it would be great to go a little further like placing them in the same Container, or even in the same Cluster. The answer for this is &lt;strong&gt;Affinity Groups&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Basically &lt;strong&gt;Affinity Groups&lt;/strong&gt; is a way to tell the Fabric Controller that those two elements, Compute and Storage, should always be together and close to one another, and what this does is when the Fabric Controller is searching for the best suited Container to deploy those services will be looking for one where it can deploy both in the same Cluster, making them as close as possible, and reducing the latency, and increasing the performance.&lt;/p&gt;  &lt;p&gt;So in summary, Affinity Groups provide us:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Aggregation, &lt;/strong&gt;since it aggregates our Compute and Storage services and provide the Fabric Controller the information needed for them to be kept in the same Data Center, and even more, in the same Cluster. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Reducing the Latency, &lt;/strong&gt;because by providing information to the Fabric Controller that they should be kept together, allow us to get a lot better latency when accessing the Storage from the Compute Nodes, which makes difference in a highly available environment. &lt;/li&gt;    &lt;li&gt;&lt;strong&gt;Lowering costs, &lt;/strong&gt;as by using them we don’t have the possibility of getting one service in one Data Center and the other in another Data Center if for some reason we choose the wrong way, or even because we choose for both one of the “Anywhere” options in the. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Based on this, don’t forget to use Affinity Groups right from the start, since it’s not possible after having deployed both the Compute or Storage to change them into an Affinity Group.&lt;/p&gt;  &lt;p&gt;To finalize, and since now you can be thinking that this would be very interesting for other services also, no other services are able to take advantage of this Affinity, since neither of them share the same Container.&lt;/p&gt;  &lt;p&gt;Hope this helped and see you in the CLOUD. &lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1806875" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/uN9dGu3LVzk" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Storage/default.aspx">Windows Azure Storage</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2012/03/04/importance-of-affinity-groups-in-windows-azure.aspx</feedburner:origLink></item><item><title>ALM Days 2011 Portugal</title><link>http://feedproxy.google.com/~r/msmvps/NunoGodinho/~3/AnY-ZkUbZmw/alm-days-2011-portugal.aspx</link><pubDate>Wed, 07 Dec 2011 11:59:49 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1803319</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1803319</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1803319</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2011/12/07/alm-days-2011-portugal.aspx#comments</comments><description>&lt;p&gt;Last week I presented two session both in Lisbon and Porto one about Visual Studio Lightswitch and other about Hosted TFS.&lt;/p&gt;  &lt;p&gt;Here are the presentations:&lt;/p&gt;  &lt;p&gt;&lt;a title="Visual Studio LightSwitch 2011 - ALM Days" href="https://skydrive.live.com/view.aspx?cid=8930ED9866A0E2C3&amp;amp;resid=8930ED9866A0E2C3%21898" target="_blank"&gt;Visual Studio LightSwitch 2011 - ALM Days&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="Hosted TFS" href="https://skydrive.live.com/view.aspx?cid=8930ED9866A0E2C3&amp;amp;resid=8930ED9866A0E2C3%21897"&gt;Hosted TFS&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1803319" width="1" height="1"&gt;&lt;img src="http://feeds.feedburner.com/~r/msmvps/NunoGodinho/~4/AnY-ZkUbZmw" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Visual+Studio+LightSwitch/default.aspx">Visual Studio LightSwitch</category><feedburner:origLink>http://msmvps.com/blogs/nunogodinho/archive/2011/12/07/alm-days-2011-portugal.aspx</feedburner:origLink></item></channel></rss>
