Johannesburg, 03 Feb 2023
Disclaimer: Before the 'Azure Army' or the 'AWS Anarchists' come for me, this is an opinion piece based on my experience deploying cloud environments for various organisations. Technically speaking, almost every cloud provider (at least in the top three) should be able to meet most, if not all, your needs. There is a lot of passionate vendor bias that goes into these decisions, so you will seldom make the wrong choice, but there are certain workloads that just work more seamlessly with specific providers.
I am going to specifically focus on the top three providers, namely Microsoft Azure, Amazon Web Services (AWS) and Google Cloud Project (GCP). There is a multitude of providers out there, some of which are bespoke (Salesforce and Oracle as an example), but they won't be of value to this list as they are generally used to solve a specific problem. I don't want to call these super complex hyper-scalers general use, but for the top three, this is what they are, built to solve 99.99% of problems.
So, let's jump into how I see each provider being used.
Microsoft Azure: The SaaS king
Microsoft has a host of very well-engineered products that have proven their resilience in the wild time and time again. Most organisations have had some form of Windows Server and services running in their on-premises data centres. Especially the crown jewel in the on-premises world, Active Directory.
Microsoft products such as Exchange, Microsoft SQL Server, Microsoft SharePoint and the Dynamics range of products did (and still do) very well on-premises; however, Microsoft taking them to the cloud and orchestrating them across their global footprint was a master stroke. It took the infrastructure complexity out of the mix and eased the licensing requirements.
Microsoft SQL Server, specifically, is engineered to run the best in Microsoft Azure. Given the flexibility in high availability and options ranging from heavy touch to fully managed, it makes a lot of sense to keep these sorts of tools in the home best built for them.
As for services such as compute (virtual machines) and storage, Microsoft Azure is about as good or bad as it gets. Virtual machines run brilliantly in Azure and the sizing options are great. Their edge network systems in the cloud are highly capable and backed by a robust third-party marketplace where needed.
The final feather in Microsoft Azure's cap is the cloud-edge solutions, which integrate seamlessly into a hybrid configuration. They have put a lot of sound engineering and solid solutions into making sure you can extend your data centre into the cloud and back again. All with the backing of seamless identity management in the form of Azure Active Directory.
My thoughts on Microsoft Azure – it's an ideal cloud for running Microsoft-based workloads, especially since the existing architecture was built on and around them. It will provide you with that and much more, but I like to have it in place for the amazingly engineered software solutions we have come to appreciate as infrastructure engineers.
Amazon Web Services: When the developers are in charge
AWS has become the preferred platform for developer-driven solutions. Now, what do I mean by developer-driven solutions?
Let's go back a few years. Assume a developer would be working on a solution to solve a specific problem. To do this, they needed some compute (typically a virtual machine), some storage and almost always a database or two. Not to mention the ability of the solution to send an e-mail, etc. This would need to be requested and the infrastructure team would push this to the InfoSec team, who would table it in their quarterly deployment meetings, in which it wouldn't get final sign-off because the CISO is on leave for mental health reasons. This means it will get granted three months later, right before the end-of-year freeze, which means right about Valentine's Day the following year, the developer would have been gifted the resources requested for the project that was supposed to go live last year.
Naturally, this was frustrating and AWS responded well by making the infrastructure componentry simple enough for developers to set up quickly, even if only for proof of concept. Tooling like SES requires little to no set-up, and spinning up small databases for quick code is exceptionally easy for developers on the platform.
Organisations pulling their hair out due to the delays in getting access to resources realised this and started adopting AWS as their go-to provider for developer-driven solutions. This, in turn, spawned massive digitalisation of companies such as Netflix, who realised that developers would be able to deploy a global streaming architecture, and the solution was a blockbuster (I'm sorry, I had to).
AWS realised this and started bundling solutions together (such as health technology, Regtech and banking options) to match what forward-thinking customers were doing and selling them as industry-specific cloud options, with some even getting dedicated regions.
I do not love AWS for its migration usage. It seems a waste of good hardware, given that software engineers are trying to move away from that. In my world, AWS is for the digitally forward-thinking organisation looking to re-architect legacy and go for global reach. However, all the hallmarks of a good cloud provider are there. EC2 is an amazing compute platform, it has flexible storage options and its network is amazing. It will work for your lift-and-shift/migration requirements, but you would be hard-pressed to sell AWS to me as a long-term infrastructure replacement destination, especially if the phrase "like for like" is mentioned in the meeting that could have been an e-mail.
Google Cloud Project: The day spa for your data
Trigger warning – the following statement might hurt your feelings: Google Cloud is the best place to do amazing work with big data. It managed to index the internet, and the same tooling it used to get that right can now be applied to your big data problems.
Google Cloud, as an extension of the Google-Verse, is a data engineer's ultimate playground. The tooling available from first sign-in to start ingesting, interpreting and then visualising data is what the leading companies in the field aren't getting 100% right. Google is for big data… plain and simple.
GCP's ability to manage big data has naturally spawned an ability for it to take the lead in machine learning and AI tooling. With the data tooling doing the heavy lifting, getting machine learning going is a far easier task in GCP than anywhere else I have observed it being used. This means the world of data science is proudly flying Google colours.
When it comes to Google Cloud, another hill I am willing to die on is the deployment of container solutions. Just like Microsoft SQL Server runs best in Microsoft Azure, Kubernetes is always going to impress more in Google Cloud. This makes it a solid contender for AWS with the data tooling and AI paired with the superior compute (once again, my opinion).
The final feather in Google's cap is its network. It has invested in a global, Google-owned network and has reached more of the population than almost all of these providers. Everybody knows the phrase: "Let's Google it quickly," and that is because Google has been able to reach so many people that it has become pop culture.
As with all the other providers, Google Compute Engine and its storage offerings are rock solid and, in my not-so-humble opinion, the best of the three providers for lift-and-shift purposes. However, this is wasting good hardware and amazing orchestration if there is no re-architecture in mind.
The world, however, is hybrid… and while I wait for the hate mail to start rushing in, allow me to finish that you would be doing your business a disservice by reading this and using it as the cheat sheet on which basket to place all your eggs in.
As a cloud architect and lover of all things technology, I would read this and think: "Okay, let me take a look at my current infrastructure and find the right home for the different components." Then I would spend time engineering the integration and orchestration across the platforms. It is much easier than you think, and when it comes to the cloud, if you go with the hybrid option, you really can have your cake and eat IT.
Share