<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Nuno Filipe Godinho : Windows Azure, Caching</title><link>http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/Caching/default.aspx</link><description>Tags: Windows Azure, Caching</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Things to take into account when you deliver applications for Connected Devices – Windows Azure to the rescue (EN)</title><link>http://msmvps.com/blogs/nunogodinho/archive/2011/06/16/things-to-take-into-account-when-you-deliver-applications-for-connected-devices-windows-azure-to-the-rescue-en.aspx</link><pubDate>Thu, 16 Jun 2011 21:43:29 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1794841</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1794841</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1794841</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2011/06/16/things-to-take-into-account-when-you-deliver-applications-for-connected-devices-windows-azure-to-the-rescue-en.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post"&gt;&lt;/a&gt;&lt;script type="text/javascript" src="http://www.google.com/buzz/api/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;Currently one very important space is the development of Applications for Connected Devices like Windows Phones, Windows Slates and so on.&lt;/p&gt;  &lt;p&gt;One important elements is that we are currently going more and more to Wireless, and so it’s important to understand the current state of the art on Wireless.&lt;/p&gt;  &lt;p&gt;According to AT&amp;amp;T “We will deliver as much data over our network in the first 5 weeks of 2015 as we did all year in 2010”.&lt;/p&gt;  &lt;p&gt;Also currently there are several identified congestion factors that are affecting Wireless, like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;More subscribers with smartphones consuming data, uploading and downloading photos and videos &lt;/li&gt;    &lt;li&gt;Spectrum + cell towers + antennas + home users &lt;/li&gt;    &lt;li&gt;Mobile Operator bandwidth caps &lt;/li&gt;    &lt;li&gt;Latency of all communications between the server and the destination device, passing by the Cell Towers, Backhaul network, internet, firewalls and so on &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;And so having this is mint, it’s really important to understand that we as developers cannot continue thinking that we’re going to continue developing our apps and services the same way, without thinking about these network related topics, because this will affect greatly the User Experience of our Solutions. And one important note is that UX is not only related to the User Interface (UI), like some developers try to think, it’s more then that. It’s really about having a great experience while using our applications.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;So in order to do great applications for connected devices, and support millions of those devices, we need to think about scale.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Some examples of how we can scale our applications are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Making Database that almost nobody touches, since we really shouldn’t let every single device connect and work on our databases, instead we should really be doing multi-tier application to abstract those devices from the Database, and by doing that we are reducing the stress of our databases and at the same time enabling the possibility of scaling the services that really give us access to our data &lt;/li&gt;    &lt;li&gt;Place thousands of Web Servers on commodity hardware, by scaling out their app &lt;/li&gt;    &lt;li&gt;Replicate Data &lt;/li&gt;    &lt;li&gt;Scale horizontally &lt;/li&gt;    &lt;li&gt;Use NoSQL databases at the edge &lt;/li&gt;    &lt;li&gt;Shard our data using small tables for fast access &lt;/li&gt;    &lt;li&gt;Place Load-Balancing at every tier &lt;/li&gt;    &lt;li&gt;Use Hundreds of terabytes of data in an in-RAM distributed cache (For example Facebook uses MemCache and has something like 300 TB of data in memcache) &lt;/li&gt;    &lt;li&gt;Use pre-compile elements, since compiling slow (For example Facebook uses PHP because they think that is very productive for them, but it didn’t work very well in terms of compiling, so they made a team to create a PHP to C++ compiler in order to get more performance) &lt;/li&gt;    &lt;li&gt;use MapReduce pattern for parallel analysis of “Big Data” &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Some of the apps that are doing this are, Bing, Facebook, Twitter, Google, Zynga, and so on.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;So how in order to achieve that kind of scale we have Windows Azure. But what should we do to take the best out of Windows Azure for Connected Devices?&lt;/strong&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Scale-out. This is easy in Windows Azure, because we can define the number of instance we want of a particular role &lt;/li&gt;    &lt;li&gt;SQL Azure should be never touched by the Devices. Instead we should use:      &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;In terms of Outbound Data &lt;/strong&gt;- Worker roles that replicate outbound data from SQL Azure to NoSQL Azure Table Storage &lt;/li&gt;        &lt;li&gt;&lt;strong&gt;In terms of inbound Data - &lt;/strong&gt;Worker Role move inbound data from Azure queues to SQL Azure &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;Use Distributed caching, that in Windows Azure is handled by AppFabric Caching &lt;/li&gt;    &lt;li&gt;Do wireless efficient Services. For example using Web Roles that expose REST + JSON WCF Services is very interesting, because it saves message size, and by doing so saves time and money &lt;/li&gt;    &lt;li&gt;Also important is making our devices cache data and work on it offline. Not every thing should be made “live” and on top of “live” data. Don’t stress the wireless connection &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I hope this helps you think better about your Connected Device Apps.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1794841" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Cloud+Computing/default.aspx">Cloud Computing</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/ADO.NET+Data+Services/default.aspx">ADO.NET Data Services</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/.NET+Services/default.aspx">.NET Services</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/RIA+Services/default.aspx">RIA Services</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/SQL+Azure/default.aspx">SQL Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/RIA/default.aspx">RIA</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Phone+7/default.aspx">Windows Phone 7</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Performance/default.aspx">Performance</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Storage/default.aspx">Windows Azure Storage</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Caching/default.aspx">Caching</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/CodeProject/default.aspx">CodeProject</category></item><item><title>Some Q&amp;A about Windows Azure AppFabric Caching</title><link>http://msmvps.com/blogs/nunogodinho/archive/2011/05/04/some-q-amp-a-about-windows-azure-appfabric-caching.aspx</link><pubDate>Wed, 04 May 2011 13:59:12 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1792681</guid><dc:creator>NunoGodinho</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/rsscomments.aspx?PostID=1792681</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/nunogodinho/commentapi.aspx?PostID=1792681</wfw:comment><comments>http://msmvps.com/blogs/nunogodinho/archive/2011/05/04/some-q-amp-a-about-windows-azure-appfabric-caching.aspx#comments</comments><description>&lt;div class="wlWriterHeaderFooter" style="float:none;margin:0px;padding:0px 0px 0px 0px;"&gt;&lt;a title="Post on Google Buzz" class="google-buzz-button" href="http://www.google.com/buzz/post"&gt;&lt;/a&gt;&lt;script type="text/javascript" src="http://www.google.com/buzz/api/button.js"&gt;&lt;/script&gt;&lt;/div&gt;&lt;p&gt;Today someone asked me about Windows Azure AppFabric Caching, and how it works and so I thought it would be interesting to do a blog post about it, with the Questions and Answers for everyone to see and comment and even ask more, to complete it.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; What are the Cache Sizes available in the Windows Azure AppFabric Caching Service?&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Answer: &lt;/strong&gt;128 MB, 256MB, 512MB, 1GB, 2GB, 4GB&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; What happens when provisioning Windows Azure AppFabric Caching in the Portal? &lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; When you do the provisioning of the Caching Service, you define the Cache Size you want to use, and so that Cache Size is &lt;strong&gt;Reserved&lt;/strong&gt; for you in the Internal Cluster of Cache Machines that are associated with the Service.&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; Is Windows Azure AppFabric Caching Cache Size Always Available? &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Answer: &lt;/strong&gt;Yes, the complete size is always &lt;strong&gt;Reserved for you only.&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Question: &lt;/strong&gt;Is Windows Azure AppFabric Caching Cache Size all stored in the same Machine? &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; No. Caching Service has a Distributed Architecture and so it spreads your cache size across several machines.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; Security is very important and it’s important to understand how does Windows Azure AppFabric Caching Service works in terms of Security? How can we define the security of the Data?&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Answer:&lt;/strong&gt; Windows Azure AppFabric Caching Service is highly integrated with the Windows Azure AppFabric Access Control Service (ACS), and so that is the way to define the security that will be used to access the cache.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;strong&gt;Question:&lt;/strong&gt; What about the Princing? What is the pricing associated with Windows Azure AppFabric Caching Service? &lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Answer: &lt;/strong&gt;The Price depends on the Caching Size you choose.&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;128 MB cache for $45.00/month&lt;/li&gt;      &lt;li&gt;256 MB cache for $55.00/month&lt;/li&gt;      &lt;li&gt;512 MB cache for $75.00/month&lt;/li&gt;      &lt;li&gt;1 GB cache for $110.00month&lt;/li&gt;      &lt;li&gt;2 GB cache for $180.00/month&lt;/li&gt;      &lt;li&gt;4 GB cache for $325.00/month&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;But you have it free until August 1st, 2011. More about this check &lt;a href="http://bit.ly/iGS49z" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;If you have any more questions just ask away and I’ll try to answer them.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1792681" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Windows+Azure+Service+Platform/default.aspx">Windows Azure Service Platform</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/AppFabric/default.aspx">AppFabric</category><category domain="http://msmvps.com/blogs/nunogodinho/archive/tags/Caching/default.aspx">Caching</category></item></channel></rss>