0% found this document useful (0 votes)
4 views7 pages

Container Technology: A Comprehensive Review

The paper provides a comprehensive analysis of container technology, highlighting its evolution from virtualization and cloud computing to its current state as a key player in application deployment. It discusses the advantages of containers over traditional virtual machines, such as reduced size, faster boot times, and improved performance, while also addressing the relationship between containers and microservices. The authors present a literature review and methodology for studying container technology, emphasizing its operational efficiency and the importance of orchestration in managing containerized applications.

Uploaded by

Ailen Gomez
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views7 pages

Container Technology: A Comprehensive Review

The paper provides a comprehensive analysis of container technology, highlighting its evolution from virtualization and cloud computing to its current state as a key player in application deployment. It discusses the advantages of containers over traditional virtual machines, such as reduced size, faster boot times, and improved performance, while also addressing the relationship between containers and microservices. The authors present a literature review and methodology for studying container technology, emphasizing its operational efficiency and the importance of orchestration in managing containerized applications.

Uploaded by

Ailen Gomez
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

See discussions, stats, and author profiles for this publication at: [Link]

net/publication/339976396

Comprehensive Analysis of Container Technology

Conference Paper · November 2019


DOI: 10.1109/ISCON47742.2019.9036238

CITATIONS READS
26 1,479

3 authors, including:

Tamanna Siddiqui Najeeb Ahmad Khan


Aligarh Muslim University 46 PUBLICATIONS 121 CITATIONS
87 PUBLICATIONS 264 CITATIONS
SEE PROFILE
SEE PROFILE

All content following this page was uploaded by Tamanna Siddiqui on 04 February 2022.

The user has requested enhancement of the downloaded file.


2019 4th International Conference on Information Systems and Computer Networks (ISCON)
GLA University, Mathura, UP, India. Nov 21-22, 2019

Comprehensive Analysis of Container Technology


Tamanna Siddiqui Shadab Alam Siddiqui Najeeb Ahmad Khan
Associate Professor Research Scholar Director
Department of Computer Science Department of Computer Science Royal Achievers Academy
Aligarh Muslim University, Aligarh, India Aligarh Muslim University, Aligarh, India Aligarh, India
ja_zu_siddiqui@[Link] [Link]@[Link] naahkh@[Link]

Abstract—Containers is the new buzz word within the The requirement of containers arises from the fact that
computer technology space. With the technology growing at an developers had to face a daunting task in porting applications
exponential pace and within a short span of time, the industry from development environment to testing/lab environments
has evolved from native to virtualized, to cloud and now to and finally to production environments. Every time an
container technology. This evolution is focused more on application is shifted to a new environment, it faces issues of
decoupling the software with the hardware and making software migration because usually no two environments are similar in
or applications more lean and agile. Containers has done a lot of terms of both software and hardware capabilities. Thus, to
good in achieving this objective and has also helped to cope up
overcome this drawback and bring in more operational
with the deficiencies faced in virtualized and cloud based
efficiency, container technology comes into picture. It helps to
environment. This paper tries to do a literature review of the
evolution of containers and will also attempt to analyze container
package the application with all its required dependencies in
eco system. This article will also discuss the differences between terms of software, libraries, configuration files, binaries and
the containers and virtual machines and will highlight the other required stuff to execute the application. This helps the
efficiencies that container technology brings over the virtualized application to run smoothly in any environment as it is
environment. packaged with all its dependencies.

Keywords—Containers, Virtualization, Cloud, Microservices, II. RELATED WORK


