<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://geeks.netindonesia.net/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Wely Lau</title><link>http://geeks.netindonesia.net/blogs/wely/default.aspx</link><description>Journey to the cloud</description><dc:language>en</dc:language><generator>CommunityServer 2007.1 (Build: 20917.1142)</generator><item><title>Migrating My Blog to http://wely-lau.net (Wordpress on Windows Azure)</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/09/26/migrating-my-blog-to-http-wely-lau-net-wordpress-on-windows-azure.aspx</link><pubDate>Mon, 26 Sep 2011 14:46:15 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193111</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=193111</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=193111</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/09/26/migrating-my-blog-to-http-wely-lau-net-wordpress-on-windows-azure.aspx#comments</comments><description>&lt;p&gt;As I mentioned &lt;a href="http://wely-lau.net/2011/09/25/my-blog-is-now-running-wordpress-on-windows-azure/"&gt;here&lt;/a&gt;, recently I’ve successfully set up my Wordpress Blog on Windows Azure (&lt;a href="http://wely-lau.net"&gt;http://wely-lau.net&lt;/a&gt;), I also would like to inform that my current blog &lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://netindonesia.net/blogs/wely"&gt;&lt;font size="4"&gt;http://netindonesia.net/blogs/wely&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;will be migrated to &lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://wely-lau.net"&gt;&lt;font size="5"&gt;http://wely-lau.net&lt;/font&gt;&lt;/a&gt;&lt;font size="5"&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Since not all of my blog posts are migrated, my current blog will be stayed online for archives viewing purpose.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/09/26/migrating-my-blog-to-http-wely-lau-net-wordpress-on-windows-azure.aspx&amp;amp;subject=Migrating My Blog to http://wely-lau.net (Wordpress on Windows Azure)" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/09/26/migrating-my-blog-to-http-wely-lau-net-wordpress-on-windows-azure.aspx&amp;amp;t=Migrating+My+Blog+to+http%3a%2f%2fwely-lau.net+(Wordpress+on+Windows+Azure)" target="_blank" title="Submit Migrating My Blog to http://wely-lau.net (Wordpress on Windows Azure) to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/09/26/migrating-my-blog-to-http-wely-lau-net-wordpress-on-windows-azure.aspx&amp;amp;title=Migrating+My+Blog+to+http%3a%2f%2fwely-lau.net+(Wordpress+on+Windows+Azure)" target="_blank" title="Submit Migrating My Blog to http://wely-lau.net (Wordpress on Windows Azure) to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/09/26/migrating-my-blog-to-http-wely-lau-net-wordpress-on-windows-azure.aspx&amp;amp;phase=2" target="_blank" title="Submit Migrating My Blog to http://wely-lau.net (Wordpress on Windows Azure) to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/09/26/migrating-my-blog-to-http-wely-lau-net-wordpress-on-windows-azure.aspx&amp;amp;title=Migrating+My+Blog+to+http%3a%2f%2fwely-lau.net+(Wordpress+on+Windows+Azure)" target="_blank" title="Add Migrating My Blog to http://wely-lau.net (Wordpress on Windows Azure) to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193111" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Personal/default.aspx">Personal</category></item><item><title>A Deep Look inside Windows Azure Virtual Machines</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/09/12/a-deep-look-inside-windows-azure-virtual-machines-part-1.aspx</link><pubDate>Mon, 12 Sep 2011 14:59:32 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:193052</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=193052</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=193052</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/09/12/a-deep-look-inside-windows-azure-virtual-machines-part-1.aspx#comments</comments><description>&lt;p&gt;As I believe most people are aware that our application on Windows Azure is actually running on VM (Virtual Machine) that sits on top of Windows Azure Hypervisor, inside Microsoft Datacenter. &lt;/p&gt;  &lt;p&gt;The objective of this post is to explain under-the-hood or deep view of what’s actually inside Windows Azure Virtual Machine. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;em&gt;&lt;font color="#ff0000"&gt;This is NOT about VM (Virtual Machine) Role&lt;/font&gt;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Please do not be confused this post with VM Role. This post is purely discussing about the Virtual Machine of pre-provisioned by Windows Azure, specifically Worker Role and Web Role. While VM Role is another role type other than Web Role and Worker Role.&lt;/p&gt;  &lt;h1&gt;Fabric Controller – the “kernel” of the Cloud OS&lt;/h1&gt;  &lt;p&gt;Before moving on what inside the VM, I will explain how the Fabric Controller is, what it does, and how it relates to Windows Azure VM.&lt;/p&gt;  &lt;p&gt;Fabric Controller is actually a Windows Azure service that is acting as the kernel on the Windows Azure Platform itself. It manages data center’s hardware as well as Windows Azure service. The Fabric Controllers run on nodes that will be spread across fault domains in the hardware. In order to ensure the high availability and multiple-fault tolerant, it has at least 5 instances, in most case it may be more. &lt;/p&gt;  &lt;p&gt;Specifically, the main responsibilities are:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Data Center Resource Allocation&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The Fabric Controller will manage the resource allocation over the hardware in Windows Azure datacenter including the blades and network. When you specify your input of your service (VM Size, number of instance, fault domain, upgrade domain), the Fabric Controller would be intelligent enough to allocate appropriate resource inside the datacenter.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Data Center Resource Provisioning&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When appropriate node is found, the next step is to provision the VM for host our application to ensure the application and OS are up and running. The provisioning processes includes powering-on the node, perform a &lt;a href="http://en.wikipedia.org/wiki/Preboot_Execution_Environment"&gt;PXE&lt;/a&gt;-boot maintenance OS, download host OS, run &lt;a href="http://en.wikipedia.org/wiki/Sysprep"&gt;sysprep&lt;/a&gt;, and eventually connect the Fabric Controller will communicate with host agent.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. Service Lifecycle Management&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Managing the deployment lifecycle of service. When you deploy your application on Windows Azure (regardless through portal or management API), your service package is actually passed to a service, namely RDFE (Red Dog Front End). The RDFE then subsequently send your service package to Fabric Controller based on target region. The Fabric Controller will then deploy your service accordingly given inputs that you’ve defined in Service Configuration and Service Definition files.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4. Service Health Management&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;When the service is successfully deployed, the responsibility of Fabric Controller is not done yet. However, it will manage and monitor the health of the VM. The monitoring process typically works by sending the heartbeat from &lt;strong&gt;guest OS to host OS&lt;/strong&gt; and subsequently &lt;strong&gt;host OS to Fabric Controller&lt;/strong&gt;. The Fabric Controller will then act appropriately should it encounters any issue.&lt;/p&gt;  &lt;p&gt;Alright, having understand what Fabric Controller is, we can now just to our core topic about the Windows Azure VM. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Pre-provisioned VM sits on Hypervisor&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image1_125A1540.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" align="left" src="http://netindonesia.net/blogs/wely/image1_thumb_53B47BFF.png" width="231" height="224" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;A Windows Azure VM (regardless it’s web or worker role) is actually a pre-provisioned VM that is automatically placed and booted on top of Hypervisor, a custom version of Hyper-V to satisfy the needs. In the picture it’s reflected as “Guest VM”. This is actually the place where our service hosted on. The Guest VM will communicate to Root / Host VM to perform necessary management task such as as heartbeat-pinging. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Operating System Versions&lt;/h1&gt;  &lt;p&gt;At the moment, Windows Azure supports two type of operating system, namely:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows Server 2008 (64 bit) &lt;/li&gt;    &lt;li&gt;Windows Server 2008 R2 (64 bit) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can specify your preferred OS on either:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Service Configuration&lt;/strong&gt; files by entering &lt;strong&gt;osFamily&lt;/strong&gt; and &lt;strong&gt;osVersion&lt;/strong&gt; attributes.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_1ED183FB.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_7D71DE5E.png" width="542" height="62" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;osFamily 1 represents Windows Server 2008, while 2 represents Windows Server 2008 R2.&lt;/p&gt;  &lt;p&gt;On the osVersion, this is the setting where you tell Windows Azure, which version of OS your Guest VM will be using. Specify it with * (star) sign means Windows Azure will automatically upgrade the Guest VM OS when there’s new OS released. However, in some case customer does not want it to be automatically updated, then you can select the specific version of OS as could be found &lt;a href="http://msdn.microsoft.com/en-us/library/ee924680.aspx"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Windows Azure Portal&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You can also use user interface in Windows Azure Portal to select your preferred OS family and version. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_70F36DF3.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_68EBA5C4.png" width="385" height="174" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image4_57977C87.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image4_thumb_0F497511.png" width="262" height="172" /&gt;&lt;/a&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_0373E245.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin: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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_54FA10FD.png" width="244" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;What are the difference? Which one should I choose?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A few notable difference that I feel relevant to Windows Azure is some of the command utility exists in Windows Server 2008 R2 but not in Windows Server 2008, for example: &lt;a href="http://netindonesia.net/blogs/wely/archive/2011/06/26/setting-timezone-in-windows-azure.aspx"&gt;tzutil command to set the timezone&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;There’re indeed some more differences of each OS. I recommend you to check out more detail &lt;a href="http://technet.microsoft.com/en-us/library/dd349801(WS.10).aspx"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;h1&gt;VM Sizes&lt;/h1&gt;  &lt;p&gt;VM Size is to define the hardware specification of VM you want Windows Azure to provision to you. There’re 5 available VM Size at this moment from Extra Small all the way to Extra Large. Obviously, the higher specification the more expensive.&lt;/p&gt;  &lt;table style="border-collapse:collapse;mso-yfti-tbllook:1056;" cellspacing="0" cellpadding="0"&gt;     &lt;tr style="height:17.27pt;mso-height-source:userset;"&gt;       &lt;td style="border-bottom:white 3pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#56a4e4;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa1" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:14;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:light1;mso-style-textfill-fill-color:white;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;" color="#ffffff"&gt;&lt;strong&gt;Specifications&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 3pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#56a4e4;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa1" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:14;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:light1;mso-style-textfill-fill-color:white;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;" color="#ffffff"&gt;&lt;strong&gt;Extra Small&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 3pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#56a4e4;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa1" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:14;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:light1;mso-style-textfill-fill-color:white;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;" color="#ffffff"&gt;&lt;strong&gt;Small&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 3pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#56a4e4;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa1" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:14;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:light1;mso-style-textfill-fill-color:white;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;" color="#ffffff"&gt;&lt;strong&gt;Medium&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 3pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#56a4e4;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa1" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:14;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:light1;mso-style-textfill-fill-color:white;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;" color="#ffffff"&gt;&lt;strong&gt;Large&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 3pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#56a4e4;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa1" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:14;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:light1;mso-style-textfill-fill-color:white;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;" color="#ffffff"&gt;&lt;strong&gt;Extra Large&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height:17.27pt;mso-height-source:userset;"&gt;       &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 3pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa2" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;CPU&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 3pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa2" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;1.0 GHz&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 3pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa2" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;1.6 GHz&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 3pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa2" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;2 X 1.6 GHz&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 3pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa2" align="center"&gt;         &lt;p style="line-height:normal;text-indent:0in;margin:0pt 0in;unicode-bidi:embed;direction:ltr;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;mso-vertical-align-alt:auto;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;4 &lt;/font&gt;&lt;/span&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;X 1.6 GHz&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 3pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa2" align="center"&gt;         &lt;p style="line-height:normal;text-indent:0in;margin:0pt 0in;unicode-bidi:embed;direction:ltr;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;mso-vertical-align-alt:auto;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;8 X 1.6 GHz&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height:17.27pt;mso-height-source:userset;"&gt;       &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;Memory&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;768 MB&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;1.75 GB&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;3.5 GB&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;7 GB&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;14 GB&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height:29.81pt;mso-height-source:userset;"&gt;       &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;VM&lt;/font&gt;&lt;/span&gt;&lt;span style="vertical-align:baseline;language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;mso-text-raise:0%;"&gt;&lt;font style="font-size:10pt;"&gt; Local Storage&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;20 GB&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;225 GB&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;490 GB&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;1,000 GB&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;2,040 GB&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height:29.81pt;mso-height-source:userset;"&gt;       &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;Network I/O Performance&lt;/font&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:10pt;"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;Low&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;Moderate&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;High&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;High&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;High&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height:15.28pt;mso-height-source:userset;"&gt;       &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;Allocated Bandwidth&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;5 Mbps&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;100&lt;/font&gt;&lt;/span&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt; Mbps&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;200&lt;/font&gt;&lt;/span&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt; Mbps&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;400 &lt;/font&gt;&lt;/span&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;Mbps&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#d1e0f5;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa4" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;800 &lt;/font&gt;&lt;/span&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;Mbps&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height:17.27pt;mso-height-source:userset;"&gt;       &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;Cost per Hour&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;$0.05&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;$0.12&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;$0.24&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;$0.48&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-bottom:white 1pt solid;border-left:white 1pt solid;padding-bottom:3.6pt;background-color:#e9f0fa;padding-left:7.2pt;padding-right:7.2pt;vertical-align:top;border-top:white 1pt solid;border-right:white 1pt solid;padding-top:3.6pt;" class="oa3" align="center"&gt;         &lt;p style="margin-top:0pt;unicode-bidi:embed;direction:ltr;margin-bottom:0pt;margin-left:0in;word-break:normal;language:en-us;mso-line-break-override:none;punctuation-wrap:hanging;" align="center"&gt;&lt;span style="language:en-us;mso-ascii-font-family:&amp;#39;Segoe Condensed&amp;#39;;mso-color-index:13;mso-font-kerning:12.0pt;mso-style-textfill-type:solid;mso-style-textfill-fill-themecolor:dark1;mso-style-textfill-fill-color:black;mso-style-textfill-fill-alpha:100.0%;"&gt;&lt;font style="font-size:10pt;"&gt;$0.96&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/table&gt;  &lt;h2&gt;&amp;#160;&lt;/h2&gt;  &lt;h2&gt;Extra Small VM Size&lt;/h2&gt;  &lt;p&gt;Extra Small VM Size was announced in PDC 2010 with more affordable price. Selecting Extra Small VM in development or testing environment will fits properly. However, you are not recommended to use in Production environment.&lt;/p&gt;  &lt;h1&gt;VHDs (Virtual Hard Drives) inside Windows Azure VM &lt;/h1&gt;  &lt;p&gt;Windows Azure will provide three VHD images when a role is provisioned.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_thumb7_thumb_3204F627.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="image_thumb7_thumb" border="0" alt="image_thumb7_thumb" src="http://netindonesia.net/blogs/wely/image_thumb7_thumb_thumb_15476D13.png" width="419" height="265" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. C Drive – Local Storage Drive&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;This drive is to store temporary file such as logs or to store &lt;a href="http://msdn.microsoft.com/en-us/library/ee758708.aspx"&gt;local resource&lt;/a&gt;. The size of this VHD varies from 20 GB (Extra Small) to 2 TB (Extra Large) depending on what VM Size you choose. We can utilize this local resource drive to store temporary file, but keep in mind that it’s considered not persistence. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. D Drive – OS Drive&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;The D Drive is to store the Operating System files. The foldering structure is as almost similar to the on-premise OS. It has Program Files, Windows, etc. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. E Drive – Application’s code&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;The E Drive is the place for Windows Azure to store our application code. Our code will typically to be placed inside the “approot” folder. &lt;/p&gt;    &lt;h1&gt;Runtime Installed&lt;/h1&gt;  &lt;p&gt;As a PAAS (Platform as a Service) cloud provider, Windows Azure will take care of the OS and runtime level. As such, there are several pre-installed runtime in Windows Azure VM:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;NET 3.5 SP1 &lt;/li&gt;    &lt;li&gt;NET 4 &lt;/li&gt;    &lt;li&gt;ASP.NET &lt;/li&gt;    &lt;li&gt;VC80 CRT (8.0.50727) &lt;/li&gt;    &lt;li&gt;VC90 CRT (9.0.30729) &lt;/li&gt;    &lt;li&gt;URL Rewrite Module 2.0 &lt;/li&gt;    &lt;li&gt;VC10 CRT (e.g. MSVCR100.DLL) is not fusion-ized and can be packaged together with the application &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;In future, there’s a plan (&lt;a href="http://channel9.msdn.com/Events/PDC/PDC10/CS08"&gt;as mentioned by Mark&lt;/a&gt;) from Microsoft that Java will be pre-installed as well. &lt;/p&gt;  &lt;h1&gt;References&lt;/h1&gt;  &lt;ul&gt;   &lt;li&gt;Inside Windows Azure VM – Hoi Vo (PDC 2010) &lt;a title="http://channel9.msdn.com/Events/PDC/PDC10/CS63" href="http://channel9.msdn.com/Events/PDC/PDC10/CS63"&gt;http://channel9.msdn.com/Events/PDC/PDC10/CS63&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Inside Windows Azure – Mark Russinovich (PDC 2010) &lt;a title="http://channel9.msdn.com/Events/PDC/PDC10/CS08" href="http://channel9.msdn.com/Events/PDC/PDC10/CS08"&gt;http://channel9.msdn.com/Events/PDC/PDC10/CS08&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;Inside Windows Azure – Mark Russinovich (TechEd NA 2011) &lt;a title="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/COS301" href="http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/COS301"&gt;http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/COS301&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;That’s all for this post and hope it’s useful to you!&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/09/12/a-deep-look-inside-windows-azure-virtual-machines-part-1.aspx&amp;amp;subject=A Deep Look inside Windows Azure Virtual Machines" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/09/12/a-deep-look-inside-windows-azure-virtual-machines-part-1.aspx&amp;amp;t=A+Deep+Look+inside+Windows+Azure+Virtual+Machines" target="_blank" title="Submit A Deep Look inside Windows Azure Virtual Machines to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/09/12/a-deep-look-inside-windows-azure-virtual-machines-part-1.aspx&amp;amp;title=A+Deep+Look+inside+Windows+Azure+Virtual+Machines" target="_blank" title="Submit A Deep Look inside Windows Azure Virtual Machines to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/09/12/a-deep-look-inside-windows-azure-virtual-machines-part-1.aspx&amp;amp;phase=2" target="_blank" title="Submit A Deep Look inside Windows Azure Virtual Machines to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/09/12/a-deep-look-inside-windows-azure-virtual-machines-part-1.aspx&amp;amp;title=A+Deep+Look+inside+Windows+Azure+Virtual+Machines" target="_blank" title="Add A Deep Look inside Windows Azure Virtual Machines to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=193052" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>Various Options to Manage Session State in Windows Azure</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/08/13/various-options-to-manage-session-state-in-windows-azure.aspx</link><pubDate>Sat, 13 Aug 2011 04:43:38 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192983</guid><dc:creator>Wely</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192983</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192983</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/08/13/various-options-to-manage-session-state-in-windows-azure.aspx#comments</comments><description>&lt;h1&gt;Introduction&lt;/h1&gt;  &lt;p&gt;The Windows Azure Platform is a Microsoft cloud platform used to build, host and scale web applications through Microsoft datacenters. Customers are given privilege to scale VM instance up and down in the matter of a few minutes. Although this flexibility would indeed very useful, it may affect the way we architect and design the solution. &lt;/p&gt;  &lt;p&gt;One of the essential aspect that we would need to take into account is session state. Traditionally, if you are running one single server, going for default InProc session state will just work fine. However, when you have more than one server hosting your application, this may be a challenge for us. Similarly this scenario applies to Cloud environment.&lt;/p&gt;  &lt;p&gt;This article describes various options to handle Session State in Windows Azure. For each option, I’ll start with common introduction as brief information, follow by various advantages and disadvantages, and finalize by recommendation and suggestion.&lt;/p&gt;  &lt;p&gt;As prerequisite, I would assume the readers are familiar with the basic, what Session is and how it works…&lt;/p&gt;  &lt;h1&gt;Various Options to Manage Session State in Windows Azure&lt;/h1&gt;  &lt;h2&gt;&amp;#160;&lt;/h2&gt;  &lt;h2&gt;1. InProc Session&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_73B6713B.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" align="left" src="http://netindonesia.net/blogs/wely/image_thumb_5614706F.png" width="270" height="164" /&gt;&lt;/a&gt;InProc session state maybe is the best performed option (in term of access time) and the default when you are not specifying one. It actually stores the session in web server’s memory. Therefore, the access is very fast since hitting to memory is extremely speedy. &lt;/p&gt;  &lt;p&gt;I had a post last November 2011 that described &lt;a href="http://netindonesia.net/blogs/wely/archive/2010/09/22/in-proc-session-does-not-work-well-in-windows-azure.aspx"&gt;In-proc Session does not work well in Windows Azure&lt;/a&gt;. Well, in fact, it may be fine if you just run on single instance. However, I won’t recommend you to just spin up single instance at production environment, unless you tolerate some downtime. To &lt;a href="http://www.microsoft.com/download/en/details.aspx?displaylang=en&amp;amp;id=24434"&gt;meet the 99.95% SLA&lt;/a&gt;, we are required to spin at least 2 instance per role. &lt;/p&gt;  &lt;h3&gt;Advantages&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Very fast access since the session information is stored in memory (RAM) &lt;/li&gt;    &lt;li&gt;No extra cost as it will be using your VM’s memory &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Disadvantages&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;As mentioned above, this will only valid for single instance. If you use more than one instance, the inconsistency will happen. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;&lt;em&gt;*The rest of the option will tackle the single instance issue as they use centralized medium.&lt;/em&gt;&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;h1&gt;2. Table Storage Session Provider&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image20_73A64B6E.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" align="left" src="http://netindonesia.net/blogs/wely/image20_thumb_1CED6DA0.png" width="240" height="187" /&gt;&lt;/a&gt;Table Storage Provider is actually a subset of &lt;a href="http://code.msdn.microsoft.com/windowsazure/Windows-Azure-ASPNET-03d5dc14"&gt;Windows Azure ASP.NET Providers&lt;/a&gt; written by some Microsoft folks. The Session Provider is actually a custom provider that is compiled into a dll, centralize the session information in &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=3&amp;amp;ved=0CC0QFjAC&amp;amp;url=http%3A%2F%2Fdownload.microsoft.com%2Fdownload%2F3%2FB%2F1%2F3B170FF4-2354-4B2D-B4DC-8FED5F838F6A%2FWindows%2520Azure%2520Table%2520-%2520Dec%25202008.docx&amp;amp;ei=YDU6Tv-VJ4vPrQe7xoUb&amp;amp;usg=AFQjCNF9KUQPyH_vDHJsHSNyhnfgljov_A"&gt;Windows Azure Table Storage&lt;/a&gt;. You may download the package from &lt;a href="http://code.msdn.microsoft.com/windowsazure/Windows-Azure-ASPNET-03d5dc14"&gt;here&lt;/a&gt;. Clicking on the “Browse Code” section will show you pretty comprehensive example of how to implement this on your project.&lt;/p&gt;  &lt;p&gt;The way how it actually works is to store each session in Table Storage as could be seen in below screenshot. Each record will have its expired column that describe the expired time of each session if there’s no interaction from the user. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Advantages&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Cost effective. In essence, Windows Azure Storage only charge you $ 0.15 per GB per month.&amp;#160; &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Disadvantages&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Not officially supported by Microsoft &lt;/li&gt;    &lt;li&gt;Performance may not be very good. I experience a pretty bad experience on performance when using Windows Azure Storage provider. &lt;/li&gt;    &lt;li&gt;Need to clear unused session. &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;For each time a session (with properties including expiry time) is created on a session table. For the subsequent request, it will be check against the table to see if it exists. For the scenario we need delete the record which expiry time equals or older than current time. This is to enable timeout when there is no activity against session.&lt;/p&gt;    &lt;p&gt;In order to automatically delete expired session, most of the time we use Windows Azure Worker Role to perform the batch activity.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h1&gt;SQL Azure Session Provider&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_2A13AB19.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" align="left" src="http://netindonesia.net/blogs/wely/image_thumb_03917C34.png" width="231" height="171" /&gt;&lt;/a&gt;&lt;a href="http://blogs.msdn.com/b/sqlazure/archive/2010/08/04/10046103.aspx"&gt;SQL Azure Session Provider&lt;/a&gt; is actually a modified version of SQL Server Session Provider provided some changes that had been made on TSQL function, in order to comply SQL Azure. It is identified some issue on the original script and some folk posted &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/windowsazuredata/thread/cd2f0b6f-31b8-4982-ad32-79cae92211af"&gt;the resolution&lt;/a&gt; or you can download it     &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:fb3a1972-4489-4e52-abe7-25a00bb07fdf:c0bafd2f-2300-46ed-9e55-a02b5b0af722" class="wlWriterEditableSmartContent"&gt;&lt;p&gt; &lt;a href="http://netindonesia.net/blogs/wely/InstallSqlState_4B170FC1.sql" target="_blank"&gt;here&lt;/a&gt;&lt;/p&gt;&lt;/div&gt; .&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h3&gt;Advantages&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Cost effective. Although it may not be cost effective compare to table storage, it’s still pretty affordable, especially when combining it into the main database. &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Disadvantages&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;Not official support by Microsoft &lt;/li&gt;    &lt;li&gt;Need to clear unused session &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;p&gt;For each time a session (with properties including expiry time) is created on a session table. For the subsequent request, it will be check against the table to see if it exists. For the scenario we need delete the record which expiry time equals or older than current time. This is to enable timeout when there is no activity against session.&lt;/p&gt;    &lt;p&gt;In order to automatically delete expired session, most of the time we use Windows Azure Worker Role to perform the batch activity.&lt;/p&gt; &lt;/blockquote&gt;  &lt;h1&gt;AppFabric Caching&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_797CDB08.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" align="left" src="http://netindonesia.net/blogs/wely/image_thumb_3A7B34A0.png" width="245" height="188" /&gt;&lt;/a&gt;AppFabric Caching is actually the recommended option and officially supported by Microsoft. AppFabric Caching is distributed in-memory cache service. It is automated provisioned based on Windows Server AppFabric Caching Technology.&lt;/p&gt;  &lt;h3&gt;Advantages&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;In memory cache, very fast access&lt;/li&gt;    &lt;li&gt;Officially supported by Microsoft &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Disadvantages&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;The cost is relatively high. The pricing starts from $ 45 per month for 128 MB and all the way up to $ 325 per month for 4 GB. &lt;/li&gt; &lt;/ul&gt;  &lt;h1&gt;Conclusion&lt;/h1&gt;  &lt;p&gt;To conclude this discussion, there’re actually multiple ways of managing session in Windows Azure. All of them have pros and cons. It’s actually up to us to decide which one to use that fits better circumstance.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/08/13/various-options-to-manage-session-state-in-windows-azure.aspx&amp;amp;subject=Various Options to Manage Session State in Windows Azure" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/08/13/various-options-to-manage-session-state-in-windows-azure.aspx&amp;amp;t=Various+Options+to+Manage+Session+State+in+Windows+Azure" target="_blank" title="Submit Various Options to Manage Session State in Windows Azure to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/08/13/various-options-to-manage-session-state-in-windows-azure.aspx&amp;amp;title=Various+Options+to+Manage+Session+State+in+Windows+Azure" target="_blank" title="Submit Various Options to Manage Session State in Windows Azure to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/08/13/various-options-to-manage-session-state-in-windows-azure.aspx&amp;amp;phase=2" target="_blank" title="Submit Various Options to Manage Session State in Windows Azure to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/08/13/various-options-to-manage-session-state-in-windows-azure.aspx&amp;amp;title=Various+Options+to+Manage+Session+State+in+Windows+Azure" target="_blank" title="Add Various Options to Manage Session State in Windows Azure to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192983" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/SQL+Azure/default.aspx">SQL Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>Managing Timezone in SQL Azure</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/07/10/managing-timezone-in-sql-azure.aspx</link><pubDate>Sun, 10 Jul 2011 13:23:09 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192796</guid><dc:creator>Wely</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192796</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192796</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/07/10/managing-timezone-in-sql-azure.aspx#comments</comments><description>&lt;p&gt;In the last post, I showed you how to &lt;a href="http://netindonesia.net/blogs/wely/archive/2011/06/26/setting-timezone-in-windows-azure.aspx"&gt;set timezone in Windows Azure&lt;/a&gt;. In this post, I would like to show how to manage timezone in SQL Azure. &lt;/p&gt;  &lt;h1&gt;Current Limitation&lt;/h1&gt;  &lt;p&gt;At the time this post is written, unfortunately there’s no to change SQL Azure timezone.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_286799A2.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_1D9A1C80.png" width="529" height="83" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-faq.aspx" href="http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-faq.aspx"&gt;http://social.technet.microsoft.com/wiki/contents/articles/sql-azure-faq.aspx&lt;/a&gt;&lt;/p&gt;  &lt;h1&gt;Selecting Default UTC Timezone VS Local Timezone&lt;/h1&gt;  &lt;p&gt;Likewise in Windows Azure VM, SQL Azure use UTC as default timezone, regardless which datacenter you choose. Meaning that when you call &lt;strong&gt;&lt;em&gt;getdate()&lt;/em&gt;&lt;/strong&gt; function, it’s going to return you the current date and time according to the server’s timezone.&lt;/p&gt;  &lt;h2&gt;1. Use Default UTC TImezone&lt;/h2&gt;  &lt;p&gt;If you are building a new system with new created database without any existing data, I would consider UTC default timezone is fine.You can store the time as UTC inside your database. Optionally, if you want to ensure your local timezone to be displayed in UI, you can actually control it at the presentation layer.&lt;/p&gt;  &lt;h2&gt;2. Use Local Timezone&lt;/h2&gt;  &lt;p&gt;However, imagine you have existing application with bunch of data (including date time column) using your own local timezone, it will definitely messed up when you move to SQL Azure UTC timezone. The data inconsistency will definitely occur. Then you’ll need to determine either:&lt;/p&gt;  &lt;p&gt;a. to convert your current data to UTC-timezone compliance OR&lt;/p&gt;  &lt;p&gt;b. change your any SQL Objects (including functions, stored procedure, etc.) to match your local date time.&lt;/p&gt;  &lt;h1&gt;It’s a Tricks / Workaround, Not Actually a Solution&lt;/h1&gt;  &lt;p&gt;I’ve tried to look for various solution on the internet, mailing list, or even talk with Microsoft MVPs and Product Group folks but still there’s no single answer that could really satisfy me. Accordingly, I would call the following technique as a trick or workaround, instead of saying a solution. &lt;/p&gt;  &lt;p&gt;Back to the second point discussed at above, converting your current data to UTC-timezone maybe very painful especially you have a lot of date and time data inside your table. In my personal opinion, I would prefer changing SQL Objects. But one very important consideration is to make it flexible and elegant enough, especially when in the future, we would need to convert back to the original state.&lt;/p&gt;  &lt;p&gt;Well, you could definitely Find and Replace any objects inside SQL schema from &lt;strong&gt;getdate()&lt;/strong&gt; to select &lt;strong&gt;dateadd(hh,8,getdate())&lt;/strong&gt;. But of course it’s not going to be a nice way. As such, here’s what I’ve done to make it better. &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://netindonesia.net/blogs/wely/wlEmoticon-winkingsmile_09CCE752.png" /&gt;&lt;/p&gt;  &lt;h2&gt;1. Create a User-Defined Function: GetLocalDate()&lt;/h2&gt;  &lt;div id="codeSnippetWrapper"&gt;   &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;     &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;CREATE&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;FUNCTION&lt;/span&gt; [dbo].[GetLocalDate]&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; ( &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt;     @TimezoneDiffInHour TINYINT = 8 &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt;     &lt;span style="color:#008000;"&gt;-- default set to 8 (GMT +8 = Singapore Timezone) &lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum5"&gt;   5:&lt;/span&gt; )&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum6"&gt;   6:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;RETURNS&lt;/span&gt; DATETIME&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum7"&gt;   7:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;AS&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum8"&gt;   8:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;BEGIN&lt;/span&gt; &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum9"&gt;   9:&lt;/span&gt;     &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum10"&gt;  10:&lt;/span&gt;     &lt;span style="color:#0000ff;"&gt;RETURN&lt;/span&gt; DATEADD(Hh, @TimezoneDiffInHour , GETUTCDATE())  &lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum11"&gt;  11:&lt;/span&gt; END&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;To call this function, you can either use:&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;
  &lt;div style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;
    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum1"&gt;   1:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; dbo.GetLocalDate(&lt;span style="color:#0000ff;"&gt;DEFAULT&lt;/span&gt;)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum2"&gt;   2:&lt;/span&gt; &lt;span style="color:#008000;"&gt;-- OR&lt;/span&gt;&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:white;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum3"&gt;   3:&lt;/span&gt; &lt;span style="color:#0000ff;"&gt;SELECT&lt;/span&gt; dbo.GetLocalDate(8)&lt;/pre&gt;


    &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;"&gt;&lt;span style="color:#606060;" id="lnum4"&gt;   4:&lt;/span&gt; -- 8 denotes Singapore Timezone&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;2. Script Out The Entire Database Schema&lt;/h2&gt;

