In the last 12 months, virtualization and cloud computing have become one of the hottest issues in the hosting world. It started with companies offering Linux based cloud services for Windows, based on cloud servers, and then it expanded to new companies going into elastic computing, such as Rackspace and Opsource. Yet it seems that when it comes to MS-SQL server support and .Net, all current solutions fall short. The major part of the management work ‘falls’ on the user and the cost is far higher compared to Linux solutions. The user is supposed to install anything above the basic OS and to take care of upgrades, monitoring and duplicating resources (servers) on his/her own, for scale out solutions. Some of the solution providers sell their offering as a testing environment platform or as for simulating production environment, reducing client operation costs, compared to purchasing hardware and hosting fees.
Then, a few months ago, a new major player entered the world of cloud computing: Microsoft with Windows Azure. Microsoft will officially launch their services in January 2010 as a production hosting platform, and new web server farms will be operational all over the world during 2010. They have currently invited every ISV or BizSpark client to use the Windows Azure environment as part of their CTP, allocating them with a limited CPU and Instances Tokens. The company I work at has uploaded a partial solution (covering 70%) of our application in less than a day’s work.
To solve the versatility of OS configurations and provide an almost instantaneous scale up option, Microsoft Azure takes a different approach than other elastic .Net supporting solutions. Mainly, Windows Azure solution limits the application working environment and physical resources usage and configuration. The most trivial example is that you can’t write to files, writing and saving of local data is done to special blob objects (which by the way can resemble small DBs). The server instances are virtual, and I don’t mean VM or Hyper-V. The application is running on an AppFabric environment. The Fabric has the ability to run worker-roles that are very close to services and web roles that are very close to web services. The actual code has to be compiled, especially for the AppFabric environment (a very simple process), but anything that was developed in .Net could be converted to Azure.
The usage bonuses from running on Windows Azure are mind blowing:
Scale out is performed by changing configuration settings, and deployment to multiple servers takes about 15 minutes (officially one day max).
Every instance is automatically duplicated and set to standby mode, so if your instance crashes the copy is brought to life in a matter of seconds.
You can run different versions of your application test performance results, and increase or decrease the number of instances in minutes.
Pay just for what you use, when prices in comparison to owned and hosted server are very low.
Fully redundant Hardware solution.
You can place your farm near your client location.
Automatic upgrade processes to latest versions.
Configured security system.
Microsoft has even taken its solution one step forward, and offers the Windows Azure platform for private cloud implementation. Your organization can install the Azure platform as a virtualization solution for internal environments solution such as QA and staging (just think what can be done when it comes to load testing), or as part of your organization SaaS solution, providing a private application environment for different clients, installed on the same hardware.
What Azure is offering for SQL cloud solution – on my next post.
Coming soon …
The following technical resources are a good starting point to understand the Azure platform: