Which cloud is best? Azure vs. AWS vs. Google
Overview
- What is Cloud Computing?
- Why? Advantages of Cloud
- Landing Zones
- Cloud “as a Service” (*aaS) models
- Triggers to migration
- We must pick a single cloud?
- Cloud vendor comparisons
- Additionally…
- Alternative clouds
- Market share
- Operating Systems and Package Managers
- Network speed comparisons
- Outage tracking
- Categories of cloud services:
- Service brand names
- Exam Questions
- Resources
- More on DevOps
- More on cloud
SRG Research reported that in 2020, customer spending on shared cloud infrastructure now exceeds spending on on-prem. data center hardware.
A larger research firm, Gartner, predicted the cross-over to occur in 2024:
NOTE: Content here are my personal opinions, and not intended to represent any employer (past or present). “PROTIP:” here highlight information I haven’t seen elsewhere on the internet because it is hard-won, little-know but significant facts based on my personal research and experience.
Analysis of corporate S-1 filings identified significant cloud spend as percentage of corporate Total Revenue:
What is Cloud Computing?
PDF: NIST 800-145 defines the characteristics:
- Resource Pooling (for economies of scale) is the most fundamental characteristic
- On-demand Self-Service (using UI/CLI without human interaction)
- Broad Network Access (internationally using standard protocols)
- Rapid Elasticity (automatically scale UP/DOWN server types and OUT/IN instances) in response to system load
-
Measured Service (pay for what you consume)
- Multitenancy (distinct from resource pooling) is added by ISO/IEC 17788’s six key characteristics.
Why? Advantages of Cloud
Evaluations can be based on the advantages of cloud:
-
Cloud vendors provide a large capacity pool, and benefit from economies of scale, for many users who pay for actual usage.
-
Paying for metered actual usage conserves cash up-front which trades variable expense (OpEx) for capital expense (CapEx).
-
It’s faster to obtain capacity by using cloud vendors who can buy newer, speedier equipment. This helps your organization to achieve agility.
-
Individual users can now stop over-provisioning on-premise data centers to ensure adequate capacity which often go unused due to the uncertainty of future demand.
-
Scale enables cloud vendors to hire expert specialist teams who can innovate faster than individual companies.
-
Cloud customers’ workers make use of cloud vendor innovations to achieve higher productivity and security.
-
Greater reliability to make data backup, disaster recovery, and business continuity easier and less expensive, with data being mirrored at multiple redundant sites on the cloud provider’s network.
-
Go global - make use of compute and network infrastructure established around the world (time consuming, expensive, and dangerous to do on one’s own).
PROTIP: Memorize the above list for exams and interviews.
Amazon’s “Well Architected” notes the constraints removed by being in the cloud:
- Test production at scale
- Make experimentation easier (overcome fear of change)
- Allow architecture to evolve (rather than being frozen in time)
Landing Zones
Microsoft calls “Landing Zones” the output of a multi-subscription Azure environment that accounts for scale, security, governance, networking, and identity. Azure Landing Zones enable application migration and greenfield development at enterprise scale in Azure. These zones consider all platform resources required to support the customer’s application portfolio and don’t differentiate between infrastructure as a service or platform as a service.
Cloud “as a Service” (*aaS) models
There are different ways to make use of cloud infrastructure:
- SaaS - Applications reached using a browser (Google Gmail, WebEx/Zoom, Salesforce, Microsoft Office 365, Box, Slack, etc.)
-
SaaS - App Data reached using API calls (Monitoring: Splunk, Datadog, etc.; Storage: Blob, Table, File, Message; DB: Postgres SQL, Cosmos planetary DB)
- PaaS - App Runtime (SAP Heroku, Web Apps built in NodeJs/Rust using a React/Vue UI library)
- PaaS - Middleware (AWS Elastic Compute Service (ECS), Kubernetes)
-
PaaS - O/S (Azure App Service)
- IaaS - Virtualization (VM, Containers)
- IaaS - Servers
- IaaS - Storage
- IaaS - Networking
Triggers to migration
An IDC July 2020 study identified these “trigger events” as most important in leading the organization to use cloud services:
- Data has grown beyond the capacity of existing systems.
- IT budgets being constrained or reduced.
- Support digital transformation initiatives.
- Need functionality or services only found in cloud offerings
- Keeping up with compliance across regions (GDPR, etc.)
- Failing to meet the demands of business due to legacy systems
What to do with legacy systems
More than 6
strategies to migration:
-
Retain (not moving) - keep recruiting/retraining new people on how to work on the app, knowing that it would be difficult to attract and retain the best willing to endure the toil and disrespect from their friends.
-
Retire the system to force workers to do something else.
-
Repurchase a SaaS application (such as Salesforce) and migrate the data, then shut down the on-prem system.
-
Relocate - migrate just hypervisor hosts (of Oracle database) to VMWare Cloud on AWS.
-
Rehost (“lift-and-shift”) infrastructure, with no/little app code changes.
This is a functional recreation of infrastructure in the cloud: Networks would be recreated using VPCs. Apps would be placed into EC2 instances. Storage drives would be converted to S3 buckets. That would shift CAPEX to OPEX variable expenses.
This would occur with minimal disruption and downtime to end-users. This would likely cost less than building alternatives. Consider the PDF: Business Value of Migration to Amazon Web Services and the AWS Server Migration Service. AWS Professional Services created their Cloud Adoption Framework.
WARNING: Legacy application code tend to have security issues that must be patched. So Rehosting would buy more time to work on the app code, but not eliminate the need to remediate security issues in the app code.
-
Replatform (“Lift-tinker-and-shift”) - making targeted cloud optimizations such as switching databases to cloud-based AWS RDS.
-
Refactor - transform existing apps with minimal code change to use Docker and Kubernetes, robust logging, “elastic” auto-scaling in & out, etc.
-
Rebuild - reconstruct existing app on a new PaaS platform.
-
Rearchitect - isolate application functionalities into separate microservices that can be independently deployed, tested, scaled up or down, and managed.
-
Replace - retire existing on-premises applications and rewrite functionality under a new architecture such as a Serverless or SaaS (“cloud native”) application.
Despite all the good reasons, individuals used to the old way may still “drag their heels”. See my posts about Change Management.
We must pick a single cloud?
Organizations are going multi-cloud by using software from Snowflake for database, etc.
But an individual has a limited amount of time to keep up with changes. So many individual technologists need to select the cloud vendor that provides the best career prospects. Here’s my logic:
-
If you code in C# on .NET and want to continue leveraging that experience, Azure is the natural choice. (But other clouds are trying to support Windows.)
-
Azure provides free learning instances. AWS is the only cloud that requires a credit card, and provides only email support (with varying response times, and often with no response at all).
-
If you’re looking for the fastest and easiest path to get a job in cloud, go for AWS because of its current market share and pace of innovation. AWS has the most sophisticated authentication and database services.
-
Due to competitive reasons, companies in retail, music, etc. use other clouds: Target, Best Buy, eBay, Sony Music, etc. use Google. WalMart uses Azure. Since Amazon is moving into agriculture (building urban farms to provide Whole Foods and Amazong Go stores) plus health care, established competitors in those industries would not want to use AWS.
-
If you’re moving a lot of data on networks, Google offers fast fiber networks that don’t limit what large machines can achieve.
-
AI and Machine Learning are at the forefront now. Google’s TensorFlow competes with Facebook’s open-source PyTorch.
-
Google’s SSD drives are expensive, though needed for speed.
-
IBM has bare-metal machines, if that’s your thing. But since 2017 AWS provides them as well.
-
Increasingly, companies doing business in a particular country are required to keep data within a cloud data center within that country (such as Google in Belgium).
Cloud vendor comparisons
Gartner’s Cloud Vendor Magic Quadrant 19 October 2022
This article compares the largest cloud services platforms: Amazon AWS vs. Microsoft Azure vs. Google Cloud Platform vs. IBM Softlayer vs. Rackspace vs. Alibaba Cloud vs. Huawei Cloud.
Major multi-cloud vendors include Oracle, SalesForce’s Heroku, SkyTap, etc.
VIDEO: The Myth of Multi-cloud by Corey Quinn
Microsoft has a live class: Microsoft Azure solutions for AWS developers
Software for private clouds include Red Hat OpenStack and VMWare.
Software for hybrid private/public clouds include CloudFoundry, HashiCorp Terraform, and others. NetApp, or EMC
EDITOR’s NOTE: This is not a complete treatment. Additional information will be added over time.
http://cloudcomparison.rightscale.com presents all the details well. DOCS So here I’m adding additional commentary here.
Additionally…
As of June 7, 2023;
Factor | AWS | Azure | GCP |
---|---|---|---|
Company | Amazon | Microsoft | |
Initial appearance | 2006 | 2010 | 2012 |
Granularity of billing | per hour | per minute | per second |
Entrepreneurial Discount | - | BizSpark | |
# Regions | 24 | 46 | 34 |
# Data centers | 24 | 100 | |
# zones | 33 | 100 | 103 |
Largest # vCPUs cores | 448 | 32 | |
Largest RAM GB | 1,952 GB | 448 GB |
PROTIP: Moving up to double the RAM or cores usually does not yield a doubling of capacity due to overhead and limits in shared components such as networking.
ARM processors run faster and cooler than Intel x86 processors. AWS Graviton Nitro EC2 instances. Until June 30th 2021, all new and existing AWS customers can try the t4g.micro instances free for up to 750 hours per month.
Pricing
Even though cloud vendors provide a great deal of transparency in how they price their services, there are so many variables that affects the final bill that the only accurate way is to actually run services.
-
https://azure.microsoft.com/en-us/pricing/calculator
is Microsoft's Azure Pricing Calculator - http://calculator.s3.amazonaws.com
is Amazon's AWS Pricing Calculator
- AWS has matched Azure pricing, and also per-minute billing.
Cowan analysis May 2016 (using 1.0 as average among vendors) rated Amazon 1.37 (above avarge) in prices (most expensive). Microsoft was rated the leader in price and APIs, but the lowest in support.
QUESTION: Is the comparison based on spot instances in AWS, which are of low cost because they can be taken away at any moment by someone who outbids.
References:
- https://cast.ai/blog/how-to-choose-the-best-vm-for-the-job/
- https://www.simform.com/blog/compute-pricing-comparison-aws-azure-googlecloud/
Data breaches
- https://firewalltimes.com/microsoft-data-breach-timeline/
- https://firewalltimes.com/amazon-web-services-data-breach-timeline/
- https://firewalltimes.com/google-data-breach-timeline/
Alternative clouds
-
https://console.hetzner.cloud/ - Hetzner Cloud
-
https://vultr.com/ - Vultr (pronounced Vulture) - get $150 off code from a Linus Tech Tips video,
-
Akash Network is the Airbnb for cloud hosting webapps such as these. Akash provides a decentralized cloud marketplace where otherwise underutilized machines can be rented temporarily (like AWS Spot Instances). For “one-third the cost of” mainstream clouds. Compare prices live at Cloudmos.io.
Akash runs a Kubernetes service to orchestrate and manage your containers.
Asset transfer occurs off-chain over mTLS.
Many are web3-related. Payments are via AKT blockchain coin.
And the network is maintained by a network of validators and governed by AKT stakers.
Its users define a deploy.yaml “manifest” file written in their “Stack Definition Language (SDL) declarative language (not HashiCorp HCL).
https://www.reddit.com/r/akashnetwork/
Market share
Amazon had an early lead in 2006 and has been maintaining its lead even though Microsoft and Google are growing fast as well with 50%+ annual growth*
At the end of 2018, corporate filings reavealed this:
Earlier in 2015:
Operating Systems and Package Managers
As of May 2016, Microsoft Azure works with SUSE and Oracle Java, but NOT Red Hat/IBM Enterprise Linux (RHEL). IBM Cloud is a competitor to AWS and Azure.
Amazon provides software to host whatever OS is put into images. But its free server images are based on CentOS, derived from Red Hat as both use the yum package manager. Amazon is working on “Linux2” based on Red Hat.
RPM Package Manager (RPM) (originally Red Hat Package Manager, but now a recursive acronym) refers to the .rpm file format and the package manager program itself. RPM was intended primarily for Linux distributions; the file format is the baseline package format of the Linux Standard Base.
The Yellowdog Updater, modified (YUM), is a free and open-source command-line package-management utility for computers running the Linux operating system using the RPM Package Manager. Though YUM has a command-line interface, several other tools provide graphical user interfaces to YUM functionality.
Network speed comparisons
Under ideal conditions, latency over networks are limited by speed of light traveling within fiber-optic cables, which is roughly 202,562 km/s (125,866 miles/s). Actual reachable speed is still a bit lower than that.
To estimate distance between terrestial locations, use Distance Calculator website
TUTORIAL: Qwiklabs Network Performance Testing tutorial provides step-by-step instructions for obtaining timings between regions. It sets up one network with five subnetworks in different regions and a VM in each subnetwork. Utilities ping, iperf.
Alternately, the open-sourced Linux/Unix utility mtr (My Traceroute, originally called Matt’s traceroute) combines Ping and Traceroute functions* brew install mtr is available for macOS to sudo mtr.
To compare network speeds using GUI tools:
PROTIP: cloudpingtest.com reports the ping response live from your laptop as many times as you view the page, providing the Mean, Median, Min, and Max statistics for each region in AWS, Azure, GCP, and other clouds.
AWS Cloudshell is available only on these regions
GCP networking
Google has laid its own fiber-optic wires around the world:
Entry into Western Africa is Nigeria.
VIDEO: submarinecablemap.com show undersea cables capable of transmitting 100Gb/s to 400gb/s.
PROTIP: As of this writing, latency between Google’s EU and Asia locations is very high (slow) because Google Compute Engine does not have a direct link between them.
PROTIP: If you only operate out of just one region in the world, use a Central US region, which reaches West to Asia and East to Europe.
http://www.gcping.com measures current ping speed to regions on Google’s cloud.
To stop collection, press the dot with the arrow at the upper-right.
Amazon AWS networking
Amazon makes users specify the region to use. However, since Amazon usually makes new services first avilable on its us-east-1 (Virginia) region, that data center is most prone to overloading and thus down-time.
Amazon’s own ec2-reachability.amazonaws.com does not provide ping speeds to specific IP addresses within each availability zone within each region, but a green icon when it can be currently reached at any speed.
http://cloudping.info measures current ping speed to various regions on Amazon’s EC2 cloud. Scroll down to click “HTTP Ping” to begin collection to a running line graph:
https://ping.varunagw.com/aws.htm provides green, yellow, red colors with Mean, Median, Min, and Max statistics based several measures of the speed to each EC2 region.
Microsoft Azure networks
At time of writing, Microsoft has over 60 regions around the world on their map:
There is also an interactive map showing a point for each region’s Longitude and Latitude with city name.
http://www.azurespeed.com measures current ping speeds between regions on Microsoft’s Azure cloud. To stop collection, click “uncheck all” or individual regions of interest:
https://build5nines.com/map-azure-regions/
To display Microsoft’s own analysis of ping speeds between its regions (using data from the thousandeyes.com (Cisco) network analytics company, view:
https://docs.microsoft.com/en-us/azure/networking/azure-network-latency
PROTIP: In the above, the slowest is 400 ms round-trip between Cape Town (South Africa West) and Australia East.
One big advantage of Azure over AWS is that AWS requires users to do their own backups and restores. But Microsoft does its own complete backups of all data in each zone, and when there is an outage, they take care of restoring it to a new zone. Where backups go is not public information, but it is likely that they are in a different zone in the same region, or in a different region. These cross-region pairs are used for replication in Azure business continuity and disaster recovery.
Outage tracking
https://status.aws.amazon.com is Amazon’s AWS Service Health Dashboard applicable to all users. Under the tab for each continent is a list of each service plus region combination.
PROTIP: Most new services begin in the N. Virginia region “US-EAST-1”, as do the most famous outages. So if you are running a production load, try to use a different region than that. Nevertheless, that’s where one must provision AWS Cloud Front CDN for worldwide distribution.
https://phd.aws.amazon.com is your Personal Health Dashboard for your account.
http://downdetector.com/status/aws-amazon-web-services provides 3rd-party crowd-source status.
https://istheservicedown.com/problems/amazon-web-services-aws/history is a private-party site reporting the history of downtimes on AWS. For example:
For a list of outages further back: https://outage.report/aws-amazon-web-services
Categories of cloud services:
- Security (identity)
- Networks
- Management (monitoring, governance)
-
DevOps (development to operations)
- Compute (PaaS Web apps, mobile apps, containers, Functions, Logic Apps)
- Integration (messaging, migrate)
- Persistance (storage, databases)
- Analytics (includes Machine Learning & AI)
Service brand names
Here are the names of brand names, some with links to marketing or documentation pages:
Azure MDC (Mobile Data Center) makes use of “Azure Stack” software that runs Azure on-prem. in shipping containers, each with its own power and cooling hardware.
Credit: TomsITPro and Microsoft’s comparison
Exam Questions
Your business is transitioning from an entirely on-premise IT environment to one hosted entirely in the public cloud. All physical servers and resources within your on-premise space will be replaced with virtual cloud resources hosted at offsite locations, on hardware that is managed by the cloud provider.
You are forecasting your IT resource costs for required compute, networking, and storage, and how expenses will change as a result of your cloud migration.
Which statement describes how your capital expenditures and operational expenditures for IT resources will change by migrating entirely to the public cloud?
A Your capital expenditure costs for IT resources will increase, while your operational expenditures will not change.
B Your IT resource costs will generally change from operational expenditures to capital expenditures.
C Your operational expenditure costs for IT resources will increase, while your capital expenditures will not change.
D Your IT resource costs will generally change from capital expenditures to operational expenditures.
Resources
STAR: Comparing the Network Performance of AWS, Azure, GCP, IBM Cloud and Alibaba Cloud Feb 21, 2020 by Angelique Medina of Thousand Eyes found that:
- Azure and GCP route traffic through therir internal backbone network while AWS and AliCloud use the public internet more. IBM has a hybrid approach.
- Azure is generally the fastest. GCP was slowest, worldwide, especially in Europe because they had no direct path from Europe to India in their own backbone but routed around the world.
https://cloudonaut.io/my-mental-model-of-aws/
https://statistica.com has statistics on AWS:
BLOG: “The Cost of Cloud, a Trillion Dollar Paradox” by venture capital firm Andressen Horowitz
https://csrc.nist.gov/publications/detail/sp/800-145/final NIST 800-145 - Definition of Cloud Computing
- People
- Data
- Applications
- Runtimes
- Middleware
- Operating system
- Virtual network
- Hypervisor
- Servers
- Storage
- Physical Network
More on DevOps
This is one of a series on DevOps:
- DevOps_2.0
- ci-cd (Continuous Integration and Continuous Delivery)
- User Stories for DevOps
- Git and GitHub vs File Archival
- Git Commands and Statuses
- Git Commit, Tag, Push
- Git Utilities
- Data Security GitHub
- GitHub API
- Choices for DevOps Technologies
- Pulumi Infrastructure as Code (IaC)
- Java DevOps Workflow
- AWS DevOps (CodeCommit, CodePipeline, CodeDeploy)
- AWS server deployment options
- Cloud services comparisons (across vendors)
- Cloud regions (across vendors)
- Azure Cloud Onramp (Subscriptions, Portal GUI, CLI)
- Azure Certifications
- Azure Cloud Powershell
- Bash Windows using Microsoft’s WSL (Windows Subsystem for Linux)
- Azure Networking
- Azure Storage
- Azure Compute
- Digital Ocean
- Packer automation to build Vagrant images
- Terraform multi-cloud provisioning automation
-
Hashicorp Vault and Consul to generate and hold secrets
- Powershell Ecosystem
- Powershell on MacOS
- Jenkins Server Setup
- Jenkins Plug-ins
- Jenkins Freestyle jobs
- Docker (Glossary, Ecosystem, Certification)
- Make Makefile for Docker
- Docker Setup and run Bash shell script
- Bash coding
- Docker Setup
- Dockerize apps
- Ansible
- Kubernetes Operators
- Threat Modeling
- API Management Microsoft
- Scenarios for load
- Chaos Engineering
More on cloud
This is one of a series on cloud computing:
- Dockerize apps
- Kubernetes container engine
- Hashicorp Vault and Consul for keeping secrets
- Hashicorp Terraform
- Ansible server configuration automation
- Serverless software app development
- Terraform (declarative IaC)
- Build load-balanced servers in AWS EC2
- AWS On-boarding (CLI install)
- AWS MacOS instances in the cloud)
- AWS Certifications
- AWS IAM admin.
- AWS Data Tools
- AWS Security
- AWS VPC Networking
- AWS X-Ray tracing
- AWS server deployment options
- AWS Lambda
- AWS Cloud Formation/cloud-formation/)
- AWS Lightsail
- AWS Deeplens AI
- AWS Load Balanced Servers using CloudFormation
-
Microtrader (sample microservices CI/CD to production Docker within AWS)
-
AWS Data Processing: Databases, Big Data, Data Warehouse, Data Lakehouse
- Google Cloud Platform
-
Bash Windows using Microsoft’s WSL (Windows Subsystem for Linux)
- Azure cloud introduction
- Azure Cloud Onramp (Subscriptions, Portal GUI, CLI)
- Azure Cloud Powershell
- PowerShell GitHub API programming
- PowerShell DSC (Desired State Configuration)
- PowerShell Modules
- Microsoft AI in Azure cloud
- Azure cloud DevOps
- Azure Networking
- Azure Storage
- Azure Compute
- Dynatrace cloud monitoring
- Digital Ocean
- Cloud Foundry