Public Cloud Compute Services Review (May 2020 update)

Table of Contents

Public Cloud Compute Services: IaaS Comparison

 

 

AWS

GCP

Azure

Alibaba

Virtualization Technology

Xen

KVM

Customized version of Hyper-V

Transition from Xen to KVM since 2014

Nested Virtualization

Partial in i3.metal instance

Nested virtualization can only be enabled for
L1 VMs running on Haswell processors or later (KVM & linux)

Yes Linux and Windows

Yes in ECS Bare Metal Instance

SLA (Monthly
Uptime Percentage to Customer)

99.99%

99.99%

99.99%

99.99%

 

Machine Types and Sizes

Up to 96 VCPU & 768 GB Memory

Up to 16 GPU & 54 GB of GPU Memory

Up to 416 VCPU & 1.4 TB Memory (mega-memory
machine types)

Up to 8 GPU & 96 GB of GPU Memory

Up to 416 VCPU & 11.4 GB Memory

Up to 8 GPU & 96 GB of GPU Memory

Up to 208 VCPU & 3.8 TB Memory

Up to 8 GPU & 256 GB of GPU Memory

Machine Options

Dedicated
Instances
.

  On
Demand Instances (seconds & hourly)

– Reserved Instances (1-3 years)

– Spot Instances

Dedicated
Hosts

  On
Demand Instances (seconds & hourly)

– Reserved Instances (1-3 years)

On
Premises
– AWS Outposts that allows
run AWS infrastructure and services on premises  

Dedicated
Instances
.

  On
Demand Instances (seconds)

– Reserved Instances (1-3 years)

– Spot Instances

(Preemptible VM)

  Shielded
VM

Dedicated
Hosts (Sole-tenant nodes)  

  On
Demand Instances (seconds & hourly)

– Reserved Instances (1-3 years)

On
Premises –
Anthos GKE on-prem (GKE on-prem) is hybrid
cloud software that brings GKE to on-premises data centers

Dedicated
Instances
.

  On
Demand Instances (seconds & hourly)

– Reserved Instances (1-3 years)

– Spot Instances (low-Priority VM) 

Dedicated
Hosts (
Isolated VM)

  On
Demand Instances (seconds & hourly)

– Reserved Instances (1-3 years)

On
Premises
– Azure Stack Portfolio  is an extension of Azure to consistently
build and run hybrid applications across datacenters, edge locations, remote
offices, and cloud

Dedicated
Instances
.

  On
Demand Instances (minutes)

– Reserved Instances (Monthly)

– Spot Instances (Preemptible
VM)

Dedicated
Hosts

– Reserved Instances (Monthly)

 

Disks (Block & File Devices)

Instance
store volumes
attached to the host
computer for the instance SSD (up to 60 TB) and Magnetic (up to 48TB)

Elastic
Block Storage (EBS)
attached to any running instance that is in the same
Availability Zone. SSD (up to 16 TB) and Magnetic (up to 16TB)

Cloud
File Storage
allow access to data
through shared file systems (petabytes of data)

Local
Disk
attached to the host
computer for the instance SSD (up to 9 TB)

Persistence
Disk  attached
to any running instance that is in the same Zone o
Region. SSD (up to 64 TB) and Magnetic (up to 64TB) with the option to
achieve 257 TB

File
server
 allow access to data through shared file
systems (petabytes of data)

RAM
disks
share instance memory (use
the ram memory of the instance)

Azure
Disk Storage
virtual hard disk (VHD) attached
to the host computer for the instance.
ultra solid-state-drives (SSD) (preview) up to 65 TB, premium SSD,
standard SSD, and standard hard disk drives (HDD) that supports up to 32 TB

Azure
File Storage
 allow access to data through shared file
systems (5TB per share)

Cloud
Disk
attached to the host
computer for the instance ESSD, SSD, Ultra Cloud Disks and Basic Cloud disks
up to 32TB per disk.

Shared
Block Storage
attached to any
running instance that is in the same Availability Zone. SSD and Ultra Cloud
Disks up to 32TB per disk

Local
disks
are the disks attached to
the physical servers (host machines) on which ECS instances are hosted. SSD
up to 8×1.78 TB and SATA HDD up to 154TB

Alibaba
NAS

allow access to data through shared file
systems (petabytes of data)

Autoscaling

Scaling
options

– Manual

– Schedule

– Dynamic policies

– Monitoring policies

 

Cooldowns support

Shutdown script

Health check support

Removal Policy

Scaling
options

– Dynamic policies

– Monitoring policies

 

Cooldowns support

Shutdown script

Health check support

Scaling
options

– Manual

– Schedule

– Dynamic policies

– Monitoring policies

– Application policies

 

Cooldowns support

Shutdown script (preview)

Health check support

Notification & webhooks
support

Scaling
options

– Manual

– Schedule

– Dynamic policies

– Monitoring policies

 

Cooldowns support

Shutdown script

Health check support

Removal Policy

Billing Model

On Demand: Pricing is per instance-hour (Each
partial instance-hour consumed will be billed per-second for Linux Instances
and as a full hour for all other instance types)

Discounts:


Spot Instances up to 90%

– Reserved Instances (1-3 Years)  up to 75%

 

On Demand: Pricing is per instance-second
(minimum 1 minute)

Discounts:


Spot (Pre-emptible) Instances up to 80%

– Reserved Instances (1-3 Years) up to 70%

– Sustained use discounts (When an instance
uses a vCPU for more than 25% of a month) up to 30%

On Demand: Pricing is per instance-second

Discounts:


Spot (low-Priority VM) Instances up to 80% Linux
and 60% Windows

– Reserved Instances (1-3 Years) up to 72%

 

On Demand: Pricing is per instance-minute

Discounts:


Spot (Pre-emptible) up to 60%-80%

– Reserved Instances (monthly) up to 60%

 

Other

– Linux & Windows Support

– Public and Custom Image Support

– Snapshot support

– Migration tool & methodology

– Lightweight version (lightsail)

– VMware Cloud on AWS

– Parallel Cluster management based on Opensource

– Linux & Windows Support

– Public and Custom Image Support

– Snapshot support

– Migration tool & methodology

– Managed and unmanaged Instance Groups
Support

 

– Linux & Windows Support

– Public and Custom Image Support

– Snapshot support

– Migration tool & methodology

– Update and Fault Domains

– Azure CycleCloud

An enterprise-friendly tool for orchestrating
and managing High Performance Computing (HPC) environments on Azure

– Linux & Windows Support

– Public and Custom Image Support

– Snapshot support

– Cloud migration tool

 

Public Cloud Compute Services: CaaS Comparison

 

 

AWS

GCP

Azure

Alibaba

Custom Container Service

EC2 Container Service (ECS)

 

Azure Container Service (ACS) that will be
retired on January 31, 2020

Alibaba Container Service

Kubernetes Container Service

Elastic Container Service for Kubernetes (EKS)

-AWS Load-balancing integration.

-Automatic scaling of your cluster’s node
instance count

-Automatic upgrades for your cluster’s node
software

-Hybrid Networking

-Workload Portability, on-premises and cloud

-Identity and Access Management Integration

-Logging and Monitoring

Google Kubernetes Engine (GKE)

-GCP load-balancing integration

– Node pools to designate subsets of nodes
within a cluster for additional flexibility

-Multi-zone Clusters or Regional Clusters

-Automatic scaling of your cluster’s node
instance count

-Automatic upgrades for your cluster’s node
software

-Node auto-repair to maintain node health and
availability

-Hybrid Networking

-Workload Portability, on-premises and cloud

-Dashboard for  GKE clusters and their resources.

-Identity and Access Management Integration

-Logging and Monitoring

Azure Kubernetes Service (AKS)

Azure
Load-balancing integration.

-Automatic scaling of your cluster’s node
instance count

-coordinated application upgrades

-Hybrid Networking

-Workload Portability, on-premises and cloud

-Identity and Access Management Integration

-Logging and Monitoring

Alibaba Container Service for Kubernetes with
3 options:

– Dedicated Kubernetes cluster

– Managed Kubernetes cluster

Serverless
Kubernetes cluster

Alibaba
Load-balancing integration.

-Automatic scaling of your cluster’s node
instance count

-Hybrid Networking

-Workload Portability, on-premises and cloud

-Identity and Access Management Integration

-Logging and Monitoring

Registry service

Amazon ECR Registry

Fine-grained
access control.

-Existing CI/CD integrations

Google Container Registry

– Perform vulnerability analysis

Fine-grained
access control.

-Existing CI/CD integrations

Azure Container Registry

– Geo-replication

Fine-grained
access control.

-Existing CI/CD integrations

Alibaba Container Registry

Billing Model

– Amazon EKS cluster (per hour)

– AWS resources you create to run your
Kubernetes worker nodes.

– Node instances according to VM, Storage and
Network pricing

– Node instances according to VM, Storage and
Network pricing

– Node instances according to VM, Storage and
Network pricing

Other Services

 

Google Cloud Build to executes
your builds on Google Cloud Platform’s infrastructure.

 

GKE on premises with Anthos GKE on-prem that brings Google
Kubernetes Engine (GKE) to on-premises data centers.

 

Knative provides an open API
and runtime environment that enables you to run your serverless
workloads anywhere you choose

 

Service Fabric

Microsoft’s container orchestrator deploying microservices across a cluster of machines. Microservices can be developed in many ways from using
the Service Fabric programming models, ASP.NET Core, to deploying any code of
your choice.

Azure Container Instances (ACI)

offers the fastest and simplest way to run a container in
Azure, without having to manage any virtual machines and without having to
adopt a higher-level service
.

Elastic Container Instance (ECI) is an agile and secure serverless
container instance service. You can easily run containers without managing
servers.

 

Public Cloud Compute Services: AaaS Comparison

 

 

AWS

GCP

Azure

Alibaba

Web Apps

AWS Elastic Beanstalk

-Wide Selection of Application Platforms;
Java, .NET, Node.js, PHP, Ruby, Python, Go, and Docker to deploy your web
applications.

-Variety of Application Deployment Option
(Visual Studio and Eclipse)

-Monitoring, Logging, and Tracing

-Management and Updates

-Scaling

-AWS Resources Customization

Google App Engine (Standard and Flexible
environment)


Fully managed serverless
application platform

-Wide Selection of Application Platforms; Java,
PHP, Node.js, Python, C#, .Net, Ruby and Go and Docker to deploy your web
applications.

-Variety of Application Deployment Option (Cloud
Source Repositories, IntelliJ IDEA, Visual Studio)

-Monitoring, Logging, and Diagnostics

-Application Versioning

-Scaling

-GCP Resources Customization

– Traffic Splitting

Application
Security

Azure App Service

Wide
Selection of Application Platforms; Java, .NET, Node.js, PHP,  Python  and Docker to deploy your web and mobile
applications.

-Auto-scaling

-High availability

-Supports both Windows and Linux

-Enables automated deployments from GitHub,
Azure DevOps, or any Git repository

-Monitoring, Logging, and Tracing

-Management and Updates

Cloud Services

Offers access to the underlying Azure VMs

Azure Spring Cloud (preview)

Azure Spring Cloud makes it easy to deploy
Spring Boot-based microservice applications to
Azure with zero code changes

Simple Application Server

It provides you the all-in-one solution to
launch and manage your application, set up domain name resolution, and build,
monitor, maintain your website with just a few clicks.

Focus on beginners to get started with cloud computing.

 

Batch Apps

AWS Batch

Support
for multi-node parallel jobs

-Granular job definitions

-Simple job dependency modeling

-Support for popular workflow engines

-Dynamic compute resource provisioning and
scaling

-Priority-based job scheduling

-Dynamic spot bidding

-Integrated monitoring and logging

-Fine-grained access control

App Engine Cron
Service (basic batch only scheduling tasks)

 

Batch on GKE

A cloud-native solution for scheduling and
managing batch workloads. With Batch, you can leverage the on-demand and
flexible nature of cloud. Batch is based on Kubernetes and containers so your
jobs are portable.

 

Cloud Dataflow

Based
on Apache Beam (java & Python)

-Automated Resource Management

-Dynamic Work Rebalancing

-Horizontal Auto-scaling

Azure Batch

Support
for multi-node parallel jobs

-Granular job definitions

-Simple job dependency modeling

-Support for popular workflow engines

-Dynamic compute resource provisioning and
scaling

-Priority-based job scheduling

-Integrated monitoring and logging

-Fine-grained access control

Batch Compute

Support
for multi-node parallel jobs

-Granular job definitions

-Job scheduling

