.NET Cloud Computing
This page aggregates references, tutorials and guidance materials on the most exciting parts of using cloud computing with the .NET Microsoft Framework.
We'll cover theory, existing solutions, learning architecture guidances (CQRS and DDD for the cloud) and references to the frameworks and cloud providers.
You can stay tuned by subscribing to the feed.
What is Cloud Computing?
Cloud Computing is a marketing buzz-word that got accepted as definition of services built on top of hardware capacities: computing, storage and network.
- Services are provided on-demand; without the need of up-front investments into a datacenter.
- Hardware management is abstracted from the customers.
- Infrastructure capacities are elastic and can easily scale up and down.
Continue reading with the overview article for more details (not specific to .NET).
Why is Cloud Computing Important?
Cloud computing helps to save resources and deliver better project without large upfront investments. This works for both cloud computing providers and consumers. Cloud providers can utilize their computing, storage and network capacities more efficiently, while consumers can leverage the power of datacenters while paying only for what they use.
The most important thing is that cloud technologies allow small companies to efficiently create solutions with really limited resources and still be able to compete with much larger companies.
You can check out "Why is Cloud Computing important for us?" for more details.
What's the story with .NET Cloud Computing?
You probably already know about Windows Azure Cloud Computing Platform provided by Microsoft. It works as both Cloud Infrastructure (Storage and Networking at the moment of writing, plus raw computing resources were promised to come later). Although the primary focus is still on the Cloud Platform that allows you to use Web and Worker Roles in order to build and host various systems.
SQL Azure (cloud-oriented version of MS SQL server with built-in redundancy and replication) and incredible integration with Visual Studio IDE - help to jump-start .NET projects in the Cloud.
Having said all that, Windows Azure platform is still relatively new. There is some development friction and associated learning costs. To help you deal with them, there are two production-tested open source projects to help you in this field:
- Lokad.CQRS - C#/.NET open-source project (framework, service bus and learning guidance) that helps to build scalable web apps and enterprise solutions for Windows Azure. This project leverages time-proven architecture approaches: CQRS and xLim.
- Lokad.Cloud - award-winning (Windows Azure Partner Award of 2010) framework for scientific research and studies in the cloud, it also helps to running CPU-intensive computations over at the Azure. This project is also used by universities to introduce students to the Cloud Computing concepts.
Are There any alternatives to Windows Azure?
Sometimes Windows Azure is not the most optimal choice for building cloud computing solutions (although it's getting better day by day). Some of the factors may include:
- relatively high costs of the platform;
- technical issues that prevent usage of the platform (at the moment of writing these include things like: COM integration, xCopy deployments, secondary indexes in the table storage, slow management operations, absence of transactional messaging etc; although almost all are being worked on right now);
- smart developers that want to get the most out of the money and hardware;
There are two major alternatives to Windows Azure right now. They are both even more young, than this platform, yet show some promise:
- Moncai - Cloud Computing Platform for .NET (recently announced and inspired by Heroku, to be released in the first half of 2011).
- OSS Cloud Computing Platform for .NET (open source initiative, just getting started).
Plus you can always deploy .NET applications (with certain constraints, of course) to non-Azure clouds using either native Microsoft installations (i.e.: Windows Server 2008 R2 images) or Mono running on top of the Linux images.
I'll be covering more alternatives as they show up on the horizon.
Interested in the updates? You can subscribe to the news feed to stay tuned.