What kind of projects should use container systems like Docker? *Newsflash* All of ‘em!
I recently released a brand new chat app, Kiven Aa and pushing its source code into production, is a breeze, unlike my older systems like Pollen Chat, where I have to gather enough courage and make up my mind, days prior to pushing the new code to production.
In modern day back-ends, there are just too many moving blocks and pieces to take care of, that you’ll require an entire document, providing directions for how to properly deploy and troubleshoot all areas of the deployed application.
But turned out that the industry had already found the solution to my deployment problem, when I was busy writing and deploying code to Pollen Chat. Deployment is most critical area where I think container systems like Docker have really made an impact.
So what are container systems, you ask?
A container basically bundles settings and libraries, required to run an application, in an isolated package in such a way that this package can be run be run on any environment where docker server can run.
Hence, Docker can make your entire app infrastructure, a plug-n-play system. Let me give you a bird’s eye overview of how this works.
- You code up your app, let it be a Node.js based application.
- Your code is ready to be deployed, along with other dependencies like db servers, cache servers etc.
- You install Docker on your local development system
- You write a Dockerfile, which is basically a file which specifies the configuration of your container i.e. which directory (inside the container) to keep your source code in, what other software it needs to install from the internet and what other configurations, it needs to make, to make everything work together, inside the container, just like your local system
- You build the container using docker build command, which reads your Dockerfile and builds your container, which is a self-sufficient isolated box, capable enough to run your app.
- Now your container is ready to be put on a server where Docker server is installed.
- That’s it, your container can entertain requests and send response now! Just like your local development environment.
So, that’s how you deploy your apps in production, using containers. The next time you are going to make a change in your app, all you have to do is rebuild the container and push and you’re all set.
There is docker-machine to help you out with the server management. You don’t even have to configure and login to the server to deploy your containers, docker-machine handles all of that for you. It can readily configure AWS and DigitalOcean cloud servers, on its own. I don’t really have any need, to login into my production server, now that docker-machine has got my back. In-fact! I haven’t logged into my production cloud server, for so long, that I’ve even forgotten my login credentials. OK, I do remember my login credentials but you got an idea of how excited I am about this technology, right?
I think the community needs to be more aware of such a wonderful technology. I am planning to make a hands-on video course and blog posts about Docker. Follow me to be the first among your network, to know about it, when I will be ready with the material.
I guess I have successfully sold you on Docker, by now. If you need any sort of assistance regarding setting it up for your project, feel free to contact me by leaving a comment on this post or use any of my social media handles.
If you liked this post, kindly recommend it to your network and follow me for more posts like this one. You should also subscribe to my YouTube channel, if you like developing digital things.
Till next time…