&lt;p&gt;You would need to find and replace entire SQL objects to identify which of the object that use getdate() function. Before doing so, you’ll of course need to generate the entire database schema. You can do so using the generate script wizard in SQL Server Management Studio.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_554C1509.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_1AB0C99B.png" width="282" height="208" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;

&lt;h2&gt;3. Find and Replace &lt;strong&gt;&lt;em&gt;getdate()&lt;/em&gt;&lt;/strong&gt; with &lt;strong&gt;&lt;em&gt;dbo.GetLocalDate(DEFAULT)&lt;/em&gt;&lt;/strong&gt;&lt;/h2&gt;

&lt;p&gt;The next step is to find which the database object that use getdate() function. Change it to dbo.GetLocalDate(DEFAULT). Execute it by altering the existing object.&lt;/p&gt;

&lt;p&gt;By doing so, I can easily switch to UTC timezone system, just by only alter my GetLocaDate() function with Default value 0 on @TImezoneDiffInHour parameter. I don’t have to regenerate and convert back my objects again.&lt;/p&gt;





&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Frankly speaking, it may not the the best solution, but it just serves as workaround and fits my need. I won’t be surprise if there’s a better solution in the future, hopefully we can natively change the timezone in SQL Azure.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/07/10/managing-timezone-in-sql-azure.aspx&amp;amp;subject=Managing Timezone in SQL Azure" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/07/10/managing-timezone-in-sql-azure.aspx&amp;amp;t=Managing+Timezone+in+SQL+Azure" target="_blank" title="Submit Managing Timezone in SQL Azure to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/07/10/managing-timezone-in-sql-azure.aspx&amp;amp;title=Managing+Timezone+in+SQL+Azure" target="_blank" title="Submit Managing Timezone in SQL Azure to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/07/10/managing-timezone-in-sql-azure.aspx&amp;amp;phase=2" target="_blank" title="Submit Managing Timezone in SQL Azure to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/07/10/managing-timezone-in-sql-azure.aspx&amp;amp;title=Managing+Timezone+in+SQL+Azure" target="_blank" title="Add Managing Timezone in SQL Azure to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192796" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/SQL+Azure/default.aspx">SQL Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>Setting Timezone in Windows Azure</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/06/26/setting-timezone-in-windows-azure.aspx</link><pubDate>Sun, 26 Jun 2011 07:56:49 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192720</guid><dc:creator>Wely</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192720</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192720</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/06/26/setting-timezone-in-windows-azure.aspx#comments</comments><description>&lt;h1&gt;Introduction&lt;/h1&gt;  &lt;p&gt;I strongly believe that in most application we are building, we would need to store date and time. In some application, date and time play very important role, for instance: rental-similar application which could result big impact if date and time are incorrect. In other kinds of application, date and time may not be playing very significant role, for example: some of them is just as informational purpose, when the data is actually inserted in the system.&lt;/p&gt;  &lt;p&gt;Regardless the importance level we discussed above, one essential factor that we need to be considered is the timezone of the system. Whether setting it as local country timezone or other timezone such as UTC / GMT, we would need to determine the it, typically on the server where our application is hosted. &lt;/p&gt;  &lt;p&gt;Thus, when we type “&lt;strong&gt;DateTime.Now&lt;/strong&gt;” inside your code, we should be able to get the correct result.&lt;/p&gt;  &lt;h1&gt;Timezone in Windows Azure&lt;/h1&gt;  &lt;p&gt;No matter which data center we selected in Windows Azure (remember, Windows Azure has 6 data centers world wide: 2 in America, 2 in Europe, and 2 in Asia), by default, Windows Azure VM would provide us &lt;strong&gt;UTC timezone&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;If you are considering migrating your app to Windows Azure, you should ask yourself now what timezone your current application set. If it’s on UTC, you are safe, nothing to worry.&lt;/p&gt;  &lt;p&gt;However, if you are running local time, (for example in Singapore, it’s UTC + 8 hour) and you want to ensure the consistency of your current data, then you will need to be cautious. You have “at least” 2 choice to go:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Use UTC on your app, which mean you would need to convert your current date/time data to UTC. &lt;/li&gt;    &lt;li&gt;To set your preferred timezone in Windows Azure (it could be your local time). &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I bet most of you will decline the first options &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://netindonesia.net/blogs/wely/wlEmoticon-winkingsmile_783483F7.png" /&gt;.&lt;/p&gt;  &lt;h1&gt;How to set timezone in Windows Azure&lt;/h1&gt;  &lt;p&gt;Alright, I assume we go with option 2. To set timezone in Windows Azure, I believe there are actually a few ways &lt;a href="http://blogs.technet.com/b/deploymentguys/archive/2009/06/07/setting-the-time-zone-using-windows-powershell.aspx"&gt;via Powershell&lt;/a&gt; or by modifying registry. Honestly, I’ve not tried these option on Windows Azure, yet I am not pretty sure if it could be applied in Windows Azure. But there’s an option that is definitely working well.&lt;/p&gt;  &lt;p&gt;Okay, there’s actually a command utility called “&lt;strong&gt;tzutil&lt;/strong&gt;” that can be used to change timezone. Please take note that this command is only applicable in Windows 7 and Windows Server 2008 R2.&lt;/p&gt;  &lt;h2&gt;TZUTIL &lt;/h2&gt;  &lt;p&gt;You may try to run it using your command prompt by typing “tzutil /?” for the information.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_775C1E0D.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_6EF848B6.png" width="399" height="262" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To change to your preferred timzeon, simply run the following command.&lt;/p&gt;    &lt;div id="codeSnippetWrapper"&gt;   &lt;pre style="border-bottom-style:none;text-align:left;padding-bottom:0px;line-height:12pt;background-color:#f4f4f4;margin:0em;border-left-style:none;padding-left:0px;width:100%;padding-right:0px;font-family:&amp;#39;Courier New&amp;#39;, courier, monospace;direction:ltr;border-top-style:none;color:black;border-right-style:none;font-size:8pt;overflow:visible;padding-top:0px;" id="codeSnippet"&gt;tzutil /s &amp;quot;Singapore Standard Time&amp;quot; &lt;/pre&gt;
&lt;/div&gt;



