Microsoft Azure and Amazon AWS are two big names in the cloud computing world. Given the several benefits offered by the cloud - on-demand scalability, reduced costs, effective operations - many businesses, regardless of their sizes, have already started moving towards it. If you are also planning to move your business to the cloud, Microsoft Azure and Amazon AWS are certainly two big players to choose from. Below, I am offering a detailed comparison between the two heavyweights of cloud services, so that it becomes easier for you to choose your niche.
Image Source: 123RF.com
Before we begin understanding the distinction between Azure and AWS, let’s take a glimpse into their history.
AWS: Amazon Web Services, a subsidiary of Amazon.com, was launched in 2006, with the aim of providing an array of cloud computing services to help companies benefit from on-demand computing platform. AWS is currently located in 15 geographical regions, and plans are afoot for three more regions in India, China and United Kingdom by 2017.
With more than 70 services on offer, including compute, storage, networking, database, analytics, application services, deployment, management, mobile, developer tools and tools for the Internet of things, AWS holds a substantial lead over Azure.
Azure: Microsoft launched Azure in 2010, originally with the name Windows Azure, to provide businesses a cloud computing platform. It was renamed in 2014 as Microsoft Azure, which offers around 50 cloud services today, including compute, analytics, storage, networking and features targeted at the Internet of Things. Microsoft Azure enables building, deploying, and managing applications and services through a global network of Microsoft-managed data centers. As of now, Azure is located in 30 regions around the world and is gearing up to be available at 8 more geographical regions.
AWS: For compute, AWS offers Elastic Compute Cloud (EC2), which is an IaaS service and provides scalable computing on-demand. AWS also offers Elastic Beanstalk, a PaaS service, for app deployment. Other related services you can avail from AWS are EC2 Container service, AWS Lambda and Autoscaling.
Azure: Virtual machines are pivotal to Azure’s compute offering, which mainly involves IaaS. Azure also offers Cloud Services for PaaS to deploy highly-available, infinitely-scalable applications and APIs.
Azure’s Resource Manager helps manage and visualize resources in your app, whereas Web Apps enables customers to create and deploy scalable web apps that are supported by Windows and Linux platforms. With Azure, developers can build sites using PHP, ASP.NET, Node.js, or Python, or select from several open source applications from a gallery to deploy.
Both Azure and AWS are excellent choices as far as their networking capabilities are concerned. Amazon’s Virtual Private Clouds (VPCs) and Azure’s Virtual Network (VNET) let users to group VMs into isolated networks in the cloud. Besides, a user can define a network topology, create subnets, route tables, private IP address ranges, and network gateways.
With Azure, users can connect VNETs to on-premises data centers via site-to-site VPN networks or Azure ExpressRoute. AWS also allows to establish a VPN connection between your corporate datacenter and your VPC. Both Azure and AWS are equally good for their networking capabilities and allow to extend your on-premise data center into the public (or hybrid) cloud.
AWS: Storage is an inextricable part of cloud services. Amazon offers Simple Storage Service (S3) for storage. AWS gets edge over Azure Storage service due to extensive documentation, including free webinars, tons of sample code and libraries, articles and tutorials. Besides, its discussion forums are very active and help users seek benefits from useful feedback provided by Amazon developers on a regular basis.
Other storage services offered by AWS include Elastic Block Storage (EBS), Elastic File System (EFS), Import/Export large volume data transfer service, Glacier archive backup and Storage Gateway, which integrates with on-premise environments.
Azure: Azure also offers Block Storage and Object Storage through blob storage, which includes page blobs and block blobs. Azure competes with Amazon’s EBS by offering page blobs that provide persistent block storage. On the other hand, Azure’s block blobs provide object storage, much similar to Amazon’s S3 service. Azure uses a flat architecture to store all the data in a single container with tags and metadata that allow identification, retrieval and manipulation of data.
Azure’s File Storage is an answer to Amazon’s EFS as it also provides a continuous availability storage option. With Azure, you can share File Storage among multiple VMs so that there is no hassle in running critical cloud applications. Also, it allows to share data between local and cloud servers.
(Blobs, Tables, Queues Files)
Amazon Simple Storage (S3)
Hybrid Cloud Storage
Both AWS and Azure support relational and NoSQL databases.
AWS: A wide range of managed databases, including SQL Server, MySQL, ProgreSQL, Oracle and MariaDB, are available from Amazon’s Relational Database Service (RDS) and Redshift. AWS also offers Database Migration Service, which allows customers to move on-premise relational data to the cloud. For NoSQl databases, AWS offers DynamoDB, which offers high scale, low cost document and key-value storage.
Azure: Azure’s SQL Database supports relational database based on SQL Server. A very few changes are sometimes required to migrate from on-premise SQL Server to SQL Database. Recent addition of Elastic database pools allows customers to save costs by running multiple databases against the same set of resources.
For NoSQL, Azure offers DocumentDB, which is a high performance, highly available document database.
Image source: WordPress.com
AWS: AWS allows processing of vast amounts of data they store. AWS Elastic MapReduce (EMR), a managed Hadoop, Spark and Presto solution, is indispensable to Amazon’s analytics offerings. EMR allows integration with various AWS services, including S3 and DynamoDB. AWS Data Pipeline makes it possible to move, copy, transform and enrich data.
Data Pipeline is well capable of reading and writing data from most AWS storage services. For data processing activities, it supports EMR, Hive and Pig. AWS offers Kinesis Streams for real-time analytics and QuickSight for making sense of data through dashboards and data visualisations.
Azure: Azure offers Cortana Intelligence and HDInsight, which comes with Hadoop, Spark, Storm or HBase. HDInsight also works well with blob storage or Data Lake Store. For data processing pipelines, Azure offers a data orchestration service Data Factory.
Azure Data Lake Analytics is a serverless hyper-scale data storage and analytical platform. It performs analytical jobs without the need of provisioning or managing computer clusters, and is also designed to access data in Blob Storage, SQL Database and SQL Data Warehouse. Azure offers Streamline Analytics for real-time data processing and Power BI for dashboards and visualisations.
For IoT, there is a need of platform that allows communication between devices over the internet. Also, it’s essential to handle large pileup of data without security breaches.
AWS: AWS IoT allows building complete IoT solutions. So, devices can communicate with applications that run in the cloud over HTTP, MQTT and WebSockets. A declarative rules engine allows AWS IoT to transform and send IoT traffic to S3 bucket or Lambda function. Besides, AWS IoT can route data to Kinesis Streams in order to run real-time analytics via applications written using the Kinesis Client Library.
Azure: Azure offers IoT Hub that supports AMQP, MQTT, and HTTP. Though, Event Hubs scores higher when it comes to basic large scale device telemetry ingestion. It can consume a huge volumes of messages over AMQP and HTTP.
For real-time analysis of device data, you can use Event Hubs with Azure Stream Analytics. What separates Azure from AWS and others is data streaming to Apache Storm, a popular open source streaming analytics platform. Microsoft has also announced Windows 10 IoT core, a concise version of Windows 10, to run specifically on IoT devices.
Since People are now spending more time on smartphones to access the internet than PCs, the cloud could play an important role in empowering developers to build and operate modern mobile apps.
AWS: AWS offers Mobile Hub to allow mobile development for Android and iOS. AWS also offers a wide range of services required to create mobile applications, including authentication (Cognito), content delivery (CloudFront and S3), push notifications (SNS), data storage and synchronisation (S3), analytics (Mobile Analytics) and access to backend compute such as Lambda. AWS Mobile SDK allows developers to build apps from scratch and is compatible with iOS, Android, Fire OS, .NET and Xamarin.
Azure: Azure offers Mobile Apps to support backend solution. Mobile Apps is a client SDK that opens doors for developers to build rich mobile solutions. Users can use Functions for serverless mobile backends and Notification Hubs for push notifications. You can also set up and sync to a SQL Database without writing any server side code, thanks to Azure Easy Tables. DevOps for Mobile application development is also available through Azure HockeyApp.
Azure was not available for open source shops until recently as Microsoft didn't have the history of having a good relationship with the open source community. However, Microsoft has finally made a big strategy shift to allow users to run Red Hat Enterprise Linux and Apache Hadoop clusters. Amazon, on the other hand, has never had problems with the open source community, and has been Linux-friendly from the beginning, a factor that has helped AWS get a significant lead over Azure.
Image source: Skyhigh Networks
AWS has become popular for the flexibility it offers to its customers, allowing them to pick and choose and build the cloud services they need. With AWS, customers get a plethora of product choices, but they sometimes find it hard to navigate through AWS complex features.
Microsoft Azure, on the other hand, has adopted an approach that is slightly different from AWS. It offers customers a stack of products that are simple to use. Their products are easier to navigate when compared to that of AWS, for an obvious reason - Azure does not offer as many products as AWS does.
Both AWS and Azure offer almost similar services when it comes to compute, storage, networking and databases. Pricing is not a big factor to taken into account when choosing between the two as both offer competitive pricing. So, you better decide your vendor based on your company requirements. It’s true that most cloud services are available from Amazon, but Microsoft Azure seems to be a better choice for a hybrid approach. Amazon is a veteran player in the game and offers a nice suite of cloud computing services. But Microsoft Azure can’t be completely ruled out as it continues to come up with new developments to not only match but surpass the pace of all the big players in the market, including Google.
What you think about the future of cloud computing? Which among the two cloud giants is your favorite? Please share your views in the comment box below.