With the emergence of Amazon Web Services (AWS) in 2002, the Infrastructure as a Service (IaaS) model kickstarted the public cloud revolution that has permanently changed how IT services are deployed and delivered. According to Gartner’s July 2019 Magic Quadrant for Cloud Infrastructure as a Service report, the annual cloud IaaS market is currently worth $41.4 billion and is expected to grow to $81.5 billion by 2022. The Gartner report also makes it clear that cloud IaaS has basically become a commodity market led by AWS, Microsoft Azure, and Google Cloud Platform (in that order), along with three platform/geographic niche players: IBM, Oracle, and Alibaba Cloud.
With all of the providers basically offering the same IaaS products, how do you choose the right one for your organization? If you’re a Microsoft, IBM or Oracle shop, then your primary cloud IaaS choice may already be made for you. Similarly, if you need strong cloud presence in Asia, Alibaba Cloud will be a natural choice.
In any case, in today’s multicloud environment, you are not restricted to using one provider. The Rightscale 2019 State of the Cloud Report from Flexera (registration required) shows that 84% of the respondents implement a multicloud strategy. You can mix and match providers in order to address different use cases, avoid vendor lock-in, and otherwise benefit from maximum flexibility and agility.
This blog post provides fifteen guidelines to help you evaluate cloud service providers across the full spectrum of their offerings, from IaaS to cloud computing Platforms as a Service (PaaS) and fully managed Software as a Service (SaaS) applications.
1. Sizing: Compute instances or virtual machines (VMs) come in a wide range of sizes as determined by the available processing power (number of vCPUs or GPUs), memory capacity (in GiBs or GBs), storage read/write performance (in IOPS), and network speed (in Gbps). The instance types are usually grouped according to their suitability for different use cases: compute-optimized for compute-intensive workloads such as batch processing or media transcoding; memory-optimized for large databases or real-time big data analytics; storage-optimized for transaction-intense workloads with frequent read/write operations; and accelerated computing instances for graphics processing or data modeling. All three providers offer a wide range of compute instance types and sizes, so your choice will depend on which provider offers the instances that are best suited to your use cases.
2. Supported OSs: An important consideration when choosing a cloud provider is whether or not it supports the operating systems on which your workloads run. As shown in Table 1 to the right (source: Cloud Comparison Tool), AWS has the most complete offering of operating systems, followed by Azure. If your apps require CloudLinux or Oracle Linux, then GCP might not be a viable provider for you (or at least not for those apps).
3. Geographic locations: The geographic location of the cloud infrastructure on which your workloads run can be significant in terms of both performance (latency) issues and regulatory requirements. The three major cloud providers operate networks of data centers across geographic regions, often with multiple physical facilities (availability zones) within a region. When you provision a resource, you specify within which geographic region it should run. Optionally, you can also specify the availability zone within that region. Otherwise, at runtime, the provider automatically selects the availability zone based on current system performance and capacity availability. All three providers have data centers in the following regions: Asia Pacific, Australia, Europe, North America, and South America. Only AWS and Azure have data centers in the Middle East and Africa region.
4. Pricing: Even small differences in resource and service pricing can have a significant impact on cloud costs over time. Cloud resource pricing is determined by a number of factors such as the resource type and size, the operating system, the region in which it is to be deployed, the extent to which the network is isolated, and the level of upfront commitment versus on-demand provisioning. In many cases, volume discounts are available. You’ll need to take into account that each PaaS and SaaS offering has its own price structure as well. Thus, it can be difficult to compare pricing on an apples-to-apples basis across providers. We recommend that you use the cost calculators provided by the cloud providers (AWS, Azure, GCP) to make your own comparisons.
5. Availability SLAs: When it comes to the three leading cloud IaaS providers, there is little difference in their monthly uptime percentage (99.99%). But, we have included this consideration here as a reminder that you must ensure that the provider(s) you choose are aligned with your organization’s SLA commitments to your end users.
Storage and Data Considerations
6. Object, shared file, persistent disk: Data storage was often one of the first use cases with which organizations began their cloud journey. Initially, it was the storage of non-production data, such as secondary backups. Today, many enterprises store even their most business-critical data on the cloud, including object files, shared files, and block storage volumes attached to VMs. When choosing your cloud provider, you should make sure that it offers the data storage facilities you require as well as tiering options. As can be seen in Table 2, the major cloud providers all offer storage tiering for hot, cool, and cold data, where active (hot) data benefits from low latency at a higher cost while archived (cold) data is stored at a lower I/O SLA and a lower cost. Similarly, you must also consider how you are going to get your on-premises data to the cloud. All of the major cloud providers offer services for transferring massive amounts of data into the cloud, but AWS is considered the leader in that regard.
7. Data security: In the early days, companies often delayed or constrained their cloud migration out of concern that data would not be as safe in the cloud as it would be on-premises. This constraint has been significantly mitigated over the years, due to the providers investing heavily in cutting-edge protection for data stored on their cloud— including next-generation Identity and Access Management (IAM) services, encryption of data at rest and in motion, and a battery of threat monitoring and alerting services.
That said, you must check to ensure that a prospective cloud provider has the services and certifications you need to meet your security, business continuity, and regulatory requirements. For example, of the big three, only Azure offers a fully managed data backup service, and GCP does not provide a disaster recovery solution.
8. Database services: You must ensure that the relational or non-relational databases that you use will interface smoothly with whichever cloud providers you are considering. As illustrated in Table 3, the three cloud leaders provide extensive support for a wide range of relational and non-relational databases as well as database migration services. Take note, however, that GCP does not provide a database caching service.
9. Data lakes and big data analytics: If your company is involved in advanced data technologies such as big data analytics, machine learning, and artificial intelligence, you must make sure that your cloud provider can support these activities. Table 4 highlights the key services that you should be looking for. It should be noted that GCP is considered a pioneer and forerunner in its support for advanced data applications.
10. Hybrid storage: According to the Rightscale 2019 report cited above, 58% of enterprises today are implementing a hybrid cloud strategy that integrates public and private clouds as well as traditional on-premises data centers into a single data fabric. A hybrid cloud supports maximal flexibility, ensuring that the right workflow is running on the optimal infrastructure based on security, performance, and cost considerations. Not every cloud provider provides seamless support for hybrid data storage. Of the three providers this article compares, AWS offers Storage Gateway and Azure StorSimple. GCP does not—as of the publishing of this article—have support for hybrid storage.
When choosing a cloud provider, you need to be sure it can support your application development, deployment, and monitoring processes. Here are five more areas you should examine carefully when choosing a cloud provider:
11. DevOps tools and services: Shorten time-to-market and enhance app quality with strong support for pipeline management, code versioning, app testing, automated deployment, and more.
12. Support for modern apps: Today’s modern apps have highly distributed architectures based on microservices, serverless functions, and containers. Your cloud provider should have cutting-edge services that support these methods, including API and message management.
13. Monitoring and logging: Although we have placed this guideline within the context of app considerations, monitoring and logging is also applicable to IaaS resources. One of the greatest disadvantages of the public cloud is the lack of visibility into the infrastructure on which apps are running. You should expect your cloud provider to provide extensive monitoring logs as well as smart alerting services.
14. Edge, IoT support: Edge devices, including IoT-enabled endpoints, are playing ever-growing roles in many domains, from manufacturing to retailing, healthcare, and more. Your cloud provider must be able to manage these streams of data efficiently, from aggregation to analysis and visualization.
15. Advanced AI-based services: Many cloud providers offer a rich array of API-driven, fully managed smart services such as computer vision, NLP, and speech-to-text. Integrating these capabilities into your apps can significantly enhance their UX as well as their expected business outcomes.
Not all of the considerations presented above will be relevant to your organization. To know which ones you must apply when choosing your public cloud provider(s), you must first clarify your use cases, requirements, and expectations.
It is also important to note that each provider has a network of affiliated partners that extend and enhance its offerings. For example, Logz.io has a strategic alliance with both AWS and Azure for its fully managed ELK-based log aggregation and analytics service. Thus, when assessing a cloud provider, take a look at its partner network as well.