Table of contents
Choosing a cloud provider isn’t easy. Whether you plan to migrate to the cloud or launch a new application, the choice may affect the further shape of the product, the possibility of development or changes in infrastructure architecture.
It might seem that all public clouds have a similar set of services. But the devil is in the detail. There is no clear answer to the question “which cloud to choose?”; it depends on the needs of your business. Let’s take a look at the top public clouds and what to take into consideration when choosing a cloud provider.
But first, what is cloud computing?
A cloud is a set of connected servers. A server is a device on which you can store files, process data, run applications or conduct analysis. Servers can be connected via a private or a public network, e.g., via the internet.
The biggest cloud providers have millions of servers located worldwide and connected by thousands of kilometres of cables. This solution generates enormous computing power and ensures almost immediate data transfer among many server rooms (or, in other words, data centres).
Service providers take care of the physical machines. They ensure proper conditions in server rooms, such as the right temperature, level of humidity or cooling. They also carry out software updates and protect machines from flooding, fire or burglary.
Cloud isn’t only about disk space; it’s a set of hundreds of services that can be used to build, develop or enhance an application. Most cloud platforms offer access to computing power, storage, databases, analytics, or artificial intelligence models. These resources are run on-demand, and costs depend on the actual consumption level.
Here you’ll find more information about cloud computing: Cloud technologies made simple. What is cloud computing and what can you gain from it?
Top three public cloud providers
A researcher company Canalys traces the IT market, including, among others, the cloud computing segment. In Q4 2022, they identified three cloud service providers as leaders:
- Amazon with its Amazon Web Services cloud platform (AWS) – 33% of global market share,
- Microsoft with Microsoft Azure – 21%,
- Google with Google Cloud Platform (GCP) – 8%.
Let’s take a closer look at the three cloud leaders
Each cloud platform was created for slightly different reasons and was developed under other conditions; this has resulted in strength in various areas.
Amazon Web Services (AWS) was launched in 2006. The platform is part of the Amazon.com conglomerate – a company that started as an e-commerce website and now is a tech giant. AWS was initially intended to support businesses in selling over the internet. In the beginning, it offered compute, storage and database services used by web developers. Today it has over 200 cloud services, which are used by more than just retail companies.
Microsoft Azure was introduced to the market in 2008. The platform is widespread among enterprises that have already been using Microsoft solutions, e.g., Windows OS, the Office business suite, or database management system SQL Server. Microsoft is aware that those companies – relying strongly on legacy infrastructure – won’t migrate to the cloud overnight. Hence, the platform supports a hybrid model, enabling enterprises to switch the solution gradually.
Google Cloud Platform (GCP) was launched in 2008, along with the PaaS service App Engine. Google Cloud has focused on software programmers from the start, so it has a rich portfolio of serverless services. Google’s experience in developing products such as Google Search or Google Ads translated into solid capabilities in the areas of analytics, Big Data, or machine learning and artificial intelligence.
What to pay attention to when choosing a cloud platform?
When deciding on a cloud provider, you should pay attention not only to the set of services you are interested in but also to other areas that, at the first glimpse, may seem secondary.
Network and availability zones
Each provider has its network of cables between data centres. A data centre is a building complex that acts as huge, 24/7 overseen and perfectly secured server rooms. The location of a data centre and the quality of connection affect your application performance, the user experience or the ease of expansion to the next markets; because the closer the data centre is to the user, the lower the latency is (latency is a delay in data transmission).
Amazon Web Services has 26 regions consisting of 84 availability zones. Every data centre is connected to the AWS private infrastructure. The network is created out of fibre-optic cables with speeds up to 100 GBs. AWS has regions in:
- Europe (Frankfurt, Ireland, London, Milan, Paris, Stockholm),
- Asia (Bahrain, Hong Kong, Mumbai, Seoul, Singapore, Tokyo, Osaka, Beijing, Ningxia),
- North America (Canada, Ohio, Northern Virginia, Oregon, Northern California),
- South America (São Paulo),
- Australia (Sydney),
- Africa (Cape Town).
Microsoft Azure has different terminology for availability points. In their glossary, a region is a group of interconnected data centres (building complexes), which AWS and GCP call zones. An availability zone, in the case of Azure, is created by grouping three or more regions together; in total, there are 25 availability zones. The Azure network is made up of almost 300,000 kilometres of cables, and transmission speeds reach up to 100 Gbs. Azure has availability zones in:
- Europe (Ireland, Netherlands, Paris, Frankfurt, Oslo, Gävle, Zürich, London),
- Asia (Hong Kong, Singapore, Hebei, Pune, Tokyo, Seoul),
- North America (Toronto, Iowa, Virginia, Texas, Washington, Arizona),
- South America (São Paulo),
- Asia (Hong Kong, Singapore, Hebei, Pune, Tokyo, Seoul),
- Africa (Johannesburg).
Google Cloud Platform has 33 regions consisting of 100 availability zones. A mesh of fibre-optic cables connects the data centres. Google Cloud has one of the largest and most efficient infrastructures, with transmission speeds up to 10 Tbs – over ten times faster than AWS or Amazon networks. GCP regions are located in:
- Europe (Hamina, Warsaw, Madrid, St. Ghislain, London, Frankfurt, Eemshaven, Zurich, Milan, Paris),
- North America (Montréal, Toronto, Iowa, South Carolina, Virginia, Ohio, Oregon, California, Utah, Nevada),
- South America (São Paulo, Santiago),
- Asia (Changhua County, Hong Kong, Tokyo, Osaka, Seoul, Mumbai, Delhi, Jurong West, Jakarta),
- Australia (Sydney, Melbourne).
Content delivery network (CDN)
Even if you aim for a particular market, there’s still a huge possibility your application’s users are spread around the world, not necessarily close to the server that hosts the app files. Requests sent over the internet from one point to distant another can take a long time, leading to poor user experience. CDN speeds up the delivery of web and content video using the edge network. As a result, it reduces latency, cost and load on the backend and improves scalability.
All three cloud providers have Content Delivery Network services. They differ in nuances.
Amazon Web Services has a service called Amazon CloudFront. As the provider claims, the service reduces latency by delivering data through 310+ globally dispersed Points of Presence (PoPs) with automated network mapping and intelligent routing. It also increases the level of security with traffic encryption and access controls, and AWS Shield Standard helps to defend against DDoS attacks. In addition, monthly, the 1 TB of data transfer out is free, thanks to AWS Free Tier quotas.
CDN on Microsoft Azure is just called Azure Content Delivery Network. It lets stream media and download large files quickly, handle worldwide traffic spikes, or protect content with custom domain HTTPS, DDoS and WAF protection. Some time ago, the provider made public the Azure Front Door service. Originally it was developed to enhance the performance of Microsoft’s signature services such as Office 365 or Bing search. Initially, it was an interface for internal WAN (Wide Area Network), deployed across globally distributed edge locations. Now, using Azure Front Door, you benefit from Microsoft WAN Edges.
Google Cloud Platform has a Cloud CDN service. It provides fast and reliable web and video content delivery on a global scale. Cloud CDN supports modern protocols initially developed at Google, like HTTP/2 and QUIC, to improve site performance for mobile users or users in emerging markets. It also works with multi- and hybrid cloud architectures to deliver content hosted on-premises or in another cloud.
Virtual machines, serverless computing and container platforms
The power of virtual machines is one of the most frequently used cloud functionalities. Computing power plays a huge role in different scenarios – from hosting a simple website or mobile application, maintaining an ERP system, to running Big Data analytics or training artificial intelligence models. That’s why cloud service providers offer a range of VMs with configuration possibilities. Services for containerised applications, such as Kubernetes as a Service, also harness computing power as well as propositions for software programmers – PaaS or FaaS services – that enable them to focus on developing a source code without bothering about maintaining the underlying infrastructure.
The virtual machine service on the AWS platform is called Amazon E2C (for Amazon Elastic Compute Cloud). The offer includes general-purpose machines, compute-optimised, memory-optimised, accelerated computing or storage-optimised instances. Alongside instances with Linux or Windows, Amazon provides VMs with Mac OS (as the only one of the cloud trinity).
When it comes to containers, Amazon Web Services has an Elastic Kubernetes Service (EKS). It’s a managed container service to run and scale Kubernetes applications in the cloud or a hybrid environment.
In its portfolio of serverless services, Amazon has AWS Lambda and AWS Fargate. AWS Lambda is FaaS event-driven service that lets the developer run code without provisioning or managing servers. Ouf of the top three, Amazon was the first to launch a FaaS service – in November 2014, about a year and a half before the competitors. AWS Fargate is a service dedicated to containerised applications. It works with Amazon Elastic Container Service (ECS) and Amazon Elastic Kubernetes Service (EKS).
Microsoft Azure has a Virtual Machine service that allows you to create Linux and Windows VMs. The service offers a great range of machine series, including those with low specifications for hosting non-production environments, through general-purpose machines, instances optimised for in-memory applications, compute-optimised, memory and storage optimised or high performance computing VMs.
Managed Kubernetes Service (AKS) is a Kubernetes as a Service available on the Azure platform. It has built-in best practices that allow you to receive proactive recommendations for securing resources or increasing operational efficiency.
As for serverless, Azure provides Azure Functions – an event-driven FaaS service that scales on-demand. It is available as a managed service on the Azure platform and Azure Stack. The open-source runtime service also runs in other environments, including Kubernetes, Azure IoT Edge, on-premises or other clouds. Another serverless service is the App Service, which allows you to create enterprise-ready web and mobile apps for any platform or device with little effort and deploy them on the Azure infrastructure.
On the Google Cloud Platform, the virtual machine service is Compute Engine (GCE). GCP provides general-purpose machines, ultra-high memory, compute-optimised and accelerator-optimised instances. The machines are pre-configured, so you don’t have to spend a lot of time setting them up. Yet, you have a wide range of configuration options, i.a., changing the vCPU, adding a GPU or TPU, increasing or decreasing memory, customising persistent disks or choosing an operating system.
It’s worth spending a moment above Google Kubernetes Engine (GKE). Kubernetes, as an open-source platform, was originated by Google in 2014. In 2015 it was launched on GCP as a Kubernetes as a Service – three years ahead of the Azure and AWS. These additional years have led GCP to the first place when it comes to being the most container-friendly public cloud.
When it comes to serverless options in Google Cloud, GCP also has a few propositions. Cloud Functions is a FaaS service that allows you to run code in the cloud with no servers or containers to manage. App Engine is another serverless service, a developer platform that supports the most popular programming languages, frameworks and libraries. Cloud Run, on the other hand, is a fully managed compute platform that lets you build apps in any language, containerise and deploy them in seconds to the cloud.
Storage
All three cloud platforms have almost identical object storage services. The most significant difference lies in… their names. They provide functionalities such as:
- data encryption at rest,
- assigning roles and managing access to individual files or whole buckets/containers,
- resource versioning (services retain files that were deleted or overwritten),
- storage classes and object lifecycle management option (automatic change of a bucket/container class to optimise costs).
Amazon Web Services has a storage service called Simple Storage Service, abbreviated S3.
Microsoft Azure cloud file storage service is called Blob Storage. Blob stands for a binary large object, which is another name for a file (and binary files include images, videos, audio recordings, text documents, compressed archives and more). In Blob Storage, files are placed in a container – in Google or Amazon clouds, file folders are called buckets.
Google Cloud Platform offers a Cloud Storage service.
Hybrid and multi-cloud approach
A hybrid cloud is an architecture that combines a company’s on-premises with public cloud services. Multi-cloud, on the other hand, is an approach in which a company uses solutions from different public cloud solutions at the same time.
These approaches enable building an infrastructure that combines the advantages of several environments, but it’s also associated with some difficulties. Each cloud has different services, configurations and deployment methods or security policies. Therefore, having a multi-cloud solution often goes hand in hand with hiring cloud engineers specializing in different areas. A “patchwork” cloud environment may also lead to misconfigurations or security vulnerabilities.
But don’t take a dislike to hybrid or multi-cloud solutions! Cloud providers have answers to most of the sore points.
We’ll find an AWS Outputs service dedicated to maintaining hybrid cloud infrastructure in the Amazon Web Services portfolio. For a long time, AWS had been holding off on supporting multi-cloud solutions, following the “one cloud to rule them all” principle. Eventually, in 2021 (almost two years after the competition), it released ECS Anywhere and EKS Anywhere. ECS Anywhere enables users to deploy and manage containerized workloads on any infrastructure using Amazon Elastic Container Service API. EKS Anywhere is the Amazon Elastic Kubernetes Service deployment option that allows customers to operate Kubernetes clusters between AWS and on-premises, as well as between other public clouds.
Microsoft Azure targets enterprise customers who have been using local infrastructure. The cloud provider knows that those companies prefer to enhance current architecture with Azure services rather than migrate fully to the cloud. That’s why the provider invests in solutions for managing the hybrid cloud. The platform offers the Azure Stack kit, allowing users to run the Azure environment on-premise. In 2019, Microsoft added the Azure Arc to its platform; the service supports resource management across hybrid and multi-cloud infrastructures from a single interface.
Google Cloud is the most open to app development on a combined infrastructure among the three cloud providers. For over three years, its portfolio has included Anthos – a service for modernizing and managing containerized applications on different environments, platforms, clusters or locations in hybrid and multi-cloud models. GCP also offers BigQuery Omni – an Anthos-based analytical service that enables you to create and maintain a data warehouse between public clouds.
So, which cloud to choose?
As always in such cases, the best answer is “it depends”.
It may seem that Amazon Web Services will work for retail, Microsoft Azure for enterprises, and Google Cloud for analytics startups, but falling into these thinking scenarios can do more harm than good. Each case is different, just as each cloud has something different to offer.
Exactly – the answer is not necessarily clear-cut. Because we don’t have to limit ourselves to a single provider but draw on the capabilities of several at once. And with multi-cloud solutions, we can do this without compromising security or the convenience of infrastructure management.
Are you thinking about choosing the cloud provider? Let a certified cloud partner help you decide – drop us a line!