What is Containerization and how is it different from virtualization - Part1

What is a Container?

Hi everyone, I have initiated an effort for my blog readers to understand containerization architecture. In this detailed series of posts, I'll try to focus on simplicity of the concept with clear picture of understanding. 

So, let's start this discussion with some common questions😊

What is Container or containerization?

The concept behind this fascinating buzz word is the same we usually interact within our daily routine life. So, lets discuss this concept first ... 

As with the meanings of the word "Container", it is obvious that there is "an environment which provide all necessary requirements for a software package to run without any conflict with other software using the same operating system resources".

So, we breakdown an application into smaller (Sub-set of) services which are known as Microservices. Now, what is microservices? Microservices is an architectural style that structures an application as a collection of services that are. Highly maintainable and testable. Loosely coupled. Independently deployable. Organized around business capabilities.

Need for Resource Isolation

If I explain containerization in simple words as i am trying to portray then below diagram is really helpful in understanding this concept. Lets talk about a simple computer system you operate in your daily routine life in the form of a Desktop / Laptop. This computer system has got two major things running inside as software

  1. OS (Operating System)
  2. Application
Operating system occupies all the hardware resources of that computer system (as you can see in above picture) through a set of software known as drivers and on top of Operating System (OS) there runs an application system for a particular purpose or activity.

For example, Microsoft word is an application we can use for documentation, Excel we usually use for Accountancy or calculous. But hey wait, Tell me one thing, Can i install Microsoft Office 2020/2019 on the same computer system where Microsoft office 2013 already installed (in parallel) ? and the answer would be a big "NO" because both of the applications though from the same vendor but require separate physical environment as provided by single computer system.

Now, question is who is providing a separate environment for this application? and the answer is Computer system (e.g. Laptop or Desktop) and resources are provided to application from OS installed or running in that computer system.

Evolution of the Virtualization

But in most of the individual computer systems more than 60% of the hardware resources (like CPU, Memory, Storage, Network bandwidth etc) are not utilized by the Application and left untouched throughout the lifecycle of hardware which realized (around 20 years back). And this was the time when Server Consolidation came into picture and many organization started thinking about this gray area to be addressed 

In this ERA of Server consolidation, one physical computer system can entertain multiple operating systems running on top of it with hardware resource abstraction in an isolated fashion. So each of the operating system has got an isolated environment run by a system to produce hardware abstraction layer for all of the running OSs which is called Hyper-visor.

These hyper-visors provided a layer of isolation for every OS to utilize hardware resources as per allocation model and this containerized approach for an Operating system is known as Virtual Machine.

What is Hyper-visor?

Is a piece of software just like operating system who occupies all of the physical hardware and produces hardware abstraction (i.e. CPU, Memory, Storage, Network) to the virtual machine as VM resources. Without going into details that how many types of hyper-visors are just for your information at a high level overview, there are generally two types of hyper-visors

1. Bare Metal Hyper-visors (Type-1) We are talking about this 😊




2. Hosted Hyper-visors (Type-2)

What is Virtual Machine?

A virtual machine is a software representation of a physical computer system. Made up of numerous files and folders managed by Hyper-visor. This idea of resource efficient utilization has made a remarkable change in Business and IT industry and a new dimension has just been opened up for IT technology.

The Turning Point

But the problem faced by IT industry at VM level when we need to maintain huge number of virtual machines with the same OS/APP posture. In this context, we need to focus on more robustness and efficacy for application lifecycle. Below points are so important to look ahead for containerization needs and requirements

  1. If any application require high availability how much RPO (Recovery Point Objective) we can achieve / reduce and same for RTO (Recovery Time Objective)
  2. For a VM to rebuild we need to 
    1. Install OS 
    2. configure OS as per App Requirement
    3. Install App
    4. Configure App as per Business needs
Above points needed a consideration for reasons to reduce man effort and increase Application reliability. 

Click Here for next part

 About the author , TwitterLinkedin

1 comment:

  1. I am not sure where you're getting your info, but good topic. I needs to spend some time learning much more or understanding more. Thanks for fantastic info I was looking for this info for my mission. shipping container dimensions

    ReplyDelete

Container Optimized OS | Photon OS | Docker Engine Pre-Installed | How to Install and configure

 What is Container Optimized OS A Container Optimized OS is a lightweight, minimalistic operating system designed specifically to run contai...