Choosing a Cloud Service Provider (CSP) isn’t easy.
Much like finding and falling in love with a significant other, selecting and committing to the correct CSP can be like a marriage; with all the risks and benefits. Therefore it is important for companies to make carefully considered decisions when choosing a CSP as a partner to embark on their cloud journey with.
- Major Cloud Service Providers (CSPs) Compared
Fig. 1: Gartner’s Magic Quadrant – Infrastructure as a Service – June 2017
As Gartner’s Magic Quadrants for Cloud Infrastructure as a Service (June 2017) showed, Amazon (AWS) and Microsoft (Azure) still lead the market, chased only by Google’s Cloud Platform (GCP) and a handful of other Visionaries like Alibaba, IBM, and Oracle.
With nearly 36% market share AWS is still the leading CSP, but 7% down from last year, it looks like Google and Microsoft are catching up and other CSPs are gaining ground.
Fig. 2: Cloud Provider Competitive Positioning – Synergy Research Group – Q3 2017
This year Gartner observed a lot of movement in the “Niche Players” Quadrant, and whilst these vendors individually represent a very small percentage of the market, the large number of new players on the cloud market showed that there are a growing number of alternatives for companies looking to host their operations in a cloud.
Fig. 3: Gartner’s Magic Quadrant – Operational Database Management Systems – November 2017
On the Database side of things (not to be forgotten, as your databases are an important part of your cloud-based operations) Microsoft and Oracle still dominated, with AWS and SAP hot on their tail and IBM still a little ways off.
Due to this strong standing in the Database realm, and their similar breadth in cloud services offering, this blog will compare AWS, GCP, Azure and Oracle Cloud Infrastructure offerings. Although it may be useful to take a closer look at and compare just the CSP Visionaries (IBM, Alibaba, and Oracle) in a future blog.
Major Cloud Service Providers (CSPs) Compared
Whilst there are certain things companies should think long and hard about when choosing a CSP, others are pretty simple no-brainers. And although we acknowledge that every corporate cloud implementation strategy or use case comes with its own unique challenges and set of requirements, here are some basic yet core criteria we have used to evaluate some of the major CSPs across the board.
1. Locations, Locality and Scalability
Lets begin by considering the locations of the provider’s regions and availability zones as close geographical distance of your operations to the providers’ data locations with serve to lower physical latency. The sheer number of data centers and compute power contained within them provide a measure of scalability. Furthermore, more extensive data center networks will increase options for replication and redundancy improve disaster tolerance in case of failures and unpredictable events. Finally, the whereabouts of edge locations can be important for content delivery networks (CDNs), as they allow caching and rapid retrieval.
The AWS cloud consists of 18 regions with the closest Availability Zone (AZ) to Los Angeles somewhere in Northern California (the precise location of AZs are not always specified due to security reasons). Microsoft has by far the largest global datacenter distribution network with 33 regions, and the closest Availability Zone (AZ) to Los Angeles also somewhere in California. Google has 15 regions and the closest AZ is in Oregon, while Oracle is catching up with 10 regions globally and the closest AZ in Pheonix, Arizona.
2. Size of Cloud Offering
It all starts with the size and breadth of the products and services offered within the vendor’s cloud portfolio. Whilst AWS has the largest offering across Infrastructure as a Service (IaaS) and Platform as a Service (PaaS), GCP, Azure and Oracle are right up there with them, and in terms of Software as a Service (SaaS) have even more.
Fig. 4: Amazon AWS Product and Service Offering – February 2018
Fig. 5: Microsoft Azure Cloud Product and Service Offering – February 2018
Fig. 6: Google Cloud Platform (GCP) Product and Service Offering – February 2018
Fig. 7: Oracle Cloud Product and Service Offering – February 2018
All four CSPs offer instances with differing levels of elasticity. AWS offers elastic compute, spot, dedicated and reserved instances, whilst Microsoft’s Azure platform only differentiates between on-demand and reserved instances. And until recently, so did GCP.
In January of 2018, Google added Preemptible VMs to their cloud offering (which can be used for fault-tolerant, high-throughput batch computing). Comparable to Amazon’s spot instances, these allow customers to run compute at a lower cost for a maximum of 24-Hours, specifically for workloads that do not require indefinite uptime. However, these instances run the risk of being terminated by the provider with only a 30 second notice. Furthermore, GCP offers custom machine sizes which enable its users to configure CPU and Memory to their own specifications (with some limitations of course). While this offers added flexibility, it comes at a price higher than regular instance types.
In terms of committed and long-term cloud operations, Oracle’s cloud offers its customers elastic dedicated VM Compute via a monthly prepaid model. These dedicated compute services used to include an option to run operations on SPARC servers under the name Compute Classic, and whilst they are still being offered to those customers who prefer SPARC or have no other choice (a unique feature offered only by Oracle and no other CSP), the new Oracle Cloud Compute offering runs entirely on x86.
In terms of elastic compute services, AWS provides 10 types of VMs (Dense, RAM, General Purpose, 2 versions of Compute, 2 version optimized for Graphics, Storage, FPGAs, and extreme Memory) while Azure offers 8 different kinds of shapes – both representing a more differentiated approach to specific compute operations. Google’s Cloud Platform (GCP) has 5 compute offerings, although their Shared-Core shapes are only available for f1-micro and g1-small instance types, and there is only one shape in the Mega Memory class (96 vCPUs/1440GB RAM).
Oracle has 4 types of elastic compute shapes (General Purpose, High Mem, High IO, and GPU optimized), same as GCP and similar to AWS. But uniquely, Oracle offers Bare Metal Compute without a hypervisor, with NVMe SSDs, super high IOPS and low latency, ideal for high IO applications or big data workloads.
Storage, Databases and Data Stores
All 4 providers offer block and object storage solutions as well as archival storage. All have their own flavor of data management, data integration and disaster recovery solutions.
Whilst each provider has their proprietary SQL databases, cross-cloud integration and compatibility is not always given. Oracle has the advantage of being the owner of MySQL and Oracle RDBMS, services that other CSPs have to make an extra effort to provide and integrate for.
Cloud Spanner DB, one of the most promising GCP offering, running symmetric multiprocessing (SMP) and BigQuery Analytics Data Warehouse which functions via massively parallel processing (MPP). AWS offers Aurora (SMP) and Redshift (MPP), while Azure has SMP and MPP based on SQL server. Generally speaking, all CSPs have some service offering for all storage and database requirements, for some this offering just looks more complex than others.
While AWS’s DynamoDB, managed noSQL offering, gains popularity, other 3 vendors have competitive products in that space as well.
Other Cloud Services
AWS, Azure and Oracle Cloud all offer a lot of tools and services for application developers, whilst Azure and AWS have the largest offering in cloud integrated IoT services. Here GCP only offers one service and this is still in BETA phase, while Oracle handles IoT via a data integration suite. On the other hand Google offers a lot of services for AI and Machine Learning, where Oracle and Azure tend to focus on data integration, data management and enterprise integration tools.
One cloud platform service of particular note is Amazon’s AWS Lambda. The serverless, event-driven framework with automatic scaling has caused quite the hype, and for good reason. When we think of the conventional way to run an application in the cloud we think client-server-application, where the user needed to provision the resources necessary for the operation. Now Lambda handles all this for the user, which enables developers to focus on the code rather than the layers below. In short AWS Lambda is like back-end-as-a-service or functionality-as-a-service.
All cloud providers offer one type or multiple security tools, including Identity and Access Management (IAM) and role control tools to help regulate and govern resource provisioning amongst enterprise users. To some degree these services are free, but with growing complexity and a larger number of users these are mostly paid services. Furthermore, all clouds include cloud management and monitoring tools such as a standardized utility manager, and auditing tool aimed at helping customers optimize performance and reduce their costs of operation.
A lot of the tools used within the cloud sphere are third-party, and then offered on centralized platforms such as AWS Marketplace. When choosing a cloud vendor it may be important to consider what kind of integration possibilities exist and if the tools you require are compatible with and supported on the cloud platforms you intend to use.
3. Cost of Operations
When considering the cost of running specific or all your operations in the cloud there are certain things that will dramatically impact your calculations. First and foremost, consider the predictability and frequency of your load, as all providers tend to award committed or reserved resource provisioning with significant discounts. Azure for example offers reserved compute instances at 32% savings for a year or 56% savings for 3 year contracts.
Next the type of operation you intend to perform is key, as predictable, sporadic batch computation can be done on Amazon’s spot instances or GCP’s Preemptible VMs; which are offered at 90% and 70% discounted rated respectively, compared to regular instance costs. Additionally, it is important to note if physical proximity to your data is critical to maintain lower latencies (especially for latency-dependent applications this can be paramount). Google, Azure and AWS all charge higher rates for the utilisation of compute resources on the West Coast, whereas Oracle does not differentiate and offers a flat-rate price for all regions within United States.
Finally it is relevant to consider what kind of Operating System demands your applications and workloads have, as licensing your OS for the cloud can be costly across the board. AWS, Google and Azure all charge different rates depending on which OS is used. While they all offer some OS Licenses for free (Debian, CoreOS, CentOS, or Ubuntu to name a few) with Windows, Linux Enterprise SUSE and Red Hat Enterprise Linux running operations in the cloud can become expensive very quickly.
For Oracle, customers incur additional licensing costs of $0.0204 per OCPU per hour when a Windows OS is required, which is slightly lower than licensing fees of other CSPs. For Oracle Linux is native and (as with all other CSPs as well), customers have the option to bring their own enterprises licenses with them from on premise for no additional fee. Overall, we find that Oracle pricing structures are very simple and transparent, and do not contain any hidden fees or additional surcharges, unlike many other CSPs including AWS or Azure.
Be aware that not all licensed software can run on all clouds. For example while running Oracle DB is very expensive on AWS and Azure, you can’t run it on GCP at all.
To demonstrate what the costs of running operations in a cloud-based environment look like, we compared the prices of running two different instances – one “small” process over 24h/day, and one “large” batch computing operation for 4h/day, across the platforms of the four CSPs. Oracle prices per OCPU, not per instance.
Fig. 8: Cloud Provider Price Comparison Example – February 2018
|Number of Instances||1||1||1||1||1||1||1||1|
|Operating System||Linux SUSE||Linux SUSE||Linux SUSE||Linux SUSE||Linux SUSE||Linux SUSE||Linux SUSE||Linux SUSE|
1 x 375GB
|1 x S15:|
|1 x 12.8TB|
2 x 320GB
|Cost per Month:||$128.85||$377,21||$112,42||$300,59||$46,57||$249.86||$152.86||$504.96|
|Cost per Hour:||$0.177||$3.092||$0.154||$2.464||$0.064||$2.048||$0.209||$4.139|
Oracle Cloud Infrastructure is by far the cheapest option with none of the 2 other CSPs coming even close to the rates available on OCI. When considering the pricing of the other three CSPs, we notice that AWS is by far the most expensive provider, followed by GCP and Azure respectively, with only minimal differences in price for running the “small” instance types, but significant cost differences for batch compute or in our case “large” instances.
However, this cost comparison is not very accurate and only serves as an indication of what pricing across the four cloud platforms may look like. Our example does not take into account, the less obvious and more hidden fees associated with data transfer out when computational results have been achieved as well as other fees such as inter AZ traffic, which AWS and GCP charge for, while Oracle and Azure do not.
With the current cost of storage being quite low in general, it makes sense to default almost any application to SSD. However, the NVMe SSDs standardized in Oracle instances set new benchmarks and enable record-breaking IOPS with very low latencies, even for the SSD standards. And this is persistent storage we are talking about, unlike other CSPs who provide ephemeral NVMe storage, which resets on instance shutdown.
Oracle originally being a Database company takes good care the data aspect within the cloud, and thus provide an option for vertical scalability. Although this may not be the sexy thing to do, it sometimes represents the only option. Furthermore, the Oracle flat network stands out as being fast and predictable, beating competitors in cross AZ latencies and throughput. However, Google’s inter-region network also shows great performance as the company owns proprietary lines and their fabric is one of the newer ones in the world. Out of all the CSPs compared in this blog, AWS seems to have the greatest tendency to be oversubscribed.
Whilst actual performance is hard to compare accurately, as this depends on multiple factors including the storage, instance shape, and network configuration, it has been our experience that Oracle’s OCI performs overall the best, and that the newer instance types offered by AWS and GCP generally give better IO averages than Azure.
5. User Friendliness
The environments of any of the four CSPs are relatively easy and ridiculously fast to provision. Within a few clicks and generally a wait time of approximately 30 minutes to 2 hour (in case of database provisioning), cloud systems can be created and are up and running. Once up and running all providers offer integrated and generally free user interface or dashboard to monitor and manage the cloud configurations.
Changes to the environments such as scaling up or down and terminating obsolete instance, can be completely automated or executed with a simple click of a button with all cloud vendors, and integrations are simplified through the use of RESTful APIs. For larger enterprises these configuration modules are more often paid for than free. However, there tends to be a tradeoff between surface simplicity and back-end functionality (or the degree to which environments can be customized).
Whilst Amazon offers its cloud customers a “sexy” and intuitive front-end, in the back-end AWS and GCP both tend to require a lot of application redesign in order for these apps to be “cloud authentic” and perform well in the cloud. Oracle’s Cloud Infrastructure, and to a certain degree also that of Azure, are less strict and provide more freedom to environment configuration, making lift and shift operations a lot easier and user friendly. This is very important for enterprise loads, as applications tend to be highly complex and associated with a large number of environmental dependencies, making enterprise applications generally difficult to redesign. And it is one of the main reasons we find Google’s Cloud Platform to be less suited for enterprise heavy loads, and rather optimal for startups and big data.
In terms of cloud security, we find the clouds of all four CSPs to be highly secure. The only platforms which may be subject to potential weaknesses or volatility are Azure and AWS. For Azure this could have something to do with the way the infrastructure was designed, but is also rooted in the fact that the Windows OS architecture from the kernel up has never been completely secure.
We also feel that in the case of AWS, security has been an issue due to Amazon’s role in pioneering cloud services. As the first to design and offer cloud-based infrastructure, there was inevitably going to be a learning curve. However painful yet constructive, this learning curve involved security breaches for DropBox (2012), the National Electorial Institute Mexico (2016) and even LinkedIn (2012) – all hosted on Amazon cloud servers (at least back then). Perhaps consequently then, we noticed Amazon introducing numerous new security features more recently and frequently.
However, these breaches can’t really be attributed to a weakness in AWS infrastructure but rather are the fault of misusage and misconfigurations by people unfamiliar with the platform’s countless configuration options and possibilities. For example, a recent data leak from AWS was caused because an employee had misconfigured an S3 bucket to public, even though that is not a default configuration offered on the platform. So in terms of cloud security the key differentiator between a robust and a volatile security model is still ultimately the user.
Yet in some contrast then, GCP and Oracle, and other newer CSPs, who have had the advantage of being able to draw on these early learnings, have subsequently been able to make security and data protection a top priority from day one. We find that so far their cloud infrastructures are holding up as highly robust and secure.
7. Vendor Lock-In
One more thing that is important to consider when choosing a Cloud Service Provider, is the degree to which you will be bound and committed to that partner as you progress along your cloud journey. Some cloud vendors like you to stay with them, and only them, demanding exclusivity and loyalty. For example, as great as the AWS Marketplace offering may be, some of the SaaS offered there is exclusively configured to run on AWS. This means that if you develop your cloud environment with niche SaaS products purchased from the Marketplace, you may build up a dependency on AWS that may be difficult to come away from should you ever want to switch provider.
This phenomenon is what is known as vendor lock-in and can be a tricky subject for enterprises looking to scale and diversify their offerings continuously. Some of our CSPs such as AWS, GCP and Azure achieve this lock-in through specifically written platforms (PaaS), like AWS Redshift or GCP Cloud Spanner DB for example, that only exists on their respective clouds infrastructures. Other CSPs like Oracle use the cost of licensing to encourage customers to maintain operations solely within their clouds, as the cost of double-licensing to run applications on multiple clouds is very high.
But CSP-customer relationships don’t have to be monogamous. Multi-vendor cloud solutions are becoming increasingly popular and for a very good reason. Whilst some cloud may be more established, larger, more secure or simply cheaper to run than others, each cloud has their own strengths and advantages. So, why not reap the benefits of different clouds for the niche areas in which they perform best?
Because vendor lock-in is not all bad. To be fair, the cloud vendor lock-in phenomenon results from good intentions of easing system management, driving optimization, and maximizing performance. Somewhat like tuning a Formula One race car, when an infrastructure is built, configured and stacked with applications specifically developed for optimal performance within that environment, it becomes hard to move those components to a different environment.
And although some companies have chosen to go for this strategy, the configuration, orchestration, and licensing costs of supporting a multi-vendor cloud solutions, as well as issues tied to data integration and application compatibility can make running a single vendor cloud seem like an easier option. From a management perspective, managing a large number of diversified application stacks across different platforms hosted in various clouds can be a time-consuming and nerve-wrecking nightmare, not to mention the financial disadvantages. But the single vs. multi-vendor cloud debate is a complicated one, so more on this in a future blog.
All in all, we feel that the vendor lock-in phenomenon is greatest for Google’s Cloud Platform and second highest for Azure. There is some vendor lock-in for Amazon’s IaaS and PaaS offerings, and the highest freedom of integration and mobility is perceived with Oracle’s Cloud Infrastructure.
Fig. 9: Cloud Provider Comparison Overview – February 2018
|Cloud Offering (IaaS)||XXL||M||L||L|
|Perfomance (index out of 10)||6.5||9.5||8.0||7.0|
|Scalability||No. Regions World: 17 Closest US Region: CA Market Share: 36%||No. Regions World: 10 Closest US Region: AZ Market Share: 1.7%||No. Regions World: 15 Closest US Region: OR Market Share: 2.3%||No. Regions World: 33 Closest US Region: CA Market Share: 7.2%|
|Cost of operation||$$$||$||$$||$$$|
|Rate of innovation||A lot and very often||A lot, catching-up||A lot and often||Moderate, sporadic|
|Freedom Of Integration||Some lock-in for PaaS and SaaS||Very little lock-in for Paas, DBaaS, or SaaS||High vendor lock-in across PaaS, SaaS||Moderate vendor lock- in & not all integration possible|
For now, our experience and the research conducted seem to suggest that Oracle’s Cloud Infrastructure (OCI) or Microsoft’s Azure offerings are best for meeting the requirements of large enterprise solutions because of their scalability, lower cost, and because they require less application redesign, whereas GCP is stronger in addressing the needs of startups and SMBs.
AWS may be able to do almost anything, and company has amazing rate of innovation, but compute and storage performance could be improved, and running an entirely AWS based cloud solution will be very expensive. If you have in-house DevOps and capable people for manual configurations, Oracle’s Cloud Infrastructure will deliver the performance you need to kickstart agility and innovation in your enterprise, and will do so at a fraction of the price the same solution would cost you with a different provider.
Whilst we are avid technology geeks ourselves and love the nitty-gritty lugs and bolts, kernel profiling and digging through stack traces, we also recognize the need for a higher-level, more digestible approach to understanding the cloud computing landscape. From this origin and perceived need we have given birth to a new series of blogs with a slightly different tone, aimed at business or management professionals and decision makers. We hope that this series of cloud business blogs will provide valuable information and new insights into the otherwise highly technical and rapidly changing cloud environment. Lastly, it is important to note that the views expressed in these blogs merely represent the opinions, perspectives, and point of view of AVM Consulting, and although some of the findings are based on facts, the meat of the content is purely subjective and open to interpretation. This is what we think, do what you will with this information.