views:

394

answers:

2

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.

+1  A: 

To my knowledge, Mosso allows full .NET 3.5 applications to be run with their CloudSites package. Is this not what your looking for?

jrista
Have you read the question?))
Rinat Abdullin
I did...you said "theoretically" mosso allows .NET cloud apps with mono. In actuality, it supports .NET 3.5 apps on IIS7. Given that you can't use Azure...whats wrong with Mosso?
jrista
The question was not very clear, the way it was originally written. It took me a couple tries to figure out what you were asking. I think you were asking for experiences with .NET Clouds, but there were a number of other implicit questions, and jrista answered one of them. I tried to re-word the question to sharpen it, I hope it works for you.
Cheeso
@Chesso: The question is definitely clearer now. Hopefully it covers what Abdullin was asking. I haven't had extensive experience with mosso, and none with Amazon, but Mosso did have the best .NET cloud support when we were looking a while back.
jrista
@Chesso, thanks for the clarification!
Rinat Abdullin
@jrista, sorry for the confusion.
Rinat Abdullin
+3  A: 

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.

Derek Ekins
Thanks for the great answer!BTW, how do you think Amazon would work for CPU-intensive processing with elastic scaling up and down?
Rinat Abdullin
Your welcome. Well that is pretty much what EC2 is designed for :)I haven't done it yet (I need to make a couple of changes to my system to allow it) But you can start up new instances as you need them. Obviously your program needs to be able to split up the job it is doing so that it can be run on different machines. In my case I just have a lot of small non related individual jobs so doing this is easy.
Derek Ekins