In one of our earlier posts we did a comparison between Google App Engine and EC2 based on some of the key parameters driving a Cloud Computing platform. In this post we will focus on a comparison between Amazon EC2 and Microsoft Azure.
- Amazon EC2 provides support for setting virtualized instances of operating systems/applications and databases which essentially implies that in can support pretty much all the standard environments like Windows(Server 2000/2008), Linux flavors, OpenSolaris, multiple Databases (DB2, Oracle, SQL Server) and various Web and application servers.
- Microsoft Azure on the other hand is purely a Windows environment with Windows Server 2008 the primary environment and all languages/applications that are available on Windows Server is supported. While they have released SDKs to support interop for other languages like Java, PHP and Ruby to run on Azure, i would still consider it primarily a first choice .NET environment.
- Amazon clearly is a much more flexible environment and can support a wide variety of applications. On the other if you have a Microsoft based platform/application Azure will be a strong consideration.
- Setup for Amazon EC2 involves setting up an image and configuring a virtual instance of the instance to include the Operating System/Application. The setup and deployment activities is similar in nature to setup a virtualized environment. Amazon provides command line tools which would help support this.
- Windows Azure offers to variations in terms of Deployment. A hosted model similar to Amazon EC2 and an alternate Azure Platform Appliance which allows a local deployment of windows azure within a company premise on local servers to setup a local virtual cloud. Azure provides an integrated approach of deployment directly from Visual Studio which would directly allow you to deploy the solution on Azure.
- An integrated deployment options with Developer tools significantly reduces the deployment complexity for Azure based apps. In addition a lot of the configuration aspects of a VM needed to be setup on Amazon is not required on Azure.
Performance and Scalability
- Amazon EC2 is a mature platform and has been proven to provide significant scalability options for cloud applications. Apart from auto scaling options, custom configuration and options allows you to pretty much scale to any level. Also since EC2 deploys applications as Virtual Instances it provides an opportunity to completely control and scale your instance and application.
- Azure while not a traditional VM, provides a VM like environment for hosting applications. It provides auto scaling options and also ability to choose various configurations for the VMs based on the resource needs. SQL Azure functions as a Cloud Database in a shared environment as against Amazon RDS can be controlled per instance.
- EC2 clearly provides a more configurable environment to scale up and scale out your applications with much more granular control over your applications and environment.
Stay posted for a blog post coming up on a 3 way comparison/cheatsheet on how to make a choice between the 3 major players in PaaS Amazon EC2, App Engine, Azure.
Check our Blog Technology Trendz for more details.