Which Cloud? Comparing Microsoft Azure and Amazon Web Services

Two of the largest providers of cloud computing IaaS/PaaS services are Microsoft with Azure, Amazon with Amazon Web Services, both of which also happen to work with Ektron Cloud Manager. If you are a developer or IT manager wanting to move your CMS to the cloud how do you know which vendor is right for you?

I’m going to compare the offerings of these 2 companies and how they support core website elements, Computing, Database, Storage and CDN, and their overall support.

COMPUTING

Cloud Computing requires a Virtual Machine (VM).  A VM is a software implementation of computing environment in which an Operating System (OS) or program can be installed and run.  IaaS runs on persisted (your local disk data is persisted upon recycling or failure) VM and PaaS runs on non-persisted (upon recycling or failure your local disk data’s are lost) VMs, but the PaaS Providers will automatically create the new VMs on failure using your base files.

Infrastructure as a Service (IaaS) delivers hardware (server, network, load balancer, and so on) and software (OS, database, and app servers).  Amazon Web Services (AWS) is the largest IaaS provider.  Users have full control over the VM and need to manage the OS, system upgrades, security patches, and so on.

Platform as a Service (PaaS) provides infrastructure and OS management (such as, security, OS upgrades, paths, and so on).  Users do not have control over the OS, system updates, versions, patches, security, and so on, which are controlled and implemented by PaaS provider.

Feature Microsoft Azure  AWS  
Computing Category PaaS IaaS
Windows OS Support Windows 2008 SP2 or greater Windows 2003 or greater

Load Balancing

Adding more than one machine to support large load so that the requests are balanced

YES YES

Sticky Sessions

If you have more than one instance using load balancer and the user connected to your instance then all subsequent requests are connected to same instance

NO YES

Subscription Type

It is a contract per hourly use or long time commitment.  Long time commitments are cheaper than the hourly use

Pay as you go or Subscription Pay as you go or Subscription
Technical Support Forums and various levels of paid support  Forums and various levels of paid support

DATABASE

Databases are used to persist your application data such as users, contents, orders etc., there are several database engines.  In this section we will refer how SQL Server runs in all three cloud providers.

  • Microsoft Azure provides SQL Database as a low cost, multi-tenant cloud database.
  • Amazon has two models:  (1) You can create a VM with SQL Server. (2) You can use SQL RDS (fully managed by AWS).

In most cases, you can use your own license or use the cloud provider’s license.  You are still responsible for computing costs for the SQL Server instance VM.  

Feature Microsoft Azure  AWS  
Database Support SQL Database (a.k.a. SQL Azure)   SQL Server 2008 R2 or Greater and  AWS SQL RDS (Managed SQL Instance) 

CLOUD STORAGE AND CDN

Cloud storage is a file system where you store and retrieve files from your applications.  Content Deliver Networks (CDN) were created to improve website performance by distributing assets to CDN nodes (edge servers).  Cloud providers of CDNs have edge servers around the world and distributed your assets across these networks.  By putting your assets closer to your site visitors, you can dramatically improve site performance.  

  • Microsoft provides the Azure Blob; one of the high-performing storage providers among other providers.
  • Amazon provides Simple Storage Service (S3), which has several features above and beyond what is included with the Azure Blob.
Feature Microsoft Azure (PaaS) AWS  (IaaS)
Storage Azure Blob Amazon S3
CDN Azure CDN Unique CDN endpoint per account CloudFront Unique CDN endpoint per Container
Containers Count Unlimited 100
Deleting Containers without Deleting Entries First YES NO
Logging Storage Analytics S3 Logging
User Accessing/Storing Data by Customer NO YES

Server Side Encryption/Client Side Encryption

Secure and Encrypt your storage items using AES algorithm

NO YES
Archiving Storage NO YES
Private Content Container or Object Level Container or Object Level

 

Object Structure

There is no physical folder concept in the cloud.  They are virtually separated by using “/” character.

Container/Folder/…/ Object

Ex., container/user1/ document1.docx

Container/Folder/…/ Object

Container/Folder/…/ Object

Ex., container/user1/ document1.docx

CLOUD PERFORMANCE

Now that we’ve looked at some of the features, let’s also look at performance.   

The following chart shows benchmark comparisons for performance, stability, and scalability, from nasumi.com 

As you can see, while both Microsoft and Amazon are relatively similar, they also perform a bit differently in key areas.  So when you are choosing a cloud vendor, be sure to choose the vendor that will give you  the best performance for your needs.

EKTRON CLOUD SUPPORT

Today, startups and established organizations are looking to either PaaS or IaaS based on their application needs, so they can offload core infrastructure responsibilities, reduce costs and boost scalability. With Cloud Manager, you can easily provision your site in the cloud with just a few clicks and then synchronize it across your development, staging and production instances.   Cloud Manager works with both Azure and Amazon.  

Now you can also use the Ektron CMS on any other cloud provider that supports a Windows VM, but will lack the time savings and easy setup and synchronization across deployments that you get with Cloud Manager and eSync. 

BOTTOM LINE, WHICH CLOUD IS THE BEST?

Clearly, while all the cloud vendors are similar in many ways, there are a few very important differences. 

  • If you need more control over the machines and software then go with Amazon.  For example if you need to run some of the enterprise servers like SharePoint or SOLR then Amazon EC2 instances are the best fit because they are persisted VMs.
  • If you want to run your code without having control over the OS, VM, and so on, then go with Microsoft Azure.  For example if you have stateless (no dependency on VM) applications or websites which does not require any persistency then you go with Microsoft Azure.
  • If you just need compute to process large data for reporting then either of these options will work well.

I hope that helps you choose the right cloud vendor for your organization.  If there are additional factors you are curious about or have questions, please let me know in the comments.