Sudhindra Kovalam's Blog

My Geeky Blog

Archive for the ‘Cloud Computing’ Category

Using Open XML SDK v2.0 on Windows Azure

with 2 comments

Hello folks,

Its been really long that I have written a post. And I have no excuses, Just couldn’t find the right time and the right topic to blog on Open-mouthed smile.

Generating Word/Excel reports is a fairly common requirement. Now that we intend to migrate our application to cloud, we realize that on Windows Azure, You do-not have  Office DLLs or infact, any other (unnecessary from Azure’s perspective) DLLs available to you. You can always package Office DLLs with your app deployment package and use them in you application on Windows Azure (You can find articles on the blogosphere about how this can be done).

I opted for using Open XML SDK v2.0. Using Open XML SDK for .NET available here . I Can generated Word / Excel reports on the fly.

Here’s a sample code to write to create a Word Document

  
//Using Statements Required 
using DocumentFormat.OpenXml;    
using DocumentFormat.OpenXml.Packaging;    
using DocumentFormat.OpenXml.Wordprocessing;      

//Code to Create a Word Document at the provided File Path    
using (WordprocessingDocument wordDocument =
    	WordprocessingDocument.Create(filepath, WordprocessingDocumentType.Document))
    		{
   			mainPart.Document = new Document(
   				new Body(
   					new Paragraph(
   						new Run(
   							new Text("Report Generated by Open XML SDK ")))));
   			wordDocument.MainDocumentPart.Document.Save();
   			wordDocument.Close();
   		} 

ok. Now that we have everything in place, We’d want to deploy this “Report Generation Solution” to the cloud. But First , run it locally on the compute Emulator.

Everything seems to be working, Next step is to deploy your application to your azure account.

This blog post talks about a known issue on using Open XML SDK in  .NET 4 Roles on Windows Azure.

When you right click your solution to do a publish

 image

Windows Azure would ask you for the Hosted service where you want to deploy the solution, If you have not already set that up, the dialog box also has a provision to do that for you.

image

Please Remember to UnCheck, (you read that right) “UNCHECK” Enable Intellitrace for .NET 4 roles.

You may want to argue that Intellitrace helps us in historical debugging in an event  of a fatal crash, but for now you will have to live with the Windows Azure Diagnostics Logging for now.

The reason, why this needs to be disable is, “Enabling Intellitrace for .NET 4 roles when using the OPEN XML SDK seems to freeze your web/worker role.”

I Learnt this the hard way (after being billed for a week for a  (Frozen, just because I Enabled Intellitrace and am using Open XML SDK in my azure app) Extra Large VM ). In other words, that’s a lot of money. Crying faceCrying faceCrying face 

Keep reading this space for such posts to come. I am working on Windows Azure now, So I am sure there are many such topics on which I can post. Smile. Thank You.

Advertisements

Written by sudheerkovalam

February 19, 2011 at 3:38 am

Cloud Computing 101

leave a comment »

This is my style of explaining Cloud Computing to First year and second year Engineering students.

I am not sure as to how much I got through, But Here it is anyways.

DreamSpark Yatra 2010 PPT

Do post in your valuable comments. I am eager to hear from you!

Written by sudheerkovalam

April 15, 2010 at 4:16 pm

An Introduction to Windows azure Platform

leave a comment »

 

Yesterday i.e 16 Jan 2010, a One day “Introduction to cloud computing” workshop was conducted at Marathwada Mitramandal college of Engineering. This event was organized by the HOD @ the college and by Shekhar Sahasharbudhe on behalf of CSI,Pune and Persistent systems ltd.

And I was given the privilege of introducing “Windows azure” to the attendees of this workshop.

Since being an entire day event, Monish Darda (from Websym and ICERTIS) introduced cloud in general to the attendees and I was supposed to do an intro to windows azure.

It was a mistake on my part to do a “lap around Windows azure” instead of “An Introduction to Windows azure”

I am uploading the presentation that i used in this session to my skydrive folder ,

Hope someone finds these slides useful

Link for the presentation : Download PPTX

Written by sudheerkovalam

January 17, 2010 at 5:38 am

Windows Azure Software Development Kit (November 2009) Released

leave a comment »

 

A couple of days ago, Windows azure SDK 1.0 was released ( Notice no CTP tag in the name, This is indicative of the full ‘feature complete’ SDK.) This is the SDK that the windows azure team has been discussing for quite some time now.

This release of the SDK adds a couple of features that were wanted for some time now ( Post VS 2010 beta 2 release)

 

vs2010 cloud service roles

vs2010 web role

New Role Templates

Written by sudheerkovalam

November 15, 2009 at 12:05 pm

An Interesting Notification from Windows Azure Team

leave a comment »

 

Just got an email from the windows azure team saying that

in PDC ‘09 , Windows Azure goes live with a lots and lots of new features.

However the free access ( to the new feature set ) will be available to the existing users till December 31st

allowing you to experiment with the full feature platform.

Come January 1, 2010 we can sign up for an offer

where first month bill will be of 0$ and from February 1 2010, we will be billed for our usage on Windows azure…   😀

Ain’t that cool..

We get to play around with the live azure features for little over 3 months  for free  and i guess it is affordable for everyone to opt for that offer 🙂

Hope this article helps  🙂

Written by sudheerkovalam

October 30, 2009 at 1:08 am

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 🙂

 

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