Orchestration. There has been a constant motivation upon academicians
and research scholars to delve into the details of container and
I. INTRODUCTION its related technologies. A lot of effort has been made to track
Since last decade or so there has been an exponential the development of containers, whose evolution is more of
advancement in terms of hardware and software technology. In implementation based rather than research oriented. It is one of
accordance to these advancements there has also been an the few technologies where industry based demand has resulted
evolution of user demands and business cases. These end user into the implementation of technology faster than the research
demands coupled with the reachability and affordability of devoted to it. Over the period of time, several key technologies
internet has put a lot of pressure on application providers and have, in some way or the other, helped in developing and
services. This vast all round development has led to the motivating containers, as the way it is in its current form. Some
demands of utilizing resources efficiently and lowering the of the major concepts and technologies are reviewed
CAPEX and OPEX of any service provider including data underneath.
center owners. Various technologies over the past decade has
tried to address these requirement. Some of the most prominent A. Microservices
breakthrough technologies which have addressed various These are small and single functional elements which can
aspects of these requirements are Virtualization, Cloud work independently in isolation. Dragoni N. et. al. [3] defines
Computing and Container technology. microservices as an architectural style and as “the minimal
independent process that interact via messaging”. Alan Sill in
Container technology in its vanilla form is simply called as [10] has extensively talked about the design and architecture of
container. As the name suggests, it is an instrument of holding the microservices. Microservices, as the name suggests, are
an item and in technological definition it can hold applications. single process which could be a basic application or several
It provides applications an environment to execute with its microservices could be externally coupled with each other by
dependencies and isolates it from irrelevant programs and means of API’s (Application Programming Interface) to build a
processes of the underlying Operating System. Thus, it could larger application. These are reusable and independent
be defined as an application packaging mechanism having only components which can be used as a building block of various
its dependencies. It is analogous to the containers used in large and enterprise application.
shipping industry, where shipping individual items is done by
packaging them in pre-built containers rather than as items of B. Virtualization
different size. This gives operational efficiency to the shipping Virtualization refers to the abstraction of hardware layer
industry and synonymously computer container technology and divide hardware resources to multiple virtual resources
provides operational efficiency for applications bundled within which can then be used as different machines. The diagram in
containers. figure 1 pictorially describes the division of actual hardware

978-1-7281-3651-6/19/$31.00 ©2019 IEEE 224


resources to several virtual resources by a virtualization layer.
The software that helps actual hardware to be virtualized is
called hypervisor. This set of virtual resources can then be used
as separate machines known as virtual machines which can
now host an OS and application on top of it.

Fig. 2. Cloud Model

D. Containers
Containers have come of age and are now at the forefront
of technology. It is simply defined as packaging unit for any
application or it can also be referred to as operating system
level virtualization [12]. This brings agility and ease of Life
Fig. 1. Virtual Machine Architecture cycle management of any application. Major behemoth of IT
services companies like Google, Amazon, Microsoft etc. have
C. Cloud adopted container technology. This has helped them manage
Cloud computing technology efficiently reduces the costs their cloud infrastructure in easier, faster and in an efficient
of IT infrastructures by offering computer resources (e.g., manner.
networks, servers, storage, applications, and services) as
services. It also provides applications as services over the III. METHODOLOGY USED
Internet, offers hardware and systems software in the data In-order to study the reasons of containers peculiar
centers that are required to build services. Cloud model is evolution, several aspects of the container technology as well
composed of five essential characteristics – as its related technology has been studied, analyzed and is
being presented in this paper. The overall methodology and
x On-demand self-service
approach used to accomplish the review work can be broadly
x Broad network access categorized in three phases, as shown in the below figure 3:
x Resource pooling
x Rapid elasticity and
x Measured service.
There are three prominent service models for cloud
computing that is provided by cloud service vendors –
x Software as a Service (SaaS)
x Platform as a Service (PaaS) and
x Infrastructure as a Service (IaaS).
Cloud can be deployed in four types of distinct
deployments – Public cloud, Private cloud, Hybrid cloud and
Community cloud models [5].

Fig. 3. Adopted Methodology

