Kubernetes – Introduction / starting point for beginners (Helps to prepare the interview)

Monolithic VS Microservice Based architecture
Monolithic VS Microservice Based architecture

Hi All,

Greetings for the day πŸ™‚ LIFE IS BEAUTIFUL πŸ™‚

Nowadays exploring Dockers and Kubernetes so this is the first article on Kubernetes. Try to explain the concept in easy way

Thanks to one of Knowledge Junction family member @modisanket for discussing in depth and providing the images used in this article

In this article my goal is just to understand first the concept of Kubernetes

Prerequisites for this article:

KUBERNETES – Most trending technology today. The first Cloud Native Cloud Foundation (CNCF) project and donated by Google, Kubernetes is the fastest growing project in the history of open Source software, after Linux.

What is KUBERNETES ?

  • Platform for managing containerized applications, one of the example is – DOCKER Images
  • Kubernetes is open source platform
  • Google open-sourced the Kubernetes project in 2014
  • Definition from kubernetes.io => Kubernetes, also known as K8s, is an open-source system for automating deployment, scaling, and management of containerized applications.

WHY KUBERNETES

  • In one simple line – to manage containers
  • Now what is mean by managing containers ? Lets discuss with simple example – Blog management application

Simple Blog management application :

  • User register on blog site for requesting Author permission so that user can submit the articles / blogs
  • Admin approves the request
  • User submit the article
  • Admin reviews the article, approves it and article get published
  • Admin has access to all Articles / Blogs
  • Respective user has access to all his/her articles and can update and remove those

So if we consider above application we have multiple modules there and require communication in between those

  • User management
  • Admins
  • Article / Blog management
  • Database

If we now go with development of this application with our tradition (monolithic approach) way it should look like as

Monolithic approach for implementing blog management application
Fig : Monolithic approach for implementing blog management application

There are several problems / limitations with this approach :

  • Whole application is tightly coupled because of which if there’s update in one application / module, whole application will be restarted
  • Replacement of module is difficult
  • System upgrade will cause downtime
  • Scaling application will be difficult

If we use microservices based architecture (containers / docker images / applications divided into different independent module which communicates with each other) to implement this application then the above problems can be eliminated

 Fig : Microservice based approach for implementing blog management application
Fig : Microservice based approach for implementing blog management application

  • Each individual application is considered as separate microservice and each service is connected via rest or other frameworks
  • Individual application / module upgrade can be performed and will not impact any downtime (how – we will discuss in upcoming articles)
  • Application / module upgrade can be done without any downtime (how – we will discuss in upcoming articles)
  • We can easily replace any microservice if required as there’s no hard dependency on each other (as they are connected via rest apis)
  • Scalability can be managed automatically (how – we will discuss in upcoming articles)
  • User will have access to UI and API gateway (additional security)
  • Easy to provide Developer console (Swagger – using which users can have access to individual apis)
Fig : Monolithic VS Microservice Based architecture
Fig : Monolithic VS Microservice Based architecture
  • Here different – different applications / microservices we consider as containers or docker images
  • The management of these containers and docker images is done by Kubernetes platform :
    • Kubernetes gives platform to schedule and run containers on clusters of physical or virtual machines
    • Kubernetes controls and automate the deployment of container / contained based applications without downtime
    • Kubernetes manages scaling up / scaling down of the applications / containers on the fly without affecting running applications
    • Health-check and self-heal our applications with auto-placement, auto-restart, auto-replication, and auto-scaling

In nutshell, Kubernetes makes admin team / deployment teams life easy, eases the burden of configuring, deploying, managing, and monitoring even the largest-scale containerized applications

It also helps to manage container lifecycles and related application lifecycles, and issues including high availability and load balancing

In next Kubernetes article we will start exploring in detail Kubernetes concepts

Thanks for reading πŸ™‚ STAY SAFE πŸ™‚ STAY HEALTHY πŸ™‚

Prasham Sabadra

LIFE IS VERY BEAUTIFUL :) ENJOY THE WHOLE JOURNEY :) Founder of Knowledge Junction and live-beautiful-life.com, Author, Learner, Passionate Techie, avid reader. Certified Professional Workshop Facilitator / Public Speaker. Scrum Foundation Professional certificated. Motivational, Behavioral , Technical speaker. Speaks in various events including SharePoint Saturdays, Boot camps, Collages / Schools, local chapter. Can reach me for Microsoft 365, Azure, DevOps, SharePoint, Teams, Power Platform, JavaScript.

You may also like...

2 Responses

  1. September 11, 2021

    […] Kubernetes – Introduction / starting point for beginners (Helps to prepare the interview) […]

  2. October 3, 2021

    […] Most viewed / popular articles in previous month –  Kubernetes – Introduction / starting point for beginners (Helps to prepare the –  interview) https://knowledge-junction.com/2021/09/03/kubernetes-introduction-starting-point-for-beginners-helps… […]

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: