The cloud comparison articles I find online are almost always either sponsored (and therefore useless) or written by someone who has real experience with one provider and a Wikipedia-level understanding of the others. This is my attempt at the honest version, based on four years of running production systems across all three.
AWS: Still the Default, For Good Reason
AWS has the broadest service catalogue, the most mature ecosystem of third-party tools and integrations, and the deepest community knowledge base. When you search for a specific problem with a specific AWS service, there are usually five Stack Overflow answers and three blog posts from 2019 that solve it.
Where AWS wins: Maturity and breadth of services. If you need a service, AWS almost certainly has it and has had it longer than anyone else. The IAM and networking model, while complex to learn, gives you fine-grained control that's hard to match. Lambda and the broader serverless ecosystem are genuinely excellent.
Where AWS frustrates: The pricing model has more dimensions than a physics textbook. The console UI has improved but is still overwhelming. And the sheer number of services creates decision paralysis — there are seven ways to run a container on AWS and no clear guidance on which to use.
Azure: Best for Enterprise Microsoft Shops
If your organisation runs Microsoft 365, Active Directory, SQL Server, or .NET applications, Azure's integration with the Microsoft ecosystem is a genuine advantage. Azure AD (now Entra ID) integrates with basically every Microsoft product seamlessly in a way that's hard to replicate on AWS.
Where Azure wins: The Microsoft ecosystem integration is real and significant. Azure OpenAI Service gives you enterprise-grade access to GPT-4o and other OpenAI models with data residency controls that many enterprises require. The developer tools integration (GitHub, VS Code, Azure DevOps) is genuinely smooth.
Where Azure frustrates: The portal is simultaneously the most feature-rich and most confusing cloud console I've used. Services are renamed regularly. Documentation quality varies significantly by service. Some services feel like first-party Microsoft products; others feel like acquisitions that were plugged in without deep integration.
GCP: The Data and AI Specialist
Google Cloud is the platform I reach for when data workloads are the primary concern. BigQuery is still the best managed data warehouse available — and I say that having used Redshift, Snowflake, and Databricks. The Vertex AI platform for training and deploying ML models has matured significantly and the infrastructure is underpinned by the same clusters that Google uses internally.
Where GCP wins: Data engineering and ML workloads, BigQuery specifically, and networking (GCP's global network is genuinely superior for multi-region latency). Pricing on compute is often more competitive than AWS.
Where GCP frustrates: The ecosystem maturity gap versus AWS is real for anything outside data. Third-party integration support is thinner. GCP has a reputation (somewhat earned) for deprecating services that teams have built on, which creates trust issues.
The Honest Recommendation
For most startups and small teams: AWS. The ecosystem advantage, community knowledge, and service maturity are decisive at early stage when you're figuring things out as you go.
For enterprise Microsoft shops: Azure, especially if you're already paying for M365 and want seamless identity management.
For data-heavy workloads or ML: at least use GCP for BigQuery and Vertex AI even if your primary cloud is elsewhere. The multi-cloud overhead is worth it for significant data workloads.