Which cloud is best? Azure vs. AWS vs. Google
- What is Cloud Computing?
- Why? Advantages of Cloud
- Landing Zones
- Cloud “as a Service” (*aaS) models
- Triggers to migration
- What to do with legacy systems
- Individuals must pick a single cloud?
- Cloud vendor comparisons
- Market share
- Operating Systems aliances
- Network speed comparisons
- Outage tracking
- Categories of cloud services:
- Service brand names
- Exam Questions
- More on DevOps
- More on cloud
SRG Research reports that in 2020, spending on shared cloud infrastructure exceeded spending on on-prem. data center hardware:
A larger research firm, Gartner, reports 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 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/OUT and DOWN/IN 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)
Microsoft calls “Landing Zones” the output of a multisubscription Azure environment that accounts for scale, security, governance, networking, and identity. Azure Landing Zones enable application migrationa 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” most important in leading the organization to use cloud services:
- Data has grown beyond the capacity of existing system.
- IT budgets being contstrained or reduced.
- Support digital transformation initiative.
- Need functionality or services only found in cloud offerings
- Keeping up with compliance across regions (GDPR, etc.)
- Failing to meet demands of business due to legacy systems
What to do with legacy systems
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.
Migrate to cloud
The different strategies to migration:
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 place 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 which 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 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 application and rewriting 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.
Individuals must pick a single cloud?
Organizations are going multi-cloud by using software from HashiCorp, 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 which 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. Plus Google is ahead in Machine Learning with its popular Tensorflow in Python.
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.
As of June 6, 2021;
|Granularity of billing||per hour||per minute|
|# Data centers||24||100|
|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.
Even though cloud vendors provide a great deal of transparency to how they price their services, there are so many variables to what affects the final bill that the only accurate way is to actually run services.
is Microsoft's Azure Pricing Calculator
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.
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).
Amazon had an early lead in 2006 and has been maintaing 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 aliances
As of May 2016, Microsoft Azure works with SUSE and Oracle Java, but NOT Red Hat/IBM Enterprise Linux (RHEL).
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.
Network speed comparisons
Under ideal conditions, latency over networks are limited by speed of light traveling within fiber-optic cables, which is roughly 202562 km/s or or 125866 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:
Google has laid its own fiber-optic wires around the world:
Still, 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.
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 Test 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 networking
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://http://www.azurespeed.com measures current ping speed to various regions on Microsoft’s Azure cloud. To stop collection, click “uncheck all” or individual regions of interest:
https://docs.microsoft.com/en-us/azure/networking/azure-network-latency displays Microsoft’s own analysis of ping speeds between its regions (using data from the thousandeyes.com network analytics company):
PROTIP: The slowest connection is 400 ms round-trip between Cape Town (South Africa West) and Australia East.
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)
- 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
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.
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.
“Understanding the Difference Between Microsoft Azure and Amazon AWS” by veteran Pluralsight video presenter Elias Khanser, a Microsoft MVP
https://statistica.com has statistics on AWS:
BLOG: “The Cost of Cloud, a Trillion Dollar Paradox” by venture capital firm Andressen Horowitz
More on DevOps
This is one of a series on DevOps:
- 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
- Kubernetes Operators
- Threat Modeling
- API Management Microsoft
- Scenarios for load
- Chaos Engineering
More on cloud
This is one of a series on cloud computing:
- Well-Architected cloud assessment
- Serverless software app development
- SMACK = Spark, Mesos, Akka, Cassandra, Kafka
- Dockerize apps
- Kubernetes container engine
- Hashicorp Vault and Consul for keeping secrets
- Hashicorp Terraform
- Elastic Stack Ecosystem
- Pulumi (programmatic)
- Cloud Performance testing/engineering
- AWS On-boarding (CLI install)
- AWS MacOS instances in the cloud)
- AWS Certifications
- AWS IAM admin.
- 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)
- Google Cloud Platform
- Digital Ocean
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
- AppDynamics cloud monitoring