<?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>Developing For The Cloud</title>
	<atom:link href="http://developingforthecloud.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://developingforthecloud.wordpress.com</link>
	<description>Strategies and Patterns To Develop Applications For The Cloud</description>
	<lastBuildDate>Fri, 16 Oct 2009 00:39:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='developingforthecloud.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Developing For The Cloud</title>
		<link>http://developingforthecloud.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://developingforthecloud.wordpress.com/osd.xml" title="Developing For The Cloud" />
	<atom:link rel='hub' href='http://developingforthecloud.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Buzz In The Cloud : Cloud Computing Is The New Web2.0</title>
		<link>http://developingforthecloud.wordpress.com/2009/10/15/buzz-in-the-cloud-cloud-computing-is-the-new-web2-0/</link>
		<comments>http://developingforthecloud.wordpress.com/2009/10/15/buzz-in-the-cloud-cloud-computing-is-the-new-web2-0/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 00:39:36 +0000</pubDate>
		<dc:creator>Murali</dc:creator>
				<category><![CDATA[Amazon Cloud]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Force.com]]></category>
		<category><![CDATA[IaaS]]></category>
		<category><![CDATA[Microsoft Azure]]></category>
		<category><![CDATA[PaaS]]></category>
		<category><![CDATA[SaaS]]></category>
		<category><![CDATA[SalesForce]]></category>

		<guid isPermaLink="false">http://developingforthecloud.wordpress.com/2009/10/15/buzz-in-the-cloud-cloud-computing-is-the-new-web2-0/</guid>
		<description><![CDATA[These days, not a single day goes by without talking, hearing or reading something about Cloud Computing. It appears, the whole cloud (I mean the world; don’t blame me for overusing the word ‘cloud’, I just want to make a point) is totally excited about ‘Cloud’ suddenly. In a way, Cloud Computing is the new [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=40&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>These days, not a single day goes by without talking, hearing or reading something about Cloud Computing. It appears, the whole cloud (I mean the world; don’t blame me for overusing the word ‘cloud’, I just want to make a point) is totally excited about ‘Cloud’ suddenly.</p>
<p>In a way, Cloud Computing is the new web2.0, in terms of hype, buzz and activity all around. Every business has something to offer ‘on cloud’. Every consultant is busy selling strategies to cash in on the cloud. And every analyst is preparing a report on the cloud. Every developer is trying to equip to engineer applications on the cloud.</p>
<p><strong>Simply put ..</strong></p>
<p>What is really Cloud computing is all about? Why not look up the definition of Cloud Computing by going to the Encyclopedia on the cloud (??), Wikipedia.</p>
<blockquote><p>The term <strong><i>cloud</i> is used as a </strong><a href="http://en.wikipedia.org/wiki/Metaphor"><strong>metaphor</strong></a><strong> for the Internet</strong>, based on how the Internet is depicted in <a href="http://en.wikipedia.org/wiki/Computer_network_diagram">computer network diagrams</a> and is an <a href="http://en.wikipedia.org/wiki/Abstraction">abstraction</a> of the underlying infrastructure it conceals. – <a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">Wikipedia</a></p>
<p><strong>Cloud computing</strong> is an example of computing in which dynamically <a href="http://en.wikipedia.org/wiki/Scalability">scalable</a> and often <a href="http://en.wikipedia.org/wiki/Platform_virtualization">virtualized</a> resources are provided <a href="http://en.wikipedia.org/wiki/Everything_as_a_service">as a service</a> over the <a href="http://en.wikipedia.org/wiki/Internet">Internet</a>. – <a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">Wikipedia</a></p>
</blockquote>
<p>Though Cloud Computing could be everything for everybody (just like Web2.0), most stakeholders would agree to confine Cloud Computing in three forms.</p>
<p><strong>Three Forms of Cloud Computing</strong></p>
<p><img style="display:inline;margin:0 0 0 5px;" alt="Cloud Computing Stack.svg" align="right" src="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cloud_Computing_Stack.svg/250px-Cloud_Computing_Stack.svg.png" width="273" height="327" /></p>
<p>1. Software-As-A-Service (SaaS)</p>
<p>Refers to Software Applications offered over the internet as a service. SalesForce.com is an excellent example and one of the most successful SaaS offerings. BaseCamp for Project Management, Google Apps are few other successful and well known SaaS offerings.</p>
<p>2. Infrastructure As A Service (IaaS)</p>
<p>Refers to Servers, Storage and Networks offered as a service over the internet.&#160; Most Internet hosting providers fall in to this space. Amazon ECS, Rackspace, AT&amp;T, Akamai are very good examples. They offer servers, databases, storage area networks, networking gear, content delivery networks as a service.</p>
<p>3. Platform As A Service (PaaS)</p>
<p>These providers offer Infrastructure as a Service with a limitation or leverage (depends on what you are looking for) that all applications must be built and run on top of their often proprietary platforms or technology stacks. PaaS inherently include IaaS. <a class="zem_slink" title="Google App Engine" href="http://code.google.com/appengine/" rel="homepage">Google App Engine</a>, Microsoft <a class="zem_slink" title="Azure Services Platform" href="http://en.wikipedia.org/wiki/Azure_Services_Platform" rel="wikipedia">Azure</a>, SalesForce <a class="zem_slink" title="Force.com" href="http://www.force.com/" rel="homepage">Force.com</a> are fine examples for this service.</p>
<p>SaaS and IaaS have been offered in the market for a while. Though there are lots of advances in the technicalities of managing them and lot more new players in the market, these services are not entirely NEW.</p>
<p>What is new in Cloud Computing is the third service, Platform-As-A-Service (PaaS). Not only Infrastructure to run your Business applications but a full platform to develop those applications. It is quite unlikely that these PaaS offerings (at least initially) will not provide a smoother migration for Enterprises to adopt Cloud Computing as this means re-developing most of their business applications.</p>
<p><strong>Easier Adoption Path for Enterprises </strong></p>
<p>For most enterprises, the only option that make sense at this point is IaaS. Instead of running their own data centers, applications can be moved to a public Cloud or a private cloud or managed cloud with little to no impacts. Cost of migrating to a Cloud will be quite insignificant and offer the best level of cost savings, while not forcing a vendor lock-in as applications run on generic platforms. This is the best option.</p>
<p>Or Enterprises can migrate to SaaS offerings, if there are comparable applications are available. For instance, instead of running your own CRM solution on premises, can migrate to SalesForce.com.&#160; But it is a big question for how much generic application like SalesForce.com can offer unique capabilities for each organization, a primary reason why Enterprises developed their own software in the first place. Vendor + Application lock-in is implicit. All Employees and Customers need to be retrained in new sets of applications. Extensive customization is required.</p>
<p>The latest entry in to Cloud Computing, the PaaS is the most Unlikely path of migration of any Enterprise application to the cloud, as this needs re-architecture of their applications and Migration of application software as well&#160; along with data migration. And this would be quite expensive and time consuming for any non-trivial, uncommon business application. Vendor + Platform lock-in is implicit.&#160; Need to retrain Software Development groups and it could be quite extensive as the Platform could be significantly different from generic platform most software developers are comfortable with.</p>
<p>That’s my 2 cents on the Cloud. You can read a little more on the <a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">Wikipedia</a>. Or anywhere on the Cloud (:-)).</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developingforthecloud.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developingforthecloud.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developingforthecloud.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developingforthecloud.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developingforthecloud.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developingforthecloud.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developingforthecloud.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developingforthecloud.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developingforthecloud.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developingforthecloud.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developingforthecloud.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developingforthecloud.wordpress.com/40/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developingforthecloud.wordpress.com/40/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developingforthecloud.wordpress.com/40/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=40&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developingforthecloud.wordpress.com/2009/10/15/buzz-in-the-cloud-cloud-computing-is-the-new-web2-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3f0dc7b60f049f14476464a98e653ff4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Murali</media:title>
		</media:content>

		<media:content url="http://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cloud_Computing_Stack.svg/250px-Cloud_Computing_Stack.svg.png" medium="image">
			<media:title type="html">Cloud Computing Stack.svg</media:title>
		</media:content>
	</item>
		<item>
		<title>Isn&#8217;t Cloud Computing Just Hardware-As-A-Service?</title>
		<link>http://developingforthecloud.wordpress.com/2009/10/11/isnt-cloud-computing-just-hardware-as-a-service/</link>
		<comments>http://developingforthecloud.wordpress.com/2009/10/11/isnt-cloud-computing-just-hardware-as-a-service/#comments</comments>
		<pubDate>Mon, 12 Oct 2009 03:24:47 +0000</pubDate>
		<dc:creator>Murali</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[SaaS]]></category>

		<guid isPermaLink="false">http://developingforthecloud.wordpress.com/2009/10/11/isnt-cloud-computing-just-hardware-as-a-service/</guid>
		<description><![CDATA[Cloud Computing is the new web2.0, in terms of hype and buzz all around. I hate to invent yet another Buzzword. But isn’t Cloud Computing just a Hardware-As-A-Service (HaaS)? If you look at the definition on Wikipedia, that is what Cloud Computing is all about. Isn’t it? Cloud computing is an example of computing in [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=39&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Cloud Computing is the new web2.0, in terms of hype and buzz all around. I hate to invent yet another Buzzword. But isn’t Cloud Computing just a Hardware-As-A-Service (HaaS)? </p>
<p>If you look at the definition on Wikipedia, that is what Cloud Computing is all about. Isn’t it?</p>
<blockquote><p><b>Cloud computing</b> is an example of computing in which dynamically <a href="http://en.wikipedia.org/wiki/Scalability">scalable</a> and often <a href="http://en.wikipedia.org/wiki/Platform_virtualization">virtualized</a> resources are provided <a href="http://en.wikipedia.org/wiki/Everything_as_a_service">as a service</a> over the <a href="http://en.wikipedia.org/wiki/Internet">Internet</a>. – <a href="http://en.wikipedia.org/wiki/Cloud_computing" target="_blank">Wikipedia</a></p>
</blockquote>
<p>If you agree in principle that Cloud Computing = HaaS, then there is nothing really NEW about it. It must be as old as the concept of renting a server or the first internet Hosting company. And, all internet (as well as in house applications) that we know of did scale as needed. They are all in principle dynamically scalable. Didn’t they? </p>
<p><strong>Then why so much undue buzz about Cloud Computing?</strong></p>
<p>Is it because now there are more players in the hosting market? Amazon, Microsoft, Google, Rackspace … etc.</p>
<p>Or is it because of the new Billing model of hosting services that charges based on actual usage rather than a fixed cost? </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developingforthecloud.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developingforthecloud.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developingforthecloud.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developingforthecloud.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developingforthecloud.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developingforthecloud.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developingforthecloud.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developingforthecloud.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developingforthecloud.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developingforthecloud.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developingforthecloud.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developingforthecloud.wordpress.com/39/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developingforthecloud.wordpress.com/39/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developingforthecloud.wordpress.com/39/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=39&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developingforthecloud.wordpress.com/2009/10/11/isnt-cloud-computing-just-hardware-as-a-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3f0dc7b60f049f14476464a98e653ff4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Murali</media:title>
		</media:content>
	</item>
		<item>
		<title>TechCrunch RoundTable : Whose Cloud Is It Anyway?</title>
		<link>http://developingforthecloud.wordpress.com/2009/09/16/techcrunch-roundtable-whose-cloud-is-it-anyway/</link>
		<comments>http://developingforthecloud.wordpress.com/2009/09/16/techcrunch-roundtable-whose-cloud-is-it-anyway/#comments</comments>
		<pubDate>Wed, 16 Sep 2009 14:51:42 +0000</pubDate>
		<dc:creator>Murali</dc:creator>
				<category><![CDATA[Amazon Cloud]]></category>
		<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Ning and FriendFeed]]></category>
		<category><![CDATA[Rackspace]]></category>
		<category><![CDATA[SalesForce]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[Yahoo]]></category>

		<guid isPermaLink="false">http://developingforthecloud.wordpress.com/2009/09/16/techcrunch-roundtable-whose-cloud-is-it-anyway/</guid>
		<description><![CDATA[Cloud is many things to many people. It is a a data center in the sky, a platform for a new bread &#8230; and so on.&#160; Watch this Round Table discussion by almost ALL of the Whos Who in the cloud. Rackspace, Google, SalesForce, Amazon, Microsoft, Yahoo, Sun, Ning and FriendFeed. &#160; Will add more [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=38&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Cloud is many things to many people. It is a a data center in the sky, a platform for a new bread &#8230; and so on.&#160; Watch this Round Table discussion by almost ALL of the Whos Who in the cloud. </p>
<p>Rackspace, Google, SalesForce, Amazon, Microsoft, Yahoo, Sun, Ning and FriendFeed.</p>
<p align="center"><a href="http://developingforthecloud.files.wordpress.com/2009/09/image.png"><img style="border-bottom:0;border-left:0;display:block;float:none;margin-left:auto;border-top:0;margin-right:auto;border-right:0;" title="image" border="0" alt="image" src="http://developingforthecloud.files.wordpress.com/2009/09/image_thumb.png?w=400&#038;h=301" width="400" height="301" /></a>&#160; </p>
<p align="center">
<p align="left">Will add more notes on the discussion shortly.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developingforthecloud.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developingforthecloud.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developingforthecloud.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developingforthecloud.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developingforthecloud.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developingforthecloud.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developingforthecloud.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developingforthecloud.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developingforthecloud.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developingforthecloud.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developingforthecloud.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developingforthecloud.wordpress.com/38/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developingforthecloud.wordpress.com/38/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developingforthecloud.wordpress.com/38/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=38&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developingforthecloud.wordpress.com/2009/09/16/techcrunch-roundtable-whose-cloud-is-it-anyway/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3f0dc7b60f049f14476464a98e653ff4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Murali</media:title>
		</media:content>

		<media:content url="http://developingforthecloud.files.wordpress.com/2009/09/image_thumb.png" medium="image">
			<media:title type="html">image</media:title>
		</media:content>
	</item>
		<item>
		<title>Cloud For Enterprises : Why They Must Consider Cloud?</title>
		<link>http://developingforthecloud.wordpress.com/2009/09/13/cloud-for-enterprises-a-sample-use-case/</link>
		<comments>http://developingforthecloud.wordpress.com/2009/09/13/cloud-for-enterprises-a-sample-use-case/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 19:21:46 +0000</pubDate>
		<dc:creator>Murali</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Enterprises]]></category>

		<guid isPermaLink="false">http://developingforthecloud.wordpress.com/?p=32</guid>
		<description><![CDATA[Some analysts argue that &#8216;Cloud Computing&#8217; is only for small businesses, ISVs and web startups where there is a need to start low (and cheap) and scale later. The underlying assumption behind the argument is that, in enterprises (read as large businesses), demand is quite predictable and doesn&#8217;t change so often. Well, that is not [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=32&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some analysts argue that &#8216;Cloud Computing&#8217; is only for small businesses, ISVs and web startups where there is a need to start low (and cheap) and scale later. The underlying assumption behind the argument is that, in enterprises (read as large businesses), demand is quite predictable and doesn&#8217;t change so often.</p>
<p>Well, that is not quite true. While number of Employees in the organization may not change so often, their usage patterns are much like any web application startup.</p>
<p>For instance, take an enterprise with 10,000 employees. The enterprise IT department has developed an intranet web application for Performance Reviews. The web application will be accessed by Employees and Managers at the beginning of the year to set Goals. And will be accessed in December to appraise performance with respect to the set goals. The application will also be accessed sparingly by employees and managers through out the year to make necessary status updates, follow ups on action plans etc.</p>
<p>Typically, IT department will design the system such that it can handle the load during the worst peak hours.  In most Enterprises, the most productive day to get any thing done is the Last day. So, the system shall be designed to handle the load of all 10000 employees accessing the system in a single day.  Assume that need 5 servers to handle the load. So what happens to those 5 servers for the rest of the year?</p>
<p>If the enterprise uses a cloud service (could be an in-house, partner or a public cloud service), the firm can run the least possible configuration throughout the year and scale up to 5 servers during the last few days of the year or whenever they need (like a mid-year reviews in June/July).</p>
<p>There are many Enterprise applications that are normally run with a fixed infrastructure designed to take care of peak loads. For instance Expense reporting applications (normally accessed only at end of month), Payroll applications(normally accessed only at the beginning of the month or once in a fortnight) and even Email servers(normally accessed only during office hours). Most Enterprise applications are not accessed all-the-time. Cloud service is a perfect target for all those applications and could save an enterprise a huge chunk of their budgets.</p>
<p>So, Cloud Computing will benefit businesses large and small alike. In many cases, larger the enterprise, larger will be the savings if Cloud computing is used.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developingforthecloud.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developingforthecloud.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developingforthecloud.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developingforthecloud.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developingforthecloud.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developingforthecloud.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developingforthecloud.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developingforthecloud.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developingforthecloud.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developingforthecloud.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developingforthecloud.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developingforthecloud.wordpress.com/32/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developingforthecloud.wordpress.com/32/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developingforthecloud.wordpress.com/32/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=32&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developingforthecloud.wordpress.com/2009/09/13/cloud-for-enterprises-a-sample-use-case/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3f0dc7b60f049f14476464a98e653ff4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Murali</media:title>
		</media:content>
	</item>
		<item>
		<title>What is Cloud Computing anyways? (contd)</title>
		<link>http://developingforthecloud.wordpress.com/2009/09/13/what-is-cloud-computing-anyways-contd/</link>
		<comments>http://developingforthecloud.wordpress.com/2009/09/13/what-is-cloud-computing-anyways-contd/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 15:12:52 +0000</pubDate>
		<dc:creator>Murali</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>

		<guid isPermaLink="false">http://developingforthecloud.wordpress.com/?p=29</guid>
		<description><![CDATA[Some more Tech celebrities trying to explain &#8216;Cloud Computing&#8217; at Web2.0 expo.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=29&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Some more Tech celebrities trying to explain &#8216;Cloud Computing&#8217; at Web2.0 expo.</p>
<span style="text-align:center; display: block;"><a href="http://developingforthecloud.wordpress.com/2009/09/13/what-is-cloud-computing-anyways-contd/"><img src="http://img.youtube.com/vi/6PNuQHUiV3Q/2.jpg" alt="" /></a></span>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developingforthecloud.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developingforthecloud.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developingforthecloud.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developingforthecloud.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developingforthecloud.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developingforthecloud.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developingforthecloud.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developingforthecloud.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developingforthecloud.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developingforthecloud.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developingforthecloud.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developingforthecloud.wordpress.com/29/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developingforthecloud.wordpress.com/29/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developingforthecloud.wordpress.com/29/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=29&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developingforthecloud.wordpress.com/2009/09/13/what-is-cloud-computing-anyways-contd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3f0dc7b60f049f14476464a98e653ff4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Murali</media:title>
		</media:content>
	</item>
		<item>
		<title>What is Cloud Computing anyway?</title>
		<link>http://developingforthecloud.wordpress.com/2009/09/13/what-is-cloud-computing-anyway/</link>
		<comments>http://developingforthecloud.wordpress.com/2009/09/13/what-is-cloud-computing-anyway/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 14:05:54 +0000</pubDate>
		<dc:creator>Murali</dc:creator>
				<category><![CDATA[Cloud Computing]]></category>
		<category><![CDATA[Amazon]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[IBM]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[SalesForce]]></category>

		<guid isPermaLink="false">http://developingforthecloud.wordpress.com/2009/09/13/what-is-cloud-computing-anyway/</guid>
		<description><![CDATA[It will be totally surprising, if you haven’t heard any thing about ‘Cloud’ or precisely ‘Cloud Computing’ these days.  Cloud is what web2.0 was a while back. A buzz word to start with. But also a radical shift in the way we see IT infrastructure. No wonder, every company that needs IT or in IT [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=15&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>It will be totally surprising, if you haven’t heard any thing about ‘Cloud’ or precisely ‘Cloud Computing’ these days.  <strong>Cloud</strong> is what <strong>web2.0</strong> was a while back. A buzz word to start with. But also a radical shift in the way we see IT infrastructure. No wonder, every company that needs IT or in IT wants to do something on the Cloud.</p>
<p>Let us see if there is a simpler way to define ‘<strong>Cloud Computing</strong>’ or simply <strong>cloud</strong>. Wikipedia, the Britannica for today’s world says,</p>
<blockquote><p><strong>Cloud computing</strong> is a paradigm of computing in which dynamically <a href="http://en.wikipedia.org/wiki/Scalability">scalable</a> and often <a href="http://en.wikipedia.org/wiki/Platform_virtualization">virtualized</a> resources are provided <a href="http://en.wikipedia.org/wiki/Everything_as_a_service">as a service</a> over the <a href="http://en.wikipedia.org/wiki/Internet">Internet</a>.</p></blockquote>
<p>And if that doesn’t make any sense to you, watch this IBM advertisement that appears to have the intent of explaining what really cloud is all about.</p>
<blockquote>
<div id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:2d24baa2-3f71-41b3-962d-7360b56629d6" class="wlWriterEditableSmartContent" style="width:425px;display:block;float:none;margin-left:auto;margin-right:auto;padding:0;">
<div><span style="text-align:center; display: block;"><a href="http://developingforthecloud.wordpress.com/2009/09/13/what-is-cloud-computing-anyway/"><img src="http://img.youtube.com/vi/QB2hJPAQY-k/2.jpg" alt="" /></a></span></div>
</div>
</blockquote>
<p>What do you think about ‘Cloud’ now?</p>
<p>If you are inclined for more Technical or Business jargon, watch videos on this page where some of the Tech/Business celebrities in Software industry explaining the concept of ‘Cloud Computing’. The list of celebrities include Larry Ellison (Oracle), SalesForce, Eric Schmidt (Google), Steve Balmer (Microsoft), Werner Vogels(Amazon) and of course an Analyst that knows it all (anything for that matter).</p>
<blockquote><p><a href="http://www.prudentcloud.com/technology/cloud-computing-technology/hell-cloud-computing-10092009/" target="_blank">Check out</a> videos here.</p></blockquote>
<p>Hope it made sense now.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developingforthecloud.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developingforthecloud.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developingforthecloud.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developingforthecloud.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developingforthecloud.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developingforthecloud.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developingforthecloud.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developingforthecloud.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developingforthecloud.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developingforthecloud.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developingforthecloud.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developingforthecloud.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developingforthecloud.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developingforthecloud.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=15&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developingforthecloud.wordpress.com/2009/09/13/what-is-cloud-computing-anyway/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3f0dc7b60f049f14476464a98e653ff4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Murali</media:title>
		</media:content>
	</item>
		<item>
		<title>Scaling Rails Applications on Amazon Cloud</title>
		<link>http://developingforthecloud.wordpress.com/2009/09/13/scaling-rails-applications-on-amazon-cloud/</link>
		<comments>http://developingforthecloud.wordpress.com/2009/09/13/scaling-rails-applications-on-amazon-cloud/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 13:54:45 +0000</pubDate>
		<dc:creator>Murali</dc:creator>
				<category><![CDATA[Amazon Cloud]]></category>
		<category><![CDATA[Data On The Cloud]]></category>
		<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[Scalability]]></category>
		<category><![CDATA[RDBMS]]></category>

		<guid isPermaLink="false">http://developingforthecloud.wordpress.com/?p=11</guid>
		<description><![CDATA[The application demonstrated in this talk is hardly handling about 500 users, but demonstrate some interesting points about scalability that could be almost taken for granted in Cloud hosting services like Amazon. Also a good introduction to Cloud if you are not already on cloud 9. Scaling Rails Applications In The Cloud Listen to the MP3 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=11&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The application demonstrated in this talk is hardly handling about 500 users, but demonstrate some interesting points about scalability that could be almost taken for granted in Cloud hosting services like Amazon. Also a good introduction to Cloud if you are not already on cloud 9.</p>
<blockquote><p><a style="display:block;font:14px helvetica,arial,sans-serif;text-decoration:underline;margin:12px 0 3px;" title="Scaling Rails Applications In The Cloud" href="http://www.slideshare.net/subelsky/scaling-rails-applications-in-the-cloud?type=powerpoint">Scaling Rails Applications In The Cloud</a></p>
<p>Listen to the <a href="http://audio.sxsw.com/2009/podcasts/D2%20SXSW_PODCASTS/031409_PM1_Hil_RmA_ScalingRailsApps.mp3" target="_blank">MP3 of the presentation here</a>.</p></blockquote>
<p>Watch slide 23, the non-RDBMS bonus carefully. If you have read about my previous post on this topic, <a href="http://developingforthecloud.wordpress.com/2009/09/13/shifting-away-from-tables-to-entity-models/" target="_blank">Shifting Away From Tables, To Entity Models</a>, the point comes home pretty convincingly in this presentation.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developingforthecloud.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developingforthecloud.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developingforthecloud.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developingforthecloud.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developingforthecloud.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developingforthecloud.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developingforthecloud.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developingforthecloud.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developingforthecloud.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developingforthecloud.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developingforthecloud.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developingforthecloud.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developingforthecloud.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developingforthecloud.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=11&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developingforthecloud.wordpress.com/2009/09/13/scaling-rails-applications-on-amazon-cloud/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://audio.sxsw.com/2009/podcasts/D2%20SXSW_PODCASTS/031409_PM1_Hil_RmA_ScalingRailsApps.mp3" length="20036729" type="audio/mpeg" />
	
		<media:content url="http://1.gravatar.com/avatar/3f0dc7b60f049f14476464a98e653ff4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Murali</media:title>
		</media:content>
	</item>
		<item>
		<title>Shifting Away From Tables, To Entity Models</title>
		<link>http://developingforthecloud.wordpress.com/2009/09/13/shifting-away-from-tables-to-entity-models/</link>
		<comments>http://developingforthecloud.wordpress.com/2009/09/13/shifting-away-from-tables-to-entity-models/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 13:42:48 +0000</pubDate>
		<dc:creator>Murali</dc:creator>
				<category><![CDATA[Data On The Cloud]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Windows Azure]]></category>
		<category><![CDATA[DDD]]></category>
		<category><![CDATA[Entity Models]]></category>
		<category><![CDATA[RDBMS]]></category>

		<guid isPermaLink="false">http://developingforthecloud.wordpress.com/?p=6</guid>
		<description><![CDATA[RDBMS (Relational data management systems), simply put, most Database systems allow us to create data models of businesses in terms of rows and columns in a table. Tables can be ‘related’ to indicate dependencies of data between tables. RDBMS was one of the best things that ever happened to software abstractions. Every business domain has [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=6&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">RDBMS (Relational data management systems), simply put, most Database systems allow us to create data models of businesses in terms of rows and columns in a table. Tables can be ‘related’ to indicate dependencies of data between tables. RDBMS was one of the best things that ever happened to software abstractions. Every business domain has been modeled to be a set of tables and relations between them.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">However, recently another paradigm is taking shape, called as Domain Driven Development, DDD for short, that emphasizes the importance of modeling a business in the domain of the business itself rather than dictated by abstractions tied to tables. DDD clout calls them “Entities” (not Tables).  In certain ways, I read this shift from RDBMS to Entity model as “shift from horizontal (table) abstractions to hierarchical (entity) abstractions”.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">While Entity models may provide a better modeling, in a well designed database model, based on my experience, most of you may not find any obvious issues with current table models. And definitely no need to remodel your systems to embrace entity models, right away.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">There may be lots of players in the Industry that are supporting Entity frameworks, but based on my current and recent work, two companies I must mention here.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;"><strong>Microsoft</strong></p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">Microsoft released ADO.NET based Entity framework and even made it easier to create those entity models from existing RDBMS tables. And almost every .NET project I have looked at recently is buzzing about DDD, ACL (Anti corruption layer) and Entity framework. LINQ is something can not be omitted, of course.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">And on its Cloud offering, Windows Azure, Microsoft is providing both options. Azure Storage (read non-RDBMS and optimized for cloud) and Azure SQL (read SQL Server running on the cloud). That makes transitioning from an in-house application to the cloud smoothly.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;"><strong>Google App Engine</strong></p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">And Google App Engine doesn’t support RDBMS abstraction at all but only support Entity models. (No JOIN support in App Engine will force you to think different and prefer one over the other, whether you like it or not).</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">Google App Engine team aptly explains the scalability reasons behind moving away from RDBMS and creating its own BigTable.</p>
<blockquote>
<h5 style="font-family:georgia, arial;color:#999999;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;line-height:1.5em;font-size:12px;font-weight:bold;border:0 none initial;margin:0 0 5px;padding:0;"><a style="font-family:georgia, arial;color:#366799;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;line-height:1.5em;font-size:12px;border:0 none initial;margin:0;padding:0;" href="http://googleappengine.blogspot.com/2009/02/back-to-future-for-data-storage.html">Back to the Future for Data Storage</a></h5>
<p style="font-family:georgia, arial;color:#366799;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;line-height:1.5em;font-size:12px;border:0 none initial;margin:0 0 10px;padding:0;">Building a massive, distributed datastore which can service requests at an extremely high throughput is something that we’ve focused on at Google. We created something called <a style="font-family:georgia, arial;color:#366799;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;line-height:1.5em;font-size:12px;border:0 none initial;margin:0;padding:0;" href="http://labs.google.com/papers/bigtable.html">Bigtable</a> that underlies the datastore in App Engine. The design for Bigtable focused on scalability across a distributed system so it may operate a bit differently than databases you’ve worked with before, such as not supporting joins. This isn’t an accident — when you build a system that can scale to the size that Bigtable can there’s no way to do a general purpose join on data sets that size and still have them be performant.</p>
</blockquote>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;"><strong>So does this mean the end of RDBMS abstractions?</strong></p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">As I mentioned earlier, I don’t see any reason to remodel existing systems right away. The abstraction in Entity models could still be carried out with existing Table models. Unless you got huge data sets and you have faithfully using the deepest normalization possible. And of course, only if the top most concern you have is scalability or performance.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">And I am pretty sure RDBMS systems will stay for a longer time, as almost all data is currently stored in some form of RDBMS system. But Software modeling via RDBMS abstractions for sure, will change.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developingforthecloud.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developingforthecloud.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developingforthecloud.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developingforthecloud.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developingforthecloud.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developingforthecloud.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developingforthecloud.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developingforthecloud.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developingforthecloud.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developingforthecloud.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developingforthecloud.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developingforthecloud.wordpress.com/6/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developingforthecloud.wordpress.com/6/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developingforthecloud.wordpress.com/6/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=6&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developingforthecloud.wordpress.com/2009/09/13/shifting-away-from-tables-to-entity-models/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3f0dc7b60f049f14476464a98e653ff4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Murali</media:title>
		</media:content>
	</item>
		<item>
		<title>Google App Engine : Lazy Data Migration With Versions</title>
		<link>http://developingforthecloud.wordpress.com/2009/09/13/google-app-engine-lazy-data-migration-with-versions/</link>
		<comments>http://developingforthecloud.wordpress.com/2009/09/13/google-app-engine-lazy-data-migration-with-versions/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 13:29:13 +0000</pubDate>
		<dc:creator>Murali</dc:creator>
				<category><![CDATA[Data On The Cloud]]></category>
		<category><![CDATA[Google App Engine]]></category>
		<category><![CDATA[Entity Models]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[RDBMS]]></category>

		<guid isPermaLink="false">http://developingforthecloud.wordpress.com/?p=3</guid>
		<description><![CDATA[If you have already used Google AppEngine to develop an application, you would have already scratched your head around data migration. And Google App Engine is not that great when it comes to Agile style iterations of web development. In its own way, it forces you to design models up front instead of making life [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=3&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">If you have already used Google AppEngine to develop an application, you would have already scratched your head around data migration. And Google App Engine is not that great when it comes to Agile style iterations of web development. In its own way, it forces you to design models up front instead of making life easier evolving over time.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">I have been developing a community application, <a style="font-family:verdana, 'Trebuchet MS', arial;color:#366799;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;border:0 none initial;margin:0;padding:0;" href="http://andhra.yestopolitics.com/" target="_blank">‘Yes to Politics’</a> for friends in Andhra Pradesh, India to interact with politics in some strangely different way. More about this app later, let me share about data migration.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">I have around 28000 entities in a model and trust me, I tried to cover all my needs in the design of the model up front.  Well, software development doesn’t work that way. I realized I needed another property in the model and I needed to give some default value too.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">When you add a new property to an existing model, Google App engine doesn’t fill the default value for the existing set of entities. So when you access that new property on existing rows, you will meet with exceptions as they never existed for them. You can check if that property exist before accessing it. Well, Python provide no way to do it. The only way to find whether that property exists or not is by accessing it and catching an exception when it doesn’t exist. Not a cool way, but that’s almost the best method we got.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">And, you can not use that new property in queries too that need to search in the existing set of entities. There is a way we can fix it.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">Define your new property and then loop through all your entities and set this new default value.  This is no easy job to do on Google App engine. First, you need to setup a new URL and a HTTP handler to take care of this maintenance. Second, you can only update so many entities in one go without exceeding restrictions in terms of time and processing power. So you need to split the task in to easier bits, say, update 10 entities at a time and create a handler to auto refresh every few seconds to take care of all updates. And then run that handler in the browser and wait till it is finished.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">I have about 28000 entities and that would mean I have to call that handler almost 2800 times (10 entities at once) and better give some wait between calls to make App Engine restrictions happy. For my model, 5 sec between each call worked fine. Any quicker, App Engine throws an exception. And it took about 25 minutes for me to finish the process.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">I thought it will be anyway one time task so didn’t regret waiting that long. But then after all that is done and happily using it for a couple of days,  I found that I had to add yet another property.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">This time, instead of doing that hard way, I have decided to do something different. Instead of adding the new property I was thinking of, I added a simple integer that will act as a version number for the entity. I followed the same as above and waited another half hour to get it updated. And for the actual property that I wanted to add, I added the new property but deferred updating the property with a default value until that entity is being used. The lazy way. So I just need to update my queries with this new version number logic but don’t have to really update all my data at once.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">I realized later it was an excellent move. As not all my entities really need that new property added. Whichever entity needs it, will get it when it is accessed for the first time. Your data migration now becomes highly scalable. Now all my models, I begin with a version number, so that I never have to worry so much about data migration when I decide to make changes to my models.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">This is not without a downside. We have an additional property in the model and a little overhead of a version number comparison every time entity is accessed. If you are continuously adding properties that may not be required for all entities, then the storage space you save could easily outweigh this new additional property.</p>
<p style="font-family:verdana, 'Trebuchet MS', arial;color:black;outline-width:0;outline-style:initial;outline-color:initial;text-decoration:none;white-space:normal;vertical-align:baseline;font-size:12px;line-height:1.5em;border:0 none initial;margin:0 0 10px;padding:0;">But, you decide whether the flexibility of scalable data migration it provides is worth the weight and hassle.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/developingforthecloud.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/developingforthecloud.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/developingforthecloud.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/developingforthecloud.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/developingforthecloud.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/developingforthecloud.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/developingforthecloud.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/developingforthecloud.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/developingforthecloud.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/developingforthecloud.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/developingforthecloud.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/developingforthecloud.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/developingforthecloud.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/developingforthecloud.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=developingforthecloud.wordpress.com&amp;blog=9463783&amp;post=3&amp;subd=developingforthecloud&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://developingforthecloud.wordpress.com/2009/09/13/google-app-engine-lazy-data-migration-with-versions/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/3f0dc7b60f049f14476464a98e653ff4?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">Murali</media:title>
		</media:content>
	</item>
	</channel>
</rss>
