What is Containers as a service (CaaS)?

Containers as a service (CaaS) is a cloud service model that allows users to upload, organize, start, stop, scale and otherwise manage containers, applications and clusters. It enables these processes by using either a container-based virtualization, an application programming interface (API) or a web portal interface. CaaS helps users construct security-rich, scalable containerized applications through on-premises data centers or the cloud. Containers and clusters are used as a service with this model and are deployed in the cloud or in onsite data centers.


What is a Container?

Containers are an executable unit of software in which application code is packaged, along with its libraries and dependencies, in common ways so that it can be run anywhere, whether it be on desktop, traditional IT, or the cloud.

To do this, containers take advantage of a form of operating system (OS) virtualization in which features of the OS (in the case of the Linux kernel, namely the namespaces and cgroups primitives) are leveraged to both isolate processes and control the amount of CPU, memory, and disk that those processes have access to.


Why is CaaS important?

A model with broad application, CaaS helps developers streamline the process of constructing a fully scaled container and applications deployment. The model is a boon for IT departments, providing an enabled container deployment service that has governance control in a security-rich environment. The CaaS model helps enterprises simplify container management within their software-defined infrastructures.

Similar to other cloud computing services, users can choose and only pay for the CaaS resources they want. Some CaaS resource examples are compute instances, scheduling capabilities and load balancing.

In the spread of cloud computing services, CaaS is considered a subset of infrastructure as a service (IaaS) and is found between IaaS and platform as a service (PaaS). CaaS includes containers as its basic resource, counter to the virtual machines (VMs) and bare metal hardware host systems commonly used for IaaS environments.

An essential quality of CaaS technology is orchestration that automates key IT functions. Google Kubernetes and Docker Swarm are two examples of CaaS orchestration platforms. IBM, Amazon Web Services (AWS) and Google are a few examples of public cloud CaaS providers.

Enterprise clients from all industries are seeing the benefits of CaaS and container technology. Using containers provides increased efficiency and gives these clients the ability to quickly deploy innovative solutions for application modernization and cloud native development with microservices. Containerization helps these clients release software faster and promotes portability between hybrid and multicloud environments, and reduce infrastructure, software licensing and operating costs.


Why are Containers important?

Enterprise clients from all industries are seeing the benefits of container technology and CaaS. Using containers provides increased efficiency and gives these clients the ability to quickly deploy innovative solutions for application modernization and cloud native development with microservices. Containerization helps these clients release software faster and promotes portability between hybrid and multicloud environments, and reduce infrastructure, software licensing and operating costs.


Containers as a Service (CaaS) Benefits

Here are several of the client benefits for using containers:

Portability

When an application is created in a container, that completed app has everything it needs to run, including dependencies and configuration files. Having portability allows end users to reliably launch applications in different environments and public or private clouds. This portability also grants enterprises a large amount of flexibility, accelerating the development process and making it easier to switch to a different provider or cloud environment.

Highly efficient and cost cutting

Containers don’t need a separate OS and require less resources than a VM. A container often requires only a few dozen megabytes to run, allowing you to run several containers on a single server that would otherwise be used to run a VM. This efficiency coupled with their higher utilization level regarding underlying hardware helps reduce data center costs and bare metal costs.

Containers don’t interact and are somewhat isolated from other containers on the same servers, although they do share the same resources. If an application crashes for one container, other containers can continue to use it without experiencing any technical issues.

Security

The isolation that containers have from one another doubles as a risk-minimizing security feature. If one application is compromised, then its negative effects won’t spread to the other containers.

It’s also simpler to manage your host system. You can quickly launch updates and security patches because containers run application processes in isolation from the operating system and don’t need specific software to run applications. This benefit allows you to speedily launch updates and security patches.    

Speed

Since they don’t need an OS book, it takes seconds to create, start, replicate or destroy a container. This benefit enables a quick development process, expedites the time to market and operational speed, and makes releasing new versions or software simple, speedier and easier. This acceleration also helps with the customer experience by enabling enterprises and developers to speedily respond to bugs and incorporate new features as soon.

Scaling

Containers feature the capability for horizontal scaling, allowing end users to incorporate multiple identical containers within the same cluster to scale out. By using smart scaling and running only the containers that you need when you need them, you can dramatically reduce costs and boost your return on investment.

Streamlined development

Having an effective and efficient development pipeline is an advantage of container-based infrastructure. Containers allow applications to work and run as if built locally, so environmental inconsistencies are eliminated. Removing these inconsistencies helps streamline testing and debugging. This feature also doubles for updating applications, only requiring the developer to take a few moments and modify the configuration file, then generate new containers and delete the previous ones.


CaaS vs PaaS, and other cloud service models

PaaS

Platform as a service (PaaS) is a form of cloud computing where hardware and an application software platform are provided by another party. The PaaS model allows end users to develop, manage and continuously run their own apps, and the platform provider manages the infrastructure (hardware) everything runs on. In addition to storage and other computing resources, the provider also typically offers a solution stack–a suite of prebuilt tools for developing, customizing, and testing applications

IaaS