225
A. Plan and Strategize
Planning the review work and selecting related
technologies which has impacted the overall evolution of
container technology. Further strategizing the overall plan so
that it could be executed.
B. Execute
Once the overall plan was chalked out, strategy was in
place and topics were identified, an extensive effort was
utilized to execute the plan. The execution step primarily
included to understand each related topic and technology to its
depth by thoroughly understanding the available work around
it and systematically comparing its effectiveness, drawbacks
and other aspects which helped in development of container
technology.
C. Report
The final phase incorporated the work of streamlining and
documenting the results of first two phases. Careful reporting
of each technology study was documented and later all such
Fig. 4. Relationship between Microservices and Containers
documentation was collated to prepare a manuscript of entire
exercise. And finally it resulted in structuring this paper with
A container can host one or more than one microservices as
the crux of the entire exercise
envisaged by the application design. In addition to this, in a
IV. REVIEW PRESENTMENT virtualized environment there could exists one or more
containers and each container could host one or more
Various aspects of container technologies and its related microservices. This environment could be related to a single
fields have been studied and presented in this section. This application or several applications running independently.
section elaborates the most important factors in the
development of containers technology. It depicts and reflects B. The Container Chronology
the motivation of its evolution from baby steps to leading The evolution of containers started way back in 1970’s and
technology in today’s context. since then it has been a stop gap based development. Container
A. Paradox of Microservices and Containers technology or Containerization is not a knee jerk invention but
rather it is a culmination of years of effort which is now finding
When talking about containers, there is a lot of discussion a vast audience. Osnat [2] in her blog captures elaborately, the
on Microservices at its relation with containers. In a nutshell, time wise journey of Container evolution.
microservices are not a building block for containers. In fact,
microservices are lightweight software components with The concept of containers is not new and its existence can
singular scope. From architectural point of view, microservices be tracked back to 1979 when chroot system call was
are a single function executable which communicates with introduced in Unix V7 operating system. Since then, several
outside world (other Softwares/services) using light weight isolated implementations have come up around container logic
API’s. Nuha et. al. [1] have done a detailed study on but a complete implementation of container technology was
microservices architecture and their implementation. done by Linux in 2008 and it was named as LXC (Linux
Containers). Using LXC, Dockers came into existence in 2013
On the other hand, containers are not microservices but can and made containers very popular amongst the technologist
be viewed as packaging on top of micro-services. and as of now is a leading container technology provider.
Microservices being independent and tiny functional RightScale in its cloud survey has indicated that Docker usage
executables need a service that makes its deployment very expanded from 35 to 49 percent [13]. Docker offers an entire
agile, scalable and portable in nature which can ease its life- ecosystem revolving around containers, managers,
cycle management. Containers fit this requirement perfectly orchestrators and other suits of use cases. Docker started its
and this means that a container can host a micro-services and journey with LXC but now it has replaced LXC with its own
enhance their ease of use and maintainability. The below figure libcontainer library.
3 illustrates the relationship between containers and
microservices. As pictorially represented in the diagram below,
containers act as a packaging unit for the encapsulating the
microservice along with its dependencies such as binaries and
libraries.

226
where both containers and virtualization can be judged and
compared. Table 1 captures the gist of these parameter.

TABLE I. COMPARING CONTAINERS AND VIRTUAL MACHINES

Containers VMs
Characteristic
Virtualization OS Kernel Hardware

OS Shared Dedicated
Size Small Large
Boot time Low High
Performance Lighter Heavy
Security Access Control Hypervisor
Communication Ethernet IPC
QoS Better Average

The authors in this review work have come up with a


detailed study of both the technologies for their several
characteristics or parameters.
x Virtualization layer – The VM virtualization is at the
hardware level where a hypervisor virtualizes the
actual hardware and makes virtual copies of the
hardware to efficiently using the hardware. Scott et.
Al. in [4] report that a virtual machine monitor is a
very thin layer of software that sits on top of the
Fig. 5. Chronology of Container Evolution hardware and virtualizes all its resources. On the other
hand Containers virtualize the OS kernel by creating
C. Containers versus Virtualization several user-space entities which are independent of
There is a lot of debate over the pros and cons of container each other. We can also say that containers offer
and virtualization. And few novice technologists even miss- Operating System virtualization.
interpret both technologies to an extent that they hardly can x Operating System – Virtual Machines have a
differentiate between the two. This is because both these dedicated OS of their own. In contrast all the
technologies aim to abstract and decouple the underlying containers share the same operating system and its
hardware from the application. There is a marked difference of kernel.
how both these technologies present themselves to achieve the
objective of software decoupling from the hardware. Both x Size – Containers as a bundle take limited storage
these technologies have been effectively compared in [6] over when compared to Virtual Machines. This is because
several parameters. each VMs have a full copy of OS whereas containers
only have required binaries and other dependencies
The primary level of virtualization in a Virtual Machines is and the base OS is shared amongst various containers.
the virtualization of the underlying hardware whereas
Containers aim to virtualize the operating system itself thus x Boot-up time – Boot/Start-up time of containers is
giving each containered application a separate area of considerably lower in comparison to the VMs. The
execution within the operating system which in turns results in start-up time for VMs is higher because it also requires
sharing of the operating system by various container based the booting up of the dedicated OS whereas in
applications or services. VMs are an ideal choice when the containers, full-fledged OS is not part of the package.
applications have different OS whereas containers would be Thus application running within containers come up
optimal choice when the underlined share OS is same [14]. faster in comparison to the same application when it is
deployed over a Virtual Machine.
Marcelo et. Al. in [11] have done detailed experiment on
the CPU performance, Overhead of virtual container creation, x Performance – The performance and the response
overhead of nested container creation and network time of Containers are quicker in comparison to virtual
performance of containers. There are several characteristics machines because instruction in VMs needs translation

