<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Simon Munro</title>
	<atom:link href="http://simonmunro.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://simonmunro.com</link>
	<description>Enterprise, Cloud and Windows Azure</description>
	<lastBuildDate>Tue, 23 Mar 2010 19:39:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='simonmunro.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/bfd896e0233362a0a205ee445f660042?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Simon Munro</title>
		<link>http://simonmunro.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://simonmunro.com/osd.xml" title="Simon Munro" />
	<atom:link rel='hub' href='http://simonmunro.com/?pushpress=hub'/>
		<item>
		<title>Is spatial support needed in SQL Azure?</title>
		<link>http://simonmunro.com/2010/02/08/is-spatial-support-needed-in-sql-azure/</link>
		<comments>http://simonmunro.com/2010/02/08/is-spatial-support-needed-in-sql-azure/#comments</comments>
		<pubDate>Mon, 08 Feb 2010 14:49:50 +0000</pubDate>
		<dc:creator>simonmunro</dc:creator>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[Spatial]]></category>

		<guid isPermaLink="false">http://simonmunro.wordpress.com/2010/02/08/is-spatial-support-needed-in-sql-azure/</guid>
		<description><![CDATA[An investigation triggered by the lack of support of spatial data in SQL Azure has left me with the (unconfirmed) opinion that although requested by customers, the support of spatial data in SQL Azure may not be good enough to handle the requirements of a scalable solution that has mapping functionality as a primary feature. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=61&subd=simonmunro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p><strong>An investigation triggered by the lack of support of spatial data in SQL Azure has left me with the (unconfirmed) opinion that although requested by customers, the support of spatial data in SQL Azure may not be good enough to handle the requirements of a scalable solution that has mapping functionality as a primary feature.</strong></p>
<p>I have been asked to investigate the viability of developing a greenfields application in Azure as an option to the currently proposed traditional hosting architecture.  The application is a high load, public facing, map enabled application and the ability to do spatial queries is on near the top of the list of absolute requirements.  The mapping of features from the traditionally hosted architecture is fine until reaching the point of SQL 2008’s spatial types and features which are unsupported under SQL Azure – triggering further investigation.</p>
<p>It would seem that the main reason why spatial features are not supported in SQL Azure is because those features make use of functions which run within SQLCLR, which is also unsupported in SQL Azure.  The lack of support for SQLCLR is understandable to a a degree due to how SQL Azure is setup – messing around with SQLCLR on multitenant databases could be a little tricky.</p>
<p>The one piece of good news is that some of the assemblies used by the spatial features in SQLCLR are available for .NET developers to use and are installed into the GAC on some distributions (R2 amongst them) and people have been able to successfully make use of spatial types using SQL originated/shared managed code libraries.  Johannes Kebeck, the Bing maps guru from MS in the UK, has <a href="http://johanneskebeck.spaces.live.com/Blog/cns!42E1F70205EC8A96!9750.entry">blogged</a> on making use of these assemblies and doing spatial oriented work in Azure.</p>
<p>So far, it seems like there may be a solution or workaround to the lack of spatial support in SQL Azure as some of the code can be written in C#.  However, further investigation reveals that those assembles are only the types and some mathematics surrounding them and the key part of the whole process, a <strong>spatial index</strong>, remains firmly locked away in SQL Server and the inability to query spatial data takes a lot of the goodness out of the solution.</p>
<p>No worries, one would think – all that you need to do is get some view into the roadmap of SQL Azure support for SQL 2008 functionality and you can plan or figure it out accordingly.  After all, the on the Microsoft initiated, supported and sanctioned SQL Azure User voice website <a href="http://www.mygreatwindowsazureidea.com">mygreatsqlazureidea.com</a>, the feature ‘<a href="http://www.mygreatwindowsazureidea.com/forums/34685-sql-azure-feature-voting/suggestions/402421-support-spatial-data-types-and-sqlclr?ref=title">Support Spatial Data Types and SQLCLR’</a> comes out at a fairly high position five on the list with the insightful comment <em>‘Spatial in the cloud is the killer app for SQL Azure. Especially with the proliferation of personal GPS systems.’</em> The SQL Azure team could hardly ignore that observation and support – putting it somewhere <em>up there</em> on their product backlog.</p>
<p>When native support for spatial data in SQL Azure is planned is another matter entirely and those of us on the outside can only speculate.  You could ask Microsoft directly, indirectly or even try and get your nearest MVP really drunk and, when offered the choice between breaking their NDA and having compromising pictures put up on Facebook, will choose the former.</p>
<p><span style="color:#ff0000;">Update:</span> You use your drunk MVP to try and glean other information as it was announced that SQL Azure will support spatial data in June 2010 <a href="http://blogs.msdn.com/sqlazure/archive/2010/03/19/9981936.aspx">http://blogs.msdn.com/sqlazure/archive/2010/03/19/9981936.aspx</a> and  <a rel="nofollow" href="http://blogs.msdn.com/edkatibah/archive/2010/03/21/spatial-data-support-coming-to-sql-azure.aspx">http://blogs.msdn.com/edkatibah/archive/2010/03/21/spatial-data-support-coming-to-sql-azure.aspx</a> (see comments below).  This is <strong>not </strong>a solution to all geo-aware cloud applications, so I encourage you to read on.</p>
<p>I have n-th hand unsubstantiated news that the drastic improvements for spatial features in SQL 2008 R2 were made by taking some of the functionality out of SQLCLR functions and putting them directly into the SQL runtime which means that even a slightly deprecated version of SQL Azure based on R2, which I think is inevitable, would likely have better support for spatial data.</p>
<p><span style="color:#ff0000;">Update</span>:  In the comments below, Ed Katibah from Microsoft, confirms that the spatial data support is provided by SQL CLR functionality and not part of the R2 runtime.</p>
<p>In assessing this project’s viability as an Azure solution, I needed to understand a little bit more about what was being sacrificed by not having SQL spatial support and am of the opinion that it is possibly a benefit.</p>
<p>Stepping back a bit, perhaps it is worthwhile trying to understand why SQL has support for spatial data in the first place.  After all, it only came in SQL 2008, mapping and other spatial applications have been around longer than that and, to be honest, I haven’t come across many solutions that use the functionality.  To me, SQL support of spatial data is <em>BI Bling </em>– you can, relatively cheaply (by throwing a table of co-ordinates against postal codes and mapping your organizations regions) have instant, cool looking, pivot tables, graphs, charts and other things that are useful in business.  In other words, the addition of spatial support adds a lot of value to <strong>existing data</strong>,  whose transactions do not really have a spatial angle.  The spatial result is a side effect of (say) the postal code, which is captured for delivery reasons rather than explicit BI benefits.</p>
<p>The ability to pimp up your sales reports with maps, while a great feature that will sell a lot of licences, probably belongs as a feature of SQL Server (rather than the reporting tool), I question the value of using SQL as the spatial engine for an application that has spatial functionality as a primary feature.  You only have to think about Google maps, streetview and directions with the sheer scale of the solution and the millions of lives it affects and ask yourself whether or not behind all the magic there is some great big SQL database serving up the data.  Without knowing or Googling the answer, I would suggest with 100% confidence that the answer is clearly <strong>‘No’</strong>.</p>
<p>So getting back to my Azure viability assessment, I found myself asking the question.</p>
<blockquote><p><span style="color:#000000;">If SQL Azure had spatial support, would I use it in an application where the primary UI and feature set is map and spatially oriented?</span></p></blockquote>
<p>But before answering that I asked,</p>
<blockquote><p><span style="color:#000000;">Would I propose an architecture that used SQL spatial features as the primary spatial data capability for a traditionally hosted application where the primary UI and feature set is map and spatially oriented?</span></p></blockquote>
<p>The short answer to both questions is a tentative <strong>no</strong>.  Allow me to provide the longer answer.</p>
<p>The first thing to notice about spatial data is that things that you are interested in the location of don’t really move around much.  The directions from <a href="http://maps.google.co.uk/maps?f=d&amp;source=s_d&amp;saddr=Nelsons+column&amp;daddr=Westminster+Abbey,+Westminster,+London+SW1P+3,+United+Kingdom,+SW1P+3+(Westminster+Abbey)&amp;hl=en&amp;geocode=FfryEQMdBQz-_yGyN7pzffPKUQ%3BFbbREQMdDgr-_yG3K0S0FWgxYg&amp;mra=ls&amp;dirflg=w&amp;sll=51.507701,-0.126557&amp;sspn=0.016507,0.041027&amp;ie=UTF8&amp;ll=51.503734,-0.125699&amp;spn=0.016509,0.041027&amp;z=15">Nelsons Column to Westminster Abbey</a> are not going to change much and neither are the points of interest along the way.  In business you have similar behaviour – customers delivery addresses don’t move around much and neither do your offices, staff and reporting regions.  The second thing about spatial data is the need to have indexes so that queries, such as the closest restaurants to a particular point, can be done against the data and spatial indexes solve this problem by providing tree like indexing in order to group together co-located points.  These indexes are multidimensional in nature and a bit more complex than the flatter indexes that we are used to with tabular data.</p>
<p>Because of the slow pace at which coastlines, rivers, mountains and large buildings move around, the need to have dynamically updated spatial data, and hence their indexes, is quite low.  So while algorithms exist to add data to spatial indexes, the cost of performing inserts is quite expensive, so in many cases indexes can be rebuilt from scratch whenever there is a bulk modification or insert of the underlying data.</p>
<p>So while SQL Server 2008 manages spatial indexes as with any other index, namely by updating the index when underlying data changes, I call into question the need for having such functionality for data that is going to seldom change.</p>
<p>If data has a low rate of change, spatial or not, it becomes a candidate for caching, and highly scalable websites have caching at the core of their solutions (or problems, depending on how much they have).  So if I were to scale out my solution, is it possible to cache the relatively static data and the spatial indexes into some other data store that is potentially distributed across many nodes of my network?  Unfortunately, unlike a simple structure like a table, the data within a spatial index (we are talking about the index here and not the underlying data) is wrapped up closely to the process or library that created it.  So, in the case of SQL Server, the spatial index is simply not accessible from anywhere other than SQL Server itself.  This means that I am <strong>unable to cache or distribute the spatial indexes</strong> unless I replicate the data to another SQL instance and rebuild the index on that instance.</p>
<p>So while I respect the functionality that SQL Server offers with spatial indexing, I <strong>question the value</strong> of having to access indexed data in SQL server just because it seems to be the most convenient place to access the required functionality (at least for a Microsoft biased developer).  If my application is map oriented (as opposed to BI bling), how can I be sure that I won’t run into a brick wall with SQL server with spatial indexes in particular.  SQL server is traditionally known as a <strong>bottleneck</strong> with any solution and putting my core functionality into that bottleneck, before I have even started and without much room to manoeuvre is a bit concerning.</p>
<p>I should be able to spin up spatial indexes wherever I want to and in a way that is optimal for a solution.  Perhaps I can have indexes that focus on the entire area at a high level and can generate lower level ones as required.  Maybe I can pre-populate some indexes for popular areas or if an event is going to take place in a certain area.  Maybe I am importing data points all of the time and don’t want SQL spending time churning indexes as data, which I am not interested in yet, is being imported.  Maybe I want to put <strong>indexes on my rich client</strong> so that the user has a lighting fast experience as they scratch around in a tiny little part of the world that interests them.</p>
<p>In short, maybe I want a degree of <strong>architectural and development control</strong> over my spatial data that is not provided my SQL’s monolithic approach to data.</p>
<p>This led me to investigating other ways of dealing with spatial data (generally), but more specifically spatial indexes.  Unsurprisingly there are a lot of algorithms and libraries out there that seem to have their roots in a C and Unix world.  The area of spatial indexing is not new and a number of algorithms have emerged as popular mechanisms to build spatial indexes.  The two most popular are <a href="http://en.wikipedia.org/wiki/R-tree">R-Tree</a> (think B-Tree for spatial data) and <a href="http://en.wikipedia.org/wiki/Quadtree">Quadtree</a> (where a tree is built up by dividing areas into quadrants).</p>
<p>There is a wealth of information on these fairly well understood algorithms and event Microsoft’s own implementations do not fall far from these algorithms.  Bing maps uses <a href="http://msdn.microsoft.com/en-us/library/bb259689.aspx">‘QuadKeys’ to index tiles</a>, seemingly referring to the underlying Quadtree index.  (SQL Server is a bit different though, it uses a <a href="http://blogs.msdn.com/isaac/archive/2008/03/01/basic-multi-level-grids.aspx">four level grid</a> indexing mechanism that is non recursive and uses <a href="http://technet.microsoft.com/en-us/library/bb964712.aspx">tessellation to set the granularity of the grid</a>.)</p>
<p>So if all of this spatial data stuff is old hat, surely there are some libraries available for implementing your own <strong>spatial indexes in managed code</strong>?  It seems that there are some well used open source libraries and tools available.  Many <a href="http://gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/16/aft/5266/afv/topic/Default.aspx">commercial products</a> and <a href="http://sharpmap.codeplex.com/">Sharpmap</a>, an OSS GIS library, make use of <a href="http://code.google.com/p/nettopologysuite/">NetTopologySuite</a>, a direct port of the Java based JTS.  These libraries have a lot of spatial oriented functions, most of which only make vague sense to me, including a read only R-Tree implementation.</p>
<p>Also, while scratching around, I got the sense that <strong>Python</strong> has emerged as the spatial/GIS language of choice (it makes sense considering all those C academics started using Python).  It seems that there are a lot of Python libraries out there that are potentially useful within a .NET world using <a href="http://ironpython.net/">IronPython</a>.</p>
<p>It is still early in my investigation, but I can’t help shaking the feeling that making use of SQL 2008 for spatial indexing because that is the only hammer that Microsoft provides is <strong>not necessarily the best solution</strong>.  This is based on the following observations:</p>
<ul>
<li>
<div>Handling of spatial data is not new – it is actually a mature part of computer science.  In fact SQL server was pretty slow to implement spatial support.</div>
</li>
<li>
<div>An RDBMS like SQL or Oracle may be a good place to store data, but not necessarily the best place to have your indexes.  The SQL bias towards data consistency and availability are counter to the demands of spatial data and their indexes.</div>
</li>
<li>
<div>In order to develop a map oriented solution, a fine degree of control over spatial data may be required to deliver the required functionality at scale.</div>
</li>
</ul>
<p>While I am not against OSS, evaluating libraries can be risky and difficult and I am stunned at the lack of support for spatial data in managed code coming out of Microsoft.  Microsoft needs to pay attention to the demand for support of spatial data for developers (not just database report writers).  The advent of always connected geo-aware mobile devices and their users’ familiarity with maps and satnav, will push the <strong>demand for applications that are supportive of geographic data</strong>.  It is not unlikely to picture the teenager demand for a map on their mobile devices that shows the real time location of their social network.</p>
<p>To support this impending demand, Microsoft needs to make spatial data a <strong>first class citizen</strong> of the .NET framework (system.spatial).  It wouldn’t take much, just get some engineers from SQL and Bing maps to talk to each other for a few weeks.  Microsoft, if you need some help with that, let me know.</p>
<p>In the meantime I will walk down the road of open source spatial libraries and let you know where that road leads.</p>
<p>Simon</p>
<p><a href="http://twitter.com/simonmunro">@simonmunro</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simonmunro.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simonmunro.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simonmunro.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simonmunro.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simonmunro.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simonmunro.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simonmunro.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simonmunro.wordpress.com/61/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simonmunro.wordpress.com/61/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simonmunro.wordpress.com/61/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=61&subd=simonmunro&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://simonmunro.com/2010/02/08/is-spatial-support-needed-in-sql-azure/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1b8b0098653a14d0338ffac00b5e52c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">simonmunro</media:title>
		</media:content>
	</item>
		<item>
		<title>MS to Terminate Thousands of Insignificant Azure Apps</title>
		<link>http://simonmunro.com/2010/01/25/ms-to-terminate-thousands-of-insignificant-azure-apps/</link>
		<comments>http://simonmunro.com/2010/01/25/ms-to-terminate-thousands-of-insignificant-azure-apps/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 16:42:19 +0000</pubDate>
		<dc:creator>simonmunro</dc:creator>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Azure Pricing]]></category>
		<category><![CDATA[Developers]]></category>
		<category><![CDATA[Free]]></category>

		<guid isPermaLink="false">http://simonmunro.wordpress.com/2010/01/25/ms-to-terminate-thousands-of-insignificant-azure-apps/</guid>
		<description><![CDATA[On 1 February 2010, when Microsoft Azure officially goes into production, the CTP version will come to an end.  In an instant, thousands of Azure apps in some of the remotest corners of the Internet, built with individual enthusiasm and energy, will wink out of existence – like the dying stars of a discarded alternative [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=58&subd=simonmunro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>On 1 February 2010, when Microsoft Azure officially goes into production, the CTP version will come to an end.  In an instant, thousands of Azure apps in some of the remotest corners of the Internet, built with individual enthusiasm and energy, will wink out of existence – like the dying stars of a discarded alternative universe.</p>
<p>Sadly, the only people that will notice are the individual developers who took to Azure, figured out the samples and put something, anything, out there on <em>The Cloud</em> and beamed like proud fathers and remembering their first <em>Hello World</em> console app.  For the first time we were able to point to a badly designed web page that was, both technically and philosophically, <em>In The Cloud</em>.  Even though the people that we showed barely gave it a second look (it is, after all, unremarkable on the surface) we left it up and running for all the world to see.</p>
<p>Now, Microsoft, returning to its core principles of being aggressively commercial, is taking away the Azure privilege and leaving the once enthusiastic developers feeling like petulant children the week after Easter – where the relaxing of the chocolate rations has come to an end.  Now, developers are being asked to put in their credit cards to make use of Azure – even the free one.  Now I don’t know about anyone else’s experiences, but in mine <em>‘free’ </em>followed by <em>‘credit card details please’</em> smells like a honey trap.</p>
<p>So its not enough that we have to scramble up the learning curve of Azure, install the tools and figure things out all on our own time, we now also have to hand over our credit card details to a large multinational that has a business model that keeps consumers at an arms length, is intent on making money, and may give you a bill for an indeterminable amount of computing resources consumed – all for which you are personally liable.</p>
<p>Gulp! No thanks, I’ll keep my credit card to myself if you don’t mind.</p>
<p>The nature of Azure development up until now and until adoption becomes mainstream is that most Azure development has <strong>no commercial benefit </strong>for the developers.  While some companies are working on Azure ‘stuff’, there is very little in the way of Azure apps out there in the wild and even fewer customers who are prepared to pay for Azure development… yet.  A lot of the Azure ‘development’ that I am aware of has been done by individuals, in their own time, on side projects as they play with Azure to get on the cloud wave, enhance their understanding or simply try something different.</p>
<p>While I understand Microsoft’s commercial aspirations, the financial commitments expected from Azure ‘hobbyists’ run the risk of choking the biggest source of interest, enthusiasm and publicity – the <strong>after hours developer</strong>.  Perhaps the people in the Azure silo who are commenting <em>‘Good riddance to the CTP developers, they were using up all of these VM’s and getting no traffic’</em> have not seen the Steve Ballmer <a href="http://www.youtube.com/watch?v=8To-6VIJZRE">‘Developers! Developers! Developers!’</a> monkey dance that (embarrassingly) acknowledges the value of the influence that developers who are committed to a single platform (Windows).</p>
<p>It comes as no surprise that the number one feature voted for in the Microsoft initiated <a href="http://www.mygreatwindowsazureidea.com/forums/34192-windows-azure-feature-voting">‘Windows Azure Feature Voting Forum’</a> is ‘<em>Make it less expensive to run my very small service on Windows Azure’</em> followed by <em>‘Continue Azure offering free for Developers’</em> – the third spot has less than a quarter as many votes.  But it seems that nobody is listening – instead they are rubbing their hands in glee, waiting for the launch and expecting the CTP goodwill to turn into credit card details.</p>
<p>Of course there is a limp-dicked ‘free’ account that will suggestively start rubbing up against your already captured credit card details after 25 hours of use (maybe).  There is also some half-cocked free-<em>ish</em> version for MSDN subscribers – for those that are fortunate enough to get their employers to hand over the keys (maybe).  So there are roundabout ways that a developer can find a way of getting themselves up and running on the Azure platform but it may just be too much hassle and risk to bother.</p>
<p>Personally, I didn’t expect it to happen this way, secretly hoping that @smarx or someone on <em>our side</em> would storm the corporate fortress and save us from their short sightedness and greed.  But alas, the regime persists – material has been produced, sales people are trained and the Microsoft Azure army is in motion.  There won’t even be a big battle.  Our insignificant little apps will simply walk up, disarmed, to their masters with their heads hung in shame and as punishment for not being the next killer app, they will be terminated – without so much as a display of severed heads in the town square.</p>
<p>Farewell Tweetpoll, RESTful Northwind, Catfax and others.</p>
<p>We weren’t given a chance to know you.  You are unworthy.</p>
<p>Simon</p>
<p><a href="http://twitter.com/simonmunro">@simonmunro</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simonmunro.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simonmunro.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simonmunro.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simonmunro.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simonmunro.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simonmunro.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simonmunro.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simonmunro.wordpress.com/58/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simonmunro.wordpress.com/58/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simonmunro.wordpress.com/58/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=58&subd=simonmunro&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://simonmunro.com/2010/01/25/ms-to-terminate-thousands-of-insignificant-azure-apps/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1b8b0098653a14d0338ffac00b5e52c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">simonmunro</media:title>
		</media:content>
	</item>
		<item>
		<title>7 Safe Working Styles for First World Developers</title>
		<link>http://simonmunro.com/2010/01/05/7-safe-working-styles-for-first-world-developers/</link>
		<comments>http://simonmunro.com/2010/01/05/7-safe-working-styles-for-first-world-developers/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 13:20:31 +0000</pubDate>
		<dc:creator>simonmunro</dc:creator>
				<category><![CDATA[Career]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Consulting]]></category>
		<category><![CDATA[Cost]]></category>
		<category><![CDATA[Enterprise]]></category>
		<category><![CDATA[Outsourcing]]></category>
		<category><![CDATA[Softyware Development]]></category>
		<category><![CDATA[Startups]]></category>

		<guid isPermaLink="false">http://simonmunro.wordpress.com/2010/01/05/7-safe-working-styles-for-first-world-developers/</guid>
		<description><![CDATA[Given a good enough specification software can be developed anywhere in the world, making it attractive to do it where people are cheapest, so where does this leave first world developers with expensive lifestyles? The cost of developing software is largely in the cost of human resources.&#160; Development workstations, tool licences, source control and bandwidth [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=53&subd=simonmunro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">Given a good enough specification software can be developed anywhere in the world, making it attractive to do it where people are cheapest, so where does this leave first world developers with expensive lifestyles?</p>
<p align="justify">The cost of developing software is largely in the cost of human resources.&#160; Development workstations, tool licences, source control and bandwidth are negligible compared to the burn cost of the actual developer and it stands to reason that cheaper salaries should make for cheaper software.&#160; The cost of people is influenced by a number of factors, such as the seniority, but what is interesting is the income demands of skilled people that have expensive lifestyles.&#160; It is this phenomenon that has created the primary driver behind the outsourcing industry where people are clearly cheaper to employ in Bangalore than in London.</p>
<p align="justify">If we were to believe that same-skilled people are a fraction of the cost in another country because of their lifestyles, the obvious question to ask is why isn’t all software development outsourced and virtually no developers living in expensive parts of the world.&#160; Making use of outsourced skills is a bit more complicated than simply mapping developer roles to commodity resources regardless of location and the quality of the final deliverable is affected by more than just the individuals’ technical abilities.</p>
<p align="justify">However,&#160; the use of outsourcing models is increasing and will continue to increase.&#160; It is the desire of ‘elite’ developers to work better and more efficiently that drives the practices and culture that allow developers to work remotely – which could be anywhere.&#160; Use of test driven development, continuous integration, collaboration technologies, cloud deployments, GIT-style source control, Google Wave and other technologies are becoming mainstream and used, not by the select few, but the masses of developers spread all over the globe.</p>
<p align="justify">So why is there still on-site and insourced development work still available in London or New York?&#160; How should developers align their careers in order to be safe from the axe when some large chunk of business gets moved to a cheaper location.&#160; Below are some styles of development that still seem to retain the services of expensive people.</p>
<h3>1. Shortest Route</h3>
<p align="justify">A lot of one or two man consulting gigs that exist for a few months cannot make use of remote resources because the business wants the work done simply, fast and <em>now</em>. The effort and time involved in finding remote people, writing a specification, getting all the infrastructure in place and the communication latency is simply too much overhead to bother with.&#160; It is easier to have someone who can come on site, have a meeting, sit down and get coding.&#160; The sort of work tends to be short-term, fiddly and with little disciplined project management.</p>
<h3>2. Big Branded Consulting</h3>
<p align="justify">Big consulting companies have the scale to offer services that include any combination of people and skills for fairly high rates and are able to pull it off because of their brand and penetration in the customer.&#160; Big consulting companies have some really good people (often not even technical) that are able to open up opportunities and allow commodity developers to step in and do the work – keeping the customer is happy.&#160; (Of course they can also switch out to outsourcing models when it suits the deal.)</p>
<h3>3. Product Centric</h3>
<p align="justify">Being a specialist on some specific product doing ‘configuration’ development allows developers to be seen as part of the overall expense of implementing a particular package, rather than a per hour development resource.&#160; It doesn’t even matter if the work is technically difficult, as long as it requires an intimate understanding of a product for which there are few generally available skills.</p>
<h3>4. Integration</h3>
<p align="justify">Getting data from one system into another, no matter how simple the technology, is no trivial task.&#160; There are undocumented ‘business rules’ that need to be catered for, confusing mapping and changes to processes that have to be uncovered on site and in person in order to coax an interface into existence.</p>
<h3>5. Responsive</h3>
<p align="justify">Some businesses need to be close to their development teams, be that for real business reasons (such as financial traders) or because the business model is trying to change the world &#8211; in some cases it is good to have a trusted development team with a track record.&#160; These teams are generally responsive to the needs of the business and are able to churn out systems and features that delight the users at a predictable and valuable pace.</p>
<h3>6. Startup</h3>
<p align="justify">The startup culture is more than just about getting software developed for the lowest possible price.&#160; Startups need to be agile and responsive and all staff at a startup have to have a special relationship that goes beyond handing out development tasks.&#160; Startups, by the nature of how they operate and market seem to need to be located physically close to where the buzz is happening in order to get attention.</p>
<h3>7. Bleeding Edge</h3>
<p align="justify">Some individuals or groups of developers are able to market themselves as leaders in a particular technology, stack or approach and find that work will always come to them.&#160; This group doesn’t have it easy though – what is bleeding edge now is mainstream tomorrow due to their own efforts and they have to continually reinvent themselves and discover new paradigms to shift.&#160; Although a lot of developers aspire to be in this category there is little room and it is highly competitive.</p>
<p align="justify">&#160;</p>
<p align="justify">So if you are a developer sitting in a first world country wanting to justify the rate that matches your lifestyle ambitions you need to be constantly aware of the value that you are adding to the people who are paying you to write code.&#160; If you are looking at making lots of money being a generic, commodity developer then you face stiff competition from literally millions of people who can do the same thing.</p>
<p align="justify">Make sure that you find a style that is valuable and has a future as you chart your career.</p>
<p>Simon Munro</p>
<p><a href="http://twitter.com/simonmunro">@simonmunro</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simonmunro.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simonmunro.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simonmunro.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simonmunro.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simonmunro.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simonmunro.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simonmunro.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simonmunro.wordpress.com/53/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simonmunro.wordpress.com/53/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simonmunro.wordpress.com/53/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=53&subd=simonmunro&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://simonmunro.com/2010/01/05/7-safe-working-styles-for-first-world-developers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1b8b0098653a14d0338ffac00b5e52c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">simonmunro</media:title>
		</media:content>
	</item>
		<item>
		<title>Emerging Business Models &#8211; How did cloud computing suddenly become important? (Part 4)</title>
		<link>http://simonmunro.com/2009/11/12/emerging-business-models-how-did-cloud-computing-suddenly-become-important-part4/</link>
		<comments>http://simonmunro.com/2009/11/12/emerging-business-models-how-did-cloud-computing-suddenly-become-important-part4/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 21:27:14 +0000</pubDate>
		<dc:creator>simonmunro</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Change]]></category>
		<category><![CDATA[Emerging Markets]]></category>
		<category><![CDATA[Rogue Enterprise Departments]]></category>
		<category><![CDATA[Small and Medium Business]]></category>
		<category><![CDATA[Start-ups]]></category>

		<guid isPermaLink="false">http://simonmunro.wordpress.com/2009/11/12/emerging-business-models-how-did-cloud-computing-suddenly-become-important-part4/</guid>
		<description><![CDATA[In part 1 of this series I discussed the base technologies (virtualisation, shared resources, automation and abstracted services) that are at the base of cloud computing.&#160; Part 2 discusses the new computing models (Public Cloud, Utility Pricing, Commodity Nodes and Service Specializations) that have emerged as a result of the base technologies. Part 3 lists [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=47&subd=simonmunro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>In <a href="http://simonmunro.com/2009/11/09/how-did-cloud-computing-suddenly-become-important-part-1/">part 1</a> of this series I discussed the base technologies (virtualisation, shared resources, automation and abstracted services) that are at the base of cloud computing.&#160; <a href="http://simonmunro.com/2009/11/10/how-did-cloud-computing-suddenly-become-important-part-2/">Part 2</a> discusses the new computing models (Public Cloud, Utility Pricing, Commodity Nodes and Service Specializations) that have emerged as a result of the base technologies. <a href="http://simonmunro.com/2009/11/11/business-value-how-did-cloud-computing-suddenly-become-important-part-3/">Part 3</a> lists some of the business value that can be extracted from these new models. </p>
<p>This part explores some of the emerging business models, and hence target markets, that may be able to make use of the business value on offer.</p>
<h2>Part 4 : Emerging Business Models</h2>
<p align="justify">&#160;</p>
<h3>Rogue Enterprise Departments</h3>
<p align="justify">The most boring and barely mentioned group are the rogue enterprise departments that are fed up with the inability of internal IT to meet their needs. Cloud computing allows them to build a solution quickly, under the radar and with low financial risk simply by putting in their own effort and whipping out their credit cards. But how does this facilitate the emergence of new business models? It allows enterprises, by being entrepreneurial at the departmental level, to collectively become more competitive, innovative and respond to market needs. Products can be developed quicker, cheaper and able to fail if they don’t work.</p>
<p align="justify">Do you want to quickly spin up a sales campaign app to pitch a new offering? There’s an app for that. Do you want to offer post sales extended warranties via a coupon in the packaging that can be redeemed online? Maybe there is an app for that too.</p>
<p align="justify">I think that the market for rogue enterprise cloud applications is larger than people think and the concerns and barriers from corporate risk, security and governance will be forced to adjust.</p>
<h3>Small and Medium Business</h3>
<p align="justify">Some cloud vendors, particularly Microsoft, believe that the largest market is the small to medium sized businesses that should rather be using cloud computing than traditional hosting. The immediate and more obvious benefits are for the smaller businesses to operate solutions that, for a low cost, have enterprise scale features such as high availability, responsiveness and reliability. It allows smaller businesses to compete head on with their larger competition by having high quality customer facing solutions or better systems for staff in the field, logistics, billing or other business processes.</p>
<p align="justify">What will be interesting over the next few years (probably more than five years) is how these smaller businesses start linking up to each other in value chains and providing more business services via the cloud.</p>
<h3>Start-ups</h3>
<p align="justify">The cloud start-up dream is to become the next Youtube or Twitter and cloud computing plays to the ambitious (and sometimes unrealistic) plans of start-ups. A start-up can use its limited funding on development and marketing without wasting it on unnecessary hardware that it would need if it Oprah mentioned them, but probably never will. A start-up can, using cloud computing, still operate from the founders’ garage as their role models did ten to twenty years ago, but operate a huge international web property. While most start-ups will never achieve their lofty dreams, cloud computing is there to support them if they do make it. Although it is unlikely to be 100% correct the first time, a properly architected cloud oriented solution could scale sufficiently to handle growth and avoid the infamous ‘fail whale’.</p>
<h3>Emerging Markets</h3>
<p align="justify">Finally, cloud computing is destined to provide the architectural basis for new products offered by first world organizations to emerging markets. If there is an economic shift towards countries such as India, China and Brazil, the delivery of products by organizations based in New York and London will need to be radically different, low cost and innovative. It is likely that many products will be able to be delivered via the Internet, but emerging markets do not have first world infrastructure, so delivery will have to be done using mobiles, simple interfaces, low bandwidth and low latency. Also, due to such a high dependency on a mobile device and the low margins for each sale, the (possibly free) ecosystem needs to be social, viral and low cost in delivery and marketing terms. There are many smart people around the world thinking about these products, not from a cloud computing perspective (yet), but from their own desires to open up and penetrate new markets. Products that may be delivered would be something like simple life insurance products delivered using a mobile phone on a pay-as-you-go basis. A $2 premium rate text gives you $500 of funeral cover.</p>
<p align="justify">Emerging markets can also take advantage of sophisticated first world individuals or social groups. Imagine a system that provides, again via a mobile device, microfinance (say $20 loans) funded by individuals in $1 increments across the United States. ‘Want to lend $10 and get $12 back? There’s an app for that.’</p>
<p align="justify">Relating back to the cloud computing model, there are literally billions of people that are able to be serviced by large multinationals if the product and the price is right. These products cannot use traditional delivery channels (mail, branches or call centres) as the margins are pennies. The only way to deliver them is using sophisticated, reliable and low cost IT – and that is where cloud computing plays a role.</p>
<h3>Change and Interest</h3>
<p align="justify">What we understand the cloud computing market to be today is different from what the reality will be 5-10 years from now – at the very least because there is confusion and conflicting messages. Hype cannot be sustained within a vacuum and there definitely is interest in cloud computing fuelling the hype, which means that there probably is a demand. Beyond the marketing material and shallow articles in the mainstream media, leaders in business are sitting down and conversing with people who know something about cloud computing and finding compelling arguments that apply to their particular business and situation.</p>
<p align="justify">Businesses are reeling from the financial crisis – manufacturing, shipping, travel, services, media and just about every single sector is looking at how they need to do things differently, look at new markets, manage costs, take less risks, be more responsible and many other items on the boardroom agenda that would never have been table a few years ago. Individuals are feeling the threat of collapsing industries, unemployment, financial insecurity and diminishing prospects. They too are feeling the need to do things differently and have a yearning for change. It is causing them to be more entrepreneurial, to create new businesses, to try and change enterprises from within and to elect a President that offers hope and change.</p>
<p align="justify">So while Information Technology has evolved at its usual (rapid) pace, change has swept across the world and something within cloud computing has resonated with that change and amplified the impact that cloud computing could have on the way we sell, buy, develop and interact with each other. Where cloud computing may have been an interesting technology sideshow in years gone by, the promise that it offers (which admittedly it may not be able to deliver on) has caught the attention of business leaders.</p>
<p align="justify">So people are listening, leaning forward in their chairs and conjuring up scenarios where cloud computing may work for them. They are talking, arguing, writing and conversing about a set of technologies that will fundamentally rock our approach to IT.</p>
<p align="justify">The question is, are you part of that conversation?</p>
<p>Simon Munro</p>
<p><a href="http://twitter.com/simonmunro">@simonmunro</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simonmunro.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simonmunro.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simonmunro.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simonmunro.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simonmunro.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simonmunro.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simonmunro.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simonmunro.wordpress.com/47/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simonmunro.wordpress.com/47/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simonmunro.wordpress.com/47/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=47&subd=simonmunro&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://simonmunro.com/2009/11/12/emerging-business-models-how-did-cloud-computing-suddenly-become-important-part4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1b8b0098653a14d0338ffac00b5e52c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">simonmunro</media:title>
		</media:content>
	</item>
		<item>
		<title>Business Value &#8211; How did cloud computing suddenly become important? (Part 3)</title>
		<link>http://simonmunro.com/2009/11/11/business-value-how-did-cloud-computing-suddenly-become-important-part-3/</link>
		<comments>http://simonmunro.com/2009/11/11/business-value-how-did-cloud-computing-suddenly-become-important-part-3/#comments</comments>
		<pubDate>Wed, 11 Nov 2009 21:12:16 +0000</pubDate>
		<dc:creator>simonmunro</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Business Value]]></category>
		<category><![CDATA[Cyclic Demand]]></category>
		<category><![CDATA[Domain Specific Clouds]]></category>
		<category><![CDATA[Enterprise IT Backlog]]></category>
		<category><![CDATA[Handling Growth]]></category>
		<category><![CDATA[Managing Risk]]></category>

		<guid isPermaLink="false">http://simonmunro.wordpress.com/2009/11/11/business-value-how-did-cloud-computing-suddenly-become-important-part-3/</guid>
		<description><![CDATA[In part 1 of this series I discussed the base technologies (virtualisation, shared resources, automation and abstracted services) that are at the base of cloud computing.&#160; Part 2 discusses the new computing models (Public Cloud, Utility Pricing, Commodity Nodes and Service Specializations) that have emerged as a result of the base technologies. This part tries [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=45&subd=simonmunro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">In <a href="http://simonmunro.com/2009/11/09/how-did-cloud-computing-suddenly-become-important-part-1/">part 1</a> of this series I discussed the base technologies (virtualisation, shared resources, automation and abstracted services) that are at the base of cloud computing.&#160; <a href="http://simonmunro.com/2009/11/10/how-did-cloud-computing-suddenly-become-important-part-2/">Part 2</a> discusses the new computing models (Public Cloud, Utility Pricing, Commodity Nodes and Service Specializations) that have emerged as a result of the base technologies.</p>
<p align="justify">This part tries to understand the business value that can be extracted from these new models.&#160; After all, without value that can be easily understood by the business, there is little point in deploying cloud computing technology.</p>
<h2>Part 3 : Business Value</h2>
<p align="justify">&#160;</p>
<h3>Fail Cheap and Fail Fast</h3>
<p align="justify">As a combination of a number of factors, the ability to try out an idea that can ‘Fail Cheap and Fail Fast’ facilitates the creation of business cases where the IT component does not become a burden if the endeavour is unsuccessful. In the cloud, if a business does not succeed there are no expensive paid for servers sitting around idle and no hosting contracts that are paid for, but unused, like gym memberships. In the cloud, the initial financial commitment is lower and the monthly burn rate controllable. If it does not work, you simply cancel the agreement and stop paying.</p>
<h3>Handling Growth</h3>
<p align="justify">The ability of cloud computing solutions to handle growth allows time, effort and money on things that are more important during the initial stages, rather than on hardware and licenses that are going to sit around doing nothing for a while. It is common for the purse-holders, when receiving a request for budget to ask “How does this help revenue this quarter?” and planned, prudent and reasonable infrastructure purchases simply do not generate revenue until sales pick up. So having a platform in place to be able to demand additional resources when necessary negates the need for up front purchases. An important observation however, is that this only makes sense if growth is expected. A website that is expected to be small or self constrained (such as a corporate time keeping application that has a finite number of users) may be better suited to a Plain Ol’ Web (POW) app and forgo the cloud computing engineering costs.</p>
<h3>Cyclic Demand</h3>
<p align="justify">The reason why Amazon is a cloud provider is because they needed a lot of hardware to handle sales during the Christmas season, which sat idle for the rest of the year, and this spare capacity started to be sold off on the cloud. Many businesses have similar situations where there is peak or cyclic (per day, season etc.) demand, such as the Christmas rush, or unpredictable demand, where the site is suddenly mentioned by Oprah. Peak demand periods are important for businesses. It is often the time when the first time customers, which have cost a lot of marketing money to attract, who visit the site and expect a positive experience. Cloud computing caters specifically and overtly to the handling of peak demand periods.</p>
<h3>Managing Risk</h3>
<p align="justify">Due to features that are part of cloud computing solutions, a lot of risk can be taken care of out of the box, so in many respects cloud computing can be seen as part of the solution to managing risk – operational, reputational, disasters and so on. Although cloud computing security could increase risk many other fundamental requirements and features of cloud computing platforms, such as backups, availability, patching, load balancing, scalability and others (in an automated, zero touch manner) does tick some risk management boxes.</p>
<h3>Time to Market</h3>
<p align="justify">In a competitive market, a product’s development cycle and time to market is key to the viability and planning of a product. Having to pad the launch by a few months because of the provisioning of IT could scupper the entire product proposal. While IT has a tendency and history of not delivering on time, cloud computing can, in some cases, reduce the time to deliver, particularly if the alternative involves a long hardware, software and networking procurement process.</p>
<h3>Operational Expenditure</h3>
<p align="justify">Because the cloud computing is about consumption of units of computing that are billed monthly (or daily, or some other period), the idea that computing costs are operational expenditure rather than capital expenditure is often touted as a benefit of cloud computing. While true and relevant in some cases, financial models and needs of businesses cannot be generally applied. Different businesses have different (and complex) financial models that may or may not find the capex of IT hardware a decisive issue.</p>
<h3>Enterprise IT Backlog</h3>
<p align="justify">Lurking within all businesses is the dissatisfaction in the rate of delivery of centralised IT which seldom has the skills and resource bandwidth to cope with the torrent of new business requirements and applications. Rather than having their particular needs sit for months or years in the enterprise IT backlog, disgruntled and impatient business units are taking their budgets to external organizations for fulfilment. The tradition of getting and external development company to develop bespoke solutions and force enterprise IT to install and support it will be replaced by development, support and operations being completely off site. Leaving internal IT in the dark and toothless. Salesforce.com has ridden this demand and many cloud providers will cater to these rogue bespoke solutions.</p>
<h3>Domain Specific Clouds</h3>
<p align="justify">Hollywood studios have a need to do a lot of CG rendering towards the end of movie production when time is running out. Having the necessary horsepower sitting around for when it is needed is expensive and quickly becomes redundant so studios hand rendering over to third parties that have huge capacities to take on particular jobs. While not cloud computing per se (for example, I am sure they ship data on rather large hard disks rather than use the internet) the idea of having specialised processing service that offer more than just computing power is beginning to be embraced into the cloud computing landscape and the term ‘Domain Specific Cloud’ is being tossed around. A more common example is data mining, which addresses a whole lot of services including forensics, fraud detection, deduplication and other value added services that are a lot more than just raw computing.</p>
<p align="justify">So what are these new ways of doing business that are emerging as a result of the value that can be realised from cloud computing?</p>
<p>Continue to part 4 : <a href="http://simonmunro.com/2009/11/12/emerging-business-models-how-did-cloud-computing-suddenly-become-important-part4/">‘Emerging Business Models’</a> </p>
<p>Simon Munro</p>
<p><a href="http://twitter.com/simonmunro">@simonmunro</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simonmunro.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simonmunro.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simonmunro.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simonmunro.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simonmunro.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simonmunro.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simonmunro.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simonmunro.wordpress.com/45/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simonmunro.wordpress.com/45/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simonmunro.wordpress.com/45/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=45&subd=simonmunro&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://simonmunro.com/2009/11/11/business-value-how-did-cloud-computing-suddenly-become-important-part-3/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1b8b0098653a14d0338ffac00b5e52c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">simonmunro</media:title>
		</media:content>
	</item>
		<item>
		<title>How did cloud computing suddenly become important? (Part 2)</title>
		<link>http://simonmunro.com/2009/11/10/how-did-cloud-computing-suddenly-become-important-part-2/</link>
		<comments>http://simonmunro.com/2009/11/10/how-did-cloud-computing-suddenly-become-important-part-2/#comments</comments>
		<pubDate>Tue, 10 Nov 2009 21:11:10 +0000</pubDate>
		<dc:creator>simonmunro</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Commodity Nodes]]></category>
		<category><![CDATA[Computing Models]]></category>
		<category><![CDATA[Public Cloud]]></category>
		<category><![CDATA[Service Specializations]]></category>
		<category><![CDATA[Utility Pricing]]></category>

		<guid isPermaLink="false">http://simonmunro.wordpress.com/2009/11/10/how-did-cloud-computing-suddenly-become-important-part-2/</guid>
		<description><![CDATA[In part 1 of this series I discussed the base technologies (virtualisation, shared resources, automation and abstracted services) that are at the base of cloud computing.&#160; This part deals with how those base technologies have allowed us to envision and adopt new computing models that are central to the cloud computing movement. Part 2 : [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=42&subd=simonmunro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">In <a href="http://simonmunro.com/2009/11/09/how-did-cloud-computing-suddenly-become-important-part-1/">part 1</a> of this series I discussed the base technologies (virtualisation, shared resources, automation and abstracted services) that are at the base of cloud computing.&#160; This part deals with how those base technologies have allowed us to envision and adopt new computing models that are central to the cloud computing movement.</p>
<h2>Part 2 : Computing Models</h2>
<p align="justify">&#160;</p>
<h3>Public Cloud</h3>
<p align="justify">From the perspective of the consumer, as long as they satisfy the requirements, any external supplier can provide the demanded computing as the cost and effort of building on premise on demand computing facilities may be overkill for many businesses. As a result, large providers of computing resources are stepping in to provide cloud computing to anybody that wants it and is willing to pay. This does not disqualify the value proposition of the private cloud, but it is the public cloud providers, such as Amazon, that have been pushing the change in computing models.</p>
<h3>Utility Pricing</h3>
<p align="justify">If consumers require computing resources on demand, it is logical to expect that they only want to pay for those resources when they need them and while they are in use. The pricing of cloud computing is still in its infancy and sometimes quite complicated, but the idea is that consumers pay as they would for any utility like electricity, rather than pay for a whole lot of physical assets that they may or may not use. This has the potential to radically change how businesses serve customers and process data as planning is done and decisions are made based, not on upfront costs, but on dynamic usage cycles and different types and rates of billing.</p>
<h3>Commodity Nodes</h3>
<p align="justify">Providers of these on-demand resources would, for technical and practical reasons, rather not provide highly specialised resources. It is very difficult to provide an expensive and depreciating high-end server with loads of memory and fast IO or to provide a machine with a sophisticated graphics processor. Without the provision of specialised components, regardless of the underlying infrastructure (which may or may not be assembled out of high-end components) the resources provided are straightforward an anaemic. This changes application architectures because dedicated and powerful single node servers are not available and architects cannot make assumptions about the availability and reliability of individual nodes.</p>
<h3>Service Specializations</h3>
<p align="justify">There is a difference between a consumer that requires an email service and one that requires a database service so providers of computing resources need to cater to different markets. Because of the underlying approach and technology, providers generally have one particular service abstraction and the different cloud specializations, IaaS, SaaS, PaaS and others have emerged and used to identify the class of cloud computing offering.</p>
<p align="justify">If we consider that cloud computing is simply a logical progression of IT technologies, what is it that grabbed the attention of the market and caused vendors to invest so much money in new products and huge datacentres? The reason is that cloud computing opens up new ways of conducting and operating a business and using technology to tackle new markets.</p>
<p align="justify">Before looking at the types of businesses that are intrigued by cloud computing, we need to understand the value that businesses see in the cloud. While technologists may find it surprising, not everybody wants to play with cloud computing just because it is shiny and new. It seems that businesses want value in the form of cost savings, reduced risk, increased turnover, and others in order to move systems and infrastructure onto the cloud.</p>
<p align="justify">Continue to <a href="http://simonmunro.com/2009/11/11/business-value-how-did-cloud-computing-suddenly-become-important-part-3/">part 3 : ‘Business Value’</a></p>
<p>Simon Munro</p>
<p><a href="http://twitter.com/simonmunro">@simonmunro</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simonmunro.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simonmunro.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simonmunro.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simonmunro.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simonmunro.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simonmunro.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simonmunro.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simonmunro.wordpress.com/42/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simonmunro.wordpress.com/42/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simonmunro.wordpress.com/42/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=42&subd=simonmunro&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://simonmunro.com/2009/11/10/how-did-cloud-computing-suddenly-become-important-part-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1b8b0098653a14d0338ffac00b5e52c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">simonmunro</media:title>
		</media:content>
	</item>
		<item>
		<title>How did cloud computing suddenly become important? (Part 1)</title>
		<link>http://simonmunro.com/2009/11/09/how-did-cloud-computing-suddenly-become-important-part-1/</link>
		<comments>http://simonmunro.com/2009/11/09/how-did-cloud-computing-suddenly-become-important-part-1/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 21:20:48 +0000</pubDate>
		<dc:creator>simonmunro</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Abstracted Services]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Definition]]></category>
		<category><![CDATA[Multi-tenancy]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://simonmunro.wordpress.com/2009/11/09/how-did-cloud-computing-suddenly-become-important-part-1/</guid>
		<description><![CDATA[The cloud is hype. It is the hype around a logical step in the progression of IT and somehow the term ‘The Cloud’ has stuck in the minds of vendors, the media and, to a lesser extent, the customer. Unlike most terms that we IT is used to, ‘The Cloud’ is not specific – a [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=41&subd=simonmunro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">The cloud is hype.</p>
<p align="justify">It is the hype around a logical step in the progression of IT and somehow the term ‘The Cloud’ has stuck in the minds of vendors, the media and, to a lesser extent, the customer.</p>
<p align="justify">Unlike most terms that we IT is used to, ‘The Cloud’ is not specific – a customer is never going to want to ‘buy a cloud’ and nobody can, with any authority, say what the cloud is. Disagreement exists on the definition of the cloud and cloud computing – academics, vendors, analysts and customers all disagree to varying degrees. This creates confusion as well as opportunities – where every blogger, journalist, vendor, developer and website can slap a cloud sticker on their product, service, website, marketing material and even the forehead of their marketing VP, and deem it to be ‘The Cloud’ or ‘&lt;some new form&gt; Cloud’.</p>
<p align="justify">In a world of no definitions, any definition is valid.</p>
<p align="justify">So while I am loathe to add yet another definition to the world of cloud computing, it seems that any conversation about cloud computing starts with some common understanding about what the base concepts and principles are.&#160; I tackled the question which asks “If cloud computing is based on existing technologies, why has it suddenly become important and talked about only recently?”.</p>
<p align="justify">I believe that the answer is that the base technologies have matured, leading to new computing models, which business is able to realise the value and finally it leads to new computing models based, if you trace it back, to the technologies which we talk about as being part of cloud computing.&#160; </p>
<p align="justify">I have written an essay on this an broken it down into four parts, reflecting the layers and progression, and I will post this over the next few days.</p>
<h2>Part 1 : Base Technology</h2>
<p>&#160;</p>
<p align="justify">At its most basic, cloud computing is about rapidly providing and disposing of computer resources quickly, easily and on demand.</p>
<p align="justify">Think about Mozy backup – you can get backup for your PC in a few minutes without having to go out and buy a backup disk, plug it in, power it up, install drivers, format, etc. Instead, you download a piece of software, put in your credit card details and<em> ta-da</em>, you have a good backup solution until you don’t want it anymore, in which case you simply cancel the service and you don’t have an external disk lying around that needs to be disposed of. The Mozy example demonstrates computing resources (backup) provisioned rapidly (no waiting for hardware and no hardware setup) that is almost immediately available and can be disposed of just as fast. It is, by a broader definition, Cloudy.</p>
<p align="justify">Unfortunately, instantly providing computing resources is not easy as one would think (as anyone who has seen data centre lead times is aware), so the seemingly simple objective of providing computing resources utilises some base technologies that are generally considered part of cloud computing.</p>
<p align="justify">It is the base technologies that have gradually matured over time that have given us the ability to achieve the goal of utilizing computing resources easily, and the following four are the primary influencing technologies.</p>
<h3>Virtualization</h3>
<p align="justify">Obviously, if you want resources and want them now, it doesn’t make sense to have to physically get a new machine, install it in a rack, plug it in and power it up. So a virtual machine that can be spun up within a couple of minutes is key to the ability to provide for the demand. Virtualization also forces the removal of specialized equipment on which software may depend by providing a baseline, non-specialized, machine abstraction.</p>
<h3>Shared Resources</h3>
<p align="justify">Individual resource consumers do not want to buy their resources up front – it would go against the idea of ‘on demand’. So it makes sense that it would be better to create a pool of resources that are potentially available to everyone and are allocated and de-allocated to individual consumers’ needs.&#160; Multi-tenancy is a further concept behind the sharing of resources, where multiple customers can share a single physical resource at the same time.&#160; Virtual machines running on the same physical hardware is an example of multi-tenancy.</p>
<h3>Automation</h3>
<p align="justify">In order to make all of these shared, virtualized resources available on demand, some automation tools need to sit between the request for a resource and the fulfilment of the request – it has to be zero touch by an expensive engineer. Sending an email and waiting for someone in operations to get around to it is not exactly rapid provisioning. So a big part of cloud computing are the tools and infrastructure to spin up machines, bring new hardware online, handle failures, patch software, de-allocate and decommission machines and resources etc.</p>
<h3>Abstracted Services</h3>
<p align="justify">Computing resources need not be limited to specific low level hardware resources such as an addressable memory block or a spindle on a disk – not only is it generally unnecessary, but technically impossible if coupled with quick, on demand resources. A fundamental technology advancement of the cloud is the increased use and availability of abstracted computing resources (consumed as services). While virtual machine is an abstraction of a much more complicated physical layer, the abstractions become much higher-level where resources are exposed as services, so a consumer doesn’t ask for a specific disk, but rather requests resources from a storage service where all of the complicated stuff is abstracted away and taken care of.</p>
<p align="justify">These technical solutions to the demand problem have, in turn, had some interesting side effects on existing models of computing. The public cloud, utility pricing, commodity nodes and service specializations have emerged as rediscovered computing models that are driving the adoption of cloud technologies.</p>
<p align="justify">Continue to <a href="http://simonmunro.com/2009/11/10/how-did-cloud-computing-suddenly-become-important-part-2/">part 2 : ‘Computing Models’</a></p>
<p align="justify">Simon Munro</p>
<p><a href="http://twitter.com/simonmunro">@simonmunro</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simonmunro.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simonmunro.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simonmunro.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simonmunro.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simonmunro.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simonmunro.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simonmunro.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simonmunro.wordpress.com/41/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simonmunro.wordpress.com/41/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simonmunro.wordpress.com/41/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=41&subd=simonmunro&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://simonmunro.com/2009/11/09/how-did-cloud-computing-suddenly-become-important-part-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1b8b0098653a14d0338ffac00b5e52c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">simonmunro</media:title>
		</media:content>
	</item>
		<item>
		<title>Windows Azure Is Not Cheap</title>
		<link>http://simonmunro.com/2009/09/30/windows-azure-is-not-cheap/</link>
		<comments>http://simonmunro.com/2009/09/30/windows-azure-is-not-cheap/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 21:12:23 +0000</pubDate>
		<dc:creator>simonmunro</dc:creator>
				<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[High Availability]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Pricing]]></category>
		<category><![CDATA[Scalability]]></category>

		<guid isPermaLink="false">http://simonmunro.wordpress.com/2009/09/30/windows-azure-is-not-cheap/</guid>
		<description><![CDATA[As the official release of Azure looms, and the initial pricing model is understood, a lot of technical people are crunching numbers to see how much it will cost to host a solution on Azure.&#160; It seems that most of the people doing the comparisons are doing them against smaller solutions to be hosted, not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=40&subd=simonmunro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">As the official release of Azure looms, and the <a href="http://www.microsoft.com/azure/pricing.mspx">initial pricing</a> model is understood, a lot of technical people are crunching numbers to see how much it will cost to host a solution on Azure.&#160; It seems that most of the people doing the comparisons are doing them against smaller solutions to be hosted, not in some corporate on-premise data centre, but on any one of hundreds of public .net hosting providers out there.</p>
<p align="justify">This is not surprising since the type of person that is looking at the pre-release version of Azure is also the kind of person that has hundreds of ideas for the next killer website, if only they could find the time and find someone who is a good designer to help them (disclaimer:&#160; I am probably one of those people).&#160; So they look at the pricing model from the perspective of someone who has virtually no experience in running a business and is so technically capable that they have misconceptions about how a small business would operate and maintain a website.</p>
<p align="justify">Unsurprisingly they find that Azure works out more expensive than the cost of (perceived) equivalent traditional hosting. So you get statements like this:</p>
<blockquote><p align="justify"><font color="#808080">“If you add all these up, that&#8217;s a Total of $98.04! And that looks like the very minimum cost of hosting an average &quot;small&quot; app/website on Azure. That surely doesn&#8217;t make me want to switch my DiscountASP.NET and GoDaddy.com hosting accounts over to Windows Azure.”</font> <a href="http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/9ed63b5f-09fa-40fd-8adb-462c4057901f">Chris Pietschmann</a></p>
</blockquote>
<p align="justify">Everyone seems shocked and surprised.</p>
<p align="justify">Windows Azure is different from traditional hosting, which means that Microsoft’s own financial models and those of their prospective customers are different.&#160; You don’t have to think for very long to come up with some reasons why Microsoft does not price Azure to compete with traditional hosting…</p>
<ul>
<li>
<div align="justify">Microsoft is a trusted brand.&#160; Regardless of well publicised vulnerabilities (in the technical community) and a growing open source movement, in the mind of business Microsoft is considered low risk, feature rich and affordable.</div>
</li>
<li>
<div align="justify">Microsoft has invested in new datacentres and the divisions that own them need to have a financial model that demonstrates a worthwhile investment.&#160; I doubt that in the current economic climate Wall Street is ready for another XBox-like loss leader. (This is also probably the reason why Microsoft is reluctant to package an on-premise Azure)</div>
</li>
<li>
<div align="justify">Azure is a <strong>premium product </strong>that offers parts of the overall solution that are lacking in your average cut-rate hosting environment.</div>
</li>
</ul>
<p align="justify">Back to the alpha geeks that are making observations about the pricing of Azure.&#160; Most of them have made the time to look at the technology outside their day job.&#160; They either have ambitions to do something ‘on their own’, are doing it on the side in a large enterprise or, in a few cases, are dedicated to assessing it as an offering for their ISV.</p>
<p align="justify">They are not the target market.&#160; Yet.</p>
<p align="justify">Azure seems to be marketed at the small to medium businesses that do not have, want or need much in the way of internal, or even contracted, IT services and skills.&#160; Maybe they’ll have an underpaid desktop support type of person who can run around the office getting the owner/manager’s email working – but that is about it. (Another market is the rogue enterprise departments that, for tactical reasons, specifically want to bypass enterprise IT – but they behave similar to smaller businesses.)</p>
<p align="justify">Enterprise cloud vendors, commentators and <a href="http://www.cio.com/article/490770/McKinsey_Cloud_Computing_Report_Conclusions_Don_t_Add_Up">analysts</a> endlessly debate the potential cost savings of the cloud versus established on-premise data centres.&#160; Meanwhile, smaller businesses, whose data centre consists of little more than a broadband wireless router and a cupboard, don’t care much about enterprise cloud discussions.&#160; In addressing the needs of the smaller business, Windows Azure comes with some crucial components that are generally lacking in traditional hosting offerings:</p>
<ul>
<li>
<div align="justify">As a Platform as a Service (PaaS), there are no low level technical operations that you can do on Azure – which also means that they are taken care of for you.&#160; There is no need to download, test and install patches.&#160; No network configuration and firewall administration.&#160; No need to perform maintenance tasks like clearing up temporary files, logs and general clutter.&#160; In a single tenant co-location hosting scenario this costs extra money as it is not automated and requires a skilled person to perform the tasks.</div>
</li>
<li>
<div align="justify">The architecture of Azure, where data is copied across multiple nodes, provides a form of automated backup.&#160; Whether or not this is sufficient (we would like a .bak file of our database on a local disk), the idea and message that it is ‘always backup up’ is reassuring to the small business.</div>
</li>
<li>
<div align="justify">The cost/benefit model of Azure’s high availability (HA) offering is compelling.&#160; I challenge anybody to build a 99.95% available web and database server for a couple of hundred dollars a month at a traditional hosting facility or even in a corporate datacentre (this is from the Azure web SLA and works out to 21 minutes of downtime a month).&#160; The degree of availability of a solution needs to be backed up by a business case and often, once the costs are tabled, business will put up with a day or two of downtime in order to save money.&#160; Azure promises significant availability in the box and at the price could be easily justified against the loss of a handful of orders or even a single customer.</div>
</li>
<li>
<div align="justify">Much is made of the scalability of Azure and it is a good feature to have in hand for any ambitious small business and financially meaningful for a business that has expected peaks in load.&#160; Related to the scalability is the speed at which you can provision a solution on Azure (scaling from 0 to 1 instances).&#160; Being able to do this within a few minutes, together with all the other features, such as availability, is a big deal because the small business can delay the commitment of budget to the platform until the last responsible moment.</div>
</li>
</ul>
<p align="justify">So there are a whole lot of features that need to be communicated to the market – almost like ‘you qualify for free shipping’ when buying a book online, where the consumer is directed to the added value that they understand.</p>
<p align="justify">The catch is that the target market does not understand high availability the same way that everyone understands free shipping.&#160; The target market for Azure doesn’t even know that Azure exists, or care – they have a business to run and a website to launch.&#160; Those technical details need to be sorted out by technical people who need to produce the convincing proposal.</p>
<p align="justify">The obvious strength that Microsoft has over other cloud vendors is their channel.&#160; Amazon and Google barely have a channel for sales, training and development of cloud solutions – besides, that is not even their core business.&#160; Microsoft has thousands of partners, ISV’s, trainers and a huge loyal following of developers.&#160; </p>
<p align="justify">In targeting the small to medium business, Microsoft is pitching Azure at the ISV’s.&#160; The smaller business without internal development capabilities will turn to external expertise, often in the shape of a reputable organization (as opposed to contractors), for solutions – and the ISV’s fulfil that role.&#160; So to get significant traction on Azure, Microsoft needs to convince the ISV’s of the benefits of Azure and, as this post tries to illustrate, some of the details of the financial considerations of the small business and their related technology choices.</p>
<p align="justify">Microsoft needs to convince the geeks out there that there is a whole lot more that comes with Azure, that is very important to smaller businesses, that are not available from traditional hosting. So Microsoft needs to help us understand the costs, and not just the technology, in order for us to convince our customers that although Azure is not cheap, it makes good financial sense.</p>
<p align="justify">Simon Munro</p>
<p align="justify"><a href="http://twitter.com/simonmunro">@simonmunro</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simonmunro.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simonmunro.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simonmunro.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simonmunro.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simonmunro.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simonmunro.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simonmunro.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simonmunro.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simonmunro.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simonmunro.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=40&subd=simonmunro&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://simonmunro.com/2009/09/30/windows-azure-is-not-cheap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1b8b0098653a14d0338ffac00b5e52c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">simonmunro</media:title>
		</media:content>
	</item>
		<item>
		<title>Motorbikes and the SQLness of SQL</title>
		<link>http://simonmunro.com/2009/09/23/motorbikes-and-the-sqlness-of-sql/</link>
		<comments>http://simonmunro.com/2009/09/23/motorbikes-and-the-sqlness-of-sql/#comments</comments>
		<pubDate>Wed, 23 Sep 2009 16:03:36 +0000</pubDate>
		<dc:creator>simonmunro</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Motorbikes]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[Scale-out]]></category>
		<category><![CDATA[Sharding]]></category>
		<category><![CDATA[SQLness]]></category>
		<category><![CDATA[Suitability]]></category>

		<guid isPermaLink="false">http://simonmunro.wordpress.com/2009/09/23/motorbikes-and-the-sqlness-of-sql/</guid>
		<description><![CDATA[I like to ride motorbikes.  Currently I ride a BMW K1200S &#8211; a sports tourer that is both fast and comfortable on the road.  Before that I had a five year affair with a BMW R1150GS which took me to all sorts of off-the-beaten-track destinations before we abruptly parted company with me flying through the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=36&subd=simonmunro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">I like to ride motorbikes.  Currently I ride a BMW K1200S &#8211; a sports tourer that is both fast and comfortable on the road.  Before that I had a five year affair with a BMW R1150GS which took me to all sorts of off-the-beaten-track destinations before we abruptly parted company with me flying through the air in one direction as my bike was smashed in the other direction by criminals in a getaway car.</p>
<p align="justify">Most motorbike enthusiasts have, like me, owned a few in their lifetimes and in most cases they are of differing types.  A road bike, no matter how much you are prepared to spend, can barely travel faster than walking pace on a good quality dirt road because, apart from the obvious things like tyres and suspension, the geometry is all wrong.  The converse is similar &#8211; a good dirt bike is frustrating, dull and downright dangerous to ride on a road.</p>
<p align="justify">Bikers understand the issues around <strong>suitability for purpose</strong> and <strong>compromise</strong> more than most (such as car drivers).  Our lottery winning fantasies have a motorbike garage filled, not simply with classics or expense, but with a bike suitable for every purpose and occasion &#8211; track, off-road, touring, commuting, cafe racing and every other obvious niche.  Some may even want a Harley Davidson for the odd occasion that one would want to ride a machine that leaks more oil than fuel it uses and one would want to travel in a perfectly straight line for 200 yards before it overheats and the rider suffers from renal damage.</p>
<p align="justify">But I digress.  Harley Davidson hogs, fanbois (or whatever the collective noun is for Harley Davidson fans) can move on.  This post has nothing to do with you.</p>
<p align="justify">There is nothing in the motorbike world that is analogous to the broad suitability of the SQL RDBMS.  SQL spans the most simple and lightweight up to complex, powerful and expensive &#8211; with virtually every variation in between covered.  It is not just motorbikes, a lot of products out there would want such broad suitability &#8211; cars, aeroplanes and buildings.  SQL is in a very exclusive club of products that is solves such a broad range of the same problem, and in the case of SQL, that problem is data storage and retrieval.  Also SQL seems to solve this problem in a way that the relationships between load, volume, cost, power and expense is fairly <strong>linear</strong>.</p>
<p align="justify">SQL&#8217;s greatest remaining strength and almost industry wide ubiquity is that it is the default choice for storing and retrieving data.  If you want to store a handful of records, you might as well use a SQL database, not text files.  And if you want to store and process huge amounts of transactional data, in virtually all cases, a SQL database is the best choice.  So over time, as the demands and complexity of our requirements has grown, SQL has filled the gaps like sand on a windswept beach, and exclusively filled every nook and cranny.</p>
<p align="justify">We use SQL for mobile devices, we use SQL for maintaining state on the web, we use SQL for storing rich media, and use it to replicate data around the world.  SQL has, as it has been forced to satisfy all manner of requirements, been used, abused, twisted and turned and generally made to work in all scenarios.  SQL solutions have denormalization, overly complex and inefficient data models with thousands of entities, and tens of thousands of lines of unmaintainable database code. But still, surprisingly, it keeps on giving as hardware capabilities improve, vendors keep adding features and people keep learning new tricks.</p>
<p align="justify">But we are beginning to doubt the knee jerk implementation of SQL for every data storage problem and, at least at the fringes of its capabilities, SQL is being challenged.  Whether it be developers moving away from over-use of database programming languages, cloud architects realising that SQL doesn&#8217;t scale out very well, or simply CIO&#8217;s getting fed up with buying expensive hardware and more expensive licences, the tide is turning against SQL&#8217;s dominance.</p>
<p align="justify">But this post is not an epitaph for SQL, or another some-or-other-technology is dead post.  It is rather an acknowledgement of the role that SQL plays &#8211; a deliberate metronomic applause and standing ovation for a technology that is, finally, showing that it is not suitable for every conceivable data storage problem.  It is commendable that SQL has taken us this far, but the rate at which we are creating information is exceeding the rate at which we can <strong>cheaply</strong> add power (processing, memory and I/O performance) to the single database instance.</p>
<p align="justify">SQL&#8217;s Achilles heel lies in its greatest strength &#8211; SQL is big on locking, serial updates and other techniques that allow it to be a bastion for consistent, reliable and accurate data.  But that conservative order and robustness comes at a cost and that cost is the need for SQL to run on a single machine.  Spread across multiple machines, the locking, checking, index updating and other behind the scenes steps suffer from latency issues and the end result is poor performance.  Of course, we can build even better servers with lots of processors and memory or run some sort of grid computer, but then things start getting expensive &#8211; ridiculously expensive, as heavy metal vendors build boutique, custom machines that only solve today&#8217;s problem.</p>
<p align="justify">The scale-out issues with SQL have been known for a while by a small group of people who build really big systems.  But recently the problems have moved into more general consciousness by Twitter&#8217;s fail-whale, which is largely due to data problems, and the increased interest in the cloud by developers and architects of smaller systems.</p>
<p align="justify">The cloud, by design, tries to make use of smaller commodity (virtualized) machines and therefore does not readily support SQL&#8217;s need for fairly heavyweight servers.  So people looking at the cloud find that although there are promises that their application will port easily, are obviously asking how they bring their database into the cloud and finding a distinct lack of answers.  The major database players seem to quietly ignore the cloud and don&#8217;t have cloud solutions &#8211; you don&#8217;t see DB2, Oracle or MySQL for the cloud and the only vendor giving it a go, to their credit (and possibly winning market share), is Microsoft with SQL Server.  Even then, SQL Azure (the version of SQL Server that runs on Azure) has limitations, and size limitations that are indirectly related to the size of the virtual machine on which it runs.</p>
<p align="justify">Much is being made of approaches to get around the scale out problems of SQL and with SQL Azure in particular, discussions around a <a href="http://simonmunro.com/2009/09/10/the-trouble-with-sharding/">sharding</a> approach for data.  Some of my colleagues were actively discussing this and it led me to weigh in and make the following observation:</p>
<blockquote>
<p align="justify"><em><span style="color:#000000;">There are only two ways to solve the scale out problems of SQL Databases</span></em></p>
<p align="justify"><em><span style="color:#000000;">1. To provide a model that adds another level of abstraction for <strong>data usage</strong> (EF, Astoria)</span></em></p>
<p align="justify"><em><span style="color:#000000;">2. To provide a model that adds another level of abstraction for more complicated <strong>physical data storage</strong> (Madison)</span></em></p>
<p align="justify"><em><span style="color:#000000;">In both cases you lose the “SQLness” of SQL.</span></em></p>
</blockquote>
<p align="justify">It is the &#8220;SQLness&#8221; that is important here and is the most difficult thing to find the right compromise for.  &#8220;SQLness&#8221; to an application developer may be easy to use database drivers and SQL syntax; to a database developer it may be the database programming language and environment; to a data modeller it may be foreign keys; to a DBA it may be the reliability and recoverability offered by transaction logs.  None of the models that have been presented satisfy the perspectives of <strong>all stakeholders</strong> so it is essentially impossible to scale out SQL by the definition of what everybody thinks a SQL database is.</p>
<p align="justify">So the pursuit of the holy grail of a scaled out SQL database is impossible.  Even if some really smart engineers and mathematicians are able to crack the problem (by their technically and academically correct definition of what a SQL database is), some DBA or developer in some IT shop somewhere is going to be pulling their hair out thinking that this new SQL doesn&#8217;t work the way it is supposed to.</p>
<p align="justify">What is needed is a gradual introduction of the alternatives and the education of architects as to what to use SQL for and what not to &#8211; within the same solution.  Just like you don&#8217;t need to store all of your video clips in database blob fields, there are other scenarios where SQL is not the only option.  Thinking about how to architect systems that run on smaller hardware, without the safety net of huge database servers, is quite challenging and is an area that we need to continuously discuss, debate and look at in more detail.</p>
<p align="justify">The days are the assumption that SQL will do everything for us is over and, like motorcyclists, we need to choose the right technology or else we will fall off.</p>
<p align="justify">Simon Munro</p>
<p align="justify"><a href="http://twitter.com/simonmunro">@simonmunro</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simonmunro.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simonmunro.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simonmunro.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simonmunro.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simonmunro.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simonmunro.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simonmunro.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simonmunro.wordpress.com/36/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simonmunro.wordpress.com/36/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simonmunro.wordpress.com/36/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=36&subd=simonmunro&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://simonmunro.com/2009/09/23/motorbikes-and-the-sqlness-of-sql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1b8b0098653a14d0338ffac00b5e52c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">simonmunro</media:title>
		</media:content>
	</item>
		<item>
		<title>The Trouble With Sharding</title>
		<link>http://simonmunro.com/2009/09/10/the-trouble-with-sharding/</link>
		<comments>http://simonmunro.com/2009/09/10/the-trouble-with-sharding/#comments</comments>
		<pubDate>Thu, 10 Sep 2009 21:35:35 +0000</pubDate>
		<dc:creator>simonmunro</dc:creator>
				<category><![CDATA[Cloud]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[SQL Azure]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Azure]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Data Access]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Sharding]]></category>

		<guid isPermaLink="false">http://simonmunro.wordpress.com/2009/09/10/the-trouble-with-sharding/</guid>
		<description><![CDATA[Database sharding, as a technique for scaling out SQL databases, has started to gain mindshare amongst developers.&#160; This has recently has been driven by the interest in SQL Azure, closely followed by disappointment because of the 10GB database size limitation, which in turn is brushed aside by Microsoft who, in a vague way, point to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=34&subd=simonmunro&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p align="justify">Database sharding, as a technique for scaling out SQL databases, has started to gain mindshare amongst developers.&#160; This has recently has been driven by the interest in SQL Azure, closely followed by disappointment because of the 10GB database size limitation, which in turn is brushed aside by Microsoft who, in a vague way, point to sharding as a solution to the scalability of SQL Azure.&#160; SQL Azure is a great product and sharding is an effective (and successful) technique, but before developers that have little experience with building scalable systems are let loose on sharding (or even worse, vendor support for ‘automatic’ sharding), we need to spend some time understanding what the issues are with sharding, the problem that we are trying to solve, and some ways forward to tackle the technical implementation.</p>
<p align="justify">The basic principles of sharding are fairly simple.&#160; The idea is to partition your data across two or more physical databases so that each database (or node) has a subset of the data.&#160; The theory is that in most cases a query or connection only needs to look in one particular shard for data, leaving the other shards free to handle other requests.&#160; Sharding is easily explained by a simple single table example.&#160; Lets say you have a large customer table that you want to split into two shards.&#160; You can create the shards by having all of the customers who’s names start with ‘A’ up to ‘L’ in one database and another for those from ‘M’ to ‘Z’, i.e. a partition key on the first character of the Last Name field.&#160; With 13 characters in each shard you would expect to have an even spread of customers across both shards but without data you can’t be sure – maybe there are more customers in the first shard than the second, and maybe you particular region has more in one than the other.&#160; </p>
<p align="justify">Lets say that you think that it will be better to shard customers by region to get a more even split and you have three shards; one for the US, one for Europe and one for the rest of the world.&#160; Although unlikely, you may find that although the number of rows is even that the load across each shard differs.&#160; 80% of your business may come from a single region or even if the amount of business is even, that the load will differ across different times of the day as business hours move across the world.&#160; The same problem exists across all primary entities that are candidates for sharding.&#160; For example, your product catalogue sharding strategy will have similar issues.&#160; You can use product codes for an even split, but you may find that top selling products are all in one shard.&#160; If you fix that you may find that top selling products are seasonal, so today’s optimal shard will not work at all tomorrow.&#160; The problem can be expressed as</p>
<blockquote><p align="justify"><em><font color="#000000">The selection of a partition key for sharding is dependant on the number of rows that will be in each shard and the usage profile of the candidate shard over time.</font></em></p>
</blockquote>
<p align="justify">Those are some of the issues just trying to figure out your sharding strategy – and that is the easy part.&#160; Sharding seems to have a rule that the application layer is responsible for understanding how the data is split across each shard (where the term ‘partition’ is applied more to the RDBMS only and partitioning is transparent to the application).&#160; This creates some problems: </p>
<ul>
<li>
<div align="justify">The application needs to maintain an index of partition keys in order to query the correct database when fetching data.&#160; This means that there is some additional overhead – database round trips, index caches and some transformation of application queries into the correctly connected database query.&#160; While simple for a single table, it is likely that a single object may need to be hydrated from multiple databases and figuring out where to go and fetch each piece of data, dynamically (depending on already fetched pieces of data), can be quite complex.</div>
</li>
<li>
<div align="justify">Any sharding strategy will always be biased towards a particular data traversal path.&#160; For example, in a customer biased sharding strategy you may have the related rows in the same shard (such as the related orders for the customer).&#160; This works well because the entire customer object and related collections can be hydrated from a single physical database connection, making the ‘My Orders’ page snappy.&#160; Unfortunately, although it works for the customer oriented traversal path, the order fulfilment path is hindered by current and open orders being scattered all over the place.</div>
</li>
<li>
<div align="justify">Because the application layer owns the indexes and is responsible for fetching data the database is rendered impotent as a query tool because each individual database knows nothing about the other shards and cannot execute a query accordingly.&#160; Even if there was shard index availability in each database, then it would trample all over the domain of the application layers’ domain, causing heaps of trouble.&#160; this means that all data access needs to go through the application layer , which create a lot of work to implement an object implementation of all database entities, their variations and query requirements.&#160; SQL cannot be used as a query language and neither can ADO, OleDB or ODBC be used – making it impossible to use existing query and reporting tools such as Reporting Services or Excel.</div>
</li>
<li>
<div align="justify">In some cases, sharding may be slower.&#160; Queries that need to aggregate or sort across multiple queries will not be able to take advantage of heavy lifting performed in the database.&#160; You will land up re-inventing the wheel by developing your own query optimisers in the application layer.</div>
</li>
</ul>
<p align="justify">In order to implement sharding successfully we need to deal with the following:</p>
<ol>
<li>
<div align="justify">The upfront selection of the best sharding strategy.&#160; What entities do we want to shard?&#160; What do we want to shard on?&#160; </div>
</li>
<li>
<div align="justify">The architecture and implementation of our application layer and data access layer.&#160; Do we roll our own?&#160; Do we use an existing framework?</div>
</li>
<li>
<div align="justify">The ability to monitor performance and identify problems with the shards in order to change (and re-optimise) our initially chosen sharding strategy over time as the amount of data and usage patterns change over time.</div>
</li>
<li>
<div align="justify">Consideration for other systems that may need to interface with our system, including large monolithic legacy systems and out-of-the-box reporting tools.</div>
</li>
</ol>
<p align="justify">So some things to think about if you are considering sharding:</p>
<ul>
<li>
<div align="justify">Sharding is no silver bullet and needs to be evaluated architecturally, just like any other major data storage and data access decision.</div>
</li>
<li>
<div align="justify">Sharding of the entire system may not be necessary.&#160; Perhaps it is only part of the web front-end that needs performance under high load that needs to be sharded and the backoffice transactional systems don’t need to be sharded at all.&#160; So you could build a system that has a small part of the system sharded and migrates data to a more traditional model (or data warehouse even) as needed.</div>
</li>
<li>
<div align="justify">Sharding for scalability is not the only approach for data – perhaps some use could be made of non-SQL storage.</div>
</li>
<li>
<div align="justify">The hand coding of all the application objects may be a lot of work and difficult to maintain.&#160; Use can be made of a framework that assists or a code generation tool could be used.&#160; However, it has to be feature complete and handle the issues raised in this post.</div>
</li>
<li>
<div align="justify">You will need to take a very careful approach to the requirements in a behavioural or domain driven style.&#160; Creating a solution where every entity is sharded, every object is made of shards, and every possible query combination that could be thought up is implemented is going to be a lot of work and result in a brittle unmaintainable system.</div>
</li>
<li>
<div align="justify">You need to look at your database vendors’ support of partitioning.&#160; Maybe it will be good enough for your solution and you don’t need to bother with sharding at all.</div>
</li>
<li>
<div align="justify">Sharding, by splitting data across multiple physical databases, looses some (maybe a lot) of the essence of SQL – queries, data consistency, foreign keys, locking.&#160; You will need to understand if that loss is worthwhile – maybe you will land up with a data store that is too dumbed down to be useful.</div>
</li>
</ul>
<p align="justify">If you are looking at a Microsoft stack specifically, there are some interesting products and technologies that may affect your decisions.&#160; These observations are purely my own and are not gleaned from NDA sourced information.</p>
<ul>
<li>
<div align="justify">ADO.NET Data Services (Astoria) could be the interface at the application level in front of sharded objects.&#160; It replaces the SQL language with a queryable RESTful language.</div>
</li>
<li>
<div align="justify">The Entity Framework is a big deal for Microsoft and will most likely, over time, be the method with which Microsoft delivers sharding solutions.&#160; EF is destined to be supported by other Microsoft products, such as SQL Reporting Services, SharePoint and Office, meaning that sharded EF models will be able to be queried with standard tools.&#160; Also, Astoria supports EF already, providing a mechanism for querying the data with a non SQL language.</div>
</li>
<li>
<div align="justify">Microsoft is a pretty big database player and has some smart people on the database team.&#160; One would expect that they will put effort into the SQL core to better handle partitioning within the SQL model.&#160; They already have Madison, which although more read-only and quite closely tuned for specific hardware configurations, offers a compelling parallelised database platform.</div>
</li>
<li>
<div align="justify">The Azure platform has more than just SQL Azure – it also has Azure storage which is a really good storage technology for distributed parallel solutions.&#160; It can also be used in conjunction with SQL Azure within an Azure solution, allowing a hybrid approach where SQL Azure and Azure Storage play to their particular strengths.</div>
</li>
<li>
<div align="justify">The SQL azure team has been promising some magic to come out of the Patterns &amp; Practices team – we’ll have to wait and see.</div>
</li>
<li>
<div align="justify">Ayende seems to want to add sharding to <a href="http://ayende.com/Blog/archive/2009/09/06/sql-azure-sharding-and-nhibernate-a-call-for-volunteers.aspx">nHibernate</a>.</div>
</li>
</ul>
<p align="justify">Database sharding has typically been the domain of large websites that have reached the limits of their own, really big, datacentres and have the resources to shard their data.&#160; The cloud, with small commodity servers, such as those used with SQL Azure, has raised sharding as a solution for smaller websites but they may not be able to pull off sharding because of a lack of resources and experience.&#160; The frameworks aren’t quite there and the tools don’t exist (like an analysis tool for candidate shards based on existing data) – and without those tools it may be a daunting task.</p>
<p align="justify">I am disappointed that the SQL Azure team throws out the bone of sharding as the solution to their database size limitation without backing it up with some tools, realistic scenarios and practical advice.&#160; Sharding a database requires more than just hand waving and PowerPoint presentations and requires a solid engineering approach to the problem.&#160; Perhaps they should talk more to the Azure services team to offer hybrid SQL Azure and Azure Storage architectural patterns that are compelling and architecturally valid.&#160; I am particularly concerned when it is offered as a simple solution to small businesses that have to make a huge investment in a technology and and architecture that they are possibly unable to maintain.</p>
<p align="justify">Sharding will, however, gain traction and is a viable solution to scaling out databases, SQL Azure and others.&#160; I will try and do my bit by communicating some of the issues and solutions – let me know in the comments if there is a demand.</p>
<p align="justify">Simon Munro</p>
<p align="justify"><a href="http://twitter.com/simonmunro">@simonmunro</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/simonmunro.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/simonmunro.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/simonmunro.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/simonmunro.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/simonmunro.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/simonmunro.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/simonmunro.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/simonmunro.wordpress.com/34/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/simonmunro.wordpress.com/34/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/simonmunro.wordpress.com/34/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=simonmunro.com&blog=8574700&post=34&subd=simonmunro&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://simonmunro.com/2009/09/10/the-trouble-with-sharding/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/b1b8b0098653a14d0338ffac00b5e52c?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">simonmunro</media:title>
		</media:content>
	</item>
	</channel>
</rss>