The introduction of containers has been highly beneficial for software developers due to the added flexibility, which allows them to run cloud-native applications on virtual and physical infrastructure far more efficiently. Since Google open-sourced the Kubernetes project in 2014, all the major cloud providers now offer a turnkey Kubernetes container service ready to host your apps without having to run the infrastructure. The question when looking at public cloud is, where do I host my cluster and why?
What is Kubernetes?
Kubernetes is an open-source platform which manages containerised workloads and services. Kubernetes was built on best practices and ideas from the Google community, combined with Google’s own experience in running services – such as Gmail and YouTube – in containers for over a decade.
Kubernetes has emerged as the leader when it comes to container orchestration which is largely due to its configurability, reliability and large community. Kubernetes has seamless integration with Google Compute Platform and runs well on almost any infrastructure, be it on premise or another cloud provider’s infrastructure.
So with all the major cloud providers offering a managed Kubernetes platform, deciding between them can be a bit of a headache. In this article, we’ll explore three of the most popular cloud Kubernetes services: Google Kubernetes Engine (GKE) by Google Cloud Platform, AWS Elastic Kubernetes Services (EKS) by Amazon Web Services, and Azure Container Service (AKS) to help choose the right platform for your apps.
AWS Elastic Kubernetes Service (EKS) by Amazon Web Services
In a report from the Cloud Native Computing Foundation, 63% of container workloads currently run on AWS. With a market share of this size, Elastic Kubernetes Services (EKS) has potential to become the most popular container platform in the market. Let’s check out a few of the pros and cons of Elastic Kubernetes Service (EKS).
- Comprehensive resources and support of a large community, providing insight and expertise
- Attractive to developers already using AWS for other apps
- Integration with many tried and tested AWS managed services
- Based on the same service that powers ECS, providing cluster management across availability zones and removing the worry about HA
- Cluster build time slower than rivals
- Complex process, additional steps are needed to create a cluster outside of the EKS console
- Charges for master nodes and as a result pricing is high: $0.20 per hour
- Worker nodes to be added through CloudFormation, removing simplicity for beginners looking to use EKS
- AWS interface is simply removing the ability to interface with more complex cluster control
Azure Container Service (AKS)
Azure (AKS) is a natural solution for users who’re using Microsoft Azure and its toolsets. Although AKS is relatively new in the container market, Microsoft is invested in improving its services – so we can expect AKS to improve quickly.
- AKS offers free Master nodes so that it can compete with GKE
- AKS offers Service Catalog, enabling access to Azure services to an app running on AKS cluster
- Smooth integration between AKS and Azure BI tooling
- Cost-effective – only pay for resources that are visible to you
- Minimalistic GUI, not offering anything different from the CLI
- Doesn’t provide high availability for Master nodes
- Adoption of AKS is lower than GKS and EKS, where larger support communities exist
- Can only scale up to similar nodes types in a given cluster
Google Kubernetes Engine (GKE)
The home of Kubernetes, Using Google Kubernetes Engine (GKE) platform provides instant access to version updates and service upgrades. All other providers in the market will need to update their platforms after the event, compared to GKE.
- Most affordable managed Kubernetes platform on the market and benefits from sustained usage discounts
- Straightforward CLI commands for creating and deleting clusters
- Comprehensive setup experience through the GUI for advanced setups
- Fast cluster configuration of five minutes
- Documentation missing important information needed for configuration and support
- Business support not as strong as AWS or Azure
- Integration with other Google manages services not as mature when compared to AWS
Barring any obvious choices in platform due to already large investments or skillsets in a cloud provider’s services, the winner for managed Kubernetes services will always be GKE. The ability for in depth configuration, competitive pricing and Google’s own expertise with Kubernetes has given them the edge over their competition.
If you’ve got any questions on Google Cloud Platform’s services, feel free to drop us a line here.