Kubernetes is an open-source container-orchestration system for automating computer application deployment, scaling, and management.

Kubernetes comes with a way to schedule and deploy containers and scale per requirement to the desired state and to manage the lifecycle. Kubernetes can be used for implementation of container-based applications in a portable, scalable, extensible way.

Seventy-five percent of global organizations will be running containerized applications in production by 2022. Kubernetes is shaping the future of app development and management.

Problem statement

Keeping containerized apps up and running can be complex because they often involve many containers deployed across different machines. It can be challenging to create a reliable CI/CD process for a microservices architecture. Individual teams must be able to release services quickly and reliably, without disrupting other teams or impacting the application as a whole. This article describes the CI/CD pipeline for deploying microservices to the Kubernetes Service.

Make workloads portable, scalable

Kubernetes containers become portable because container apps are separate from their infrastructure. You can move the containers from local machines to production, be it on-premises, hybrid, or multiple cloud environments, while maintaining uniformity across environments. Complex containerized applications can be deployed across a cluster of servers or even multiple clusters with Kubernetes. As Kubernetes scales applications according to your desired state, it automatically monitors and maintains container health.

The open-source community of developers and companies actively builds extensions and plugins, which add capabilities such as security, monitoring, or management to Kubernetes. A, which makes it easier to use those community offerings.

Adding end-to-end development, operations, and security control allows you to deploy updates faster - without compromising security or reliability:

  • It eliminates routine tasks such as provisioning, patching, or upgrading be it on infrastructure automation or serverless Kubernetes.
  • Tools for containerized app development and continuous integration and continuous deployment (CI/CD) workflows
  • Services to manage security, governance, identity, and access.
Faster code deployment with CI/CD

A consistent application packaging format in container eases collaboration between development and operations teams. Setting up a CI/CD pipeline on top of Kubernetes will speed up your release lifecycle - enabling you to release frequently and quickly. Kubernetes has many features that make it ideal for CI/CD. Instead of spinning up entirely new servers, your build process is quick, lightweight, and straightforward.

Figure # 1 - DevOps workflow and branching model

Kubernetes - Simplification of CI/CD


In a CI/CD workflow, ideally, you run many tests. If those tests fail, your image will never be built, and you'll never deploy that container. However, if testing fails to uncover issues, Kubernetes offers better protection because Kubernetes simplifies zero-downtime deployment.

Figure # 2 - Monolith vs Microservice release

Manage resource - Infrastructure as code

Compute resources across teams become consistent and visible once you start using infrastructure as code.
Infrastructure as code practice works with the declarative nature of Kubernetes applications. It allows you to define apps, resources, and configurations in a reliable, trackable, and repeatable way.

Summary

This blog provides an overview of CI/CD on Kubernetes that we implemented for many of our customers through the Capgemini Digital Cloud Platform offering. At Capgemini Cloud Services, we have lot of experience, use cases, and best practices in implementing Kubernetes (KOPS, AKS, EKS) designing and building applications and systems for our enterprise customers. If you want more information about our experiences with this, you can contact me on LinkedIn.

Author

Sumit Patra
Senior Project Manager at Capgemini
IT Leader with international experience in providing leadership to global teams and providing IT solutions.

Attachments

  • Original document
  • Permalink

Disclaimer

Capgemini SE published this content on 14 April 2021 and is solely responsible for the information contained therein. Distributed by Public, unedited and unaltered, on 14 April 2021 11:00:02 UTC.