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?).
My feeling is that Windows Azure, lacking any cloud management API, can’t even be called a cloud yet.
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.
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
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With