Docker - The Beginning

Why should we know and use Docker?

After using Docker in my projects, I decided to write a blog post on the Docker and basic concepts of Docker. Docker is an amazing technology !! Initially it seems quite unusual concept. But I am sure you will love working with the Docker.

Background

Let me explain few situations:

Microservices

Modern web development has become advanced. Gone are the days when technology stack had monolithic platform serving entire webpages. Web platform is now split into small modules, which are called Microservices. For example, if you develop an ecommerce website and you have a big team of developers. But the problem is: but all the developers are not expert in same programming language. Then you can split the ecommerce application in modules such as products microservice, checkout microservice, payment microservice, delivery microservice. Now team has the freedom to choose the application stack and team can innovate in the development. All these microservices can be deployed on their own. This will reduce the dependency between teams.

Modern JavaScript Frameworks

You can see the trend of using JavaScript libraries and frameworks such as React, Angular, Vue. Hence, frontend and backend both are hosted separately and communicates using REST APIs.

Advanced Techniques

High performance is required aspects for the web. Hence as a developer we need to implement various techniques, such as Caching, Asynchronous tasks, Search Indexing. All this techniques require dedicated server running.

  • Caching - We need dedicated process for caching since caching holds data into memory. Generally we use Redis or Memcached for caching.

  • Search Indexing - We need dedicated process running for indexing server such as Generally we use ElasticSearch or Apache Solr to implement indexing server.

  • Asynchronous task - For example, your application requires to send an email after performing certain task, you should send the email using asynchronously. This will reduce the request-response cycle time by eliminating the time required to connect the SMTP server and getting acknowledgement of the delivery.

Wait, doesn't it seem configuration and deployment overhead?

image.png Yes, now we know what we have to do to implement modern web application that meets technology trends. But configuring and deploying all these altogether is time consuming. This is exactly a problem that Docker solves

Docker simplifies and accelerates your workflow by its Containers. There are certain fundamentals such as Images, Registry apart from Containers that I will write in my next blog post.

Till then, thank you for reading this blog.