CaaS: Simpler container management
As modern, containerised applications continue to prove popular with organisations, it was only a matter of time before the major vendors started to offer container infrastructure and management “as-a-service.”
Use of containers is firmly on the rise with enterprises globally, with 65% of organisations stating they use Docker containers, and 58% using the Kubernetes orchestration system in some manner, according to Flexera’s latest 2020 State of Cloud report.
Lack of resources and expertise are frequently cited as chief challenges in using containers to build and maintain applications. So, it should come as no surprise that developers are increasingly turning to the automation provided by containers-as-a-service (CaaS) offerings, with the three major cloud providers leading the way.
Containers-as-a-service, or CaaS, defined
With CaaS, cloud vendors essentially provide a hosted container orchestration engine — typically based on the super-popular Kubernetes open source project, which originated at Google — to deploy and run containers, manage clusters, automate scaling and failure management, and maintain the common infrastructure layer, with governance and security included.
Generally, all networking, load balancing, monitoring, logging, authentication, security, autoscaling, and continuous integration/continuous delivery (CI/CD) functions are taken care of by the CaaS platform.
CaaS allows organisations to leverage the benefits of cloud infrastructure, while at the same time helping to avoid any vendor lock-in that would come with your typical platform-as-a-service (PaaS), like AWS Elastic Beanstalk, Azure App Service, or Google App Engine, as the containers themselves allow for simple portability across various environments.
If containers are the way you want to go, then the difference between CaaS and running on classic infrastructure-as-a-service (IaaS) comes down to whether your organisation has the resources and skills to implement and manage Kubernetes (or other container orchestration layer) itself, or would benefit by leaving that to a cloud provider. The decision may also turn on whether your container environment must span multiple clouds and/or on-prem environments. A number of vendors offer CaaS platforms that can be deployed either on-prem or in the cloud (see below).
“You can either manage things at the infrastructure level and set up the orchestrator yourself, or you can use a container platform that handles the underlying infrastructure and provides a preinstalled orchestrator ready for you to deploy and scale your containers,” wrote former Deutsche Bank and BBC developer Rob Isenberg in his book, Docker for Rails Developers, published by O’Reilly.
The benefits of CaaS
Running your containers on CaaS is akin to running your virtual machines on IaaS: The primary benefits are speed of deployment and ease of use, as well as the simplicity of the pay-as-you-go cloud model and the aforementioned freedom from vendor lock-in.
By leaving your container infrastructure to a cloud vendor, you can get up and running without investing in your own hardware and without building and running your own Kubernetes clusters (or other container orchestration system). Additionally, by containerising applications, you can more easily migrate applications into different environments or vendor ecosystems, giving greater flexibility and scalability options.
All of this also has those all-important opportunities for cost efficiencies, as containers are better equipped to scale horizontally as demand dictates, allowing organisations to pay only for the cloud resources they use. Containers are far more lightweight than VMs, meaning they are less resource intensive, often leading to gains in speed and reduction of costs.
Another benefit comes with consistency of instrumentation and logging, as isolating individual services in containers can allow for more effective log aggregation and centralised monitoring through the popular sidecar deployment model.
Migrating traditional apps to containers remains a significant barrier to adoption, even when being run on CaaS, as cited by 34% of respondents to Flexera’s State of Cloud report. Migrating to containers often involves breaking monolithic applications down into microservices, which for larger, older organisations can be a major cultural and technical shift that should not be taken lightly.
Leading CaaS options
Most of the major cloud providers have CaaS offerings, and there are several other providers looking to get in on the action.
Cloud services market leader Amazon Web Services (AWS) has seen strong adoption of its Kubernetes-less Elastic Container Service (ECS) and Elastic Kubernetes Service (EKS). Similarly Azure Kubernetes Service adoption is up significantly according to Flexera’s analysis, as is Google Kubernetes Engine (GKE).
All three cloud giants also now offer serverless Kubernetes services, with AWS ECS on Fargate, Google Cloud Run on GKE, and Azure Container Instances. Unlike EKS, AKS, and GKE, these services take away the need to perform server management tasks and are ideal for on-demand consumption use cases.
Much of Google Cloud’s container management capabilities now sit under the Anthos umbrella, which enables management of container-based applications across on-premises infrastructure and the major public clouds (Google Cloud Platform and AWS now, with Azure support on the way). Anthos combines GKE for cloud workloads, GKE On-Prem, and the Anthos Config Management console, which allows for centralised administration, policies, and security across hybrid and multicloud Kubernetes deployments.
Aside from the “big three” cloud vendors, vendors including IBM/Red Hat, VMware, SUSE/Rancher, Canonical, D2iQ (formerly Mesosphere), Rackspace, Oracle, HPE, Alibaba, Huawei, and Tencent all have some flavour of a managed CaaS option. A number of these offerings can be deployed on-prem, in public clouds, or both.
Choosing a CaaS option
Industry analyst house Gartner doesn’t have a magic quadrant for CaaS providers, but in its latest Competitive Landscape: Public Cloud Container Services report by Wataru Katsurashima, it identifies Google’s GKE as the leading managed Kubernetes option.
Analysts at Forrester put AWS in the leading spot of its most recent New Wave for Public Cloud Enterprise Container Platforms, in Q3 2019, with Microsoft and Google just behind. It should be noted that the Forrester report only accounted for seven vendors and is strictly focused on public cloud deployments, though.
AWS “leads the pack with deployment options, security, and deep integrations,” according to the Forrester authors, Dave Bartoletti and Charlie Dai. “With a broad range of fully managed (and serverless) Kubernetes (K8s) consumption options, and the most containers deployed directly to its cloud infrastructure, AWS continues to innovate and deeply integrate its container platform with its leading security and networking features.”
The Forrester report urged both Microsoft and Google to simplify their container platforms. Microsoft was lauded for its stronger developer experience and global reach, but knocked for its complexity — which was a common refrain in the report. Google won plaudits for its deep Kubernetes expertise and its efforts to traverse multicloud environments, but was similarly criticised for complexity.
That being said, AWS EKS remains the most commonly used container management platform, according to the CNCF Survey 2019, with GKE, Docker EE/CE, and AKS trailing just behind.
Flexera’s 2020 State of Cloud Report pegs enterprise usage of AWS EKS/ECS at 55%, with another 23% of enterprise respondents planning to use these CaaS options in the future. Azure Kubernetes Service adoption reached 50%, with another 26% planning to use AKS in the future. And Google Kubernetes Engine reached 26%, with 27% of enterprise respondents planning to use GKS. However, self-managed Kubernetes still outstrips all CaaS options at 63% of enterprise respondents, according to the Flexera report.
The primary sources of information about CaaS are the vendors themselves, making it difficult to make an informed, unbiased choice. As detailed above, both Forrester and Gartner have taken deep dives into the landscape, but their lens is typically on which vendors stand out, rather than how to get up to speed with CaaS in production.
There also aren’t many books on the topic yet, but the Software Architect’s Handbook from O’Reilly gives a good overview.
Finally, Docker has been at the centre of containers and container management for years, and the company has some good video content on the topic, including this session with technical staff member, Patrick Chanezon, and this overview from Sandor Klein, vice president for Europe, Middle East and Africa.