https://avatars0.githubusercontent.com/u/7187572?s=460&u=bce6686f3ab6f3006edc4f40f255b06341bf41f5&v=4

Just Enough Kubernetes: Architecture

TLDR Kubernetes is a container orchestration tool in which you can use multiple machines/VM’s to create a cluster. When cluster is created, application deployed on it are distributed throughout the nodes and Kubernetes makes sure they are up and available depending on the provided configuration. Architecture Node: A physical machine or VM where our applications are run when deployed. Cluster: A combination of nodes running together. It is best practice to have multiple nodes running at the same time to avoid a failure if any one of the nodes in the cluster stops working.

Creating complex objects using the Builder Pattern

Overview The builder creational design pattern is used to create a complex object, in a step by step manner. You might have come across the same using while using some Java Clients or any other framework, lets us now see what problem it solves. The core idea here is that if we need to send too many parameters in a constructor call,its hard to maintain the order of the call, and the constructor call itself is very difficult to read.

Design Patterns Days: Observer Pattern and Publishing/Subscribing

Overview As the wikipedia definition says: The observer pattern is a software design pattern in which an object, named the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods. To someone not familiar with this pattern the first thing that would come to their mind is Polling. If we want to know about changes that are done to a central body/system we continuosly send request to the server and check for changes based on the responses But the problem with this approach is, with a significant increase in clients that are polling the system, the continuous request going to the system will overwhelm the system.

Design Patterns Days: Strategy

Overview As the Wikipedia definition says: The strategy pattern is useful for situations where it is necessary to dynamically swap the algorithms used in an application. The strategy pattern is intended to provide a means to define a family of algorithms, encapsulate each one as an object, and make them interchangeable. The strategy pattern lets the algorithms vary independently from clients that use them. Or in simpler terms, Instead of hardcoding an implementation that can vary according to the various classes.

A Gentle Introduction to Big-O notations

Big-O Notation Section 1: What is it? Big-O Notation helps us talk about the time taken by an algorithm to run given a particular input size. Section 2: Why do we need it? Imagine there are multiple solutions to a single problem but with different approaches/data structure, how do you know which one is better? Do you choose the solution that was the easiest to code or the solution you wrote and not the one your colleague did.

Disk Space Analysis in Linux

1. Overview One of the most common administrative tasks while using Linux is finding out the disk space usage in our system. The most common command-line utilities to find the free disk space usage are the df (Disk Free) and du (Disk Usage commands). In this tutorial, we will have a look at the common scenarios and usage of the du and df commands. 2. Common Usage Scenarios We will be using the df and du commands interchangeably based on the information we are seeking, to check the amount of space used and free on our filesystem and partitions the df command is used additionally to check for space usage on a directory level the command du is used.