Containerization and Its Architectures a Study
Containerization and Its Architectures a Study
KEYWORDS ABSTRACT
Cloud Computing; Containerization is a technique for the lightweight virtualization of
storage; programmes in cloud computing, which leads to the widespread use of
containerization; cloud computing. It has a positive impact on both the development and
Docker; LXC deployment of software. Containers can be divided into two groups based
on their setup. The Application Container and the System Container are
two types of containers. A container is a user-space that is contained
within another container, while a system container is a user-space that is
contained within another container. This study compares and contrasts
several container architectures and their organisation in micro-hosting
environments for containers.
1. Introduction
Containerization is a method for the lightweight virtualization of programs, which contributes to
the widespread adoption of cloud computing. As described in C. Pahl et al., orchestrating and deploy-
ing containers separately and in groups has been a significant issue (C. Pahl 2015). Numerous stud-
ies on container knowledge in the cloud have been conducted to detect trends, knowledge gaps, and
future directions. The studies provide a comparative picture of the status of research by identifying,
classifying, and synthesizing the available data. The systematic mapping study (SMS) was used in this
research to help define and structure new topics of inquiry.
Both the development and deployment processes benefit from the use of containers. For example,
cloud architecture is evolving toward DevOps approaches, allowing for a continuous advancement and
distribution pipeline based on containers and orchestration that incorporates cloud-native architectural
results (Brunnert et al., 2015).
• Instantiation;
• Guaranteeing consistency, QoS, safety, and scalability;
• Supervision and optimization of IoTaaS.
Additionally, since IoT devices include LCV capabilities, IoTaaS may be deployed in many dis-
persed containers. The information collected from IoT gadgets is standardized and saved on the Cloud
stage, activating actuators linked to IoT gadgets. HVV and LCV create a film of abstraction that con-
ceals all corporal proficiencies. Typically, IoT cloud workers provide both patterns, but only LCV is
utilized in IoT devices. To dynamically offer services to their customers, the operators of IoT clouds
Figure. 1. A demonstration of an Internet of Things cloud that makes use of both HVV and LCV
virtualization know-how (Celesti et al. 2019).
install a variety of containers and virtual machines (VMs) in their infrastructure. It enables the worker
to reorganize, improve, and move its computer-generated resources. The operator of the IoT Cloud
may fulfil any service allocation request made by its customers by using this infrastructure. IoT Clouds
may execute various activities due to LCV functional to SBCs (Single Board Computers).
3. Related Works
Virtualization of resources usually entails installing a software layer on top of the host operating
system to manage numerous resources. These virtual machines (VMs) may be thought of as their
execution environment. Numerous techniques are used in the process of virtualization (M. Xavier et
al 2013). Hypervisor-based virtualization is one common approach. KVM and VMware are two well-
known virtualization systems based on hypervisors. A virtual machine monitor must be placed on top
of the underlying physical system to take advantage of this technology. Additionally, each virtual ma-
chine supports (separate) guest operating systems. This virtualization strategy is feasible for a single
host operating system to sustain many visitor operating systems (M. Xavier et al. 2013).
4.1. Docker
Docker uses numerous Linux kernel capabilities to enable the isolation of containers (Docker 2021).
4.1.1. Namespaces
Containers are deployed using Docker namespaces. Docker makes use of a variety of different
kinds of namespaces to accomplish its job of isolating containers (M. Xavier et al. 2013):
• Docker containers are based on pid, which guarantees that no process in one container may
influence processes in another;
• It makes use of the network to accomplish system interfaces, or more specifically, to isolate the
system's networking resources;
• ipc is used to isolate particular inter-process communication (IPC) properties, including System
V IPC things and POSIX communication queues. This implies that each IPC namespace has its
set of properties for interprocess communication.
• The union file scheme is a kind of file scheme that works by creating films that serve as the
foundation for containers.
• The container format may be thought of as a container that encompasses all of the preceding methods.
4.2. LXC
Linux Container is a container-based virtualization solution that allows for the rapid development
of lightweight Linux containers via a standardized and extensible API and related implementations
(Linux Containers 2021). By contrast, Docker is a container-based application development platform.
They have several characteristics but also have a great deal in common. To begin, LXC is a method for
virtualizing the operating system at the level of individual Linux containers on a sole LXC host. It does
not utilize a computer-generated machine but rather creates a computer-generated environment with its
CPU, memory, blocked I/O, system, and resource management system. This is accomplished through
the LXC host's Linux kernel's namespaces and cgroups capabilities. As a chroot, but with much great-
er separation. LXC supports a broad range of virtual network and device types. Second, Docker uses
fixed layers to facilitate the reuse of well-structured architectures, albeit at the expense of complexity
and performance. Constraints on the number of applications per container limit the potential for usage.
LXC allows the formation of single- or multi-threaded programs.
Additionally, LXC enables the creation of numerous system containers, which may be replicas of a
single sub-volume that can be accessed through a btrfs file. This LXC capability enables it to address com-
plex file system-level problems. Thirdly, LXC provides a comprehensive set of tools and rights for both
container design and execution. In conclusion, LXC allows for the construction of poor containers, ensur-
ing that non-root operators may figure containers. This functionality is currently unavailable in Docker.
5. Evaluation parameters
There are many angles from which technologies may be compared, most notably in terms of perfor-
mance. To assess container-based technologies from an overhead viewpoint, it was essential to compre-
hend (measure) the outlays associated with non-virtualized settings. The study in this section examined
various performance metrics, including CPU and memory performance, system bandwidth and inex-
pression, and storage outlays. Multiple experiments were performed 15 times in each benchmarking
phase to determine the precision and reliability of the different findings. Timing data was collected on
an average and standard deviation basis (Zhanibek Kozhirbayev and Richard O. Sinnott 2017).
• CPU performance: The first scenario to evaluate the CPU performance was based on use of a
compressor.
• Disk I/O performance: A key aspect of performance is the evaluation of disk I/O performance,
specifically, volumes given as a non-ephemeral storage were attached to instances.
• Memory performance: The evaluation of Memory I/O performance is presented, The benchmark
tool used to test the microhosting environments was the STREAM software (STREAM 2021).
STREAM assesses memory throughput utilizing straightforward vector kernel procedures.
• Network I/O performance: The evaluation of Network I/O performance is presented.
appliances, which serve as transferable containers for programs. As a consequence, in multi-tier sys-
tems, it is necessary to handle container dependencies. In a tiered plan, an orchestration plan may
specify components, their needs, and their lifetime. After that, a PaaS cloud may execute the plan's
processes through mediators (such as a container appliance). As a result, PaaS clouds may enable the
positioning of container-based applications. Their coordinated development, deployment, and continu-
ing administration are referred to as orchestration in this context.
Numerous container systems are built on the Linux LXC framework. Current Linux versions, a portion
of the Linux container scheme LXC, have kernel features such as namespaces and cgroups that allow pro-
cesses to be isolated on a collective operating system [S5]. Docker is now the utmost common container
explanation and has been used to demonstrate containerization. A Docker image comprises tiered file sys-
tems analogous to the Linux virtualization stack, which utilizes the LXC instruments, as shown in Figure 3.
Docker enhances a writeable file arrangement on top of the read-only file system via a union mount. This
enables the coexistence of several read-only file arrangements. This feature enables the creation of new
pictures by layering existing ones. Only the container's top layer is editable. Containerization enables the
transition from single containerized apps to clusters of container hosts capable of running containerized ap-
plications across cluster hosts. Containers' inherent compatibility facilitates the latter. Individual container
hosts are organized in clusters, as shown in Fig. 3. Individual clusters are comprised of numerous nodes
(hosts). Application facilities are reasonable clusters of containers belonging to the identical image. Scaling
an application over many host nodes is enabled via application services.
Volumes are used to provide persistence methods in applications that need them. These volumes
may be mounted for storage in containers. The use of links enables the connection and communication
of two or more containers. Orchestration provision for inter-container statements, links, and facility
assemblies is required (P. Mell and T. Grance 2011).
7. Conclusion
Containerization is a lightweight virtualization of any program in cloud computing, which contrib-
utes to the extensive acceptance of cloud computing. It provides many advantages for both the develop-
ment and deployment processes. Containers are categorized in two distinct configurations. Application
Container and system container, the Application Container is a purpose-built individual container for
the execution of a single kind of application, and system container is a user-space contained inside
another container. In this paper, various container architectures and their organization, have been de-
scribed. This paper has also presented a comparison of micro-hosting environments of containers.