Understanding Cloud Computing Modalities Analogically…If my Laptop were a Cloud…


Analogies help, don’t they?! So here I am…just one more analogy that may help you understand Cloud Computing modalities i.e IaaS – PaaS – SaaS. If you want to know what IaaS – PaaS – SaaS are? Then this is not the right blog post. But if you find want an analogy that would help you differentiate them, read along…

So, If my Laptop were a cloud:

Laptop hardware


If my Laptop were a cloud, then Laptop Hardware is IaaS (Infrastructure as a Service)

Operating system (OS) on Laptop

Operating system (OS) on Laptop

If my Laptop were a cloud, then Operating system on Laptop is PaaS (Platform as a Service)

An App (Software) running on Laptop OS

An App (Software) running on Laptop OS

If my Laptop were a cloud, then App running on Laptop OS that you access is SaaS (Software as a Service)


Hardware <-> IaaS / Cloud Computing

OS <-> PaaS / Cloud Platform

Apps running on Laptop <-> SaaS / Cloud Services

Remember, it was an analogy, Not technically accurate and so please look at the concepts on your own. But this analogy helps me differentiate concepts and i though it may help someone else..

Do you have other analogies to share? If so, I encourage you to post it as comments!

SQL Azure: Indexes are very helpful but they cost $Money$


This blog post is about SQL Azure and not SQL server. And it’s also not about importance of indexes. We know that indexes are important in the world of SQL server as well as in the world of SQL Azure. But in the world of SQL Azure, there is an important concern – when you create indexes, they would occupy “Space” and it will increase the database size. So what’s the point here?  The point is that the pricing model of SQL Azure is database size driven. So bigger the database size, bigger would be your bill. It’s that simple. So to figure out the cost of indexes, we need to know the size of indexes and, We do have a TSQL query to know the size of each index in a database/table.

So here is a TSQL Query that would list indexes in a given database along with its size in KB.

SI.name, SUM(PS.reserved_page_count) * 8.0 as "Size in KB"
FROM sys.indexes AS SI
JOIN sys.dm_db_partition_stats AS PS
ON SI.object_id = PS.object_id
AND PS.index_id = SI.index_id

I ran the above query by logging into the SQL Azure database ‘AdventureWorksLTAZ2008R2’ (which is a sample database for SQL Azure) as a service administrator and here’s the result:

SQL Azure Findding size of IndexesYou can also list indexes along with its size for a particular table in a database. Here’s the TSQL code (Replace SalesLT.product name with your table name):

SI.name, SUM(PS.reserved_page_count) * 8.0 as "Size in KB"
FROM sys.indexes AS SI
JOIN sys.dm_db_partition_stats AS PS
ON SI.object_id = PS.object_id
AND PS.index_id = SI.index_id
WHERE SI.object_id = object_id(‘SalesLT.product’)

Now once you know the size of the index – the next task is to calculate the cost.
The cost of SQL Azure is dependent on the size of a database and here is the pricing model: https://www.windowsazure.com/en-us/pricing/details/#database

And one can definitely embed the pricing logic in the TSQL Query we just saw. check this article for reference: http://blogs.msdn.com/b/sqlazure/archive/2010/08/19/10051969.aspx – Just note that the pricing model is slightly different now. The pricing model is same for database size upto 50 GB. But when you above 50 GB (upto MaxSize 150 GB) there is NO additional cost. so essentially. 50 GB db = $499.95 per month and 150 GB = $499.95 per month. Update your TSQL queries accordingly!

So, Make sure that you use indexes that you have created And Drop indexes that are not used. you need to evaluate performance gain vs cost for your scenario.


  • I am not implying that Indexes on SQL server are “free”. They consume resources in the world of SQL server too. This post just happen to focus on SQL Azure side of it.
  • The Pricing Model of SQL Azure may change in future.
  • You also need to evaluate performance impact of creating indexes on create, update and delete queries

[WordPress.com Tip] How to add author information for your content being searched via Google

Authroship Markup Wordpress.com

Recently, Google announced something called authorship markup. Basically what it does is that it shows the author information (Only Google Profile) along with search results. I found it interesting. Here’s why:
Authorship Markup WordPress.com Now Notice that the first result is “Normal”.

