Nowadays, cloud is just a commodity, and there are a lot of public cloud providers (and even more cloud providers if we count private clouds too). Most of them provide a vast number of services that can be consumed on their platforms, from classical VMs to messaging systems and data warehouses. Once you start working with multiple cloud providers, the maturity level of each provider is crucial to allow you to optimise the cost and improve the quality attributes of IT solutions that you build or manage on these platforms. In this article I explore the different maturity levels of commonly used cloud services on several well-known cloud platforms.
When we look at the services provided by a cloud, it is important to consider the level of management that we will have to do ourselves as users of these services. A cloud provider who just offers us a VM image that allows us to start a VM containing Redis is quite different from a fully managed Redis SaaS service.
Depending on where each service is on the IaaS-PaaS-SaaS (and even FaaS) scale, the cost of development, automation, and integration will vary. The most significant impact becomes apparent during management and operation, where there is a big difference between managing IaaS vs PaaS or SaaS.
An excellent example of this case is the database, where there is an immense difference between a cloud provider offering the database on an IaaS platform, compared to a managed service in a PaaS platform. In the IaaS context, you need to fully manage the VM, the backup of the database, among other things. In comparison, in a PaaS context all of these activities are provided automatically as part of the service and you only need to configure them, such as how long to retain backups, the recovery policy you want and so on – which are mainly one-click activities.
It is straightforward for the cloud provider to offer any service on their IaaS platform, as they just need to provide VMs and the application. But taking on part of the management and operation responsibilities and offering the user the ability to tailor those service from a configuration dashboard is a different thing. The provider needs to have the processes, the mechanisms and the teams that can do the magic behind the scenes.
From a management and operation perspective, I have seen a significant cost difference between different cloud providers. I have also found that development teams have complained that development and automation, for some specific cloud providers, can be slow and complicated.
This experience was the trigger that inspired me to invest time and effort to understand what the root cause of this situation is.
CLOUD MATURITY LEVELS
Given these differences between the different types of cloud service, one of the important factors that define the maturity level of a cloud provider is the percentage of the services offered as IaaS vs PaaS vs SaaS. In general, you will not realise the difference that each of these services make until you start to use two or three different cloud providers. When you try to do the same thing with different cloud providers and you realise that in one you need to manage a VM and all the software on it, whereas on another you get the service as a managed PaaS service, you really begin to understand that costs and complexity can vary widely.
For example, at present, AWS and Azure offer the Cassandra DB as a PaaS service. We only need to spin up the service and copy and paste a connection string into its configuration page. In contrast, on the IBM Cloud, Cassandra DB is available only on their IaaS platform, so you need to spin up the VM, configure the operating system, configure the Cassandra DB, and so on.
I analysed the top 4 cloud providers used by enterprises: Azure, AWS, GCP, and IBM. For each of them, I counted the number of services that are provided as IaaS versus those that are provided as PaaS and SaaS. The analysis may not be absolute, but the result should represent a good approximation of the reality that we have had at the end of 2019.
The initial result is exciting but not particularly surprising. AWS and Azure – the public cloud leaders – provide less than 12% of their services as IaaS. In comparison, IBM provides more than 27% of their services as IaaS.
This result is consistent with the feedback I received from other sources.
My next query was which service categories have their cost impacted by being provided on IaaS. Specifically, I wanted to find out which service category suffers the largest impact from the platform it is provided on (IaaS, PaaS, or SaaS). I will present the findings of this analysis in part 2.