&lt;h2&gt;Run it as Start-up task &lt;/h2&gt;

&lt;p&gt;In Windows Azure, we would need to run this command as &lt;strong&gt;start-up task&lt;/strong&gt;, to ensure that when is starting up, the command will be executed first. &lt;/p&gt;

&lt;p&gt;1. To do that, create a empty file (using notepad), and paste the above tzutil command inside, just save the file as &lt;strong&gt;settimezone.cmd&lt;/strong&gt; inside your Windows Azure Project. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_49222253.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin: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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_19F036BC.png" width="244" height="82" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In your project, ensure that this file is included, if not you’ll need to include it manually.&lt;/p&gt;

&lt;p&gt;2. The next step is to set the properties of this file to &lt;strong&gt;Copy Always&lt;/strong&gt;. This is to ensure that the file will be included when project is packaged before deployment.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_50D4EF53.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_337F9789.png" width="310" height="174" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3. Subsequently, we would need to tell Windows Azure to run the start-up task. This could be achieved by adding the following start-up section inside your &lt;strong&gt;ServiceDefinition.csdef&lt;/strong&gt; file.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_78B7EEB2.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_1EAD9F09.png" width="596" height="103" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div id="codeSnippetWrapper"&gt;4. Using Windows Server 2008 &lt;strong&gt;&lt;font size="4"&gt;R2&lt;/font&gt;&lt;/strong&gt; VM Images &lt;/div&gt;