Now Notice second result. It has:
1) Author’s photo (Via Google Profile)
2) Author’s Name
3) Link to G+ profile
4) Number of Circles the author belongs to

And so I thought I would do that for my WordPress.com Blog (Not a self hosted WordPress blog but a wordpress.com blog). But challenge for me was that I didn’t get all information at one place. I had to watch three-four videos and read three-four blog posts before I was able to “figure it out”. So I thought I would share how I did it. So here we go:

Now the basic concept is that:
– Your Content should link to your Google+ Profile
– Your Google+ Profile should link back to your content

Authroship Markup WordPress.comHow to go about doing that in WordPress.com?

So I have an “About me” page on my blog. Now if you do not have a about me page – please create one. (Now there are others ways but i found this approach to be best)
Now Go to WordPress Admin Page > Appearance > Menu > Screen Options (Top Right corner) > Check the “Link Relationship” in advanced settingsAuthorship Markup WordPress.comNow you need to add the word author in the Link Relatonship Text Page, Like shown below:
Authorship Markup WordPress.comSave Menu”

Now Go to your About Me page and Go to Edit
Here you will need to add a hyperlink like this:

<a title=”Paras Doshi” href=”http://plus.google.com/105010538932095629627″ rel=”me”>+Paras Doshi</a>

Now, Here the href has the link to Your Google Profile
And Edit the “Title” And the Hyper-Link’s Text to your Name. Keep ‘+’ in Hyper-linked Text.

Now Next step,
Go to your Google profile > About > Edit Profile
So note that i have added the Link:


In my Google Profile. You should add the Full URL of your “about me” page in the contributor to section of the Google Profile.

So Summarizing:
1) Add About me Page (If you do not have one)
2) Edit the About me Page’s Link Relationship To Author (From Menu)
3) Add the rel=me hyperlink in your about me page that points to your Google Profile
4) Edit the Google Profile’s contributor to section with the Link to your “About Me” Page.

Does it work? Verify it via Google’s Rich Snippet Tool:
Here, Enter your Blog URL and click on Preview. Here’s Mine:
Note the Message:

Authorship Markup is verified for this page

You should get such a message too!

[cloud 101] Is cloud secure?


I got this question recently and I thought of converting them into a “cloud 101” blog posts. So here they are:

Q: “Banking – with its high security needs and strict regulations – was always considered to be one of the last industries to accept cloud-computing”. So is cloud computing insecure?”

A: I would say – Cloud is secure. At least companies like Amazon (AWS), Microsoft, Google have advanced security mechanisms in place – In most cases, Cloud is more secure than private data-centers. And some banks do not move to Cloud (or cannot move to cloud) because of other reasons. And most of them fall on the legal side of things. Strict regulations (government regulations) as you mentioned.

And later at one point, we discussed about banks keeping parts of the data/app on-premise and moving other parts to cloud. That’s called hybrid cloud. What they do is that since they cannot move “sensitive” data to cloud because of government regulation and/or business policies – they move things that are permissible by law/business policies to cloud.

And we also discussed about what are the disadvantages of moving to cloud? I realized: Most of the perceived “disadvantages” are actually MYTHS. so at one point I felt the need to clear myths and then talk about other topics. It was fun though!


Cloud Security Alliance

Cloud University – A nice resource to help you develop understanding of key elements of cloud computing

Cloud Computing Certificate

I just completed the Cloud University’s online course http://www.rackspace.com/knowledge_center/cloudu/ and found it to be a nice resource – I thought I would share it with you. It’s a free online resource for learning about key elements of cloud computing. They have modules covering:

  • Definition
  • Economics of cloud
  • Cloud computing stack (IaaS, PaaS, SaaS)
  • Security
  • Planning phase to move to cloud
  • Management strategies
  • Hybrid Cloud (Cloud Bursting)
  • Open cloud computing initiatives

After every module – you would be Quizzed (based on learning in that given module). And after completing all (10) modules – there would be a final exam and once you clear that – you’ll get a certificate like this:

Cloud Computing Certificate

CloudU Certificate



Go to: http://www.rackspace.com/knowledge_center/cloudu/ to learn about key elements of cloud computing.

