Building Blocks of a Container Stack / Strategy
A typical Enterprise Container Stack*

Building Blocks of a Container Stack / Strategy

The following article is a continuation in the series of Articles "Digital Transformation updates from the Trenches". We are currently discussing the journey to adopt "Cloud Native" and the Quintessential Role that the Ubiquitous Container Technologies play in the Cloud Native adoption.

In this article we will review the "Building Blocks of a Container Stack / Strategy".

The key building blocks of a typical contemporary Container Stack comprises of at-least the following.

  •  Container Run Time 
  •  Container Orchestration 
  •  Package Managers 
  •  CI / CD Process 
  •  Programming Model & Application Architectures 
  1. The Container Run Time

This forms the most important part of the stack since it drives the Containers. These are popularly known more by the Implementation Technologies. Most popular and pioneering Run Time is undoubtedly the Docker Engine (powered by containerd which internally uses runc). The key point is that Container Run Times need to comply to the OCI (Open Container Initiative) specification so that it is as per evolving standards on the Container Runtimes There are of-course many other Container Runtime the more popular ones being CRIO-O, rkt and kata. As Container Technologies and specifications evolve there may be a renewed and important focus on the Container Runtime. 

2. Container Orchestrator.

Having your Devops team churn out high fidelity and optimized Production Images is one thing and running them efficiently as containers and achieving the promised Auto Scaling in the Cloud is a different thing altogether. 

This is where Container Orchestrator Technologies have been the panacea for all Container deployments in production. The most popular Container Orchestrator by-far and one with the maximum adoption is "Kubernetes". It is kind of "Omnipresent" and from Google to Amazon Microsoft to IBM all support it and also have a flavor of it. Kubernetes also popularly known as "K8s" has become kind of ubiquitous for "Container Orchestration" just like "Xerox" became for Photocopies. The populartiy is for some important convinence and value additions that K8s brings to the table in terms of 

  • Declarative Configurations 
  • Self Healing Systems
  • True Auto Scaling 

Generally given the features and the ease that Kubernetes packs and the support it enjoys from various Cloud public providers it becomes the defacto choice. The space of Container Orchestrators like the Container Runtime is filled with options Mirantis , Apache Mesos , Open Shift , Cloudify , CHEF to name a few popular ones. 

3. Package Managers for managing the Kubernetes Clusters 

Inspite of the Kubernetes layer still sometimes things can get a little complex with thousands of microservices being deployed to Kubernetes Clusters round the clock. Here is where Package Managers like HELM come to the rescue.

HELM makes the process of packaging, installing and uninstalling Kubernetes aplications in K8S cluster manageable. 

4. CI / CD Tools and processes.

In a recent survey conducted by CNCF in June 2020 on Continuous Delivery the trend that has been noticed is one of Publicly available solutions are combined with in-house tools. 

Interestingly HELM though is not a CD tool (only) it is widely used and accepted as a component in different CD scenarios. 

As per a survey conducted by the Cloud Native Computing Foundation (CNCF) in June 2020. Two technologies that are recommended for adoption are HELM and FLUX even for the CD, interestingly technologies which had become main stream Jenkins for example , companies are slowly moving away from it as a CD tool.

Finally a word on the Programming model used within the Organization. Technically speaking this is not a part of the Cloud Native stack but it is the heart and brains of any Enterprise Application and it is the one which needs to be placed the most emphasis on to get the maximum benefits. 

One very important observation was published by the Docker Team in a Whitepaper is as under

"Often the emphasis is placed strictly on the running of containerized applications however the impact of containers on an organization is in the transformational change that it brings to the entire software development process viz  Build Share Run (three key phases in the life cycle)" 

The median company that adopts Docker runs eight containers simultaneously on each host . This indicates Docker is often used as a lightweight way to share compute resources, not just as a standardized , versioned runtime environment.

As New Technology Stacks and frameworks are being introduced every day. The container platform must work with both existing technology investments and new / next generation technologies alike.

It should be independent of the underlying infrastructure as well as the application and frameworks, providing a consistent and uniform operating model for different application types intended for different operating environments 


To view or add a comment, sign in

More articles by Pranay Dixit

Others also viewed

Explore content categories