&lt;p&gt;At earlier, I mentioned that the tzutil is only available in &lt;strong&gt;Windows 7 and Windows Server 2008 R2&lt;/strong&gt;. Windows 7 is definitely out of context as there’s no such OS in Windows Azure.&lt;/p&gt;

&lt;p&gt;Windows Azure at this moment allows us to choose either Windows Server 2008 or Windows Server 2008 R2. Both of them are running on 64 bit architecture.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_2B3B4C25.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_2E010118.png" width="308" height="140" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By default (if you are not &lt;a href="http://msdn.microsoft.com/en-us/library/ee758710.aspx#ServiceConfiguration"&gt;modifying anything in your configuration file&lt;/a&gt;), Windows Server 2008 will be selected.&lt;/p&gt;

&lt;p&gt;In order to use tzutil, we would need to set the VM running as Windows Server 2008 R2. To do that, simply navigate to the &lt;strong&gt;ServiceConfiguration.cscfg&lt;/strong&gt; file. In the ServiceConfiguration section, change the &lt;strong&gt;osFamily&lt;/strong&gt; from 1 to 2.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;*1 = Win 2008, while 2 = Win 2008 R2&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We would also need to set the &lt;a href="http://msdn.microsoft.com/en-us/library/ee924680.aspx"&gt;version of the OS&lt;/a&gt;. If you not preferring any OS, you can just simply put * and it will automatically perform update for you when there’s patch / new version of guest OS released. &lt;/p&gt;

&lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_3A8EAE34.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_17EA6FB9.png" width="474" height="182" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;5. Verification&lt;/p&gt;

&lt;p&gt;If everything runs well, you should be getting your preferred timezone as expected.&lt;/p&gt;

&lt;p&gt;Here’s how it’s look like, when I performed remote desktop to my Windows Azure VM.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_75B26432.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_141CA51C.png" width="367" height="376" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;What’s next?&lt;/h1&gt;

&lt;p&gt;In the app level, your are safe since you’ve successfully configure the timezone of your VM. But how about database level? What if there’s any stored procedure / function inside your code, use “getdate()” function?&lt;/p&gt;

&lt;p&gt;I’ll discussed more on this topic in the next post. Stay tune…&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/06/26/setting-timezone-in-windows-azure.aspx&amp;amp;subject=Setting Timezone in Windows Azure" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/06/26/setting-timezone-in-windows-azure.aspx&amp;amp;t=Setting+Timezone+in+Windows+Azure" target="_blank" title="Submit Setting Timezone in Windows Azure to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/06/26/setting-timezone-in-windows-azure.aspx&amp;amp;title=Setting+Timezone+in+Windows+Azure" target="_blank" title="Submit Setting Timezone in Windows Azure to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/06/26/setting-timezone-in-windows-azure.aspx&amp;amp;phase=2" target="_blank" title="Submit Setting Timezone in Windows Azure to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/06/26/setting-timezone-in-windows-azure.aspx&amp;amp;title=Setting+Timezone+in+Windows+Azure" target="_blank" title="Add Setting Timezone in Windows Azure to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192720" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/SQL+Azure/default.aspx">SQL Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>Deploying and Monitoring Windows Azure Application</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/05/26/deploying-and-monitoring-windows-azure-application.aspx</link><pubDate>Thu, 26 May 2011 14:46:51 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192582</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192582</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192582</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/05/26/deploying-and-monitoring-windows-azure-application.aspx#comments</comments><description>&lt;p&gt;Last month, I was invited to talk at Microsoft Cloud Day event in Singapore. &lt;/p&gt;  &lt;p&gt;Here is there summary of the event. &lt;a title="http://innovativesingapore.com/2011/05/ms-cloud-day/" href="http://innovativesingapore.com/2011/05/ms-cloud-day/"&gt;http://innovativesingapore.com/2011/05/ms-cloud-day/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;img title="post1_s" alt="" src="http://innovativesingapore.com/wp-content/uploads/2011/05/post1_s-600x375.jpg" width="294" height="184" /&gt;&amp;#160;&lt;a href="http://innovativesingapore.com/2011/05/ms-cloud-day/post_s/"&gt;&lt;img title="Cloud Day" alt="" src="http://innovativesingapore.com/wp-content/uploads/2011/05/post_S-600x375.jpg" width="288" height="180" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You may also want to see or download my slide &lt;a href="http://www.slideshare.net/innovativesg/cloud-day-deploying-and-monitoring-windows-azure-applications"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;div style="width:425px;" id="__ss_7828741"&gt; &lt;strong style="display:block;margin:12px 0 4px;"&gt;&lt;a href="http://www.slideshare.net/innovativesg/cloud-day-deploying-and-monitoring-windows-azure-applications" title="MS Cloud Day - Deploying and monitoring windows azure applications"&gt;MS Cloud Day - Deploying and monitoring windows azure applications&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/7828741" width="425" height="355" frameborder="0"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px;"&gt; View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/innovativesg"&gt;Microsoft Innovation Centre Singapore&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Or watch it online in &lt;a href="http://channel9.msdn.com/posts/Microsoft-Cloud-Day-in-Singapore-Deploying-and-Monitoring-Windows-Azure-Application"&gt;Channel 9&lt;/a&gt;!&lt;/p&gt; &lt;iframe style="height:300px;width:600px;" src="http://channel9.msdn.com/posts/Microsoft-Cloud-Day-in-Singapore-Deploying-and-Monitoring-Windows-Azure-Application/player?w=512&amp;amp;h=288" frameborder="0"&gt;&lt;/iframe&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/05/26/deploying-and-monitoring-windows-azure-application.aspx&amp;amp;subject=Deploying and Monitoring Windows Azure Application" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/05/26/deploying-and-monitoring-windows-azure-application.aspx&amp;amp;t=Deploying+and+Monitoring+Windows+Azure+Application" target="_blank" title="Submit Deploying and Monitoring Windows Azure Application to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/05/26/deploying-and-monitoring-windows-azure-application.aspx&amp;amp;title=Deploying+and+Monitoring+Windows+Azure+Application" target="_blank" title="Submit Deploying and Monitoring Windows Azure Application to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/05/26/deploying-and-monitoring-windows-azure-application.aspx&amp;amp;phase=2" target="_blank" title="Submit Deploying and Monitoring Windows Azure Application to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/05/26/deploying-and-monitoring-windows-azure-application.aspx&amp;amp;title=Deploying+and+Monitoring+Windows+Azure+Application" target="_blank" title="Add Deploying and Monitoring Windows Azure Application to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192582" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>SQL Azure Diagnostic Tool</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/05/14/sql-azure-diagnostic-tool.aspx</link><pubDate>Sat, 14 May 2011 06:22:34 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192535</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192535</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192535</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/05/14/sql-azure-diagnostic-tool.aspx#comments</comments><description>&lt;p&gt;In certain circumstances it’s very challenging for us to troubleshoot SQL Azure issues since the SQL Azure Server is actually &lt;a href="http://blogs.msdn.com/b/sqlazure/archive/2010/08/11/10048938.aspx"&gt;a virtual server (TDS Endpoint), not an actual physical machine&lt;/a&gt; as current on-premise SQL Server is.&lt;/p&gt;  &lt;p&gt;As &lt;a href="http://blogs.msdn.com/b/psssql/archive/2011/04/25/css-sql-azure-diagnostics-tool-released.aspx"&gt;announced by SQL Azure team&lt;/a&gt;, SQL Azure Diagnostic Tool is a tool that has been developed to shorten the data collection process when troubleshooting SQL Azure issues. This tool is available to be download for free from &lt;a href="http://csssqlazure.blob.core.windows.net/csssqlazuredeploy/publish.htm"&gt;&lt;strong&gt;&lt;font size="5"&gt;here&lt;/font&gt;&lt;/strong&gt;&lt;/a&gt;. &lt;/p&gt;  &lt;h1&gt;Requirement&lt;/h1&gt;  &lt;p&gt;SQL Azure Diagnostic Tools is built on top of .NET 4.0 and SQL Server Reporting, as such some prerequisites are needed:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?familyid=E5AD0459-CBCC-4B4F-97B6-FB17111CF544&amp;amp;displaylang=en"&gt;.NET Framework 4.0 or at least .NET Framework 4.0 Client Profile&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=A941C6B2-64DD-4D03-9CA7-4017A0D164FD"&gt;Report Viewer 2010&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Having done installing the SQL Azure Diagnostic Tool, you will see a light-weight tool as this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_6E06D0BF.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_748A2A82.png" width="488" height="341" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;To use it, simply enter details of your SQL Azure account including:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;server name&lt;/li&gt;    &lt;li&gt;database name&lt;/li&gt;    &lt;li&gt;username&lt;/li&gt;    &lt;li&gt;password&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;And simply click on GO button to begin the diagnostic.&lt;/p&gt;  &lt;p&gt;SQL Azure Diagnostic Tool will provide you a execution time of various kind of queries so that you could analyze it in more detail, what is the root cause your application’s issue.&lt;/p&gt;  &lt;p&gt;It captures:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Top 10 CPU consumption&lt;/li&gt;    &lt;li&gt;Top 10 Duration&lt;/li&gt;    &lt;li&gt;Top 10 Logical I/O&lt;/li&gt;    &lt;li&gt;Top 10 Physical I/O&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_1F821888.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_0F26A0CF.png" width="476" height="262" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I believe this is still an very early stage of tool and will be keep improving and improving. We would hope that in the next version of update, we can see more comprehensive analysis.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/05/14/sql-azure-diagnostic-tool.aspx&amp;amp;subject=SQL Azure Diagnostic Tool" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/05/14/sql-azure-diagnostic-tool.aspx&amp;amp;t=SQL+Azure+Diagnostic+Tool" target="_blank" title="Submit SQL Azure Diagnostic Tool to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/05/14/sql-azure-diagnostic-tool.aspx&amp;amp;title=SQL+Azure+Diagnostic+Tool" target="_blank" title="Submit SQL Azure Diagnostic Tool to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/05/14/sql-azure-diagnostic-tool.aspx&amp;amp;phase=2" target="_blank" title="Submit SQL Azure Diagnostic Tool to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/05/14/sql-azure-diagnostic-tool.aspx&amp;amp;title=SQL+Azure+Diagnostic+Tool" target="_blank" title="Add SQL Azure Diagnostic Tool to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192535" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/SQL+Azure/default.aspx">SQL Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>Combining Web and Worker Role by Utilizing Worker Role Concept</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/04/25/combining-web-and-worker-role-by-utilizing-worker-role-concept.aspx</link><pubDate>Mon, 25 Apr 2011 12:51:11 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192466</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192466</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192466</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/04/25/combining-web-and-worker-role-by-utilizing-worker-role-concept.aspx#comments</comments><description>&lt;p&gt;I am very much excited to write this post as I believe not many people realized about it and I can tell that it would be very helpful in many scenario. &lt;a href="http://blog.smarx.com/"&gt;Steve&lt;/a&gt; actually mentioned this in MIX 2010 in the session entitled &lt;a href="http://channel9.msdn.com/events/MIX/MIX11/SVC06"&gt;10 Things You Didn’t Know You Could Do with Windows Azure&lt;/a&gt;.&lt;/p&gt;  &lt;h1&gt;Always Start with an Introduction&lt;/h1&gt;  &lt;p&gt;Let refresh our mind that, Windows Azure Service Roles (Web Role and Worker Role) are is actually a provisioned VM, runs on Windows Azure. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;The web role provides out-of-the-box IIS 7 environment which allows us to host our application. &lt;/li&gt;    &lt;li&gt;While worker role is an “almost” empty VM which enables us to do whatever we like to do, specifically in the while loop within Run method. &lt;/li&gt; &lt;/ul&gt;  &lt;blockquote&gt;   &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;public override void &lt;/span&gt;Run()
{
    &lt;span style="color:green;"&gt;// This is a sample worker implementation. Replace with your logic.
    &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Trace&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;WorkerRole1 entry point called&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;Information&amp;quot;&lt;/span&gt;);

    &lt;span style="color:blue;"&gt;while &lt;/span&gt;(&lt;span style="color:blue;"&gt;true&lt;/span&gt;)
    {
        &lt;span style="color:green;"&gt;//put our code and logic here...

        &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Thread&lt;/span&gt;.Sleep(10000);
        &lt;span style="color:#2b91af;"&gt;Trace&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Working&amp;quot;&lt;/span&gt;, &lt;span style="color:#a31515;"&gt;&amp;quot;Information&amp;quot;&lt;/span&gt;);
    }
} &lt;/pre&gt;
&lt;/blockquote&gt;

&lt;h1&gt;What We Can Do with Worker Role &lt;/h1&gt;

&lt;p&gt;Worker role is indeed very flexible as we can do many things. Some common pattern that we can utilize worker roles are:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Performing background or batch processing &lt;/li&gt;

  &lt;li&gt;Hosting non-http service hosting (example: WCF) &lt;/li&gt;

  &lt;li&gt;Running other web / application server (eg: &lt;a href="http://blog.smarx.com/posts/my-blog-is-now-running-on-ruby-in-windows-azure"&gt;Ruby&lt;/a&gt;, &lt;a href="http://www.microsoftpdc.com/2009/SVC50"&gt;Java&lt;/a&gt;, &lt;a href="http://www.google.com/url?sa=t&amp;amp;source=web&amp;amp;cd=1&amp;amp;sqi=2&amp;amp;ved=0CBQQFjAA&amp;amp;url=http%3A%2F%2Fblog.smarx.com%2Fposts%2Fusing-other-web-servers-on-windows-azure&amp;amp;ei=bOCvTYvIMMrKrAfz58WTCQ&amp;amp;usg=AFQjCNHzKLwK4S_3AX4X14CCC8PsVX1dgw&amp;amp;sig2=AaWVxFH1w_9R4Np7axAsrw"&gt;Mongoose&lt;/a&gt;) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For those compute-intensive task, it’s definitely fine to use spend dedicated worker role to perform the task. However, in many scenario, we only need to perform simple and non-compute intensive task. These could be:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Remote Unused Session when &lt;a href="http://blogs.msdn.com/b/sqlazure/archive/2010/08/04/10046103.aspx"&gt;Using SQL Azure for Session State&lt;/a&gt;. &lt;/li&gt;

  &lt;li&gt;Doing little background processing job. &lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;Cost effective&lt;/h1&gt;

