Tuesday, October 19, 2010

A2A ‘Cloud Comparison’ – Compute Service

A2A ‘Cloud Comparison’ – Compute Service

As many of us know Amazon and Azure are among the major providers in the public cloud service space. This will be series of blogs depicting my views on comparing Amazon to Azure (A 2 A) on public cloud services on various dimensions of their services like Compute, Storage, Bandwidth, Pricing, Security, DB Services, and CDN etc. Please tag to this space to follow closely on the series.
In this current blog I have taken compute service offering from both of these providers and provided their features as per my knowledge.

Amazon EC2 Compute Instances:
Amazon provides services in Infrastructure services space where in compute instances it provides compute services in terms of virtual servers, the compute instances so called EC2 (Elastic Compute) instances provide different flavours in terms of hardware configuration and software configuration, some of the flavours in hardware are Micro, Small, Large, XLarge, High CPU, High Memory etc., you can find more details of it here at http://aws.amazon.com/ec2/instance-types/ , the costing of the instances varies based on the flavour. Each instance flavour can differ in terms of hardware configuration and software configuration. Amazon as a provider provides instance for some predefined software like Windows Server 2003, 2008, SQL Server editions, RHEL etc. In addition amazon has partnership with major vendors like IBM, Oracle and provides pre built alliances, for example you can have a prebuilt appliance with oracle 11g with different hardware configuration provided by Oracle, and similarly for IBM you have appliances provided by them.
Details of the partnership EC2 instances for IBM and Oracle are available under
http://aws.amazon.com/solutions/global-solution-providers/oracle/
http://aws.amazon.com/solutions/global-solution-providers/ibm/

Some of the benefits you can find with Amazon Compute instances are
1. Prebuilt appliance and save your time and avoid expertise from setting up with proper environment
2. Some of the instances through partnership comes as Pay as you use model and hence avoids licensing and costing issues, suppose you want to test or do some POC with IBM Web sphere Portal Server for a week or even a day you can very well find the instance and use it with amazon ec2 instance in no matter of time.
3. Many software vendors started providing their products through Amazon instances with the correct environment set, this way it becomes easy for customers to try out any software of their interest with less turnaround time.
4. Start and terminate instances when ever needed and pay only for used time.
5. Set firewall and other security for the instances as you need.
6. Ability to monitor the health status of the instances.
7. Easy to migrate existing applications with same flavour on the cloud platform.

Azure Compute instances:
Microsoft Azure as we know operates in Platform Services layer, in the sense user won’t be exposed to the server directly, but when it hosts the application it provides a virtual server for running the application. Similar to Amazon Azure also provides some option on the virtual server configuration like Small, Medium, Large, Extra Large etc. Details of the instance can be found at http://www.microsoft.com/windowsazure/windowsazure/default.aspx With respect to operational model Azure provides compute instances in two different flavours as web role and worker role. Web role instances are used when the applications needs front end handlers handled by IIS web server and worker roles are used when the application needs a back end handling process ex: a batch job application or a windows service application.

Benefits of Azure Compute Instances:
1. Instances are self health monitored by Azure Fabric
2. Auto scaling can be enabled on the instances.
3. Control security policy over the instance.
4. Easy to build and migrate applications based on IIS7 and ASP.Net
5. Development fabric on Windows Azure SDK provides a simulated environment for service deployments and role instances on local machine.

To make a comparison study on Amazon and Azure with respect to compute instances
1. Amazon Compute instances are at infrastructure level and hence have more control over the instances, while for Azure Compute the control is limited as it provides platform services. In Azure some of the overhead like application monitoring , high availability it taken care by Azure fabric where in Amazon we have integrate few Amazon services to achieve it manually.
2. Azure allows deploying only one role per compute instance, where in Amazon you can deploy multiple applications / services as we do with normal servers. For example if you want to deploy a ASP.Net based application and WCF service at back end, you may need 2 compute instance in Azure, where in Amazon EC2 instances you can deploy them in same virtual machine.
3. Azure instances are self monitored and controlled by Fabric where in Amazon EC2 instances we add a service called cloud watch to monitor specific instances.
4. Azure instances will allow running applications based on Windows environment where in Amazon we can run applications based on windows and Linux environments.
5. Applications with some 3rd party dependencies or using commercial of the shelf products will be less suitable to migrate to Azure as the platform needs the dependencies on the Azure platform and licensing of the products needs to be worked out.
Microsoft is planning to release virtual servers (VMRole) in Infrastructure as a Service space similar to Amazon in near future http://blogs.msdn.com/b/usisvde/archive/2010/03/29/vm-support-in-windows-azure.aspx , with vmrole Azure platform will gain more power and benefits for migrating Microsoft based applications to cloud.