The paths to Azure are varied, but developers want what they have always wanted, and that is for the platform to get out of their way and let them deliver value. For that reason, Azure is a solid foundation for Microsoft and any company looking to bring their solutions to the cloud.
Choices within the platform
The effect of having too many choices can often be paralysis. Amazon offers many features, but in simplified terms it offers Infrastructure-as-a-Service. This means that if you want a virtual machine, you can get one or a hundred, and Amazon takes care of the provisioning.
The problem is that there is more to the care and feeding of a virtual machine than just provisioning. With any IaaS offering, the patching and upgrading of the operating system is not handled by the cloud provider. This is ideal for some situations, especially those where the systems are transient (such as those used for QA testing), but not for all or even most.
PaaS is something fairly unique to Azure. With this option, Web or Worker roles are chosen based on whether the task is to show a UI or perform calculations. The advantage to this implementation is that all of the patching overhead is taken by Microsoft. The developer can just focus on providing code that works on a predictable platform. These roles have been renamed to Cloud Services.
“CommitStream is an upcoming service for the integration of VersionOne with various source-code repositories,” said Culling. “It combines a number of different Azure deployment options: a Web Site for the administration front end, a combination of a Cloud Service and Virtual Machine for event-store persistence of all commits for all configured source-code repositories.”
(The Web Site refers to the ability for Azure to host a website in much the same way that other hosting providers have done for years. This means that choices across the range are available.)
If you want to spin up a wiki quickly, then odds are a Web Site is the right choice. If you need to test your component with 20 different configurations of SQL Server 2012, then VMs are the way to go. If you want to deploy a service that calculates something complex based on inputs, then a Cloud Service is the way to go. There are many, many iterations, but that is the gist. It takes some time to really know when to use each of these options, but moving from one to the other is not so onerous that it would be deadly to pick wrong at first.
Staying out of trouble
There are moving parts included in the way Azure works that are beneficial by design, but these same moving parts can also be hazards if you do not pay attention.
The biggest item in this category is that the underlying technology of Azure is like a conveyer belt. Microsoft does not let more than two past versions of their operating systems run on the system. Old versions of stuff are the root of all evil and often the root of security problems, and this is a belief that is taken to heart by Microsoft when it comes to Azure.