Flavio Cerato
3 min readMar 11, 2021

--

CONTAINERS vs VIRTUAL MACHINES

Source:https://cloud.google.com/kubernetes-engine/kubernetes-comic/assets/panel-8.png, Art und Story von Scott Mccloud

Container what?!?!

Yes i know a lot of software developers still today are not so confident about this technology, so the target of this article is to provide a simple understanding and the pros vs cons aspect of it.

Today the most of aplications are defined as Momolithic that rmean a single-tiered software application in which the user interface and data access code are combined into a single program from a single platform.

The Monolithic application have the following cons. :

  1. each applications require a Virtual Machine with his operating system, CPUs, RAM and so on.
  2. If you have to update a functionality, very often, it require to restart the entire application.
    And all is more complicate when there is a Bug.
  3. Operating system dependency
  4. The replication is complicate
  5. Low Scalability.
  6. High Time work.
  7. High hardware and software costs.
  8. Huge and expensive maintenance.

From a personal point of view the unique one pros for a company is that it’s not required to find and invest in people with new skills on the market because they have all that they need in house.

To be honest if you are a little company of you have to develop a small project on-premise that not require a high scalability the monolithic architecture is a good choice.

Containers in brief

Containers are a form of operating system virtualization. A single container might be used to run anything from a small microservice or software process to a larger application. Inside a container are all the necessary executables, binary code, libraries, and configuration files.

The best prectice is to separate the front-end of an application from the back-end.

For instance imagine an e-shop composed by a frontend, that is the user interface, and a series of services like products, cart, orders management, payments, shipment tracking and so on.

Each of these services are splitted in small containers (or dokerized) and each container has is ip address, tcp port, software enviroment and so on.

It’s clear that if you have to update a single micro-service like the cart you reduce the timing of implementation and the risks of high impact in case of bugs.

Take a look..

containerized vs VM infrastructure

As you can see a containerized architecture is simplier than the classical Vritual Machine architecture because with a unique une machien you can run hundreds of microservices.

You have an only one operating system for all applications which means less effort to mantain it and less costs.

Furthermore, this type of architecture guarantees high scalability and replication, which is why it is the best solution for large companies and coporates.

I think that today a software architect or a developer have to take in high consideration containerized software especially if the application is hosted on the cloud.

The most used container solutions are Doker and Kubernetes, for both there are so good horchestrators and load balancers to distrubuite the traffic in a so efficent way.

The most important pros. of containerization are:

  • Reduced cost of infrastructure operations (There are usually many containers running on a single VM)
  • Solution scalability on the microservice/function level
  • Full application isolation makes it possible to set each application’s major process in separate containers
  • Instant replication of microservices
  • Flexible routing between services natively supported
  • OS indipendent so this mean high portability
  • Full portability between clouds and on-premises locations
  • Fast deployment
  • Faster “ready to compute” (Containers are ready to start and stop within seconds in comparison to VMs)

Of course for a company decide to adopt the container architecture mean that it has to acquire new software skills and upgrade the IT team (cloud architect suggested ;) ).

For experience i can say that it is often possible to find resistance from “classical” IT teams that tries to dismantle this new jurney in every way finding excuses about unlikely cyber security problems related to these new approaches and the cloud monster.

Thank you for your attention!!

Flavio

--

--

Flavio Cerato

I'm a digital innovation manager with a 20 years of experience in ICT and in particular Sotware Architecture.