3.3.1. Micro-Service
The way in which multiple modules in the software operate the
logic they interact with within a program is called the Monolith application.
While this approach may be appropriate for smaller services, the disadvantage
is that the more complex and larger the function of the service, the less
scalable and flexible the software itself is. To replace this Monolith
approach, the latest emerging concept is the Micro-Service architecture. The
Micro-Service structure has the advantage of being able to respond quickly to
changes without being dependent on language, and making it easier to manage
each module. Docker is the most commonly used virtualization technology in the
Micro-Service architecture because containers can be created and started in
seconds and provide multiple modules with an independent environment at the
same time. The development of the BigData platform is the task of turning a
large number of nodes into a single cluster. Managing and maintaining these
clusters collectively requires skills to respond quickly to changes. This
advantage of Docker is essential for the development of the BigData
platform.
3.3.2. Image and Container
The basic units used in the Docker Engine are images and
containers, both of which are key to the Docker Engine. Image is a necessary
element for container creation and a concept similar to the iso file used to
create virtual machines. The image exists as a binary file with multiple tiers
and is used as read-only when creating and running containers. Basic Linux
operating systems such as Ubuntu and CentOS, which can be the basis for
applications, can be used through the Docker website called the Docker Hub.
When creating a Container with these images, the image creates a separate space
for the file system containing files that fit the purpose and for the isolated
system resources and network, which is the Docker Container. The Container uses
the image as read-only but stores only the changes in the image in the
Container layer, so whatever the Container does, the original image is not
affected. In addition, each created container is provided with a separate file
system and is separated from the Host, so if an application is installed and
deleted from a particular container, the other container does not change.
3.3.3. Networks
To run a single application on a Docker Engine installed on
several physical servers, the Docker containers need to communicate with each
other. Basically, on one server, the Docker Engine assigns sequentially the
internal IP of the container, which can be changed each time the container is
restarted. This internal IP is a host with Docker installed, that is, an IP
that can only be written to the internal network, so it needs to be connected
to the outside world. Typical network drivers provided by the Docker Engine on
their own include bridge, host, none, controller, overlay, and MacVLAN. Among
them, MacVLAN virtualizes Host's network interface cards, providing the same
physical network environment for containers. Therefore, with MacVLAN,
containers have virtual MAC Addresses over the physical network, enabling
communication with other devices connected to that network. Multiple servers
are connected to network equipment such as one router, and each server and
container is dynamically allocated IP in one network band, such as
192.168.0.0/24, enabling containers using MacVLAN to communicate with each
other.
|