&lt;p&gt;It would be somehow too wasteful to create 2 instance of worker role just to run those task. (Remember in &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=72193dd2-eeaa-4054-93f6-f6b725cf76af&amp;amp;displaylang=en"&gt;compute SLA&lt;/a&gt;, you are required to have at least 2 instance to meet the 99.95% uptime).&lt;/p&gt;

&lt;p&gt;Considering the cost for small size VM, it could simply cost you about:&lt;/p&gt;

&lt;p align="center"&gt;&lt;strong&gt;$ 0.12 X 24 hours X 30.5 days / month X 2 instance = &lt;font color="#ff0000" size="3"&gt;USD 175.68&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p align="left"&gt;So, how can we do to save those cost?&lt;/p&gt;

&lt;h1 align="left"&gt;Combining Web and Worker Role&lt;/h1&gt;

&lt;p align="left"&gt;I refer to the introduction that we’ve discussed above to refresh your mind on Web and Worker Role. For both Web and Worker Role, we generally have either&lt;strong&gt; WebRole.cs&lt;/strong&gt; and &lt;strong&gt;WorkerRole.cs&lt;/strong&gt; file within the project. The class in these two files inherit from &lt;font color="#ff0000"&gt;RoleEntryPoint&lt;/font&gt;, which we can override some methods.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;public abstract class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;RoleEntryPoint
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;protected &lt;/span&gt;RoleEntryPoint();

    &lt;span style="color:blue;"&gt;public virtual bool &lt;/span&gt;OnStart();

    &lt;span style="color:blue;"&gt;public virtual void &lt;/span&gt;OnStop();

    &lt;span style="color:blue;"&gt;public virtual void &lt;/span&gt;Run();
}&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p align="left"&gt;These methods are meant to be overridden when either on the role is starting (OnStart), the role is stopping (OnStop), and the role has done OnStart and ready to run (Run). This is pretty interesting since most people don’t realize that the entire role instance lifecycle is available in web roles just as it is in worker roles. &lt;/p&gt;

&lt;p align="left"&gt;The idea is actually override the &lt;strong&gt;&lt;font color="#ff0000"&gt;Run method&lt;/font&gt;&lt;/strong&gt; in the WebRole, which generally provided in the &lt;strong&gt;WorkerRole.cs&lt;/strong&gt;, but not in the &lt;strong&gt;WebRole.cs&lt;/strong&gt;. However, you could simply override it, and would become something like this:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;public class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebRole &lt;/span&gt;: &lt;span style="color:#2b91af;"&gt;RoleEntryPoint
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;public override void &lt;/span&gt;Run()
    { 
        &lt;span style="color:blue;"&gt;while &lt;/span&gt;(&lt;span style="color:blue;"&gt;true&lt;/span&gt;)
        {  
            &lt;span style="color:blue;"&gt;var &lt;/span&gt;account = &lt;span style="color:#2b91af;"&gt;CloudStorageAccount&lt;/span&gt;.Parse(&lt;span style="color:#2b91af;"&gt;RoleEnvironment&lt;/span&gt;.GetConfigurationSettingValue(&lt;span style="color:#a31515;"&gt;&amp;quot;DataConnectionString&amp;quot;&lt;/span&gt;));
            &lt;span style="color:blue;"&gt;var &lt;/span&gt;context = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;TaskDataServiceContext&lt;/span&gt;(account.TableEndpoint.ToString(), account.Credentials);

            context.AddTask(&lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Random&lt;/span&gt;().Next(100).ToString());
            System.Threading.&lt;span style="color:#2b91af;"&gt;Thread&lt;/span&gt;.Sleep(3000);
        }
        
    }
    &lt;span style="color:blue;"&gt;public override bool &lt;/span&gt;OnStart()
    { 
        &lt;span style="color:blue;"&gt;return base&lt;/span&gt;.OnStart();
    }
}&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p align="left"&gt;In the example above, I override the Run method to perform a simple task, just to add a record in the table storage on every 3 seconds. Of course, you can add anything you want, typically just like what you’ve written in the worker role. &lt;/p&gt;

&lt;p align="left"&gt;What’s actually happening on the Cloud is it will create a separate executable process that keep perform the Run method, while the IIS is still listening to the web traffic. &lt;/p&gt;

&lt;h1 align="left"&gt;Is it an ideal solution?&lt;/h1&gt;

&lt;p align="left"&gt;Well, isn’t it an ideal solution? Well, the answer is pretty much depends! &lt;/p&gt;

&lt;p align="left"&gt;If you are sure that your batch-processing jobs (inside Run) method won’t consume too much VM’s resource (e.g.: CPU / memory) AND you don’t mind to share the web resource with it, then that’s fine!&lt;/p&gt;

&lt;p align="left"&gt;However, if you want to have separate VM that perform the particular task without affecting the web role, then you are encouraged to go with WorkerRole.&lt;/p&gt;

