Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Have you deployed .NET computing applications to clouds outside Windows Azure?

I'm interested in running CPU-intensive computations in clouds. The only real requirement is ability to run .NET applications (F# algorythms like this one) with enough security permissions for using reflection-based IoC Container. Persistence technology does not really matter as long as something is there.

I'd like to know of your experiences running .NET applications in clouds like Azure, EC2, Mosso, and others, if they exist (what are they?).

  • does it support both .NET? Mono?
  • what is the management API like?
  • how has the performance been?
  • other experiences

My feeling is that Windows Azure, lacking any cloud management API, can’t even be called a cloud yet.

like image 489
Rinat Abdullin Avatar asked Jun 11 '09 08:06

Rinat Abdullin


3 Answers

I am currently in the process of developing/releasing (sort of in pre-beta atm) a .net application to EC2. I have elected to go the linux route so am using mono. It has been a huge learning curve as the environment is so different to what I have been used to.

My main issues have been learning the intricacies of mono - it is .net but it is different. You tend to come across bugs from time to time and slight differences in the way things work. Also the setup and installing is totally different to anything on windows.

Overall though I am really happy. I really enjoy working on linux and the more I get used to it the easier I find it to use than windows.

I am developing in a sort of hybrid way - most dev happens in windows on vs2k8 - pretty much because resharper is so awesome. Monodevelop just isn't quite good enough yet. So before I push up changes to EC2 I run it in my local dev env on Ubuntu, once everything works (I inevitably find some way to break mono compatibility) I deploy.

I am using: StructureMap ASP.NET MVC NHibernate (Fluent) DotNetOpenAuth Moq NBehave

In terms of management, well they have a pretty good API and there are a ton of third party tools. As I have been finding my way I have developed a suite of scripts that take care of all the heavy lifting.

Performance is great, I have a medium cpu instance which I think is 5 cores and 2Gb RAM. I am using it to serve web pages index S3 buckets and resize images and so far it hasn't missed a beat.

like image 82
Derek Ekins Avatar answered Nov 05 '22 09:11

Derek Ekins


You could evaluate "Daytona" its Microsoft's implementation of MapReduce on Windows Azure. CPU intensive operations can be performed by scaling them across VM cores on azure.

http://research.microsoft.com/en-us/projects/daytona/default.aspx

like image 2
Sid Avatar answered Nov 05 '22 09:11

Sid


You might want to check out AppHarbor. AppHarbor is a .Net PaaS built on top of Amazon. On the one hand you get the portability and infrastructure of Amazon but on the other they provide a number of the rich services that Azure offers such as background tasks & load balancing plus some that it doesn't like 3rd party add-ons, dead-simple deployment and more.

like image 2
Dan Avatar answered Nov 05 '22 09:11

Dan