Related Posts:

How to enable RDP (Remote Desktop) for a Windows Azure Web Role?


In this blog post, we would see how to enable RDP (Remote Desktop) for a Windows Azure web role. You would see that it’s pretty straightforward. Just note that this blog post is not about How to deploy a Windows Azure web role and it’s also not about How to develop an application that can be ported to Windows Azure. Nope, This blog post is just about enabling Remote Desktop for an ‘Hello world’ application (MVC3 web app) deployed as a Windows Azure web role. And yes, I  would be using the Azure SDK 1.6 (Nov 2011). I mention this because Windows Azure is growing rapidly and growing for the better and since Microsoft folks are trying to give us the best developer experience – you may find that the exact steps may differ in future.


I created an app by following steps: File, New, Project, Installed templates, Visual c#, cloud, Windows Azure project, ASP.Net MVC3 web role, Internet application. Clicked OK

Then I edited the default text in the app and so now I have this nice little MVC3 web app running Locally. Just a Hello world app.

Courtesy: A default ASP.NET MVC 3 project with an account controller that uses forms authentication.


Now in solution explorer, right-click the project and click on “publish


Now, In the Publish Windows Azure application, choose the subscription. If you are doing it for the first time, click on “Sign in to download credentials”. Login with the Live ID and download a file like:


And click the import button in the Publish Windows Azure application wizard and point to this file and open it.

This is how it looks:


Click on Next >

Now if your subscription does not have any hosted services, you would be prompted to create one. Provide the Name and Location.


Now once you do that – In the common settings, To enable Remote Desktop you’ll need to select the check box Enable Remote Desktop for all roles. Also notice that since I just want to the app to be in staging environment, I selected the Environment as staging. To enable Remote Desktop to a web role, you can set the environment as production too. Either way, you can enable Remote Desktop.


Now when to click on the check box, a window would pop up and here, you will need to specify the username and password that you will use to RDP into the Web role. Provide a strong password which is important, and by default it asks you for a password that is at least 6 characters in length with upper, lower, digits and symbols in it.


Click Ok when done.

And press next >

The next step shows the summary:


Click on Publish

You need to wait for a 3-4 minutes while it is deploying and you can see the progress in the Windows Azure Activity Log. And when it completes, you can see a the Website URL:10

Now to RDP into Azure web role, Go to Azure management portal, Hosted services storage accounts and CDN, Hosted services.

Now here select your subscription, and select the instance:


Now on the Top Right section of the portal, In the Remote Access section, Click on Connect


save the .rdp file.

Then, open the file. And click on connect and provide the password which you had set earlier for RDP earlier. click on OK.


It’ll attempt to connect.


On successful connection, you would see:

Windows Azure management portal RDPConclusion:

In this blog-post, we saw how to enable remote desktop for a Windows Azure web role.

A shout-out to top commenters in 2011:


The WordPress.com stats helper monkeys prepared a 2011 annual report for this blog.


And shout out to Top 4 Commenter’s on this blog:

1. Pini. Link to his blog: http://www.sqlazure.co.il/

2. Dhwaneet Bhatt. His twitter profile: @dhwaneetbhatt

3. Simran Jindal. Link to her blog: http://simranjindal.wordpress.com/

4. Patrick Wood. He maintains an amazing list of SQL Azure resource.

[I had pointed to the resource that Patrick Wood maintains here: http://parasdoshi.com/2011/07/28/link-amazing-list-of-sql-azure-lists-on-gainingaccess-net-managed-by-patrick-wood-check-it-out/ And the URL of the resource is: http://gainingaccess.net/SQLAzure/AccessAndSQLAzureLinks.aspx ]

Step by Step guide to Import a bacpac to SQL Azure Database via Import and Export CTP << Link to SolidQ Blog


In my previous post, we saw how to export a SQL Azure database to Azure storage as a bacpac. Now, in this blog post, we will import a bacpac to a SQL Azure database. Before we begin, we will need:


2) Access key of the bacpac’s Azure storage account

3) Credentials of the Target SQL Azure server.

Read More:

Step by Step guide to Import a bacpac to SQL Azure Database via Import and Export CTP << Link to SolidQ Blog