Introduction to Docker and Container-based development.
Hello readers,
I am happy to start a new article series on Microservices. In this article series, I will cover fundamentals of the microservices.
Before moving to development we must need to understand the underlying architectures for hosting applications. There are three generations/methods to host the application. They are,
- Physical server
- Hypervisor
- Containers
Then we look at each one separately.
1st Gen: Physical server
When hosting an application, physical servers use different physical hardware boxes to publish one application. There are separate physical hardware boxes for application hosting, database hosting, and web server hosting. Likewise, different physical hardware boxes should be used to host one application. There are more disadvantages with this structure so, this architecture is now outdated.
Disadvantages of Physical Hardware Boxes
- All there are physical items in each box. Maintaining them will make much cost.
- There should be more space to fix these physical items.
- Also, each physical box should have separate networks and operating systems.
2nd Gen: Hypervisor
This modal has no separate hardware boxes. There is a single high-processing hardware system for it. On top of this hardware layer, there is the hypervisor. It is software that use to create virtual machines. VM ware and Hyper-V are examples of hypervisors. Each virtual machine has its operating system. Top on operating system particular app is installed. This modal has no separate hardware boxes. There is one hardware set.
Disadvantages of hypervisor modal
- There must be an operating system for each virtual device. Therefore, license, maintenance, patch, and updating costs are available for each operating system.
- Time-consuming is high to configure virtual machines.
- Resources intensive (hardware resources must be divided for each virtual machine)
- Getting slow start. (The operating system must be loaded.)
3rd Gen: Containers
Containers are small/ light-weight environments(units). This modal has no separate operating systems for each environment. There is one hardware unit and one operating system. Top on this operating system, different containers are established. Docker is an example of an application for creating containers.
Docker
Docker is a platform for consistently building, running, and shipping applications. When deploying applications, there are many things to be considered. All the necessary files must be deployed. Avoid software version mismatches. That means both development and deployment machines must have the same software versions and running applications. Also, configuration settings must be considered well.
Docker helps to package everything applications need running it everywhere that docker enabled machines. Therefore, it helps to time-saving.
References: