blog September 20, 2021  |  Core

Comparison of Public Cloud Container Services

Type
blog
Service
Core
Date
September 2021

Containers have been the game-changing technology in cloud computing of the last decade. With the help of containerisation, it is now possible to run scalable and secure applications at a lower cost. All the leading cloud computing providers—AWS, Google Cloud and Azure—offer container-level virtualisation as a managed service, namely Containers as a Service (CaaS). 

Historically, with Infrastructure as a Service (IaaS), you didn't have to worry about buying the hardware and after that, with Platform as a Service (PaaS), you no longer had to worry about installing an OS and additional software. Now, with CaaS, you can just pack your applications as containers and let the cloud do its thing. 

AWS, Google Cloud and Azure each offer multiple container services, each with a different focus on orchestration. This blog will compare these services, covering their critical functions, as well as their advantages and disadvantages.

AWS Container Services: ECS, EKS and Fargate

AWS has three essential services to run containers—Elastic Container Service (ECS), Elastic Kubernetes Service (EKS), with its main advantage being Kubernetes and finally Fargate, with its flexible serverless approach: 

  • ECS is a scalable orchestration service to start, scale and stop containers in a cluster. In ECS, containerised applications are defined and deployed as task definitions. ECS handles the creation and orchestration of containers in the cloud. 
  • EKS is a managed Kubernetes control plane service that lets you enjoy all the benefits of Kubernetes via its Kubernetes API. You can create scalable deployments, install complex applications with Helm charts and use the Kubernetes dashboard. 
  • Fargate is a serverless service that can work as the compute layer of ECS and EKS. The main advantage of Fargate is that you do not need to provision, scale, or manage the servers for your containerised applications. Fargate automatically does all of this for the optimal number of servers needed to run your applications. 

Regarding pricing, you pay for the compute resources for your applications using ECS and EKS. In EKS, there is a surcharge of $0.1 per hour per Kubernetes cluster or $72 monthly. 

The top pros and cons of these services are summarised as follows:

 

Advantages

Disadvantages

ECS

  • Simple to operate
  • AWS-level support
  • Vendor lock-in
  • Less community support

EKS

  • Open-source standard such as Kubernetes API 
  • Portability between other clouds
  • Complex to operate
  • Fewer and more complicated integrations to other AWS services

Fargate

  • No server management
  • Cheaper
  • Not feasible for long-running applications
  • Less control over infrastructure
  • Limited complexity for apps due to nature of the service

In summary, if you are exploring container services, ECS is a good choice, as it is the most fully-featured container orchestration engine on AWS. On the other hand, if you are looking for Kubernetes-level flexibility, you should go with EKS. As for Fargate, this depends on the nature of your application: We suggest you use EC2 for long-running servers and Fargate for functions and distributed microservices.

Google Cloud Platform's Container Services: GKE and Cloud Run

Google is the primary driver of containers and their underlying technology. For decades, every core Google service, such as Gmail and Google Search, has run as containerised applications in Google’s data centres. The company’s knowledge of and experience with operating a huge number of containers created the foundation for Kubernetes and the container services in Google Cloud Platform—Google Kubernetes Engine (GKE) and Cloud Run:

  • GKE is the most equipped and mature managed Kubernetes service in the wild. You can create and manage highly scalable clusters, even with the maximum of 15,000 nodes and with a control plane distributed over multiple regions. GKE also offers the latest features of Kubernetes with security, vulnerability scanning and data encryption.
  • Cloud Run is a serverless platform used to run highly scalable applications packaged as containers. The service creates an abstraction between the application layer and the infrastructure to enrich the developer experience. In addition, Cloud Run follows open standards such as Knative to avoid vendor lock-in. 

Regarding pricing, GKE is similar to other Kubernetes providers where you pay for the worker nodes and a standard hourly fee per cluster for the Kubernetes control plane. In Cloud Run, you’re only billed for the actual usage of the containers, which means zero cost if you don’t invoke any functions. 

The primary pros and cons of these two services can be listed as follows:

 

Advantages

Disadvantages

GKE

  • No cost for control plane 
  • Kubernetes API with the latest versions and features
  • Operational experience needed

Cloud Run

  • Ease of operation 
  • Open standards such as Knative
  • Suitable for functions and short-lived tasks

The distinction between the two container services is clear for Google Cloud Platform: If you are looking for a battle-tested Kubernetes solution, you should go for GKE. On the other hand, Cloud Run is the best option for running functions packaged as containers. 

 

Azure Container Services: AKS and ACI

Microsoft Azure is the most popular choice for enterprises for business tools and cloud options. Azure offers two essential container services—Azure Kubernetes Service (AKS) and Azure Container Instances (ACI):

  • AKS is a free managed Kubernetes service where Azure controls all the master nodes in terms of upgrades, monitoring and networking. It aims to provide Kubernetes and its extensive API to run applications and consume the integrated Azure services.
  • ACI is the serverless container service of Azure, for which you do not need to provision the compute layer, namely servers. ACI's primary focus is to create containers in a couple of seconds for small-scale applications, automated tasks and cron jobs. 

Regarding pricing, AKS does not incur costs for the control plane and you only need to pay for the worker VM nodes. Similarly, ACI bills you only for the container groups that are actually running. 

The pros and cons of the two services are provided below:

 

Advantages

Disadvantages

AKS

  • Use of security groups and Azure Active Directory (Azure AD)
  • Integration to other Azure services such as logging and monitoring 
  • Cumbersome node upgrades and further operations 

ACI

  • Ease of use
  • Fast container startup
  • Complicated logging and monitoring integration

Similar to Google Cloud Platform, Azure’s container services are goal-oriented and well-separated. It would help if you either go for a managed Kubernetes service with AKS or a serverless platform with ACI.

Summary

The container services from the three main providers and their service types are summarised in the table below: 

Service Type

AWS

GCP

Azure

Container Orchestration

ECS

-

-

Kubernetes

EKS

GKE

AKS

Serverless Container

Fargate

Cloud Run

ACI

Choosing a provider and service is not straightforward, as it depends on multiple factors such as application architecture, cloud provider integration, operational experience and budget. However, there are some guidelines for choosing the best service. 

If you have just started playing around with containers, AWS ECS is a good option, as it directly focuses on container orchestration. When it comes to Kubernetes, GCP GKE is the best choice given its organic roots to Kubernetes and its ecosystem. If you’re looking for short-lived containers and functions, both AWS Fargate and Azure ACI are the way to go. 

In cloud platforms, you are not only choosing the best container service but also how you are investing your time, money and the future of your business. There are also certain types of tasks you need to undertake before and after choosing a service.

Beforehand, you need to design your applications, work on the delivery pipeline and handle further dependencies of the public cloud. Afterwards, it can get even more complicated with the release of new versions, upgrades of worker nodes and application maintenance. All of this means you should choose a container service carefully and seek professional support when building the foundation of your cloud infrastructure.

At Ekco, our cloud-native practice enables you to drive application transformation. Reach out today to learn how we can help evolve your application approach and innovate faster.

 

Talk to the experts

Contact our Sales and Support team

Got a question on a product or need to contact support? We're all ears.

Contact us or call 020 8099 1502