Recently, I had a chance to work on CI (Continuous Integration) for one of the clients I’m working with. They were using a single node Jenkins server for all the automation. Microservices architecture is followed where there are roughly 20 services running in production. All of these needs to go through the CI system before being deployed to Dev, QA, and Production environments. Deployments are done manually.

The following diagram gives an idea of the entire flow.

We start with a Github webhook event whenever a dev pushes some code to Github. This triggers a Multibranch pipeline job. Now based…


Recently I came across a painful issue while using my development system with Docker. I spent an awful lot of time figuring out the exact issue. This is my attempt to document the fix hoping it helps someone in the future.

The problem definition:

Every time I start a Docker container, my internet connection breaks.

And that’s it. Now added frustration is I cannot even google when the issue occurs. I have to stop the container to get my internet back.

What a Gem!

To add more fun, I’m consulting a company to set up their CI/CD process where every…


People who have been working in Ops and SRE domain need no introduction to Prometheus. It’s a popular open-source monitoring solution which also a part of the CNCF. I worked on an interesting setup of Prometheus, and this article is about a lesser documented feature of Prometheus called Remote Read.

Remote Read

Prometheus 2.0 added support for the Remote Read feature. The implementation is bi-fold, the ability to read from other data sources and also be able to expose its data to be remote read. The documentation mentions the following use-cases.

  • Support third-party data sources:

Prometheus has defined a request and response…


If you are reading this or came here to read some of my writings, Thank you! I have moved all of my posts from Medium to Substack and shall be writing new posts there. It comes with a sweet email subscription feature and doesn’t ask people to pay for reading stuff.

Click here 👉 sitaram.substack.com


Photo by Patrick Tomasso on Unsplash

Recently, at work, I was working on the reliability of background job processing. The nature of this process is to run every minute, spawn a bunch of parallel processing workers where each of these child workers writes a bunch of documents into a MongoDB collection. Now I needed to make sure all of the processing is happening smoothly and alert if there’s a considerable delay in the processing. We use ELK based monitoring with ElastAlert for alerting. So I decided to write a script that would poll the database collection, query the appropriate documents and send data to ELK. We…


This post is co-authored by Hricha Kabir, my colleague at Altizon Systems.

Photo by Robert V. Ruggiero on Unsplash

We work on an IoT product focusing on manufacturing industries and build analytics reports. Most of the time, report design and information vary based on the user’s role who is going to consume it.

Example: A Director level person is interested in a consolidated report of a week, whereas a Department Head is interested in the statistics of a single day and Quality Manager is keen about shift data. …


What is a Virtual Machine

Virtual Machine is a simulation of a computer system. When we talk about VMs in the context of languages, we are mostly talking about Process VMs. They are designed to enable us to execute a program in a platform independent environment.

One of the most popular Process VM is JVM. JVM allows developers using JDK to develop programs without worrying about the platform. A java program is first compiled into bytecode. Bytecode is nothing but special instructions which JVM interprets and executes. It also takes help of JIT to do faster execution but that’s a different topic.

What is RubyVM

Ruby VM also…


This post is about GopherconIn 17. I was lucky enough to attend it.

Event

Event took place at Hyatt Regency on 24–25th Feb. The venue had good facilities and great food. It was closer from airport for speakers and attendees coming from out of Pune.

People

I met many people, all sharing same interests. Many of them had already been using Go at their workplaces, some were discovering opportunities to use it and a few, like me, playing with it for side projects. I had chance to learn new things from them, some of them had long working experience and it was…


Almost every person working in tech has heard about ReactJS by now. Some might even know Redux, Flux and something better. In this article I’ll be focusing on problems that I, as a beginner, faced with ReactJS and what I learned from them.

Since I learnt programming, I don’t know why, but I always tried to run away from javascript. Not because I hate it. but because I had (only) heard of a billion javascript frameworks, extensions, transpilers, package managers etc, which would stop me from knocking javascript’s door. Then I was first introduced to ReactJS at my workplace. At…


Ruby

I joined Altizon Systems in August and we have our backend primarily in Ruby on Rails. In the first week, I setup the environment and before directly going to rails framework I started looking for “Getting started with Ruby” guides. Soon I realised the popularity of ruby is not overrated. Ruby is a beautiful language indeed, also one other thing I liked is that, it has much similarity with python. Since my first two task of GSoC were in Python, I have had a pretty good hands on it.

These includes features like dynamic typing, exception handling, and object…

Sitaram Shelke

programmer and open source enthusiast | currently writing at 👉 sitaram.substack.com | sitaramshelke.me

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