-Dynamic compute resource provisioning and
scaling

-Integrated monitoring and logging

-Fine-grained access control

Billing Model

You pay only for AWS resources (e.g. EC2
instances or S3 buckets) you create to store and run your application

App Engine flexible you pay only for the
resources allocated

App Engine standard environment are deployed
to instance classes that you specify, that have a cost per hour per instance.

Cloud Dataflow service usage is billed in per
second increments, on a per job basis.

Azure App Service pricing is per hour with a
cost depending on the plan.

Azure Cloud Services pricing is per hour with
a cost depending on the VM chosen

Azure batch pricing is per hour with a cost
depending on the VM chosen. You  can also select low priority VM for
higher discounts.

Simple Application Server provides a monthly
package of resources at a fixed charge and currently supports monthly and
yearly pre-payment payment methods.

Batch Compute, you pay for the compute and
storage resources consumed by your jobs or clusters.

 

Public Cloud Compute Services: FaaS Comparison

 

 

AWS

GCP

Azure

Alibaba

Language Runtimes

– JavaScript (Node.js 12 & 10)

– Python 3.8-3.6-3.7-2.7,

– Go (1.x)

– Java 8-11

– PowerShell

– C# (.Net Core 3.1 and 2.1)

– Ruby 2.7-2.5  

– JavaScript (Node.js 6-8-10)

– Python (3.7.6)

– Go (1.11 and 1.13(beta))

– JavaScript (Node.js 6,8,10&12)

– Python 3.6-3.7-3.8

– Java 8

– C#-F# (.NET Framework 4.7 &.NET Core 2.2
& 3.1)

– JavaScript (Node.js 6 & 8)

– Python 2.7 & 3.6   

 – Java 8

– PHP 7.2

SLA (Monthly
Uptime Percentage to Customer)

<= 99.95%

<= 99.5%

<= 99.95%

<= 99.95%

Events and Triggers

– HTTP— HTTP requests.

– Amazon S3

– Amazon DynamoDB

– Amazon Kinesis Data Streams

– Amazon Simple Notification Service

– Amazon Simple Email Service

– Amazon Simple Queue Service

– Amazon Cognito

– AWS CloudFormation

– Amazon CloudWatch
Logs

– Amazon CloudWatch
Events

– AWS CodeCommit

– Scheduled Events (powered by Amazon CloudWatch Events)

– AWS Config

– Amazon Alexa

– Amazon Lex

– Amazon API Gateway

– AWS IoT Button

– Amazon CloudFront

– Amazon Kinesis Data Firehose

– Other Event Sources: Invoking a Lambda
Function On Demand

– HTTP— HTTP requests.

Cloud
Storage

– Cloud Pub/Sub

– Cloud Firestore

-Firebase (Realtime
Database, Storage, Analytics, Auth)

Stackdriver
Logging—forward log entries to a Pub/Sub topic by creating a sink. You can
then trigger the function

HTTP
& Webhooks

– Blob Storage

– Cosmos DB

– Event Grid

– Event Hubs

– Microsoft Graph Events

– Queue storage

– Service Bus

– Timer

– HTTP— HTTP requests.

– Alibaba Cloud Object Storage Service (OSS)

– CDN events

– Timer

– MNS topic

– Table Store

– Log Service

Timeout

Default 3 Seconds. Up to 15 Minutes

Default 1 Minute. Up to 9 Minutes

Default 5 Minute. Up to 10 Minutes.

(with Premium and App Service plan you can
have up to 60 minutes of timeout)

Default 3 Seconds Up to 10 Minutes

Billing Model

Number of requests

+

Execution time

 +

Memory allocated

+

Networking. Outbound data transfer

 

1M free requests per month and 400,000
GB-seconds of compute time per month

Number of requests

+

Compute time

+

Memory allocated

+

Networking. Outbound data transfer

 

2M free requests per month regardless duration

Number of requests

+

Execution time

 +

Memory allocated

+

Networking. Outbound data transfer

 

1M free requests per month and 400,000
GB-seconds of compute time per month

Customers can also run Functions within their
App Service plan at regular App Service plan rates

Number of requests

+

Execution time

 +

Memory allocated

+

Public Network Traffic

 

1M free requests per month and 400,000
GB-seconds of compute time per month