Choosing the correct cloud provider can be difficult. Typically when a company is evaluating one of the major cloud platforms, they come to the platform with a specific need: storing mass amounts of data, scaling servers, data science, steaming data services, efficient processing, etc. The services offered by cloud providers continue to grow, and with each new service offered, businesses need to competently evaluate them.
When cloud services were first forming, the “cloud” was essentially a server rack at another location. You could rent storage space, computers, and other components to your “virtual” server rack, which saved the need for on-premises devices. However, as the industry has grown, so has the need for an evolving cloud. Each cloud platform has developed a list of services as part of their cloud environment that make for easier and quicker development. As these services evolve, I believe we should audit specific services over platforms.
Let’s Use a Real-Life Metaphor
Let’s say you own an old car that needs to be serviced. I tell you Company A provides the best brakes service in town; you will most likely visit Company A to start on the breaks. If you also need work on the suspension, and Company B is known to provide exceptional suspension services, you are now faced with a decision. Do you go with Company A because they did a good job with the brakes, or Company B, who is better at this specific work?
If we assume that the cost is the same or cheaper for the better work, then it is in our best interest to go to Company A for brakes and Company B for suspension. As obvious as this drawn out example is, we don’t see cross-cloud work happening often at enterprise organizations. Rather than looking at each of the services offered by each cloud provider, engineers often pick one and stick with it for everything. In reality, a hybrid solution may be the best solution.
Evaluating Major Cloud Providers
In order to compare the platforms as a whole, we first can look at the missions of the companies that house them.
Amazon Web Services (AWS)
When Amazon was formed, its function was to sell books. Founder Jeff Bezos was constantly approached with offers to expand the business, but he instead decided he would create the best book-selling service the world had ever seen. Once his goal was realized, then he would start to expand his services. We have watched that model prove correct over the years, as Amazon has grown into the juggernaut we know today. Amazon Web Services (AWS) is one of the largest players in the cloud space, and this is because they have been dedicated to a “nail it, scale it, expand it” model just like their parent company. This is why services like Amazon S3 continue to become sharper each year, and have grown significantly from being just a bucket storage unit.
Google Cloud
Google Cloud Platform (GCP) has also been strongly influenced by its parent company. Google’s mission statement is “to organize the world’s information and make it universally accessible and useful.” With this in mind it’s not too surprising that Google would have one of the best large-data platforms ever created in BigQuery. GCP is a full cloud solution, but has a very strong set of services around data collection, processing, and data science.
Unlike AWS, GCP has a more interfaced structure to its cloud. AWS’s interface is very technical, and you need a deep working knowledge of the network and computer devices you are “renting” in the cloud. GCP takes a more polished approach, making it easier to get up and running. I often compare AWS and GCP as Linux and Mac operating systems. While Mac runs on a Linux-based system, it is designed to be interface first, command line second. The command line is there for those that need to use it, but the interface allows people who may not be efficient in the terminal to still use it. AWS is very hands-on, like a Linux terminal, where GCP is the interface first to make it easier to work with the platform (but still allows the terminal-like features for those that need to work with them).
As a company that created interfaces and tools like Maps, G-Suite services (Docs, Sheets, and Gmail), Google Analytics, Ads, and of course Google’s search engine, we know Google can scale, efficiently use networks, and definitely organize and work with data. When evaluating those needs, you can use GCP to use tools that contribute to that amazing nest of services.
Microsoft Azure
Last but not least is Microsoft Azure. Microsoft is widely known for creating one of the most popular and widely used operating systems ever. Operating systems are complex beasts and come with a unique set of challenges, such as managing multiple users, file systems, network capabilities and much more. This has positioned Azure to be one of the best systems for Active Directory and services like single sign-on. If AWS is Linux, GCP is Mac, then Azure is certainly on-brand as Windows. It is extremely interface-designed, and because of this, easy to use for members who may not be engineers.
Choosing the Right Cloud Service for You
When subscribing to a music platform, you may look at Spotify, Apple Music, and/or Pandora, weighing the strengths and weaknesses of each.
I think the best cloud engineers will do the same with each service on these cloud platforms, rather than sticking to one platform. Each company has evolved and pivoted to solve specific market problems. Many of their cloud solutions are developed for their own internal use cases. Choosing a service just because you are on the current platform could be a short win that leads to a long-time struggle. Make sure you evaluate the best tools in the cloud and find the right way to get there.