Containerization involves bundling an application or service along with all of its related configuration files, libraries and required dependencies to run efficiently and reliably across different computing environments. This is most commonly done using Docker and the Kubernetes container orchestration platform.

Kubernetes cluster diagram using Docker

This approach of packaging applications and services works extremely well with microservices and distributed application architectures and the use of REST application programming services (APIs) to communicate among application microservices. Once containerized, applications and services can be readily and quickly deployed on any hosting platforms, on-premises or in the cloud — establishing cloud mobility — and can be scaled easily to meet demand. Kubernetes improves this further by consistently orchestrating application containers as computing workloads in different environments, optimizing the use of computing resources according to predefined desired states, and automatically scaling the application horizontally, while monitoring and maintaining container health.

At DFS, we have helped our clients establish cloud mobility by designing, architecting, and building cloud-native distributed applications and microservices and deploying them with Docker containers and the Kubernetes container orchestration platform on IBM Cloud Private, RedHat OpenShift, and Rancher both on-premises and in the cloud.