Cloud computing is renting capabilities (compute, storage, networking) with managed building blocks and pay-as-you-go economics. The engineering work is choosing the right abstraction level and designing for failure, cost, and scale. Example: using a managed database can eliminate ops toil, but you must understand limits, backups, and recovery.

Cross-Provider Comparison

The three major providers expose analogous capability categories under different names. The products are not equivalent: APIs, consistency, regional topology, failure modes, quotas, and prices differ. Use the table to translate a requirement into candidates, then follow the provider hub and current documentation for the actual contract.

CapabilityAWSAzureGoogle Cloud
Virtual machinesEC2Azure VMsCompute Engine
Serverless computeLambdaAzure FunctionsCloud Run functions
Object storageS3Blob StorageCloud Storage
NoSQL document DBDynamoDBCosmos DBFirestore
Message queueSQSService Bus / Storage QueuesCloud Pub/Sub
Data warehouseRedshiftSynapseBigQuery
Cross-region relational DBAurora GlobalAzure SQL Database (geo-replication)Cloud Spanner
Managed ML platformAmazon SageMaker AIAzure MLVertex AI
LLM APIBedrockAzure OpenAIVertex AI Gemini

These map capabilities, not guarantees. Spanner commits writes through synchronous Paxos quorum replication within the selected instance configuration; replication crosses regions only for dual-region and multi-region configurations. Aurora Global and Azure geo-replication instead use asynchronous primary + replica designs.

Data Pipeline Capability Map

A data pipeline is easier to reason about as stages than as a provider catalog. Pick a service only after fixing the stage’s contract: delivery semantics, replay window, schema evolution, latency, data volume, query shape, and ownership.

StageAWS examplesAzure examplesGoogle Cloud examplesQuestion that decides
IngestKinesis Data Streams, Amazon MSK, DMSEvent Hubs, Data FactoryPub/Sub, DatastreamIs the source a replayable stream, database change log, or scheduled batch?
LandS3Data Lake Storage Gen2 / OneLakeCloud StorageWhich format, partition key, retention rule, and encryption boundary make raw data reproducible?
ProcessGlue, EMR, Managed Service for Apache FlinkDatabricks, Fabric, Stream AnalyticsDataflow, DataprocIs processing batch or streaming, stateful or stateless, and who operates the runtime?
ServeRedshift, Athena, OpenSearch ServiceFabric Warehouse/Lakehouse, Data Explorer, Azure AI SearchBigQuery, Bigtable, BigQuery searchIs the consumer doing OLAP, low-latency key lookup, time-series analysis, or full-text/vector search?
PresentQuickSightPower BILooker / Looker StudioDoes the consumer need governed semantic models, embedded analytics, or exploratory dashboards?

This is a capability map, not a claim of service equivalence. Cosmos DB, for example, is an operational distributed database rather than Azure’s data-warehouse stage. The original source visual is therefore not embedded.

Managed Database Capability Map

Choose the data model and access pattern before the provider product. A managed label removes some operational work; it does not make consistency, indexing, partitioning, backup, or portability decisions disappear.

WorkloadAWS examplesAzure examplesGoogle Cloud examplesPortability boundary
Relational OLTPRDS, AuroraAzure SQL, Azure Database for PostgreSQL/MySQLCloud SQL, AlloyDBEngine-compatible services still differ in extensions, replication, failover, and control-plane APIs
DocumentDocumentDB, DynamoDB document itemsCosmos DB for NoSQL, Azure DocumentDBFirestoreQuery language, transactions, partitioning, and consistency APIs are provider-specific
Key-valueDynamoDBCosmos DB, Azure Managed RedisBigtable, MemorystoreData model alone does not establish durability or multi-key transaction behavior
Wide-columnKeyspacesManaged Instance for Apache CassandraBigtableCassandra API compatibility does not imply identical topology or operations
GraphNeptuneCosmos DB for Apache GremlinSpanner GraphQuery languages and graph semantics differ
Time-seriesTimestream for InfluxDB; Timestream for LiveAnalytics for existing customers onlyAzure Data ExplorerBigtable / BigQuery patternsRetention, downsampling, ingestion rate, and query engine drive the choice
WarehouseRedshiftFabric Warehouse / Synapse dedicated SQL poolsBigQueryStorage layout, workload management, governance, and pricing are not portable
CacheElastiCache, MemoryDBAzure Managed RedisMemorystoreDecide whether cache loss is acceptable before choosing persistence or replication options

The rejected source visual aligned managed products with open-source engines as if their APIs and guarantees were interchangeable. Validate the exact region, feature, consistency, and recovery contract in provider documentation.

Timestream for LiveAnalytics closed to new AWS customers on June 20, 2025. New workloads should evaluate Timestream for InfluxDB or a different time-series path against their query language, retention, scale, and operating requirements rather than treating LiveAnalytics as generally adoptable.

Cloud Cost Loop

Run cost work in dependency order: allocate and measure, eliminate idle resources, right-size from utilization and reliability data, schedule variable demand, then commit only the stable baseline. Buying a reservation before removing waste discounts the wrong architecture. Cloud Cost Management develops the loop into allocation rules, anomaly handling, and unit economics.

Cloud-Native Anti-Patterns

Non-normative source visual

The labels are prompts to inspect operational coupling, not universal anti-patterns. A modular monolith or stateful component can be the simpler correct design when its ownership, lifecycle, and failure boundary are explicit.

Cloud abstractions move complexity; they do not remove it. A small system split into many services replaces local calls with fallible network calls and distributed ownership. A managed service per feature adds another IAM model, meter, quota, failure mode, and portability boundary. Treating every process as stateless merely moves durable state into databases, queues, object stores, and idempotency protocols. Keep a modular monolith, shared database, or explicit colocated state while one ownership and failure boundary remains the simpler correct design; split only when independent scale, release, security, or recovery requirements justify the distributed work.

Questions

References

6 items under this folder.