Infrastructure as a service (IaaS) provides raw computing resources like servers, storage and networking to users who run and manage their own platform and application software. It offers organizations the capacity and control of a data center without the traditional operational risk and overhead.

SaaS

Software as a service (SaaS) delivers application software from the cloud. SaaS offers ongoing development, updates and maintenance of the software, and all of the infrastructure and platforms necessary to support and run the software.

FaaS

Function as a service (FaaS) is a service for users who need cloud computing only for individual functions or components of their applications. Using FaaS, the client’s physical hardware, virtual machine operating system, and web server software management are all handled automatically by the service provider.


Kubernetes and Containers as a Service

Not unlike the war of Betamax versus VHS, the war for container orchestration dominance was predicted in Q4 of 2017 and concluded by Q2 of 2018. Google Kubernetes Engine, now known simply as Kubernetes, emerged the victor. With a clear winner, providers and adopters redoubled their efforts and focused on producing and maturing their deployments for Kubernetes.

The release of a managed Kubernetes service and hybrid container stacks helped to ease the adoption of Kubernetes. Because GKE helped pioneer the concept of managed container services, Kubernetes always maintained greater demand than the container services of its competitors, AWS and Azure. The mid-2018 releases of Amazon Elastic Container Service for Kubernetes (Amazon EKS) and Azure Kubernetes Service (AKS) cemented the dominance of GKE.

Kubernetes and container orchestration

Kubernetes (K8s) is a container orchestration system for automating application deployment, management and scaling. Originally designed by Google and open sourced in 2014, Kubernetes is maintained by the CNCF. The Kubernetes website describes Kubernetes as a “portable, extensible open-source platform for managing containerized workloads and services that facilitates both declarative configuration and automation”.

The three primary platforms that Kubernetes functions as includes:

  • Containers
  • Microservices
  • Portable cloud

A container-centric management environment, Kubernetes coordinates computing, networking and storage infrastructure for user workloads. Kubernetes includes the same ease of use as a PaaS along with the malleability of IaaS and the portability across infrastructure providers. 

Kubernetes and open source software

Open source software is continuing to expand its influence and importance in the world of information technology. The IBM Services™ white paper support solutions for your open source software environment notes that “96 percent of commercial applications have some kind of open source component” (PDF, 3.9 MB).⁽¹⁾

In the world of open source software, Arturo Suarez has plenty of clout. Suarez created the first commercial distribution of the free and open source software platform for cloud computing, OpenStack. In a 2019 IT Biz Advisor interview, Suarez describe his experience with Kubernetes saying “Kubernetes [is] winning the container orchestration race” and that “Kubernetes evolves even faster than OpenStack, with releases every three months, and has a better governance model and adoption curve.”⁽²⁾

IBM Cloud Kubernetes Service

In mid-May 2018 and following IBM’s strategic investment in Kubernetes, IBM Cloud Container Service rebranded as IBM Cloud Kubernetes Service, a service that had been available since May 2017.

A managed container service for quick application delivery, IBM Cloud Kubernetes Service can integrate with IBM Watson®, blockchain and other advanced services. Several features for IBM Cloud Kubernetes Service includes:

  • Intelligent scheduling
  • Self-healing
  • Horizontal scaling
  • Service discovery
  • Load balancing
  • Automated rollouts and rollbacks
  • Secret and configuration management

With advanced capabilities around user-friendly cluster management and the ability to design your own cluster, this IBM Cloud Kubernetes Service also offers container security and isolation policies, and integrated operational tools for deployment consistency.

Resources

Cloud Kubernetes Service – FAQ

Get answers to the most commonly asked questions about IBM Cloud Kubernetes Service

Using App ID to secure Docker and Kubernetes applications

In this blog, we will walk through the steps to use App ID to secure a servlet running in an IBM WebSphere Liberty application server that you want to deploy as a Docker image on to the Kubernetes-based IBM Cloud Container Service.

Learn Kubernetes

Kubernetes is an open source container orchestration platform that automates deployment, management and scaling of applications. Learn how Kubernetes enables cost-effective cloud native development.

PaaS (Platform as a service)

An introduction to PaaS, a cloud-based computing model that allows development teams to build, test, deploy, manage, update, and scale applications faster and more cost-effectively.

Solutions

Cloud Kubernetes Service

A managed container service for quick application delivery, IBM Cloud Kubernetes Service can integrate with IBM Watson®, blockchain and other advanced services.

Storage for containers - Red Hat OpenShift

Surpass your business goals with speed, productivity and agility, all enabled by a secure storage infrastructure with enterprise-class services for private cloud and Red Hat OpenShift container storage.

Containers and Kubernetes on LinuxONE

With Linux containers and Kubernetes on LinuxONE III, any developer has the freedom to build and modernize applications and utilize a modern, scalable, and automated approach to deployment.

Sources

  1. IBM Services. “Support solutions for your open source software environment,” IBM, 2019. https://www.ibm.com/downloads/cas/BWJWOJRD (PDF, 3.9MB)
  2. Camilla Sharpe. “Q&A: How open source technology is shaking up the IT landscape,” IBM, May 16, 2019. https://itbizadvisor.com/2019/05/qa-how-open-source-technology-is-shaking-up-the-it-landscape