227
from guest OS to host OS through the hypervisor layer x Container Platform – Several container platforms are
whereas this overhead is not there in containers. Felter available which help in bundling applications with pre-
et. al. have experimentally proved in [7] that containers requisite dependencies. Most prominent player in this
usage of CPU vis-à-vis Virtual machines is lighter. space is Docker whose popularity in this space is akin
to the container platform. Other major container
x Security – Security of VMs are dependent on security platforms include kubernetes, Mesos, Vagrant, and
implementation of the underlying hypervisor and to an RancherOS..
extent to the hardening of the guest OS. In contrast,
Security in containers is achieved by access control x Container Orchestration – Lifecycle Management of
mechanisms like namespaces. software is an integral part of the software business.
Softwares deployed on containers also require lifecycle
x Communication Mechanism – Networking or management services for upgrades, scaling,
communication mechanism employed between VMs is monitoring, load balancing and other regular activities.
through Ethernet devices (IP and port) whereas Container orchestration refers to life cycle
Containers communicate with each other using various management of containers and several tools have been
Inter Process Communication (IPC) mechanism like developed for container orchestration. Kubernetes,
message queues, pipes etc. developed by google is the most popular Container
x Quality of Service (QoS) – This parameter basically orchestration software. Other example of Container
drives the user experience and is very important when orchestration tools available are Docker Swarm,
devising an application and its deployment model. It Mesosphere Marathon, Nomad etc.
has been established by Ismael et. al. in [8] that x Container Repositories – It refers to the collection of
containers provide a better QoS as compared to VMs container image repositories of commonly used
because of its compact size which can consolidate container and its different versions. This repository
more services with the same amount of resources. bases reduces the workload of packaging common
D. Container Eco-System application within containers and can be downloaded
At present, containers are at the forefront of technology from the available repositories. All the major container
evolution and thus an entire eco system has developed around provider have their container repository and the most
it. Various tools, samples, Proof of Concepts (PoC), Use cases common container repository is provided by Docker.
and excessive amount of documentation has been made Users can easily pull and push an image to these
available to help ease of use of containers. Cito et. Al. [9] have repositories for their use and storage.
done an extensive analysis of docker ecosystem for the docker x Container as a Service (CaaS) - All prominent cloud
related files in the github repository. This quick and broad service providers now look into containers as a new
spectrum development around container technology have business model have Container as a Service (CaaS)
helped to its popularity amongst the technology enthusiasts. product for its user base. This has made using
Some of the important building blocks of this eco-system has container technology even easier for naïve users to use
been captured below in table 2, identifying its usability and its and get the benefit of Container technology. Some of
major providers. the well-known CaaS providers are Amazon Elastic
Container Service (ECS), Google Kubernetes Engine
TABLE II. CONTAINER ECO-SYSTEM (GKE), Microsoft Azure Container Instances (ACI)
CONTAINER ECO-SYSTEM
and IBM Cloud Kubernetes Service, among many
more players in this market.
Helps in bundling applications with pre-requisite
Container dependencies. V. CONCLUSION
Platform Major Players: Dockers, kubernetes, Mesos,
Vagrant etc. Containers provide a new way of virtualization which is
Helps in Lifecycle Management of software lightweight and agile. This has helped in the popularity of
Container within containers. containers. Adapting to containers for new applications or
Orchestration Major Players: Kubernetes, Docker Swarm, migrating to container architecture for existing applications
Mesosphere Marathon, Nomad etc. have lots of benefits for the application life cycle management.
It helps the application and its host to independently plan for
Container It is a collection of container images of upgrades and maintenance without the other being hampered.
Repositories commonly used container and its versions. Although the design of the application needs to be studied for
migration or before choosing container as it packaging
Major Players: Docker Hub, Amazon ECR etc.
architecture.
CaaS is a new service that helps provide ready to In this piece of work, we did an extensive study regarding
Container as a use container technology for naïve users. the overall container technology, its eco-system and also did
Service Major Players: Amazon Elastic Container comparative study with virtualization in general. To conclude,
Service, Google Kubernetes Engine, Microsoft containers are a perfect fit for application demanding quick life
Azure Container Instances. cycle management. Containers also help in reducing CAPEX
and OPEX of data center manager as well as application