&lt;p align="left"&gt;That’s all for this post. I hope it is useful to you!&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/04/25/combining-web-and-worker-role-by-utilizing-worker-role-concept.aspx&amp;amp;subject=Combining Web and Worker Role by Utilizing Worker Role Concept" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/25/combining-web-and-worker-role-by-utilizing-worker-role-concept.aspx&amp;amp;t=Combining+Web+and+Worker+Role+by+Utilizing+Worker+Role+Concept" target="_blank" title="Submit Combining Web and Worker Role by Utilizing Worker Role Concept to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/25/combining-web-and-worker-role-by-utilizing-worker-role-concept.aspx&amp;amp;title=Combining+Web+and+Worker+Role+by+Utilizing+Worker+Role+Concept" target="_blank" title="Submit Combining Web and Worker Role by Utilizing Worker Role Concept to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/25/combining-web-and-worker-role-by-utilizing-worker-role-concept.aspx&amp;amp;phase=2" target="_blank" title="Submit Combining Web and Worker Role by Utilizing Worker Role Concept to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/25/combining-web-and-worker-role-by-utilizing-worker-role-concept.aspx&amp;amp;title=Combining+Web+and+Worker+Role+by+Utilizing+Worker+Role+Concept" target="_blank" title="Add Combining Web and Worker Role by Utilizing Worker Role Concept to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192466" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>Establishing Remote Desktop to Windows Azure Instance – Part 2</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/04/16/establishing-remote-desktop-to-windows-azure-instance-part-2.aspx</link><pubDate>Sat, 16 Apr 2011 13:23:07 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192433</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192433</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192433</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/04/16/establishing-remote-desktop-to-windows-azure-instance-part-2.aspx#comments</comments><description>&lt;h2&gt;Part 2 - Uploading Certificate on Windows Azure Developer Platform&lt;/h2&gt;  &lt;p&gt;This is the second part of this blog post series about &lt;strong&gt;Establishing Remote Desktop to Windows Azure&lt;/strong&gt;. You can check out the first part &lt;a href="http://netindonesia.net/blogs/wely/archive/2011/04/11/establishing-remote-desktop-to-windows-azure-instance-part-1.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;So far we’ve just only do the work on the development environment side. There’re still something needs to be done on Windows Azure Portal.&lt;/p&gt;  &lt;h1&gt;Export Your Certificate&lt;/h1&gt;  &lt;p&gt;1. The first step is to export the physical certificate file since we need to upload it to Windows Azure Portal.&lt;/p&gt;  &lt;p&gt;There’re actually few ways to export certificate file. The most common way is using MMC. Since we use Visual Studio to configure our remote desktop, we can utilize the feature as well. I refer to &lt;a href="http://netindonesia.net/blogs/wely/archive/2011/04/11/establishing-remote-desktop-to-windows-azure-instance-part-1.aspx"&gt;step 4 of the first&lt;/a&gt; part of the post, where you’ve just create a certificate using Visual Studio wizard. With the preferred certificate selected, click on &lt;strong&gt;View&lt;/strong&gt; to see the detail of your certificate. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_5B7C9616.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_6C341AF7.png" width="307" height="269" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;2. Click on &lt;strong&gt;Details&lt;/strong&gt; tab of the Certificate dialog box, and then click on &lt;strong&gt;Copy to File&lt;/strong&gt; button. It should bring you to a &lt;strong&gt;Certificate Export Wizard&lt;/strong&gt;.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_4923A987.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_000D61F4.png" width="353" height="245" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. Clicking on Next button will bring you the next step where you can select whether to export private or public key. On the first step, select “&lt;strong&gt;No, do not export private key&lt;/strong&gt;” first, keep following the wizard and eventually it will prompt you to the last page where you need to name the physical file&lt;strong&gt; [Name].CER&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_57EA8D07.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_5B3BFEE2.png" width="282" height="252" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;4. Repeat from the step 1 to 3 but this time, select “&lt;strong&gt;Yes, export private key&lt;/strong&gt;” which eventually will require you to define your password and export it to another &lt;strong&gt;[Name].pfx&lt;/strong&gt; file. &lt;/p&gt;  &lt;h1&gt;Upload the certificate to Windows Azure Portal&lt;/h1&gt;  &lt;p&gt;Since we are done exporting both private and public key of the certificate, the next step is to upload it to Windows Azure. &lt;/p&gt;  &lt;p&gt;5. Log-in to your &lt;strong&gt;Windows Azure Developer Portal&lt;/strong&gt; (https//windows.azure.com). I assume that you’ve your subscription ready with your live id.&lt;/p&gt;  &lt;p&gt;6. Click on the “&lt;strong&gt;Hosted Service, Storage Account, and CDN&lt;/strong&gt;” on the left-hand side menu. On the upper part, click on &lt;strong&gt;Management Certificate&lt;/strong&gt;. If you previously have uploaded the certificate, obviously you will see some of them. &lt;/p&gt;  &lt;p&gt;7. Next step is to click on &lt;strong&gt;Add Certificate&lt;/strong&gt; button and a modal pop up dialog will prompt you to select your subscription as well as upload your .CER certificate.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_71AE9D69.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_672DC949.png" width="472" height="293" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As instructed, go ahead to select your subscription and browse your .CER file where you’ve exported in step 3. It may take a few second to upload your certificate. You’ve successfully uploaded your public key of the certificate.&lt;/p&gt;  &lt;p&gt;8. Now, you will also need to upload the private key. To do that, click on &lt;strong&gt;Hosted Service&lt;/strong&gt; upper menu. Click on &lt;strong&gt;New Hosted Service&lt;/strong&gt; button on upper menu and you will see &lt;strong&gt;Create a new Hosted Service&lt;/strong&gt; dialog show up. There are a few section which you need to enter here.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_2AB5549F.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_3355AD2B.png" width="295" height="348" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;a. Enter the name of your service and well as the URL prefix. Please note that the URL prefix must be globally unique. &lt;/p&gt;  &lt;p&gt;b. Subsequently, select your region / affinity group, where do you want to host your service. &lt;/p&gt;  &lt;p&gt;c. The next one is about your deployment option, whether you want to deploy it immediately as staging or production environment or do not deploy it first. I assume that you deploy it as production environment. &lt;/p&gt;  &lt;p&gt;d. You can give your deployment name or label on it. People sometimes like to use either version number or current time as the label. &lt;/p&gt;    &lt;p&gt;e. Now it’s your time to browse your package as well as configuration where you’ve created on the &lt;a href="http://netindonesia.net/blogs/wely/archive/2011/04/11/establishing-remote-desktop-to-windows-azure-instance-part-1.aspx"&gt;step 9 in previous post&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;f. Finally, you need to add certificate again, but this time it’s private key certificate that you’ve specified in step 4 above.&lt;/p&gt;  &lt;p&gt;Click OK when you are done with that. In the case where an warning occur, stating that you’ve only 1 instance, you can consider whether to increase your instance count to meet the 99.95% Microsoft SLA. If you are doing this only for development or testing purpose, I believe 1 instance doesn’t really matter. You can click on OK to continue.&lt;/p&gt;  &lt;p&gt;8. It will definitely take some time to upload the package as well as wait for the fabric controller to allocate a hosted service place for you. You may see that the status will change slowly from “uploading”, “initializing”, “busy”, and eventually “ready”, if everything goes well.&lt;/p&gt;  &lt;h1&gt;Remote Desktop to Your Windows Azure Instance.&lt;/h1&gt;  &lt;p&gt;9. Assuming that your instance has been successfully uploaded. Now you can remote desktop by selecting the instance of your hosted service. And click on the Connect button in upper menu.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_78F81B88.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_31EEACF1.png" width="441" height="253" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This will prompt you to download an .rdp file.&lt;/p&gt;  &lt;p&gt;10. Open up the .rdp file and you will see a verification are you want to connect despite these certificate error. Just simply ignore it and click on Yes. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_5C3A9274.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_3F04C49D.png" width="269" height="270" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It will then prompt your for username and password that you’ve specified in Visual Studio when configuring the remote desktop. But, here’s little trick here. Just just simply click on your name since it will use your computer as domain. Instead, use “\” (backslash) and follow-up with your username. For example: “\wely”. And of course you’ll need to enter your password as well.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_73757118.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_01180754.png" width="300" height="257" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;11. If it goes well, you’ll see that you’ve successfully remote desktop to you Windows Azure instance. Bingo!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_0F465A77.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_69ACB748.png" width="339" height="257" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;Alright, that’s all for this post. Hope it helps! See you on another blog post.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/04/16/establishing-remote-desktop-to-windows-azure-instance-part-2.aspx&amp;amp;subject=Establishing Remote Desktop to Windows Azure Instance – Part 2" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/16/establishing-remote-desktop-to-windows-azure-instance-part-2.aspx&amp;amp;t=Establishing+Remote+Desktop+to+Windows+Azure+Instance+%e2%80%93+Part+2" target="_blank" title="Submit Establishing Remote Desktop to Windows Azure Instance – Part 2 to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/16/establishing-remote-desktop-to-windows-azure-instance-part-2.aspx&amp;amp;title=Establishing+Remote+Desktop+to+Windows+Azure+Instance+%e2%80%93+Part+2" target="_blank" title="Submit Establishing Remote Desktop to Windows Azure Instance – Part 2 to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/16/establishing-remote-desktop-to-windows-azure-instance-part-2.aspx&amp;amp;phase=2" target="_blank" title="Submit Establishing Remote Desktop to Windows Azure Instance – Part 2 to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/16/establishing-remote-desktop-to-windows-azure-instance-part-2.aspx&amp;amp;title=Establishing+Remote+Desktop+to+Windows+Azure+Instance+%e2%80%93+Part+2" target="_blank" title="Add Establishing Remote Desktop to Windows Azure Instance – Part 2 to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192433" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>Establishing Remote Desktop to Windows Azure Instance – Part 1</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/04/11/establishing-remote-desktop-to-windows-azure-instance-part-1.aspx</link><pubDate>Mon, 11 Apr 2011 14:08:58 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192410</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192410</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192410</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/04/11/establishing-remote-desktop-to-windows-azure-instance-part-1.aspx#comments</comments><description>&lt;h1&gt;Introduction&lt;/h1&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_035B454C.png"&gt;&lt;img style="background-image:none;border-right-width:0px;margin:0px 10px 0px 0px;padding-left:0px;padding-right:0px;display:inline;float:left;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" align="left" src="http://netindonesia.net/blogs/wely/image_thumb_77758CB2.png" width="205" height="152" /&gt;&lt;/a&gt;As a Platform-As-a-Service (PAAS) provider, Windows Azure provides provisioned VM environment for customer. It’s no longer our responsibility to take care of platform related matters. This also includes applying new patch on the operating system. Also the instance is actually sited behind the load-balancer. &lt;/p&gt;  &lt;p&gt;We would be only focus on taking care of our application that is hosted in Windows Azure. &lt;/p&gt;  &lt;p&gt;The application that is hosted on Windows Azure is precisely hosted on the VM instance. Those VM instances are actually provisioned as Windows Server 2008 images based on the VM size that we specify in ServiceDefinition file (small, medium, large, etc.). &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h1&gt;Troubleshooting on Windows Azure&lt;/h1&gt;  &lt;p&gt;In many scenarios, especially troubleshooting an issue, we would need to understand the actual problem in the environment. Traditionally, we’ve got a well-known tools and protocol which has great ability to perform remote desktop to the particular machine. Before &lt;a href="http://www.microsoft.com/windowsazure/newinsdk1.3/"&gt;Windows Azure SDK 1.3&lt;/a&gt;, it’s just too hard to troubleshoot Windows Azure Application, really it was very painful. With the released of Windows Azure SDK 1.3 (around end of 2010), we are now be able to perform RDP to particular Windows Azure instance. &lt;/p&gt;  &lt;h1&gt;How It Works&lt;/h1&gt;  &lt;p&gt;The idea of RDP-ing to Windows Azure instance is to utilize RemoteAccess plugin in the Windows Azure project. As mentioned earlier the VMs on Windows Azure are actually sited behind the load-balancer, which mean when we perform RDP, we are not directly hitting the VM. In fact, it uses port 3389 to pass our request to the VM.&lt;/p&gt;  &lt;p&gt;Alright, let’s more to the more hands-on stuff. There are 2 major set of tasks to be done. Firstly, we use Visual Studio to configure the RemoteDesktop settings. Secondly, we need to upload a certificate on Windows Azure Platform.&lt;/p&gt;  &lt;h2&gt;Part 1. Some settings on Visual Studio&lt;/h2&gt;  &lt;p&gt;0. I assume that you are ready to go with your application.&lt;/p&gt;  &lt;p&gt;1. Right click on your &lt;strong&gt;Windows Azure Project&lt;/strong&gt;, and select &lt;strong&gt;Publish&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_0C375F66.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_2351F270.png" width="225" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2. You will see a &lt;strong&gt;Deploy Windows Azure&lt;/strong&gt; &lt;strong&gt;project&lt;/strong&gt; dialog box show up.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_0989CE0F.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_28E0847F.png" width="244" height="229" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Regardless you want to deploy it now or later, click on the &lt;strong&gt;Configure Remote Desktop connections&lt;/strong&gt;… link.&lt;/p&gt;  &lt;p&gt;3. You will see another dialog box comes up, the &lt;strong&gt;Remote Desktop Configuration&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Check the &lt;strong&gt;Enable connection for all roles&lt;/strong&gt; checkbox. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_2ABCEC14.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_5DE8FFB0.png" width="241" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;4. The next step is to select certificate. Essentially, we would also need to specify username and password that will be used when remote-in the instance. To ensure that our credential (username and password) to be encrypted properly, it uses certificate to secure communication between Visual Studio environment and the Windows Azure instance. The certificate itself could be self-signed by our own without having to purchase it to certificate provider.&lt;/p&gt;  &lt;p&gt;Click on the dropdown list to select available certificate or create a new one. To create a new one, you can either make use of “&lt;strong&gt;makecert tools&lt;/strong&gt;” or just simply use the wizard provided there.&lt;/p&gt;  &lt;p&gt;In this example, I assume we have available certificate installed.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_0ACE3CBF.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_0E8BE18F.png" width="244" height="241" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5. Subsequently, we’ll need to enter username, password. We would also need to specify the account expiration that to avoid inappropriate usage, just in case the credential is lost.&lt;/p&gt;  &lt;p&gt;Click &lt;strong&gt;OK&lt;/strong&gt; on &lt;strong&gt;Remote Desktop Configuration&lt;/strong&gt; dialog.&lt;/p&gt;  &lt;p&gt;6. Just click on &lt;strong&gt;Cancel&lt;/strong&gt;. Do not click-on &lt;strong&gt;OK&lt;/strong&gt; for the &lt;strong&gt;Deploy Windows Azure&lt;/strong&gt; project dialog.&lt;/p&gt;  &lt;p&gt;7. If you open &lt;strong&gt;ServiceDefinition.csdef&lt;/strong&gt; and &lt;strong&gt;ServiceConfiguration.cscfg&lt;/strong&gt; file, you will notice that there’re some new stuff added automatically.&lt;/p&gt;  &lt;p&gt;In &lt;strong&gt;ServiceDefinition.csdef&lt;/strong&gt; file it adds 1 or 2 plugin module? Why it’s 1 or 2?&lt;/p&gt;  &lt;p&gt;At the moment you have more than one role in your service, it will add &lt;strong&gt;RemoteAccess&lt;/strong&gt; plugin to the all role, but add &lt;strong&gt;RemoteForwarder&lt;/strong&gt; to only one of the role. It doesn’t really matter the RemoteForwarder will be added to. The function of the RemoteForwarder is actually forward the traffic to other role. It’s anyway transparent for us if we use Visual Studio to enable the remote desktop.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_038788CE.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_0E4C1C4B.png" width="441" height="332" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_5789EBA0.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_4BF0DC09.png" width="479" height="283" /&gt;&lt;/a&gt;     &lt;br /&gt;Still can’t understand? Forget it, it’s actually transparent for us anyway &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://netindonesia.net/blogs/wely/wlEmoticon-winkingsmile_139D5935.png" /&gt;&lt;/p&gt;  &lt;p&gt;8. How about, check out the &lt;strong&gt;ServiceConfiguration.cscfg&lt;/strong&gt; file.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_2F12356B.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_5D2BE58B.png" width="474" height="308" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It’s basically key-value pair of our setting that we’ve done in the wizard.&lt;/p&gt;  &lt;p&gt;9. The final step of this first part is to package and publish this service. On the Deploy Windows Azure project dialog, simply click on OK button and in a while you will see a Windows Explorer opened for you with 2 files created, namely the &lt;strong&gt;[Your-Service].cspkg&lt;/strong&gt; file and &lt;strong&gt;[Your-Service].cscfg&lt;/strong&gt; file. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_52B5FF99.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_76227E31.png" width="309" height="291" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font size="3"&gt;&lt;strong&gt;Time out here…&lt;/strong&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Take a break here. I’ll continue this on the next post again. Stay tuned.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/04/11/establishing-remote-desktop-to-windows-azure-instance-part-1.aspx&amp;amp;subject=Establishing Remote Desktop to Windows Azure Instance – Part 1" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/11/establishing-remote-desktop-to-windows-azure-instance-part-1.aspx&amp;amp;t=Establishing+Remote+Desktop+to+Windows+Azure+Instance+%e2%80%93+Part+1" target="_blank" title="Submit Establishing Remote Desktop to Windows Azure Instance – Part 1 to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/11/establishing-remote-desktop-to-windows-azure-instance-part-1.aspx&amp;amp;title=Establishing+Remote+Desktop+to+Windows+Azure+Instance+%e2%80%93+Part+1" target="_blank" title="Submit Establishing Remote Desktop to Windows Azure Instance – Part 1 to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/11/establishing-remote-desktop-to-windows-azure-instance-part-1.aspx&amp;amp;phase=2" target="_blank" title="Submit Establishing Remote Desktop to Windows Azure Instance – Part 1 to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/11/establishing-remote-desktop-to-windows-azure-instance-part-1.aspx&amp;amp;title=Establishing+Remote+Desktop+to+Windows+Azure+Instance+%e2%80%93+Part+1" target="_blank" title="Add Establishing Remote Desktop to Windows Azure Instance – Part 1 to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192410" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>Windows Azure User Group Singapore 2nd UG Meeting</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/04/02/windows-azure-user-group-singapore-2nd-ug-meeting.aspx</link><pubDate>Sat, 02 Apr 2011 05:20:56 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192354</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192354</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192354</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/04/02/windows-azure-user-group-singapore-2nd-ug-meeting.aspx#comments</comments><description>&lt;p&gt;As you can seen from the invitation &lt;a href="http://www.facebook.com/event.php?eid=202944033063181"&gt;here&lt;/a&gt;, last Wednesday was our second meeting of Windows Azure User Group Singapore. The evening was attended by 18 participants.&lt;/p&gt;  &lt;p&gt;Here’s short summary for the event.&lt;/p&gt;  &lt;h2&gt;First Session – Best practices for designing &amp;amp; developing applications for Azure&lt;/h2&gt;  &lt;p&gt;The first session was delivered by Rishi Agrawal, Technical Sales Specialist for Windows Azure, from Microsoft. Rishi discussed the various best practices in designing and developing Windows Azure applications. He started with basic concept of Windows Azure including the service roles (web and worker). He later explained some storage option in the cloud (SQL Azure VS Windows Azure Storage) and discussed each of the appropriate choice in various condition.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/DSCN1342_5CF51239.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="DSCN1342" border="0" alt="DSCN1342" src="http://netindonesia.net/blogs/wely/DSCN1342_thumb_6D94494F.jpg" width="244" height="184" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://netindonesia.net/blogs/wely/DSCN1343_7C0F4574.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="DSCN1343" border="0" alt="DSCN1343" src="http://netindonesia.net/blogs/wely/DSCN1343_thumb_5FFDC4E2.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Second Session – Advanced Topics on Windows Azure Service Roles&lt;/h2&gt;  &lt;p&gt;Frankly speaking, I was under unfit condition. In fact, I was on sick leave that day (you can see I was wearing a thick sweater). However, I still need to make it no matter what, that’s commitment &lt;img style="border-bottom-style:none;border-left-style:none;border-top-style:none;border-right-style:none;" class="wlEmoticon wlEmoticon-winkingsmile" alt="Winking smile" src="http://netindonesia.net/blogs/wely/wlEmoticon-winkingsmile_09FDC30B.png" /&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_656E1D7B.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_3503AAD3.png" width="244" height="184" /&gt;&lt;/a&gt;&amp;#160;&lt;a href="http://netindonesia.net/blogs/wely/DSCN1350_5D063425.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="DSCN1350" border="0" alt="DSCN1350" src="http://netindonesia.net/blogs/wely/DSCN1350_thumb_49D4E1AC.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I talked about 4 sections namely Windows Azure Service Roles, Advanced Topic on those roles, setting up the remote desktop, and finally admin-mode and startup task. Plus an bonus of answering a common question: “can we install something on Windows Azure?”.&lt;/p&gt;  &lt;p&gt;I support the presentation with a practical demo by showing a sample application called CloudUnRar. Although this is not a sophisticated application, it is used to demo the installation of &lt;a href="http://www.rarlab.com/"&gt;WinRAR&lt;/a&gt; on Windows Azure using Windows Azure Start-up Task.&lt;/p&gt;  &lt;p&gt;For those who are interested in the topic, feel free to download my presentation slide and demo &lt;a href="http://cid-65cab324bf3c89cf.office.live.com/browse.aspx/My%20Talks/Advanced%20Topic%20on%20Windows%20Azure%20Service%20Roles?uc=2"&gt;here&lt;/a&gt;.&lt;/p&gt;        &lt;p&gt;Hope this helps! See you on the next UG meeting.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/04/02/windows-azure-user-group-singapore-2nd-ug-meeting.aspx&amp;amp;subject=Windows Azure User Group Singapore 2nd UG Meeting" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/02/windows-azure-user-group-singapore-2nd-ug-meeting.aspx&amp;amp;t=Windows+Azure+User+Group+Singapore+2nd+UG+Meeting" target="_blank" title="Submit Windows Azure User Group Singapore 2nd UG Meeting to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/02/windows-azure-user-group-singapore-2nd-ug-meeting.aspx&amp;amp;title=Windows+Azure+User+Group+Singapore+2nd+UG+Meeting" target="_blank" title="Submit Windows Azure User Group Singapore 2nd UG Meeting to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/02/windows-azure-user-group-singapore-2nd-ug-meeting.aspx&amp;amp;phase=2" target="_blank" title="Submit Windows Azure User Group Singapore 2nd UG Meeting to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/04/02/windows-azure-user-group-singapore-2nd-ug-meeting.aspx&amp;amp;title=Windows+Azure+User+Group+Singapore+2nd+UG+Meeting" target="_blank" title="Add Windows Azure User Group Singapore 2nd UG Meeting to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192354" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>Windows Azure SDK 1.4 Has Been Released</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/03/10/windows-azure-sdk-1-4-has-been-released.aspx</link><pubDate>Thu, 10 Mar 2011 05:12:48 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192216</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192216</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192216</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/03/10/windows-azure-sdk-1-4-has-been-released.aspx#comments</comments><description>&lt;p&gt;I am pleased to inform that &lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1089b6-4050-4307-86c4-9dadaa5ed018&amp;amp;displaylang=en"&gt;Windows Azure SDK 1.4&lt;/a&gt; has been released as could be seen from Windows Azure Team Blog &lt;a href="http://blogs.msdn.com/b/windowsazure/archive/2011/03/09/now-available-updated-windows-azure-sdk-and-windows-azure-management-portal.aspx"&gt;announcement&lt;/a&gt;. &lt;/p&gt;  &lt;h1&gt;What’s new in SDK 1.4&lt;/h1&gt;  &lt;p&gt;Well, I can say that there’re not many changes as the update from &lt;a href="http://netindonesia.net/blogs/wely/archive/2010/11/30/the-big-release-of-windows-azure-sdk-1-3.aspx"&gt;SDK 1.2 to 1.3&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Windows Azure SDK 1.4 Refresh is primarily a stability release addressing the below issues. &lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Resolved an issue that caused full IIS fail when the web.config file was set to read-only. &lt;/li&gt;    &lt;li&gt;Resolved an issue that caused full IIS packages to double in size when packaged. &lt;/li&gt;    &lt;li&gt;Resolved an issue that caused a full IIS web role to recycle when the diagnostics store was full. &lt;/li&gt;    &lt;li&gt;Resolved an IIS log file permission Issue which caused diagnostics to be unable to transfer IIS logs to Windows Azure storage. &lt;/li&gt;    &lt;li&gt;Resolved an issue preventing csupload to run on x86 platforms. &lt;/li&gt;    &lt;li&gt;User errors in the web.config are now more easily diagnosable. &lt;/li&gt;    &lt;li&gt;Enhancements to improve the stability and robustness of Remote Desktop to Windows Azure Roles.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;This finally solves the “CommunicationObjectFaultedException was unhandled” that I mentioned &lt;a href="http://netindonesia.net/blogs/wely/archive/2011/02/28/communicationobjectfaultedexception-was-unhandled-error-when-working-on-windows-azure-project-with-source-safe.aspx"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;h1&gt;New Features&lt;/h1&gt;  &lt;p&gt;Along with the new SDK, there’re also some new features enabled:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Windows Azure Connect:      &lt;ul&gt;       &lt;li&gt;Multiple administrator support on the Admin UI. &lt;/li&gt;        &lt;li&gt;An updated Client UI with improved status notifications and diagnostic capabilities. &lt;/li&gt;        &lt;li&gt;The ability to install the Windows Azure Connect client on non-English versions of Windows.&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Windows Azure CDN:      &lt;ul&gt;       &lt;li&gt;Windows Azure CDN for Hosted Services: Developers can now use the Windows Azure Web and VM roles as&amp;quot;origin&amp;quot; for objects to be delivered at scale via the Windows Azure CDN. Static content in a website can be automatically edge-cached at locations through out the United States, Europe, Asia, Australia and South America to provide maximum bandwidth and lower latency delivery of website content to users. &lt;/li&gt;        &lt;li&gt;Serve secure content from the Windows Azure CDN: A new checkbox option in the Windows Azure management portal enables delivery of secure content via HTTPS through any existing Windows Azure CDN account. &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;    &lt;p&gt;Grab and download it &lt;font size="5"&gt;&lt;a href="http://www.microsoft.com/downloads/en/details.aspx?FamilyID=7a1089b6-4050-4307-86c4-9dadaa5ed018&amp;amp;displaylang=en"&gt;here&lt;/a&gt;&lt;/font&gt;.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/03/10/windows-azure-sdk-1-4-has-been-released.aspx&amp;amp;subject=Windows Azure SDK 1.4 Has Been Released" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/03/10/windows-azure-sdk-1-4-has-been-released.aspx&amp;amp;t=Windows+Azure+SDK+1.4+Has+Been+Released" target="_blank" title="Submit Windows Azure SDK 1.4 Has Been Released to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/03/10/windows-azure-sdk-1-4-has-been-released.aspx&amp;amp;title=Windows+Azure+SDK+1.4+Has+Been+Released" target="_blank" title="Submit Windows Azure SDK 1.4 Has Been Released to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/03/10/windows-azure-sdk-1-4-has-been-released.aspx&amp;amp;phase=2" target="_blank" title="Submit Windows Azure SDK 1.4 Has Been Released to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/03/10/windows-azure-sdk-1-4-has-been-released.aspx&amp;amp;title=Windows+Azure+SDK+1.4+Has+Been+Released" target="_blank" title="Add Windows Azure SDK 1.4 Has Been Released to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192216" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>“CommunicationObjectFaultedException was unhandled” Error when working on Windows Azure Project with Source Safe</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/02/28/communicationobjectfaultedexception-was-unhandled-error-when-working-on-windows-azure-project-with-source-safe.aspx</link><pubDate>Mon, 28 Feb 2011 09:29:55 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192167</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192167</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192167</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/02/28/communicationobjectfaultedexception-was-unhandled-error-when-working-on-windows-azure-project-with-source-safe.aspx#comments</comments><description>&lt;p&gt;If you encounter the following error message, you can guess that the most probably problem lies on WCF configuration since it mentions something about &lt;a href="http://msdn.microsoft.com/en-us/library/ms731354.aspx"&gt;System.ServiceModel&lt;/a&gt; which is actually the class library for WCF. You can definitely troubleshoot the error from WCF point of view. But what if it doesn’t solve the problem no matter what you’ve tried. You are sure that your WCF configuration is exactly correct.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_1682E351.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_32235B48.png" width="561" height="299" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Then, I am telling you another possibility of this error message, which I see it as a bug in Visual Studio or more appropriately maybe VS Tools for Windows Azure. If you face the problem when developing your Windows Azure project with source control such as SourceSafe, Team Foundation Server, or Subversion SVN, you most probably encounter the issue that I am talking about.&lt;/p&gt;  &lt;h1&gt;Visual Studio Modify your web.config file when the project is running&lt;/h1&gt;  &lt;p&gt;If you notice carefully, each time you run your Windows Azure project, Visual Studio actually does something on your web.config file. This can be seen if your web.config file is opened, an dialog will prompt you that your web.config file is modified, do you want to reload it.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_72A1481E.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_2D13F5C6.png" width="413" height="149" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;What’s does VS actually add? &lt;/h2&gt;  &lt;p&gt;&lt;strong&gt;&amp;lt;machineKey&amp;gt; &lt;/strong&gt;element&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_579788D8.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_3AF6375F.png" width="584" height="66" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;What is that?&lt;/h2&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/w8h3skw9.aspx"&gt;MachineKey element is actually used by ASP.NET website to configure algorithms and keys to use for encryption, decryption, and validation of forms-authentication data and view-state data, and for out-of-process session state identification&lt;/a&gt;.&lt;/p&gt;  &lt;h2&gt;What’s the reason of adding those?&lt;/h2&gt;  &lt;p&gt;&lt;img src="http://mscerts.net/image/201009/Understanding%20Windows%20Azure%20Roles.jpg" width="292" height="210" alt="" /&gt;&lt;/p&gt;  &lt;p&gt;As you know that any VM instances hosted on Windows Azure will be load-balanced automatically. Since they are load-balanced, nobody can guarantee the same instance will be responsible on particular request. While we need to ensure that any session / view-state data that are sent to browser could be encrypted / decrypted properly, we need to ensure that the machine key of each instance is consistent. That’s the reason why Visual Studio will modify / add your machine key.&lt;/p&gt;  &lt;h1&gt;Solution&lt;/h1&gt;  &lt;p&gt;The easy way to go is to check-out your web.config file. Thus, it will give your Visual Studio write access to the web.config, to add / modify the machine key element. &lt;/p&gt;  &lt;p&gt;Huh… Would it a better solution? As far as I know, there’s no solution for that at this moment. However, Microsoft has captured this “bug” and I do hope it would be fixed for the upcoming released of Azure SDK.&lt;/p&gt;  &lt;p&gt;&lt;font style="background-color:#ffff00;" size="3"&gt;Update 10 March 2011: To solve this problem, install &lt;/font&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=128752"&gt;&lt;font style="background-color:#ffff00;" size="3"&gt;Windows Azure SDK 1.4&lt;/font&gt;&lt;/a&gt;&lt;font style="background-color:#ffff00;" size="3"&gt; &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://netindonesia.net/blogs/wely/wlEmoticon-smile_469AAD17.png" /&gt;&lt;/font&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/02/28/communicationobjectfaultedexception-was-unhandled-error-when-working-on-windows-azure-project-with-source-safe.aspx&amp;amp;subject=“CommunicationObjectFaultedException was unhandled” Error when working on Windows Azure Project with Source Safe" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/28/communicationobjectfaultedexception-was-unhandled-error-when-working-on-windows-azure-project-with-source-safe.aspx&amp;amp;t=%e2%80%9cCommunicationObjectFaultedException+was+unhandled%e2%80%9d+Error+when+working+on+Windows+Azure+Project+with+Source+Safe" target="_blank" title="Submit “CommunicationObjectFaultedException was unhandled” Error when working on Windows Azure Project with Source Safe to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/28/communicationobjectfaultedexception-was-unhandled-error-when-working-on-windows-azure-project-with-source-safe.aspx&amp;amp;title=%e2%80%9cCommunicationObjectFaultedException+was+unhandled%e2%80%9d+Error+when+working+on+Windows+Azure+Project+with+Source+Safe" target="_blank" title="Submit “CommunicationObjectFaultedException was unhandled” Error when working on Windows Azure Project with Source Safe to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/28/communicationobjectfaultedexception-was-unhandled-error-when-working-on-windows-azure-project-with-source-safe.aspx&amp;amp;phase=2" target="_blank" title="Submit “CommunicationObjectFaultedException was unhandled” Error when working on Windows Azure Project with Source Safe to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/28/communicationobjectfaultedexception-was-unhandled-error-when-working-on-windows-azure-project-with-source-safe.aspx&amp;amp;title=%e2%80%9cCommunicationObjectFaultedException+was+unhandled%e2%80%9d+Error+when+working+on+Windows+Azure+Project+with+Source+Safe" target="_blank" title="Add “CommunicationObjectFaultedException was unhandled” Error when working on Windows Azure Project with Source Safe to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192167" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item><item><title>AzureUG.SG First Meeting Wrap-up</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/02/23/azureug-sg-first-meeting-wrap-up.aspx</link><pubDate>Wed, 23 Feb 2011 14:45:13 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192138</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192138</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192138</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/02/23/azureug-sg-first-meeting-wrap-up.aspx#comments</comments><description>&lt;p&gt;Due to various reason, finally I’ve got a chance to write this post which is suppose to be written 3 weeks ago. Yes, as mentioned in the invitation, we’d our great first user group meeting of AzureUG.SG (Singapore Windows Azure User Group) at 26th January 2011. It was attended by 30 participants. For the first meeting, it’s considered a good result &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://netindonesia.net/blogs/wely/wlEmoticon-smile_27679CC0.png" /&gt;.&lt;/p&gt; &lt;h2&gt;Welcome Note by David Tang, Microsoft Singapore&lt;/h2&gt; &lt;p&gt;The meeting was welcomed by David Tang, Product Marketing Manager from Microsoft Singapore. In the welcome note, David mentioned about the opportunity and potential of cloud computing in Singapore ecosystem. And also the commitment from Microsoft to embrace seriously in Windows Azure. We would like to thanks to David for the support toward AzureUG.SG!&lt;/p&gt; &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/DSCN1302_7FB0FAC8.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="DSCN1302" border="0" alt="DSCN1302" src="http://netindonesia.net/blogs/wely/DSCN1302_thumb_4FE26AD5.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;a href="http://netindonesia.net/blogs/wely/DSCN1303_6D0812DF.jpg"&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="DSCN1303" border="0" alt="DSCN1303" src="http://netindonesia.net/blogs/wely/DSCN1303_thumb_1B79BC29.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;h2&gt;Developing, Deploying, and Managing Windows Azure Application by Wely (Windows Azure MVP)&lt;/h2&gt; &lt;p&gt;The first session was done by me, talked about Developing, Deploying, and Managing Windows Azure Application. This talk was actually derived from what &lt;a href="http://player.microsoftpdc.com/Session/19c4c834-3cae-408c-96f0-e87bfad92cff"&gt;Jim’s session in PDC2010&lt;/a&gt;. I stared my session with explaining overview of Windows Azure and complete the rest of the session with more demo. Starting with creating an application with Visual Studio, deploying it on Windows Azure Developer portal, and finally managing the deployed application via remote desktop.&lt;/p&gt; &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/DSC03258_3F526DB6.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="DSC03258" border="0" alt="DSC03258" src="http://netindonesia.net/blogs/wely/DSC03258_thumb_6EA090E8.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;a href="http://netindonesia.net/blogs/wely/DSC03257_44DD15F5.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="DSC03257" border="0" alt="DSC03257" src="http://netindonesia.net/blogs/wely/DSC03257_thumb_33F51FAD.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;You can download my &lt;a href="http://cid-65cab324bf3c89cf.office.live.com/view.aspx/My%20Talks/Building%5EJ%20Deploying%5EJ%20and%20Managing%20Windows%20Azure%20Application%20at%20Azure%20UG.SG%20First%20Meeting%20%5E526%20Jan%202011%5E6/Building%20%5E0%20Managing%20WA%20App%20-%20Wely.pptx"&gt;slides&lt;/a&gt; and &lt;a href="http://cid-65cab324bf3c89cf.office.live.com/self.aspx/My%20Talks/Building%5EJ%20Deploying%5EJ%20and%20Managing%20Windows%20Azure%20Application%20at%20Azure%20UG.SG%20First%20Meeting%20%5E526%20Jan%202011%5E6/WindowsAzureUgMeeting.zip"&gt;sample code&lt;/a&gt; over here.&lt;/p&gt; &lt;h2&gt;Exploring Windows Azure Storage – Mohammed Faizal&lt;/h2&gt; &lt;p&gt;The second session was done by my colleague in NCS, Faizal. Faizal discussed about Windows Azure Storage in overview first, subsequently explore more on Windows Azure Table Storage. In the subsequent user group meeting, I am sure he will talk more about Blob and Queue, let’s wait and see the future user group meeting &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://netindonesia.net/blogs/wely/wlEmoticon-smile_27679CC0.png" /&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/DSCN1308_1BC18F85.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="DSCN1308" border="0" alt="DSCN1308" src="http://netindonesia.net/blogs/wely/DSCN1308_thumb_64D3C319.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;a href="http://netindonesia.net/blogs/wely/DSCN1304_4BFF5067.jpg"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="DSCN1304" border="0" alt="DSCN1304" src="http://netindonesia.net/blogs/wely/DSCN1304_thumb_315EC61C.jpg" width="244" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;We would like to thanks all for the participation and support. See you on the next user group meeting!&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/02/23/azureug-sg-first-meeting-wrap-up.aspx&amp;amp;subject=AzureUG.SG First Meeting Wrap-up" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/23/azureug-sg-first-meeting-wrap-up.aspx&amp;amp;t=AzureUG.SG+First+Meeting+Wrap-up" target="_blank" title="Submit AzureUG.SG First Meeting Wrap-up to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/23/azureug-sg-first-meeting-wrap-up.aspx&amp;amp;title=AzureUG.SG+First+Meeting+Wrap-up" target="_blank" title="Submit AzureUG.SG First Meeting Wrap-up to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/23/azureug-sg-first-meeting-wrap-up.aspx&amp;amp;phase=2" target="_blank" title="Submit AzureUG.SG First Meeting Wrap-up to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/23/azureug-sg-first-meeting-wrap-up.aspx&amp;amp;title=AzureUG.SG+First+Meeting+Wrap-up" target="_blank" title="Add AzureUG.SG First Meeting Wrap-up to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192138" width="1" height="1"&gt;</description></item><item><title>Applying Custom Domain Names to Windows Azure Blob Storage</title><link>http://geeks.netindonesia.net/blogs/wely/archive/2011/02/11/applying-custom-domain-names-to-windows-azure-blob-storage.aspx</link><pubDate>Fri, 11 Feb 2011 09:47:03 GMT</pubDate><guid isPermaLink="false">5cc3a90d-ac9a-472a-8983-30514957434c:192069</guid><dc:creator>Wely</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/rsscomments.aspx?PostID=192069</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://geeks.netindonesia.net/blogs/wely/commentapi.aspx?PostID=192069</wfw:comment><comments>http://geeks.netindonesia.net/blogs/wely/archive/2011/02/11/applying-custom-domain-names-to-windows-azure-blob-storage.aspx#comments</comments><description>&lt;h1&gt;Introduction&lt;/h1&gt;  &lt;p&gt;If you register a Windows Azure storage service account, you will be prompted to enter a valid account name. This account name by default will be used as your blob URI. The default address would be applicable for the following format:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://[acccount-name].blob.core.windows.net/[container]/[your-blob"&gt;http://[acccount-name].blob.core.windows.net/[container]/[your-blob&lt;/a&gt;].&lt;/p&gt;  &lt;p&gt;In example:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a title="http://welystorage2.blob.core.windows.net/images/Desert.jpg" href="http://welystorage2.blob.core.windows.net/images/Desert.jpg"&gt;http://welystorage2.blob.core.windows.net/images/Desert.jpg&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In many cases, we don’t want the “blob.core.windows.net” default domain. Instead, we want to implement our own domain (or sub-domain name), for example: “blob.wely-lau.net”. So that you could have your:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a title="http://storage.wely-lau.net/images/Desert.jpg" href="http://storage.wely-lau.net/images/Desert.jpg"&gt;http://storage.wely-lau.net/images/Desert.jpg&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I am happy to inform you that, it’s possible for you to do it on Windows Azure Blob Storage.&lt;/p&gt;  &lt;h1&gt;How To&lt;/h1&gt;  &lt;h2&gt;Prerequisites&lt;/h2&gt;  &lt;p&gt;In order to perform the custom domain, I assume you have the following items:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Your own Windows Azure Subscription (associated with your Windows Live Id) &lt;/li&gt;    &lt;li&gt;Your own domain registered to certain registrar such as &lt;a href="http://godaddy.com"&gt;http://godaddy.com&lt;/a&gt; or &lt;a href="http://dynadot.com"&gt;http://dynadot.com&lt;/a&gt;. &lt;/li&gt; &lt;/ol&gt;  &lt;h2&gt;Creating Windows Azure Storage Account&lt;/h2&gt;  &lt;p&gt;1. Firstly, Login to &lt;a href="https://windows.azure.com/Default.aspx"&gt;Windows Azure Developer Portal&lt;/a&gt;,&amp;#160; and select the “Hosted Service, Storage Account &amp;amp; CDN” tab at the right hand side and subsequently select the “Storage Accounts”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_747B2451.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_12690C79.png" width="450" height="208" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;2. As such, the list of Subscriptions that are associated to the Windows Live Id will be shown. Click on New Storage Account button on the ribbon bar.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_6AB26A81.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_13F98CB3.png" width="619" height="250" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;3. As the Create New Account dialog show up, select the intended subscription and enter your account name. Note that the account name must be globally unique. This will be form your default URL such as &lt;a href="http://account-name.blob.core.windows.net/"&gt;http://account-name.blob.core.windows.net/&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Subsequently, select your preferred region or affinity group (if you have any) and click the Create button.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_31B7C51A.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_0E3B20B5.png" width="404" height="294" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If everything goes well, you will see that the status of the new created storage becomes “Created”.&lt;/p&gt;  &lt;h2&gt;Adding Your Custom Domain&lt;/h2&gt;  &lt;p&gt;4. Click on the newly created storage, and then click on Add Domain button on the ribbon bar.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_46D5A4F5.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_08403182.png" width="380" height="167" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;5. Immediately, a dialog box shows up. You will need to enter your custom domain name there and click Configure.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_7CE6F777.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_14D9F06C.png" width="346" height="218" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h2&gt;Verifying Your Domain Name&lt;/h2&gt;    &lt;p&gt;6. You are not done yet, you will see the instruction to create a CNAME record at your domain registrar portal and point to verify.azure.com. The reason is, Windows Azure requires you to verify you are the owner of that custom domain.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_59199611.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_323B5A04.png" width="288" height="192" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;7. Since my domain (wely-lau.net) was registered via &lt;a href="http://dynadot.com"&gt;http://dynadot.com&lt;/a&gt;, I’ll need to perform those action there. I believe it’s more or less the same although you are registering to other domain registrar.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_35010EF7.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_6215FBC5.png" width="480" height="34" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Do note that, it may take a few minutes to propagate.&lt;/p&gt;  &lt;p&gt;8. Go back to Azure Developer Portal, click on the Storage custom domain, and click on Validate Domain. After a few moments, you can see that your storage custom domain status changes to “Allowed”.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_2826B8D9.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_2E015C72.png" width="384" height="94" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Are we done? No, we are not done yet. What we’ve done so far is to verify the domain belong to us, we have access over it.&lt;/p&gt;  &lt;h2&gt;Mapping the Custom Domain&lt;/h2&gt;  &lt;p&gt;9. Now, go back to your domain registrar portal again. &lt;/p&gt;  &lt;p&gt;Create another CNAME record, with sub domain “blob” (if you want your address become &lt;a href="http://blob.wely-lau.net"&gt;http://blob.wely-lau.net&lt;/a&gt;) and point it to your storage account name (with full address).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_66F4ABCB.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_608D89A3.png" width="557" height="41" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As usual, it may takes up to a few minutes to update the domain, just be patient.&lt;/p&gt;  &lt;h2&gt;Let’s Test It Out&lt;/h2&gt;  &lt;p&gt;10. Since that was newly created azure storage account, obviously it doesn’t have any blob inside.&lt;/p&gt;  &lt;p&gt;To test whether the custom domain work, try to upload a blob to that account. You can upload the blobs through many ways including tools such as Cerebrata Cloud Storage Studio, Azure Storage Explorer, and so many more.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_09401F2E.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_6412AEF4.png" width="588" height="206" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;11. When I type my original blob address on the browser address bar: &lt;a href="http://welyazurestorage.blob.core.windows.net/images/Lighthouse.jpg"&gt;http://welyazurestorage.blob.core.windows.net/images/Lighthouse.jpg&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_0712FA98.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_44BBCE55.png" width="339" height="266" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;How about using our custom domain name &lt;a title="http://blob.wely-lau.net/images/Lighthouse.jpg" href="http://blob.wely-lau.net/images/Lighthouse.jpg"&gt;http://blob.wely-lau.net/images/Lighthouse.jpg&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href="http://netindonesia.net/blogs/wely/image_0E5A8079.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="image" border="0" alt="image" src="http://netindonesia.net/blogs/wely/image_thumb_5EF8237A.png" width="352" height="326" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here you go, it works!&lt;/p&gt;  &lt;p&gt;I hope this post is useful to you.&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Share this post: &lt;/strong&gt;&lt;a href="mailto:?body=Thought you might like this: http://geeks.netindonesia.net/blogs/wely/archive/2011/02/11/applying-custom-domain-names-to-windows-azure-blob-storage.aspx&amp;amp;subject=Applying Custom Domain Names to Windows Azure Blob Storage" target="_blank" title="Send via email"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Mail.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.facebook.com/sharer.php?u=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/11/applying-custom-domain-names-to-windows-azure-blob-storage.aspx&amp;amp;t=Applying+Custom+Domain+Names+to+Windows+Azure+Blob+Storage" target="_blank" title="Submit Applying Custom Domain Names to Windows Azure Blob Storage to DotNetKicks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Facebook.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://del.icio.us/post?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/11/applying-custom-domain-names-to-windows-azure-blob-storage.aspx&amp;amp;title=Applying+Custom+Domain+Names+to+Windows+Azure+Blob+Storage" target="_blank" title="Submit Applying Custom Domain Names to Windows Azure Blob Storage to del.icio.us"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Delicious.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="http://www.digg.com/submit?url=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/11/applying-custom-domain-names-to-windows-azure-blob-storage.aspx&amp;amp;phase=2" target="_blank" title="Submit Applying Custom Domain Names to Windows Azure Blob Storage to digg.com"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Digg.16.gif" border="0"&gt;&lt;/a&gt; | &lt;a href="https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;mkt=en-us&amp;amp;url=http://geeks.netindonesia.net/blogs/wely/archive/2011/02/11/applying-custom-domain-names-to-windows-azure-blob-storage.aspx&amp;amp;title=Applying+Custom+Domain+Names+to+Windows+Azure+Blob+Storage" target="_blank" title="Add Applying Custom Domain Names to Windows Azure Blob Storage to Live Bookmarks"&gt;&lt;img src="http://geeks.netindonesia.net/Images/Share.Live.16.gif" border="0"&gt;&lt;/a&gt;&lt;/div&gt;&lt;img src="http://geeks.netindonesia.net/aggbug.aspx?PostID=192069" width="1" height="1"&gt;</description><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://geeks.netindonesia.net/blogs/wely/archive/tags/Windows+Azure+Platform/default.aspx">Windows Azure Platform</category></item></channel></rss>