An open, up-to-date mapping of equivalent managed services across AWS, Microsoft Azure, and Google Cloud — plus a second table comparing the data platforms Databricks, Microsoft Fabric, and Snowflake.
Live site: https://soyomarvaldezg.github.io/compare-cloud/
The classic reference for this, CloudComparer, stopped being maintained around 2023: service names went stale (Azure Active Directory instead of Microsoft Entra ID), documentation URLs rotted, and retired services lingered. This project keeps the idea alive with a design built for freshness:
- Data and presentation are separated. The mapping lives in small YAML files — updating a service name is a one-line diff.
- Every row carries a
verifieddate, shown on the site. Staleness is visible, not hidden. - A monthly detector checks every link, follows redirects (which reveal renames), and opens an issue listing exactly which rows need attention.
- The build fails if any row is older than 180 days without re-verification, so the site cannot silently rot.
data/services/*.yaml cloud mapping (AWS / Azure / GCP) — one file per category (the source of truth)
data/platforms/*.yaml data platform mapping (Databricks / Fabric / Snowflake), same format
scripts/build.py validates the YAML and renders the static site into site/
scripts/check_links.py staleness detector: checks every URL, reports redirects/breakage
scripts/convert_cloudcomparer.py one-time seed from CloudComparer (MIT), kept for provenance
.github/workflows/ Pages deploy + monthly staleness check
category: Compute
services:
- id: virtual-server
name: Virtual machines
verified: 2026-09-21
aws:
name: Amazon EC2
url: https://aws.amazon.com/ec2/
azure:
name: Azure Virtual Machines
url: https://learn.microsoft.com/azure/virtual-machines/
gcp:
name: Compute Engine
url: https://cloud.google.com/compute/Files under data/platforms/ use the same format with databricks, fabric and snowflake keys instead of aws, azure and gcp. Sections and their providers are declared in SECTIONS at the top of scripts/build.py — adding a new comparison table is one entry there plus a data directory.
Rules enforced by the build: unique id per service, ISO verified date, at least one provider, only the providers of that section, https:// URLs.
- Find the service in
data/services/<category>.yaml(ordata/platforms/<category>.yaml). - Edit the name/URL and bump
verifiedto today. - Open a pull request — that's it. CI re-validates and redeploys.
uv sync # install dependencies (PyYAML)
uv run python scripts/build.py # build the site into site/
uv run python scripts/build.py --strict # also fail on stale rows (>180 days)
uv run python scripts/check_links.py # check every URL (see --help for options)A scheduled workflow runs on the 1st of every month:
check_links.pyrequests every service URL with a polite user agent.- 404s and redirect chains are classified and reported (a redirect to a renamed product page is the strongest rename signal — e.g. the old Azure AD docs redirect to
learn.microsoft.com/en-us/entra/…). - The report is posted to a GitHub issue, so maintenance is a short list of one-line fixes rather than an audit.
What stays human: confirming that the suggested replacement is the right mapping. Everything up to that suggestion is mechanical.
- AI-assisted development: this project was built with AI assistance. Every data change was reviewed and verified against vendor sources before shipping; the automated link checker (above) is the ongoing guardrail. Data corrections are human-judgment calls, recorded as one-line diffs.
- Initial dataset seeded from ilyas-it83/CloudComparer (MIT, © Ilyas F), pruned to AWS/Azure/GCP, with renames applied and retired documentation domains rewritten. Thanks to the original author.
- Cross-checked against official vendor references: Google's AWS/Azure → Google Cloud comparison and Microsoft's AWS to Azure services comparison.
- Product names and links point to vendor pages; trademarks belong to their owners.
- This repository is MIT licensed (see LICENSE).
