What are containers and their benefits
What are containers and their benefits

Introduction

In this short post, I explain what are containers and their benefits. To help understand what problems does this container solves in the software industry.

What are containers?

A software container is a pretty abstract thing and it will be easy if we start with an analogy that is familiar to most of the readers. The analogy is a shipping container in the transportation industry.

Let me demonstrate with an example. A construction company from one city brings in Concrete Bricks in a truck to the port and then transferred to a ship that will transport the Concrete Bricks overseas.
Likewise, another construction company brings in Burnt Clay Bricks to the same port to get it transferred to overseas.

Every type of goods was packaged in its own way and thus had to be handled in its own way.

Any loose goods risked being stolen or damaged in the process. Then, there came the container, and it totally revolutionized the transportation industry.

The container is just a metallic box with standardized dimensions. The length, width, and height of each container is the same. This is a very important point. Without the world agreeing on a standard size, shipping containers would not have become so successful.

What are containers
containers

Example

If a company wants to transport their goods from point A to point B, they simply call transport company and specify the place where goods are present. Transport company then transport the goods in the container which is a metallic box with standardized dimensions.

Containers with fixed dimensions

By now you should have some good understanding of why shipping containers are so important.

Let's understand what happens in our software world. When a developer develops a new application and completes it, they would hand this application to the operation team. Operation team installs it on the production servers and get it running.

If the operation team had got enough documentation from the developer on how and what to install on the production machine, his life is good and application will start as expected.

However, when there were many teams of developers in an enterprise created quite different types of applications. All the installation has to go on the same production servers and run them.

In most cases, each application has its own dependencies such as framework, libraries and so on. Some time, in our .net world, different dot net application developed in different framework e.g. .net framework 2.0, 4.7 or even asp net core.

Here comes the challenge for the operation team, installing required framework and libraries in the production server might conflict application and some application might fail due to other application installations.

What are the ways to solve this problem?

A first approach was to use virtual machines (VMs). Instead of running multiple applications all on the same server, companies would package and run a single application per VM. Now the compatibility problems were gone but one VM for one application is heavy as they carry their own OS and other dependencies and also it is costly for companies.

If you relate this with transportation company carrying one container from one construction company in a huge ship!!

Rescue

Then comes to rescue the software packaging mechanism was the Docker container. Developers use Docker containers to package their applications, frameworks, and libraries, and then they ship those containers to the operations team or to the testers.

The container is just a black box. Crucially, it is a standardized black box. All containers, no matter what application it has and runs inside them, can be treated equally. Now with this in place, our problems that operation team had has solved completely.

Containers is helpful to package the software into Standardized Units for Development, Shipment and Deployment.

example of application hosted in a single server using multiple containers

Why are containers important?

Improving security, Simulating production-like environments and Standardizing infrastructure.

As you know there are many cyber attacks starting from a small company to big giants like Microsoft. Many well known companies by security breaches and Highly sensitive customer data lost every day.

Containers can help in many way. One of the way is that container images are immutable, it is easy to have them scanned for known vulnerabilities and exposures, and in doing so, increase the overall security of our applications.

Apart from security, container can be helpful to Simulate production-like environments in local laptop. The operation team can now standardize their infrastructure as containers are standard. Every server becomes just another Docker host. Operation team no need to know knowledge on what application is running inside the container.

Resources

To know more about docker containers, visit docker resource.

Conclusion

In this post, I explained with simple example on what are containers and their benefits. The details in this post will help to cover a part of knowledge required to complete Azure AZ-203 certification.

That’s all from this post. If you have any questions or just want to chat with me, feel free to leave a comment below.

Leave a Reply

Your email address will not be published. Required fields are marked *

Verified by MonsterInsights