Microsoft Windows Azure vs. AWS EC2

Cathie Lunde
Share

Discover how Microsoft Windows Azure compares with Amazon Web Services (AWS) EC2

Business startups need to discover how Microsoft Windows Azure compares with Amazon Web Services (AWS) to find the differences and benefits for their applications.  Microsoft and AWS have partnered thus allowing business startups to utilize their BizSpark licenses on the Amazon cloud.  Microsoft BizSpark is a worldwide program with a mission to support entrepreneurship and speed up success for business startups.  When startups are able to save money using cloud technology, the business can invest in other areas to obtain new customers and hire additional developers.

Microsoft added a new BizSpark Plus program this year as an extension of the BizSpark program.  BizSpark Plus will assist high potential startups with cloud computing costs by providing $60,000 in Windows Azure compute and storage value over a two year time period.  A startup is provided with all the Windows Azure needed to operate their business during the first year.  For the second year, the startup receives 50% off Windows Azure for their business needs. BizSpark Plus partners provide investment, workspace, coaching and mentoring to startups.

Using the Microsoft Windows Azure cloud platform, a person can develop, set up and administer web applications and services through worldwide Microsoft data centers.  Applications can be developed using any framework, tool and language available.  The application is broken down into “roles” representing a service that is essential to your business customers as well as application users.

When developing a diagnostic application on Windows Azure, the dashboard reporting web application and the data collection services can be divided into distinct roles.  The size and amount of virtual machines can be managed for each service separately.

Windows Azure programs any details that a developer would have to do themselves when using AWS.  Role instances are routinely load-balanced, patched and kept up.  A role is configured to operate using optimum Windows and network security immediately.

To get the application operating on Windows Azure, the developer must package (zip) their application and upload the zip package as well as the XML configuration files to Windows Azure.  The number of role instances, referred to as virtual machines (VMs), to be provisioned for each role is resolved by Windows Azure.

Also, the operating system version and components for each VM is established, uploaded code is installed on every VM and all of these are booted by Windows Azure.  After the VMs are initialized, each VM checks in with the load balancer to convey information so that client traffic can be distributed uniformly to all VMs operating the Web application.

Windows Azure continuously monitors all VMs to make sure that Web applications are always available.  If an application process stops because of unhandled exceptions, the application process is automatically restarted on the VM.  When hardware operating the VM fails, Windows Azure detects that and automatically provides a new VM booted on other hardware so that the application is always available.  The recommendation is that developers configure applications to operate on at least two VMs for each unit of code operating so that if one VM has a problem, the load balancer directs requests to the other VM.

The Windows Azure Service Level Agreement (SLA) contains text concerning compute services.  This guarantees when two or more role instances are deployed in different fault and upgrade domains that the Internet facing roles will have external connectivity at least 99.95% of the time.  The Windows Azure SLA states that individual role instances will be monitored and gives a guarantee that 99.9% of the time any stopping of a role instance will be detected and corrective action initiated.

Windows Azure makes sure that the operating system (OS) and components have necessary patches with minimum downtime.  In addition, developers can scale an application up or down, change configuration settings, certificates, endpoints, and the application code version without any downtime.

When substantial changes are made to code, Windows Azure provides a way to upload any new code to test in the staging area.  Customers still have access to the old code.  With approval of the new code, it can be moved from the staging area into production so that all new client requests operate on the new code.

A developer using Windows Azure is responsible for the amount of unique roles in their application in addition to the size and amount of virtual machines running each role instance.  Roles should be designed with multiple instances of each because 99.95% role uptime is not guaranteed for roles having just one instance that is active.  Automatic installation on Windows VMs should be designed into the role so there is no need for manual configuration.  The developer has to supervise any storage and continued existence of their data.

A startup business has most of the cloud management automated by the Windows Azure platform however the business would have to rely on the Microsoft Windows development platform.  A new business can dedicate time to working on new software versions without having to spend time managing their cloud services.  Windows Azure offers a free 90 day trial with no obligation.

AWS is very reliable and flexible, especially with the choice of an Amazon Machine Image (AMI) identifying the OS as a Linux or Windows configuration in addition to any hardware customization for the VM.  The developers have to handle many configurations, options and operations themselves.  However,

A development team using AWS is in charge of managing all VM ports and firewalls as well as public-facing IP addresses and load-balancing. The host OS must be configured in addition to security patches and updates applied to every VM. All software has to be configured plus application and service utilization managed on every VM. Moreover, all applications have to be monitored to ensure the application is working correctly besides making sure that the data is being stored properly on each VM.

New AWS customers receive a free Amazon EC2 Micro Instance for a year in addition to a free usage tier for Amazon S3, Amazon Elastic Block Store, Amazon Elastic Load Balancing, and AWS data transfer.  This free usage tier can be used for creating new applications, testing existing applications or for hands-on experience using AWS.  Amazon Relational Database Service (Amazon RDS) is a web service that makes it easy to set up, operate, and scale a relational database in the cloud.  AWS is offering a free 60 day trial for all new Amazon RDS customers.

Microsoft Windows Azure and AWS have many differences as well as benefits for businesses.  Startups are developing products and services in the cloud worldwide.  Cloud web applications and smart devices are providing new startups with the ability to set in motion a global user implementation.  Businesses can balance company needs while producing financial profits with less investment much faster than previously.