Docker., and Why?
T : Hello D, The code that you sent is not working properly. Please do the needful before the end of the day and get back to me!
D : Dear T, The project is working fine and I have also tested it myself a few times it does not have the said "Glitche and Bugs" on my machine.
So, Been there, done that, and also said the infamous
It is working fine on my machine!!!
And It can get frustrating from time to time as the coding is hard enough. Only if there was a way to teleport my PC to them and let them see that it works just fine!!!
Do not remove your power cable Just now. Let me jump in for a bit.
So rather than sending your whole PC to the Testing Department just send the app with the OS that it was built upon.
Now, Those who know what I am going on about, don't feel smug, and those who don't, don't look so puzzled.
It is possible to do so and do it in a neat and hassle-free way as well with the help of Docker.
Now, As for most of you reading this is the tech people I will keep it short because there is a deadline of yours waiting to announce itself.
The concept of a Hypervisor or Virtual Machine is not a new thing. And for who it is, wait a bit for another blog on Hypervisor.
So, The thing with a Hypervisor is as shown below:
- Now shown above doesn't really change much but changes the way the stacks are placed and the way they are used.
The thing that changes in the docker is that the app sits on the top of the docker engine rather it sitting on a virtual machine in a non-docker way. The non-docker asks for more from the machine with more CPU, Ram is required to accommodate all the applications made on your machine.
When you send your app to the tester in a non-docker way, The code that you sent has its own sets of different aspects such as its libraries, Frameworks, Dependencies, in some cases some big or small chunks of OS as well, ETC. and each of these things also has its own versions as well. This just adds to the pile of variables.
Now, If the variables that you are sending to the testing team, This set has to match almost exactly the ones you have. If there is a difference in between you and your teams, It can cause some glitches and bugs as you go along.
Now, hold your horses, With the proper documentation that each of you is keeping like a divine entity, This problem can be solved to some extent. But what about the variable that you already have from the last app that you worked on? If it was used in any way in your current app you might not know it. And this most probably won't be mentioned in your current documentation. Which again creates the "Difference"? That all of you love so dearly.
So, is there a solution to cover the difference? if you ask. Yes, there is a solution. guess what? The answer is right HERE.
As you are back from your trip let's get started,
Docker does all of the things that you should do Ideally while being efficient and effective as well and for *free as well.
*Free - The community Version is free to use.
Docker works like an ideal assistant to keep the track of all the variables there are and then wrap this all up with the app itself and then make it an Image. And these Images are wrapped in an air-tight setting known as a Container. A container can contain more than one images which can be further connected specifically to a Network.
This Container is similar to a Hypervisor but it doesn't require its own OS every time when created.
Now, This container has all your needed variables and the other needed information for the tester or the receiving end to extract and run the app with the same experience that you have while using it. It conveys the same efficiency, Speed, and flow with it. All that is required is that the receiving end must have docker installed as well
Another amazing thing about this is that it can also be hosted on the needed server given that the server also has docker installed in it. This saves the time of all the pit stops that a code passes through.
These containers can then be shared on social media for others to use or to learn as well. Docker has its own community platform where one can upload his or her said container which another can download and pull to fulfill his or her own requirement.
Docker mainly has 2 Versions:
- Community Version
- Enterprise Version - It has all the functions of the community version along with Support from the company and they manage this for you as well.
Ghanshyam Digital LLP
Helping you to render your vision in to a greater Reality.