Containerisation
Published: 2022-07-03 22:57:15

The process of containerisation comprises packing a software component, together with all of its dependencies, configuration, and environment, into a standalone container. This enables the uniform deployment of an application across all computing environments, including on-premises and cloud-based ones.

## **What is a Container?**
A container is a standardised software component that wraps up code and all of its dependencies to ensure that an application will run swiftly and consistently in different computing environments.
Anything from a small micro service or software process to a huge application could be operated inside of a single container. All required executables, binary code, libraries, and configuration files are contained inside a container. However, operating system images are not present in containers, unlike server or machine virtualisation methods.

## **Benefits of Containerisation**

1. Portability
   There is a popular saying when it comes to containerisation “write once, run anywhere.” You may take your application almost anywhere without having to recompile it to take into account a different environment because a container bundles **all** dependencies.
2. Efficiency
   One of the most effective virtualisation techniques for developers is containerisation. Efficiency by delivering greater computational resource utilisation and using significantly fewer resources than VMs. Applications may be scaled, patched, or deployed more quickly thanks to containers.
3. Agility
   Being agile means having the capacity to move swiftly. Containers may be quickly created, deployed to any environment, and utilised to address a wide range of DevOps concerns. The universality and usability of the development tools further encourages the quick creation, packaging, and deployment of containers across all operating systems.
4. Greater speed
   Containers aren't overwhelmed by extra overheads because they share a machine's operating system. With a slight increase in start-up speed, this lightweight construction improves server efficiency. The improved efficiency and performance also result in decreased server and licencing expenses.


## **Virtualisation**
The process of creating a virtual version of something, such as an operating system, a server, a storage device, or network resources, as opposed to an actual one, is known as virtualisation. It most frequently refers to using many operating systems at once on a computer system. The operating system, libraries, and other programmes that make up the guest virtualisation system are distinct from the host operating system that runs below it, giving the impression to applications running on top of the virtualised machine that they are on their own dedicated computer.

## **Containerisation vs Virtualisation**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ckuu8cwamrtyzea2m59j.png)
While virtualisation allows for total separation from the host operating system and other VMs, containerisation often offers minimal isolation from the host and other containers but lacks the same level of security as a virtual machine.

With virtualisation, virtually any operating system can be run inside the virtual computer. But, containerisation utilises the same version of the operating system as the host.

Virtualisation can imitate and represent your real hardware, such as CPU cores, memory, and discs, as a separate machine, while OS-level virtualisation is containerisation. As it only partially simulates the actual machine.

Virtualisation is heavyweight, while containerisation is lightweight