DEV Community

Discussion on: Explain the need of Containerization like I am five?

Collapse
 
joelbonetr profile image
JoelBonetR πŸ₯‡ • Edited

talking about docker: it's like a virtual machine with the environment and the project on it.

This can ensure working on the same environment on any stage (development, test, production).

Moreover when formatting or getting a new computer or hiring a new dev there's no need on wasting a morning preparing the working environment, you simply raise the docker and that's all.

This is also applicable when working on different projects.

For example I'm hands on a monolithic MVC with php, mysql, html, sass, js, smarty templates (which are 2 dockers, one for the DB and another for the php, symfony, smarty, html, css, js, webpack...)
Then another project with Angular (with webpack), another with Preact (with parcel.js), another using vanilla js, css, html, parcel and so.

At this point there's no need on installing all things on the main machine and switch between each project configuration needs each time a dev put its hands on a new (or existing) different project or switching work spans from a project to another. You again raise the docker and you can work in minutes. Oh and, that way you can maintain the developer preferences about system and software too. On my team there are people using Mac, others Windows and others Linux (different distributions each).

You can also raise as many dockers as you want or need (and your computer resources permits).

On deployment you also have a benefit such deploying the docker or pod (which is not needed but you can do it) the same way you raise it on any machine.

If you want you can also make a deploy machine where to raise docker, perform some builds into it and then send this "compiled, transpilated, minified, obfuscated" result into production "as is" on your CI script.

So, to resume:

  • Faster software delivery cycles
  • Better Application portability
  • Shines for microservices architecture
  • More efficient usage of system resources

Problems that docker containers don't solve:

  • It won’t fix your security issues
  • It doesn’t turn applications magically into microservices
  • It isn’t a substitute for virtual machines

BONUS: If you are on Linux (windows and mac have docker gui) you'll be used to throw the same commands each time you arrive at work, those actions can be easily automated.

Collapse
 
nishkarshraj profile image
Nishkarsh Raj

That's a very comprehensive response. Thanks a lot! I see some new terminologies but I would try to understand them and also go through your blogs πŸ‘ ❀️

Collapse
 
joelbonetr profile image
JoelBonetR πŸ₯‡

You must always check the official website of each technology you're interested in and lean the description and what is meant to; in fact each new tech must solve one or more issues or at least, automate tasks. That way you can internalize what is intended for and discern if it fits into your needs or not, also it's good to ask to the community as you did so you can get opinions and comments based on community's experience :)