Sudhindra Kovalam's Blog

My Geeky Blog

Archive for September 2009

My Take On Windows Azure(Cloud Computing in general : Part 2)

leave a comment »

I hope You guys have gone through my previous posting i.e. part1 of my posting on windows azure  Part 1.

If Not, Now is not  a bad time to read it either…. 😉

Well in the previous post i had tried my best to present to you a small and simple yet real business case scenario which would/ should compel you to really think about windows azure.

Now lets go a bit off track, Let me try and define the following buzz words :

1. ) SaaS : Software as as Service

2.) PaaS : Platform as a Service.

3.) IaaS (Not sure whether this is the correct acronym 😉 ): Infrastructure as a Service.

SaaS:

Software is provided as a service . This Service is accessible through the network, over the internet etc. Popular example of SaaS Can be online spreadsheet software, Online CRM etc…. ( An Example from the MS side would be Microsoft SharePoint Online and Microsoft Dynamics online ……. Yeah they will be online services in the near future. 🙂 )

PaaS:

Platform as a service , as the name suggests provides you with a platform on which you develop you application. One of the primary advantages of Paas is that the hardware maintenance and certain layers of software stack maintenance is not your head ache. 🙂

Windows Azure is a perfect example of Platform as a service . We design and write apps on the Azure platform, we really don’t care on which hardware the app runs on , we do not have to worry whether the VM running the machine is patched etc.The Platform provider takes care of such issues. This actually might help in reduction of TCO ( The total cost of operations), as now there is no explicit need of system administrators to do that job for you ..( Though Nobody is stopping you from hiring ‘em 🙂 )

IaaS  :

Infrastructure as a service provider provisions you with the hardware needed to host your app on the cloud. Many of the ISPs are typically Infrastructure providers.

They provide you machines / virtual machines with a very high “availability” and it is up to you to do whatever.

Amazon EC2 would be the best example of Infrastructure providers. You are sanctioned a pool of VMs ( do whatever with them )

Much More to come in the following posts.

As per some of the suggestions that i have received , people are actually expecting some code ( since am programmer ) .. well will try to accommodate this request in the up coming posts.

 

Till then Have a Nice Time 🙂

 

Advertisements

Written by sudheerkovalam

September 6, 2009 at 2:10 pm

My Take On Windows Azure( Cloud Computing in general : Part 1)

with one comment

In PDC ’08 One of the most important announcements that was made was about Microsoft’s entry into cloud service provisioning .

Well back then , it was said that roughly Windows azure can be called “EC2 on steroids!!” And whether this statement is 100 % or not, Time will tell…( time as in time after PDC 09 when MS plans to go Live with azure. Though i believe the statement to be 100% true .)

Windows Azure is Microsoft’s Cloud Offering. Despite being a “Late Entrant” in offering, It is very developer centric. Microsoft says, “Adhere to a very simple framework, and we will take care of scaling your application”. What this means is , You design your application such that it can scale well on demand. This designing is not that difficult to understand.

A traditional application can be chalked as a client server app. In which you have

1.) The UI layer ( i.e. the Presentation layer)

2.) The Services layer( i.e. the business logic layer")

3.) The Data store. (Databases, Even Flat files can be the data stores, depends app you have designed 🙂 )

The App has been designed with what you call keeping ”n-tier architecture ” in mind.

Fine , Nothing new as of now. I have my app designed and developed. I now would be deploying the web app on some of the hosting provisioned for me … Now in the initial stage , when the app had to be deployed ,It was assumed that one decent server grade machine is enough, say You have setup the entire app on one machine….

Now since the app is fairly new , lets assume that there is not much traffic.

One fine day, Your app gains popularity and suddenly you see a surge in traffic. Some of your clients might get “denial of service” issues, or worse , witnessing such huge loads, the server just crashes …

Now What would you do? …… the next logical step would be deploying the different components on different machines( assuming that server was crashing due to huge loads , CPU usage etc )

Wow… I am good now,I am happy now.

In some days you observe that you need more servers say three times more the number of machines …. Now as a business man, this would be a concern for you , seeing that you cannot always keep on investing in new hardware every time you observe a surge in demand of your app and this upward trend might not even be predictable,

Say you provision hardware for 1 lac simultaneous users but, suddenly there is a drop in demand ( for various reasons 🙂 ) now you see that you might not need so many servers.. what do you do , with all the servers already purchased ? And many more such concerns might arise.

So an alternate way of solving this issue would be renting servers. That way, you wouldn’t be actually buying servers. You need 10 servers on rent you take these servers on rent ,you use them for the time frame of whatever is the lease period, and renew the lease as per your requirement.

Wow this works Right….. So Do i need to look at the cloud ???

Yes you should…. Infact if your Line of business (roughly) fits in the above mentioned scenario, You should consider your app to be provisioned on the cloud.

Reasons to be looking into provisioning your app on cloud:  reduction in costs and huge reductions in costs ( Keeping long term in view)

How You say? Let me Explain :

Say your app is seasonal in nature.

Seasonal apps are apps that are typically accessed in some timeframe of a week, month, year etc…

So Renting all those servers would be a bad investment , coz you would not be utilizing the infrastructure for the timeframe you pay for. Say all those servers are idle for 30 days a week and suddenly on the last day of the month, the load shoots up , and the server is utilized.

Say daily , you just need one instance of your app to be running , but on the last day of the month , for 20 hours that day you need 10 instances of your app running, This would not be possible in the renting the server kind of scenario. You either rent 1 server or you rent 10 servers.

Solution to this would be utility computing, meaning pay for computing as you go. So in above mentioned scenario, Provision your app on cloud, and when you do that you can actually set the no of server instances you want the cloud provider to run and also an upper limit , saying i cannot afford more than 10 server instances to be running.

This brings us to an interesting definition of cloud computing :

Cloud computing is where the computation power you want is restricted not by hardware but by how much you can afford.

Meaning The cloud providers can actually provision 1000s of server instances for you, but the costs involved would be astronomical. whereas running a few instances , say 10 instances would be reasonably cheap than renting those 10 servers .

So with this i would like conclude this post ….Much more to come on cloud computing…….

Written by sudheerkovalam

September 5, 2009 at 4:06 pm