228
owners. Adapting container technology is a win-win situation 2015 IEEE International Symposium on Performance Analysis of
for all provided the application are designed to use containers Systems and Software (ISPASS), March 2015, pp. 171–172.
[8] Ismael Cuadrado-Cordero, Anne-Cécile Orgerie, Jean-Marc Menaud,
effectively. "Comparative experimental analysis of the quality-of-service and
energy-efficiency of VMs and containers' consolidation for cloud
REFERENCES applications", Software Telecommunications and Computer Networks
[1] Alshuqayran, Nuha, Nour Ali, and Roger Evans. "A systematic mapping (SoftCOM) 2017 25th International Conference on, pp. 1-6, 2017.
study in microservice architecture." Service-Oriented Computing and [9] J. Cito, G. Schermann, J. E. Wittern, P. Leitner, S. Zumberi, and H. C.
Applications (SOCA), 2016 IEEE 9th International Conference on. Gall. ”An Empirical Analysis of the Docker Container Ecosystem on
IEEE, 2016. GitHub”, Proceedings of the 14th Working Conference on Mining
[2] Rani Osnat, “A Brief History of Containers: From the 1970s to 2017”, Software Repositories (MSR ’17), IEEE Press, pp 323-333, 2017.
2018. [10] A. Sill, "The Design and Architecture of Microservices," in IEEE Cloud
[3] Dragoni N. et al. (2017) Microservices: Yesterday, Today, and Computing, vol. 3, no. 5, pp. 76-80, Sept.-Oct. 2016.
Tomorrow. In: Mazzara M., Meyer B. (eds) Present and Ulterior [11] M. Amaral, J. Polo, D. Carrera, I. Mohomed, M. Unuvar and M.
Software Engineering. Springer, Cham. Steinder, "Performance Evaluation of Microservices Architectures Using
[4] S. Devine, E. Bugnion, and M. Rosenblum. Virtualization system Containers," 2015 IEEE 14th International Symposium on Network
including a virtual machine monitor for a computer with a segmented Computing and Applications, Cambridge, MA, 2015, pp. 27-34.
architecture. US Patent, 6397242, Oct. 1998. [12] Chae, M., H. Lee, and K. Lee, A performance comparison of linux
[5] Siddiqui, Tamanna, and Riaz Ahmad. "Cloud Testing – A Systematic containers and virtual machines using Docker and KVM. Cluster
Review." International Research Journal of Engineering and Technology Computing, 2017: p. 1-11.
(2015). [13] Weins, K., Cloud Computing Trends: 2018 State of the Cloud Survey.
[6] R. Dua, A. R. Raja, D. Kakadia, "Virtualization vs containerization to 2018.
support paas", Proceedings of the 2014 IEEE International Conference [14] D. Bernstein, "Containers and Cloud: From LXC to Docker to
on Cloud Engineering ser. IC2E '14, pp. 610-614, 2014. Kubernetes," in IEEE Cloud Computing, vol. 1, no. 3, pp. 81-84, Sept.
[7] W. Felter, A. Ferreira, R. Rajamony, and J. Rubio, “An updated 2014.
performance comparison of virtual machines and linux containers,” in

229

View publication stats

You might also like