How to Run Microsoft’s .NET in the Cloud
In programming communities, a steady emphasis has been put on platforms which support Node.js, Ruby and Python. At the same time, Microsoft .NET platform providers haven’t received that much attention. With the long-lasting popularity of Microsoft languages, it’s a literal oversight.
For instance, Salesforce.com acquired Heroku in 2010. Afterwards, Heroku has been used as the poster child for all PaaS (Platform as a Service) providers. Whenever a new PaaS (say X) was launched, it was called as “the Heroku of X”. Before 2010, Google App Engine was the comparison of choice. These honors are fairly deserved, as these two services practically invented the PaaS category that we know today. However, .NET platform remains significant. Let’s see: what are the options to run .NET apps in the cloud.
Microsoft Windows Azure is fundamentally a .NET PaaS provider, but it’s getting more attention for its feats in open source. PHP has been made a 1st-class citizen on Windows Azure by Microsoft. Node.js has been ported to Windows so that it can run in the Windows Azure environment. The .NET applications can be executed on Linux, as Azure IaaS (Infrastructure as a Service) also supports Linux. Still, with a large number of users and the bequest of being a part of Microsoft that devised .NET, Windows Azure is the most obvious option among public .NET PaaSs. Of course, there are many other options.
Tier 3 was launched in 2006. That time, it was only an IaaS provider. Recently, Tier 3 has added a PaaS service known as Web Fabric. Tier 3 also builds a fork of the PaaS Cloud Foundry of VMware known as Iron Foundry, which lends .NET support to the current open source platform and can be utilized for private clouds. Web Fabric is based on an open source platform, but it’s still comparatively new. By developing on Cloud Foundry, it has built a polyglot platform which supports every language that the original projects support, such as Java, Node.js, and Ruby. The source code can be found on Github.
AppHarbor, launched in 2011, is an established public .NET PaaS. It runs on Amazon Web Services equipped with support for Mercurial and Git. The one thing that makes this company different from the others is its inbuilt support for the unit tests. The code is simply uploaded by the developers and the included unit tests are executed automatically. According to a PaaS enthusiast and Tier 3 developer, usually majority of the PaaS environments run in such a way that the above mentioned capability can be added, but it becomes overburden. The developer does not have to click even a button to turn AppHarbor on.
Uhuru, invented by the former Microsoft executives, is another newbie in the world cloud technology. Similar to Tier 3, Uhuru is also operating its own .NET PaaS, which is based on Cloud Foundry and is known as Uhuru .NET Services for Cloud Foundry. The source is available on Github.
Apprenda is the 1st private .NET PaaS. It sells two versions: a proprietary enterprise version and a free-as-in-beer express version. In addition to this, Apprenda can synchronize with Windows Azure for enabling a hybrid cloud environment.
Moncai is the Irish pronunciation for monkey. Moncai has not been launched till date, but it is offering a sign up to request beta invite. The company claims that it will provide the easiest way to deploy and scale .NET/Mono web apps, by pushing to the cloud using Mercurial or Git. Once deployed, the apps can be scaled up and down on the basis of load. You have to pay for what you use.