Sign in

Artist | Software Developer | DevOps. Visit me at https://shubhomoy.github.io

Why on Kubernetes?

From the numerous advantages that Kubernetes offers, I particularly find it beneficial to deploy HDFS on K8s because of the ease of scalability K8s provides and requires fewer management tasks. Data is ever-increasing, and one needs to have a stable and easy horizontal scalable architecture to accommodate terabytes of data while providing fault tolerance. By having HDFS on Kubernetes, one needs to add new nodes to an existing cluster and let Kubernetes handle the configuration for the new HDFS Datanodes (as pods)!

Below is an overview of a HDFS HA setup running on Kubernetes.


Exploring the world of MapReduce, I landed on the MapReduce documentation page of MongoDB. The first thing that is mentioned there is

An aggregation pipeline provides better performance and usability than a map-reduce operation.

So here I am thinking - “should I carry-on exploring the MapReduce method of MongoDB or dive a little deep into Aggregation Pipeline?”. For my self-satisfaction, I finally thought that it would be interesting to juxtapose MapReduce with Aggregation Pipeline and compare them. …


When it comes to data encryption, there are mainly two types — Symmetric and Asymmetric. Popular encryption methods like AES uses symmetric key encryption whereas RSA uses an asymmetric approach.

Nowadays, chat applications use end-to-end encryption to protect users’ chat messages from getting compromised by hackers or by the organization itself. End-to-end encryption (E2EE) asserts encryption and decryption to take place at the clients’ devices (end destinations). This allows the ciphered texts to transmit via an insecure and public channel, such as the internet, without the messages being compromised.

Let’s look at E2EE using both asymmetric and symmetric approaches.

Using ASYMMETRIC encryption in Chat applications

Asymmetric…


LOGS. When it comes to logging, developers have to go an extra mile by inserting those log lines in their application code and also make sure their infrastructure can handle huge log ingestion to maintain scalability. The benefits? Apart from debugging, logs tell us about the flow of transactions, monitor errors, generate alerts, and do Root Cause Analysis when things go haywire.

In this read, I tried to put forward certain ways on how you can set up a reliable and scalable logging architecture for your application deployed either in VMs or in Kubernetes.

Note: We should not log just…


Systems fail. Code breaks. Responses get delayed, your Prod environment sets itself on fire and a developer resigns. This and many more of these “minor” hiccups together make a software engineer’s life complete. We, as humans, always embrace changes and so does a guy working in the IT industry. We always want to work on the next big project, add that new unique feature, and set up a more robust infrastructure in place for our applications. But what we do once the code gets into production? Monitor and Maintain. Why? Because systems work in weird ways. Computer slows down at…


Disclaimer: This is not a game review but my thoughts after playing Shadow of the Colossus. Please do not read this article if you’re planning to play the game as it contains spoilers.

“Shadow of the Colossus” quickly became an influential title after its release on Playstation 2 consoles back in 2006. So much so that the developers released its remake for Playstation 3 and 4. That’s like supporting the game for two console generations! Though it caught my attention few months back, it kept slipping behind my next “buy” list. …


Few months back we started containerising our application’s micro-services and planned to do deployment on Kubernetes rather than on traditional Virtual Machines. Deploying apps on a managed Kubernetes service like Amazon EKS or Google’s GKE is relatively easy as the cluster setup and housekeeping are taken care by them and we solely focus on our application deployment. But in our organisation, we hardly use these services unless there is a strong requirement for it. Why? Because here, we have our own private cloud on OpenStack where we can leverage the creation of virtual machines and other resources. But a managed…


Kubernetes (K8s) operators are a great way to deploy and manage your Kubernetes application.

The operator is basically a construct. In a cloud-native environment, anything that can package, deploy, and manage your application in the cloud becomes an Operator.

Being a developer, it is upto us whether we want to be the operator or let software handle it.

In Kubernetes, we can leverage operators to extend, add, and manage Kubernetes' specific functionalities and automate administrative tasks as if working with a native K8s component.

There are many useful operators open-sourced by various communities that achieve specific tasks, for example, CoreOS…


Kubernetes, docker, containerisation are some of the buzzwords in today’s DevOps world.

If you are starting out a new journey as devop or if you find interest in exploring the “Cloud Native” world, then this might be a good read for you for a start — “Kubernetes in a Nutshell”

From the Kubernetes documentation, we find the following definition

“Kubernetes is a portable, extensible open-source platform for managing containerised workloads and services, that facilitates both declarative configuration and automation.”

If you’re truly new to the cloud-native environment then this might have perplexed you. …


Sometimes I ask myself, why we came to this world? What is life exactly? I find many definitions on what life really is, from the quotes of great personalities to articles written by individuals who have experienced the true meaning of life in different ways.

To me life is simply a magical gift presented to few individuals like us. By who? We don’t know yet. We as humans give it different names, try to find scientific reasons for it’s inception, and when nothing intriguing comes up, we sometimes call it God itself. To me, its no one. To me, its…

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