Public Cloud Compute Services Review (May 2020 update)

Table of Contents

Conclusion

The cloud computing services offered by AWS, GCP, Azure and Alibaba can be analyzed from two perspectives;

  • From the point of view of the services offered in each layer
  • From the point of view of the developer who has to create an application in the cloud.
  • From the point of view of  the evolution during 2019-2020

From the point of view of the layers offered

Iaas

Currently the four Vendors analyzed offer very similar services with price and SLA models also almost identical. The decision to choose a vendor depends on factors such as;

  • The presence of the vendor in your country and the level of commitment when making discounts. In this aspect Azure seems to have more freedom when it comes to adapting to the needs of a client.
  • The need to use other services of the provider. For example, if a Big Data and Analytics service is required, GCP is probably the best option. If a full stack cloud service platform is required, AWS could be the best option. If your platform is Microsoft, Azure should be the first vendor to evaluate. If your market is mainly China, Alibaba could be an option.
  • The presence of Data Centres from the vendor in your country that allows low-latency hybrid solutions.
  • The level of support of hybrid approach that clearly is the 2019-2010 big trend

Probably in IaaS environment it may be convenient to have two suppliers to be able to contrast services and price.

CaaS

CaaS in my opinion is the future of cloud computing services and more specifically Kubernetes that allows you a portability of your solution to other vendor and the ability to define hybrids cluster.

In this aspect, GCP has the lead since it was the precursor of Kubernetes. However, both AWS, Azure and Alibaba have rotated quickly to include Kubernetes as their star solution for CaaS.

This is where big changes are taking place (as in fact has happened in 2019);

  • Offer Kubernetes in Serverless mode
  • Expand the registry services to cover the full application life cycle management
  • Include a Microservices Architecture
  • Include Batch services (already cover by GKE)

Although GCP is the one that has more experience about Kubernetes, we must be aware to the movements of the rest of the vendors who have understood the relevance of offering CaaS over Kubernetes.

AaaS

AaaS (Application as a Service) was an attempt by the vendors to offer a simplified Web development. However, it will generate a Lock-in with the vendor that is currently not acceptable if we want to ensure the future portability of our applications.

The trend is that under CaaS with Kubernetes begins to offer serverless models and microservices architecture that does not tie you to the provider.

Under AaaS there are also batch solutions, where the scheduler and job management model is very similar, but in my opinion, a more portable solution under Kubernetes will be offered soon.

So in summary, try to avoid the AaaS offering by the vendors (with the exception of Batch solutions that have a low lock-in and there is not alternatives in other layers)

FaaS

Regarding FaaS, like GCP with Kubernetes, AWS was the precursor of the serverless model of functions offering the most robust and integrated solution.

The rest of the providers quickly included this capacity with a similar approach.

The good news is that with a minimal architecture layer it is possible to develop easily portable functions among vendors.

The bad news is that the functions are not for a general purpose and applies only to use cases that do not require a guaranteed latency (although it is possible that some vendor with an additional cost could guarantees latency) and do not contain long-term processes.

 

From the point of view of the developer who has to create an application in the cloud.

If I were a developer, my bet would be clearly towards a CaaS docker model orchestrated by Kubernetes complemented with FaaS for streaming processing and some simple microservices.

The registry Service offer by the vendors is a good starting point but it is necessary to strengthen the life cycle management with products like:

  • Helm (Package manager for Kubernetes)
  • Spinnaker (Continuous Delivery Platform aligned with Kubernetes)
  • Jenkins (Continuous Integration Platform)

In this area GCP are defining Devops model for Kubernetes that could be also a reference.

Finally during 2019 GCP provides a batch solution over GKE that covers the big gap that had previously.

From the the point of view of evolution during 2019-2020

The main evolutions of the computer service of the four providers during 2019-2020 have focused on:

  • Provide hybrid cloud capabilities. Here the forerunner was Azure that has expanded the reach and followed by AWS with its service of AWS Outposts and GCP with its solution of Kubernetes Anthos GKE on-premises
  • Allow High Performance Computing (HPC) Configurations with parallel cluster and management tools
  • Add serverless capabilities to container solutions
  • Implement Microservices alternatives such as support for Spring Boot-based microservice applications in Azure
  • Improve the development life cycle of CaaS and FaaS solutions
  • Cover necessary gaps such as Batch support in GCP