Sign in

A DevOps consultant at @ Levvel. Cloud, containers, CI/CD and configuration management specialist. LinkedIn: https://www.linkedin.com/in/suryalolla/
Photo by Stanley Dai on Unsplash

Kubernetes is deprecating Docker as a container runtime after the v1.20 release. On a high-level, Kubernetes will show the deprecation message after upgrading the cluster to v1.20, and Kubernetes plans to remove Docker container runtime support as early as the v1.23 release.

Technically, Kubernetes is not removing Docker as a container runtime. Rather, it is deprecating dockershim, a component in Kubelet that helps communicate to Docker to create/delete containers. When the dockershim is removed, Kubelet has no way to communicate to Docker; hence deprecating Docker.

Before we understand the deprecation part, let us talk about the basics:


First of all, thanks to Microsoft Azure for the AZ-400 exam. I learned a lot about Azure and Azure DevOps while preparing for the AZ-400 exam. To get an Azure DevOps Expert badge, you need to either pass AZ-104 or AZ-204.

Note: I’m not going to lecture about the exam curriculum or skills that are already available on the Azure certification website

To give you some feel about the exam, I got 58 questions to answer in 180 minutes. Out of 58, 43 were straight forward, 10 were scenario-based and 5 were on case study. …


Blog illustration

The title sounds cool, right? I know, but what is this distributed tracing? I had the same question when I was asked to set one up for a client.

Let’s get some background

Distributed tracing is a method used to debug, monitor, and troubleshoot applications built using modern distributed software architectures. The applications should be instrumented with the OpenTracing APIs* to identify an incoming request to pinpoint where failures occur and what causes poor performance.

Jaeger is an OpenSource distributed tracing technology graduate by Cloud Native Computing Foundation (CNCF) used to monitor and troubleshoot microservice-based distributed systems for performance optimization, root cause analysis, service…


Welcome back! Assuming that you have already read my first blog on GitLab installation and configuration, let’s move to the next phase on configuring and creating a GitLab Runner and a .gitlab-ci.yaml file respectively.

GitLab Runner

What is a GitLab Runner and Executor?

A GitLab Runner runs the pipeline jobs and then sends the result back to GitLab, in other words, a slave node that runs the CI processes on it and sends feedback to the master node.

Executors are the implementers on GitLab Runners that are used to run the builds in different scenarios.

Initially, when I created a GitLab…


I woke up this morning with some content on my mind, I will try to keep it short and straightforward.

Last week, I was told to work on GitLab CI pipelines for a Spring boot application. As a Jenkins guy, there is a perfect learning curve for me to deliver the GitLab CI pipelines with a time limitation.

Before working on the concrete solution, I want to do a dry-run on our Amazon Web Services(AWS) lab environment to analyze and document the installation and configuration of the GitLab-CI pipeline processes.

GitLab Installation and Configuration:

Coming to the specs of the GitLab installation, I used…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store