October 10, 2023
The AE Business Solutions Cloud & DevOps team occasionally gets asked: how do I go about selecting a cloud provider? There are many angles to come at this question from, and for many of our clients -- it’s use-case dependent. It has become common to utilize more than one cloud provider as different providers have different strengths.
So, what are the key strengths and weaknesses of each of the “big three” cloud providers?
AWS is the oldest, and arguably most mature cloud provider. Although other providers have gained significant market share in recent years (especially Azure), AWS remains the clear market share leader. This can be a double edged sword: while AWS has a truly staggering number of services, many of them quite mature, it has also accrued a fair amount of technical debt. One good example of this is AWS IAM: while extremely flexible, it is far and away the most complex IAM solution of any cloud provider today.
AWS has an impeccable security record and is somewhere in the middle in terms of reliability compared to the competition. This is very subjective, but we believe their web console is the worst of the three big providers. There are many reasons for that, but the big ones are lack of consistency across the platform and difficulty getting a unified view of deployed cloud resources (in AWS you select one region to work in at a time; in contrast, for example, Azure defaults to a unified view of all resources you have deployed regardless of account [subscription] or region).
AWS tends to be popular with software developers, especially ones not strongly tied to the Microsoft ecosystem (e.g. C#). Their networking capabilities are very mature and AWS is generally well liked by network and operations teams. A notable weak spot for AWS is in the rapidly evolving ML/AI space; while they have a variety of offerings here, Azure and especially GCP have moved much quicker.
Microsoft’s Azure platform has had the most rapid growth in the last couple years and while still smaller than AWS, has gained significant ground. Microsoft knows how to sell to large enterprises and has benefited from the tight integration with the rest of their ecosystem (Azure AD, Office 365,etc).
Azure arguably has the best web console experience with a very modern UI and easy access to information. For developers comfortable in the Microsoft development ecosystem (Visual Studio, VS Code, C#, SQL Server, etc.), Azure provides a very pleasant and integrated experience. Networking capabilities are very good, if slightly less mature than AWS’s.
Azure’s biggest weaknesses are security and reliability. Of the big three, Azure has the worst reliability record with a history of semi-regular outages. Overall, their uptime is good enough for most businesses, but it is an area for them to improve. On the security front, Azure has had a series of rather embarrassing security mistakes; several of which have been cross-tenant vulnerabilities or data leaks. Cross-tenant vulnerabilities are basically unheard of in AWS and GCP, but Azure has racked up over half a dozen in the last few years. That said, the numbers show that you are far more likely to have a security incident due to misconfiguration on your part than by your provider being compromised.
For organizations that are really comfortable in the Microsoft ecosystem, Azure can be a great choice.
GCP is the distant third of the big three and has struggled to capture more market share. There are likely a lot of reasons for this, but Google’s reputation for poor support and deprecating products is definitely a contributing factor.
The use-case that we see driving the most GCP adoption is ML, AI, and analytics. Google does not have as many service offerings overall as AWS and Azure, but their database, data warehouse, ML, AI, and other data services are industry leading. GCP benefits from all the work that Google has pioneered in this space for their own internal systems.
We also find GCP to generally be very cost-effective when comparing based on price-to-performance. CPU, storage, and especially network performance on GCP are very good. We would rate their web console somewhere in the middle: not amazing, but pretty good. Networking capabilities overall are very good, with a couple notable weaknesses; for example, we find their load balancing solutions to be a bit more complex to understand and deploy compared to competitors.
For organizations looking for a platform to do data analytics, machine learning, or AI, GCP should be top of list.
You’re unlikely to seriously regret going with any of the big three: they all compete closely on both services offerings and pricing. That said, it can definitely be worth it to choose depending on the use case, and not just go in on a global choice.
If you want to dive deeper on how cloud providers compare, AE’s Cloud & DevOps team would love to chat!