The three main players of business cloud services — Amazon, Google and Microsoft — have an array of products covering all you can possibly need for your online operations. But there are differences not only in pricing but also in how they name and group their services, so let’s compare one next to another and find out what they offer.
We’ll focus on services provided by Amazon Web Services (AWS), Google Cloud Platform (GCP) and Microsoft Azure. We won’t cover all of them, or get into a lot of detail about the infrastructure of cloud computing. However, we’ll survey many of the products on offer and also get familiar with some cloud concepts.
Other Services, and Changes over Time
There are, of course, other cloud services we could be covering here. In recent years, companies like DigitalOcean and Linode have made some advances on the big three. But it’s been a new contender that has radically simplified the deployment of cloud infrastructure and is still pushing the DevOps workflow to the next level — Netlify. Netlify also happens to be the company that coined the concept of the “Jamstack”. (See “Introduction to the Jamstack” and “DevOps by Example” for more information.)
All-in-one, but Simpler: Google Firebase, Netlify, AWS Amplify
Amazon, Google, and Azure (in that order), are still pretty much the only companies that cover all of the spectrum of cloud services. But given how Netlify has simplified the game, they’ve all had to make significant additions to the way in which they present their tools to developers in order to remain competitive.
Google and Amazon introduced Firebase and Amplify respectively, both wrapping a bunch of services from the GCP and AWS to present them in a clear and easy-to-implement way to web and mobile developers. (Strangely, Microsoft just seems to make a conscious effort to leave Azure outdated.)
As I said in my article on “100 Jamstack Tools, APIs & Services to Power Your Sites”:
Google really made a brilliant move with the Firebase family of products by “detaching” them from the GCP, but Amazon went half-way with AWS Amplify. It sure is a dramatic improvement from the regular AWS workflow, especially for novice users, and its documentation hub is superb and way more down-to-earth than the way Amazon usually documents services. But Amplify is still accessed from the same old (horrifically bloated) console. You still need a credit card to just open an account, deployments are still region-specific (no built-in CDN, seriously?), and the workflow isn’t as straightforward when compared to that of Firebase or Netlify.
With an incredibly well-documented framework, an outstanding and fun YouTube channel, and a wide variety of use applications, Google Firebase is way on top of AWS Amplify … but fairly behind Netlify in terms of simplicity.
Azure … Seriously?
Hard as AWS can be at first, users usually praise how responsive and knowledgeable their support team is. Speaking from my own experience, Azure support — or its complete lack thereof — on the other hand, can be 100% automated and totally non-existent, to the point that solving a problem as simple (and critical) as setting a credit card will become impossible and render the entire suite unusable.
While an indisputable leader in several fronts, Microsoft also has a long history of being late to the party, putting a huge amount of effort into catching up, then only to seemingly lose faith and leave things half way (such as with Zune, Groove, Mobile, Edge, and Skype). And the way things go with Azure, it remains to be seen if that will also be the case there.
Why the Cloud
Iconic companies from both the public and the private sector — such as Netflix, Airbnb, Spotify, Expedia, PBS, and many, many more — rely on cloud services for supporting their online operations. This allows them to better focus on doing what they’re known for, and let many of the technicalities be taken care of by an infrastructure that already exists and is constantly being upgraded. If they had to implement the physical infrastructure they actually need for their operations themselves, they’d need an army of technicians, lots of extra budget and time, and many startups would never get past these technical challenges.
But this isn’t limited to big names. Today, we live in a world in which both a huge business, and two youngsters at home with virtually no initial capital, can access world-class infrastructure for storage, computing, management and more, to make the next massive online service, and pay as they go — literally — by the hour.
Flexible (and sometimes intricate) pricing
What you pay will vary a lot depending and how much processing power you demand, how many instances (that is, how many virtual servers) you deploy, and where you deploy them (more on this on the “Locations” section). There will also be significant discounts for bulk usage. In any case, you’ll have these advantages most of the time:
- no upfront costs
- no termination fees
- pay only for what you use
- per minute billing
Products vs Solutions
We’ll use the terms “products” and “services” rather loosely. A solution, however, is a more specific concept that you’ll hear a lot about when dealing with cloud services. Simply put, a solution is a set of preconfigured products oriented to a very specific need, with plentiful documentation, use cases and testimonials that will guide you through the process of adopting the cloud infrastructure.
Some typical “canned” solutions are:
- big data: AWS, GCP, Azure
- ecommerce and retail: AWS, GCP, Azure (e-commerce and retail)
- gaming: AWS, GCP, Azure
- government: AWS (federal, sate and local), GCP (federal, state and local), Azure
- Internet of Things (IoT): AWS, GCP, Azure
- marketing: AWS, GCP (technology and analytics), Azure
Amazon introduced “commoditized” cloud computing services through its first AWS service launched back in 2004, and ever since then they’ve kept innovating and adding features, which has allowed them to maintain the upper hand in this field by building the most extensive array of services and solutions for the cloud. They’re also, in many regards, the most expensive.
Google, and later Microsoft, came into the game and are quickly coming up to par, bringing their own infrastructure and ideas, offering deals, and pulling the prices down.
In the following video, representatives of each company discuss their cloud strategies:
This is what computers are for, after all: to calculate, to process data — to compute. If you need faster processing for graphics rendering, data analysis or what have you, you can either buy more hardware, or you can get on the cloud.
Sure, if you buy the hardware you own it. It’s an asset. But you’re also paying for all of the idle time when the computers aren’t doing any actual processing, plus all of the maintenance that comes with it, which can go really high if you build a data center.
When you go on the cloud, on the other hand, you just pay for what you use and you can scale to thousands of processing nodes in a few minutes (and blow your credit card while at it, if you’re not careful).
Elastic Compute Cloud (EC2) is Amazon’s flagship for scalable computing on demand, competing with Google’s Compute Engine and Azure’s Virtual Machines and Virtual Machine Scale Sets. Amazon’s service is the most comprehensive, but as mentioned, the pricing for EC2 can get very intricate, and the same goes for Azure’s VMs pricing. Google’s offering is somewhat less flexible, but the pricing is a lot easier to follow.
There’s also the option of renting computing processes for web and mobile apps, which can offer significant savings when used instead of EC2 or Compute Engine if your apps fit in the specs of this service (see AWS Elastic Beanstalk and Google App Engine for more details).
If you want to deploy software containers with Docker, you should look at Amazon’s Elastic Container Service (ECS) and Elastic Container Registry (ECR). Google’s equivalents are Kubernetes Engine and Container Registry. Azure’s also on board with Docker with its Azure Kubernetes Service (AKS), though at the moment they’re not providing a facility for private Docker registries.
Azure, since it’s Microsoft’s, also allows you to deploy Windows client apps with its Remote Desktop clients service.
Alongside computing, storage is a key pillar to cloud services. In the cloud, you can store with the same ease anything from a bunch of GBs to several PBs (1 petabyte = 1,024 terabytes = 1,048,576 gigabytes). Beware, though: implementing these solutions is not so trivial, as this is not a regular hosting for which you just need a user and password to upload files via FTP. Instead, you’ll need to interact with APIs or third-party programs, and it may take some time before you’re ready to operate your storage entirely in the cloud.
To store objects (that is, pretty much anything), Amazon’s Simple Storage Service (S3) is the service that’s been running the longest, and as such it has extensive documentation, including free webinars, articles and tutorials and very active discussion forums where Amazon developers provide very useful feedback on a regular basis. Of course, Google Cloud Storage and Microsoft Azure Storage provide a service that’s as reliable and robust, but the resources you’ll find don’t come even close those of Amazon. That being said, Google and Microsoft may have an edge on the price, so read the fine print.
For archiving, also sometimes called “cold storage” (like when you store objects you don’t plan to access regularly for the most part), you’ll enjoy lower rates but also lower access speeds, which shouldn’t be much of a problem in most cases. The characteristics and prices are very similar among different providers, so most probably you’ll be conditioned by which API you’ve implemented on your back end. For the specs and details, see Amazon Glacier and Glacier Deep Archive, Cloud Storage for data archiving by Google, and Azure Backup. Also check the archiving solutions these providers offer: Data Archiving by AWS and Backup and Archive by Azure.
Aside from storing and archiving, they provide more specific options, such as Amazon CloudFront — targeted for building a content delivery network (CDN) — which is the same as Google’s Cloud CDN and Azure’s Content Delivery Network. But if you have more exotic requirements, make sure you check their sites.
Now we’re getting serious, as we enter the powerful place in which we integrate and make full use of computing, storage and delivery, all at once. And the truth is that there are certain things you just can’t perform anywhere else but in the cloud (that is, unless you can afford a huge investment in infrastructure). So let’s talk analytics.
The challenges of big data are dealing with incredibly large data sets (so big you can’t fit them in memory), making sense of them, using them to make predictions, and even helping modeling completely new situations like new products, services, treatments, ways of planning cities, and a large et cetera.
This requires very specific technologies and programming models, one of which is MapReduce, which was developed by Google, so maybe it isn’t surprising to see Google walking forward in the big data arena by offering an array of products — such as BigQuery (managed data warehouse for large-scale data analytics), Dataflow (real-time data processing), Dataproc (managed Spark and Hadoop), Datalab (large-scale data exploration, analysis, and visualization), Pub/Sub (messaging and streaming data), and Cloud Life Sciences (for processing up to petabytes of genomics and biomedical data). Elastic MapReduce (EMR) and HDInsight are Amazon’s and Azure’s take on big data, respectively. For more, check the big data solutions they all offer: GCP, AWS, and Azure.
But you don’t need to fall into the category of big data to be able to make sense of data. Large amounts of structured and even unstructured data can help you identify business opportunities. This is known as business intelligence (BI), and the strategies here can be very diverse and will vary a lot depending on your field. So if your business has the data sets, there may be valuable insights waiting to be mined. In this case, Amazon alone is taking on this niche with QuickSight.
And for all of this, you’ll most likely need to use machine learning (ML), which is a branch of artificial intelligence (AI). Interestingly, Google has the upper hand on this one too with its AI Platform not only for general purpose ML but also for leveraging products they had to build for their own apps and offering interfaces for accessing them oriented to very specific uses of ML, including APIs for Vision AI, Speech-to-Text, Natural Language and Translation. The general purpose alternatives are Machine Learning on AWS and Azure Machine Learning.
When deploying your services, you may want to choose a data center that’s close to your primary target audience. For example, if you’re doing real estate or retail hosting in the West Coast of the United States, you’ll want to deploy your services right there to minimize the latency and provide a better user experience (UX). Of course, you can still deploy from afar, but the UX will suffer.
Amazon has extensive coverage:
Azure also has quite wide coverage:
Google has a solid coverage in the United States, Europe and Asia, with some coverage in South America but none in Africa.
But beware that deploying at different locations comes at different rates, with the United States and Europe — in that order — being normally the cheapest.
For more details:
Other Products and Services
As mentioned, we’ve only covered some of the main cloud services, but before we finish, let’s have a quick review of some products you might want to keep an eye on.
Developers tools, management, security, identity, disaster recovery …
And there’s even more, but let’s call it a day for now!
We only got to cover big names here, but the cloud arena is very dynamic, and there are several providers offering solid infrastructure at very competitive prices. Many of them are focusing on the needs of developers rather than companies, and they may be well worth trying, especially if your scaling needs are between small and moderate.
- Brightbox: UK-based cloud hosting for teams that insist on 100% uptime.
- Codero: managed, dedicated and cloud hosting.
- DigitalOcean: Cloud computing, designed for developers with competitive prices.
- Equinox Metal: previously Packet, a base metal cloud build for developers.
- IBM Cloud: previously SoftLayer, another option for businesses with widespread locations, backed by IBM.
- Linode: high-performance SSD Linux servers for many infrastructure needs.
- Rackspace Cloud: powered by OpenStack, an open-source technology.
- Vultr: high-performance SSD cloud available in 14 cities worldwide, with competitive prices.
What To Do Next
Amazon, Google and Microsoft, and nearly all of the alternatives also listed, offer starting deals and even free credit for new accounts, meaning that you can start experimenting in the cloud without taking your credit card and with no future obligations.
And don’t get paralyzed! There may be plentiful options, but you can start by focusing on what your needs are. If you need a very specific solution, or certain locations, or if you’re just a humble developer who might be better off with a smaller company, start from there.