Project Report
Project Report
Containers
A PROJECT REPORT
Submitted by
BACHELOR OF ENGINEERING
IN
Chandigarh University
1
May, 2024
BONAFIDE CERTIFICATE
SIGNATURE SIGNATURE
Mr. Dhawan Singh
Mr. AMAN KAUSHIK SUPERVISOR, AIT -CSE
HEAD OF THE DEPARTMENT
2
TABLE OF CONTENTS
3
3.6. Implementation plan/methodology .....................................................................................
REFERENCES .......................................................................................................
List of Figures
Fig 2. DevOps life-cycle, including various phases (gray and blue boxes), tools
4
(illustrated as cylinders), and practices.
5
ABSTRACT
Keywords:
containers, deployment, DevOps, etcd, microservices, security
6
INTRODUCTION
In this phase containerizing a microservice projects will be the better and one of the best
approaches for creation and execution. In this fast-paced life there is a big enhancement in the
technology which gives a benefit as a flexibility and opens many alternatives for them. Let us
talk about it that containerizing a microservices, it is basically a framework which usually
combines a structure of system and their positive aspects of this technology. It’s an essential
job to enclose isolated microservices facilitates compatibility to the containers on the
deployment of services by using containerization.
If the authors use containers, then it provides several advantages to us, it includes following:
simplifying the technology management, optimizing the resource management, and other
benefit include scalability, auto healing, and security. All of these benefits of this technology
have been used by the containerization technologies like Docker and Kubernetes, etc. And
they all are CNCF verified projects. This primer looks into the basics of packaged
microservice delivery and discusses its implications for developing software, delivery
procedures, including the general flexibility of contemporary platforms. As organizations
strive for more flexible and adaptive systems, comprehending and utilizing packaged
microservices increasingly crucial to keeping on the bleeding forefront of advances in
technology.
Deploying over an assortment within platforms yet circumstances can be done because it uses
these containers for computing' constant yet segregated context. It simplifies flexible
construction by allowing groups autonomy to create, launch, or expand micro services while
impacting the entire program. Advantages in containers include improved scaling,
7
resources finances, as well as simplicity of administration; this is often driven through
technologies like Docker as well as Kubernetes. This primer looks into the basics of packaged
microservice delivery and discusses its implications for developing software, delivery
procedures, including the general flexibility of contemporary platforms. As organizations
strive for more flexible and adaptive systems, comprehending and utilizing packaged
microservices increasingly crucial to keeping on the bleeding forefront of advances in
technology. The DevOps workflow is defined in the given fig. 1.
In this research work, the sections have been organized as follows: The issue at hand
statement, which concerns information encryption with regard to ETCD, is covered in Section
I. The literature review is covered in section II, involves papers which have already been
written on the subject. Sections III convers methodology adapted for the proposed work.
Section IV, discusses the structure of etcd, which are entirely based on the K8s component
ETCD and provides a solution to the data encryption issue that would make them more
secure. In section V, results are discussed and conclusion is made in final section.
One of the primary challenges in real-time while deploying Kubernetes is that there is a
component, etc. In the etcd, there is a problem of security because the data is encrypted, and
due to this, there is a chance of a container breakdown. A hacker will easily enter the
container and hack the whole information.
Identifying the heart of the matter means understanding the hurdles faced when marrying
microservice containerized deployment with today's software development landscape. It's
about grappling with the delicate balance of weaving security seamlessly into the fabric of the
DevOps journey, ensuring our systems stand resilient against evolving threats while staying
nimble and efficient. This calls for a shift in mindset, breaking down the traditional barriers
that divide development, operations, and security teams. By tackling this intricate puzzle head-
on, we pave the path for smoother sailing through the ever-changing seas of software
deployment, fostering a culture of innovation and progress along the way.
8
One of the main challenges in microservices containerized deployment is adapting to
dynamic environments. Traditional monolithic architectures were relatively static, with
changes requiring extensive coordination and downtime. However, in a containerized
microservices environment, services can be scaled up or down dynamically based on demand,
which introduces new complexities in managing and orchestrating these services effectively.
Security is paramount in any software deployment, but achieving it without sacrificing the
agility that microservices promise is a delicate balance. With microservices containerization,
each service operates in its own isolated environment, which can enhance security. However,
managing security across numerous microservices while maintaining development speed and
agility requires careful planning and robust security practices.
Microservices often rely on other services to perform their functions, leading to complex
dependency chains. Managing these dependencies and ensuring that services are available
and responsive when needed is critical for maintaining overall system reliability and
performance. Implementing service discovery mechanisms and fault tolerance strategies can
help mitigate the impact of service failures and ensure seamless operation even in the face of
disruptions.
While microservices containerized deployment offers the ability to scale individual services
independently, scaling too aggressively or without proper planning can lead to resource
contention and performance degradation. Careful consideration must be given to resource
allocation, load balancing, and auto-scaling policies to ensure that services can handle
varying levels of demand while maintaining optimal performance and reliability.
9
1.2 Identification of Tasks:
• The first task in the identification phase is to define the project objectives clearly. This
involves understanding the goals of the microservices deployment initiative, such as
improving scalability, enhancing security, or optimizing resource utilization. By
establishing clear objectives, teams can align their efforts and prioritize tasks
accordingly.
• Once the objectives are defined, the next task is to assess the system requirements.
This involves evaluating the technical specifications, infrastructure needs, and
performance criteria necessary to support the deployment of microservices in a
containerized environment. Understanding these requirements helps teams make
informed decisions about tooling, architecture, and deployment strategies.
• Automation plays a crucial role in streamlining the deployment process and ensuring
consistency across environments. This task involves developing scripts, templates, or
configuration files to automate the provisioning, deployment, and configuration of
containerized microservices. By automating repetitive tasks, teams can accelerate
deployment cycles, reduce human error, and improve overall efficiency.
• Monitoring and alerting are essential for maintaining the health and performance of
microservices deployed in a containerized environment. This task involves setting up
monitoring tools, defining key performance indicators (KPIs), and configuring alerting
mechanisms to detect and respond to anomalies or performance degradation promptly.
By monitoring system metrics in real-time, teams can proactively identify issues and
prevent service disruptions.
• Finally, testing and validation are crucial tasks to ensure the reliability and
functionality of containerized microservices. This involves conducting unit tests,
integration tests, and end-to-end tests to verify that individual services behave as
expected and interact correctly with other components. Additionally, teams should
perform validation tests to ensure that the deployed system meets performance,
scalability, and security requirements.
1.4. Timeline
The timeline provides a structured plan for the execution of tasks and milestones outlined in
the containerization project. This section presents a timeline that delineates the anticipated
duration for each phase of the project, guiding project planning and management.
12
6. Documentation and Knowledge Transfer (Week 13-14):
• Create documentation covering architecture, deployment, and operational
procedures.
• Conduct training sessions and knowledge sharing workshops.
T. Binz, C. Fehling, F. Leymann, A. Nowak and D. Schumm [1] DevOps might be considered an
innovative approach to growth, a framework, an approach, or an entire ideology. Closing the
interaction divide among creation and operation management will be its primary goal. It recommends
using processes, technologies, and expertise that can span the whole development lifecycle for this
function.
M. Paul [2] states that the notion predates the term agile development; builders would tinker with
system management techniques and ideas to gain an improved awareness of how the application is to
be set up, whereas IT employees might periodically collaborate with the creation group to enhance
comprehension of how it works as well as ensure better performance. Thanks, with virtualization
technologies or adaptation on their own principles, an entirely novel type of mixed engineers along
with IT professionals as well as an innovative software manufacturing environment have emerged
with the introduction of DevOps.
Among the objectives underlying the DevOps methodology is to shorten the software delivery cycle
[3]. The goal aims to allow any modifications to get seamlessly built into the structure as it is still in
manufacturing, while simultaneously upholding and guaranteeing a high standard of excellence [4].
Netflix is currently using chaotic design approaches, that allow concepts such as continuous delivery
13
and deployment inside the DevOps framework [5] Balalaie et al. [6] describe the process of moving
to a monolithic mobile back-end as a service (MBAAS) to a microservice design. Apart toward the
usual pains and hardships of transitioning from old systems to service-based designs, they also
experienced some interesting things regarding the DevOps part of the procedure and the end result.
At first, it was necessary to change their development, quality assurance, and operational groups'
horizontally organizational layout to include more vertically organizations, having every level
managing the more compact functions. In their last piece, that talks about leveraging containers to
bridge the gap between the development and production stages, researchers also address the need for
system supervision. The issue of containers, an innovation that renown had only recently grown, is
scalability, as well as automatic scaling. The issue has already been studied and handled by
practitioners as well as researchers. Actually, scalability may be related with the hosts of virtual
computers or the containers in question.
Numerous answers, using a focus on the second type, enable container scalability. Notable choices
include Kubernetes from Google [7], [8], Docker Swarm in conjunction with Docker Compose [9],
[10], the native orchestrating services of Docker, and Mesos [11]. There is insufficient proof of this
capacity using the present instruments. For a client-server system, previous study has proposed layer
performance models [12], yet not in cloud- based or containerized apps. Unknown latencies must be
taken into account while using cloud, like the following paragraphs show. Structures to modify
inactive aspects, particularly efficiency, with regard of parameter estimations were given by
Woodside et al. [13] and Epifani et al. [14].
D. Lee, T. Lim and D. Arditi [15] provide a Probabilistic method for revising probability. It is
applicable to a number of formalized designs, such as Markov chains and queuing networks. The
approach employed in this research, which relies on Kalman filters, emphasizes maximizing a
complex on multi-tier efficiency models as well as how it can be utilized to dynamically adapt the
application architecture in response to shifts in volatile settings such as the cloud.
The timeline of the reported problem delves into the historical context of security
challenges within the DevOps landscape, tracing the evolution of software development
practices and their impact on security considerations. It begins with the inception of
DevOps as a response to the siloed nature of traditional software development processes,
which often led to inefficiencies and bottlenecks in the delivery pipeline. While DevOps
aimed to streamline development and deployment workflows, it initially overlooked
security concerns, prioritizing speed and agility over robust security measures.
Consequently, this approach left organizations vulnerable to a myriad of security threats
and breaches.
14
Over time, as DevOps gained widespread adoption, the shortcomings of this approach
became increasingly apparent. High-profile security incidents, such as data breaches and
system compromises, underscored the need for a more comprehensive approach to
security within the DevOps paradigm. This led to the emergence of DevSecOps, a
philosophy that integrates security practices into every stage of the software development
lifecycle. DevSecOps emphasizes proactive security measures, collaboration between
development, operations, and security teams, and automation of security processes to
ensure that security is ingrained into the DNA of software development.
The timeline also charts the development of containerization technologies, such as Docker
and Kubernetes, which have revolutionized the way applications are packaged, deployed,
and managed. While containers offer numerous benefits, including portability, scalability,
and resource efficiency, they also introduce new security challenges. The rise of
microservices architectures further complicates the security landscape, requiring robust
security mechanisms to protect interconnected and distributed services.
Overall, the timeline of the reported problem provides valuable insights into the historical
evolution of security challenges within the DevOps ecosystem, highlighting the need for a
proactive and holistic approach to security in modern software development practices.
The existing solutions section explores a wide range of approaches to addressing security
concerns within DevOps environments. These solutions encompass technological,
procedural, and cultural aspects aimed at enhancing security posture throughout the
software development lifecycle.
15
Fig 2. DevOps life-cycle, including various phases (gray and blue boxes), tools
(illustrated as cylinders), and practices.
For the testing phase, automation testing is performed to ensure compliance with software
artifact standards. In this test phase, there could also be trial versions released that are
connected to end users. For example, canary testing could be performed to reduce risk and
validate the new software for a small group of people. In the deploy phase, the code goes
into production. The codes need to be deployed in an automated process, and if there are
any major changes, then the codes should first be deployed in production for monitoring.
After the deployment stage, the operation stage begins, in which the configuration and
management of software applications are handled. In the monitoring stage, the
performance of the deployed applications is assessed. For this purpose, data are collected
and analyzed, which helps to identify problems and elicit feedback for iterative
improvement of the software
Continuous deployment is a process that helps to deploy software codes quickly and
automatically by maintaining a standard of quality. During the process of continuous
deployment, there is no need for any manual phases or developer decision making for any issues
related to production deployment. Skelton and O’Dell have also suggested that continuous
deployment is an approach in which automated tests are conducted while developers commit
new features. Continuous deployment is a good way to gather feedback from users, which also
reduces production costs.
Continuous development consists of the combination of two phases, which include planning
and coding. In this phase, the aim of the project is determined, and the developers start
generating codes for the specific application. Some of the DevOps tools that are used in this
phase include JIRA and Git. This is a very essential phase in the DevOps life cycle.
Continuous testing is the stage where the developed application goes through continuous tests
to detect bugs. There are various automation tools to support the testing process. According
to Zimmerer continuous testing has two characteristics. There could be testing for the whole
life-cycle, meaning testing continuously from the beginning to the end, or strategic test
automation, meaning tests are continuously adapted and executed based on the requirements .
Continuous integration is a process that combines various steps, such as code compilation, code
validation coverage, testing acceptance, compliance of coding standards, and deployment
package building. Continuous integration initiates faster feedback for the developers by
detecting integration errors. To maintain a good practice, developers need to integrate their
work onto a common repository on a daily basis. According to Laukkanen et al. each
integration should be followed by building and testing, so that the system can remain functional
after new changes are introduced by developers. This iteration of integration, source code
testing, and fixing problems will efficiently increase system progress
Monitoring is another important stage in the DevOps lifecycle. According to Schloss Nagle,
monitoring is a system for observing and determining the correctness of the system’s behaviour.
This is a phase in which the developers continuously monitor the performance of the software
system. In the monitoring phase, all information related to the software application is given
earlier, so that vital information can be processed quickly to recognize the application.
17
validation, output encoding, and proper error handling, to mitigate common security
vulnerabilities like injection attacks and cross-site scripting (XSS). Code review processes
involve peer reviews of code changes to identify security flaws and ensure adherence to
security guidelines. Security testing methodologies, such as penetration testing and fuzz
testing, involve systematically probing applications for vulnerabilities and weaknesses.
Citation Analysis:
Citation analysis involves examining the frequency and patterns of citations within
the DevOps security literature. By analyzing which publications are most
frequently cited, researchers can identify influential works that have significantly
contributed to the development of the field. Furthermore, citation analysis allows
researchers to trace the flow of ideas and concepts across different publications,
providing insights into the intellectual lineage of DevOps security research.
18
Fig 3. Analysis and flow of throughput of etcd.
Co-Citation Analysis:
Co-citation analysis explores the relationships between publications based on the
frequency with which they are cited together by other works. By identifying
clusters of co-cited publications, researchers can uncover thematic trends and
research communities within the DevOps security literature. Co-citation analysis
enables researchers to map out the intellectual structure of the field, highlighting
core concepts, seminal works, and interdisciplinary connections.
Bibliographic Coupling:
Bibliographic coupling involves analyzing the similarities between publications
based on their shared references. By examining which publications cite similar sets
of references, researchers can identify clusters of related works and assess the
cohesion of research communities within the DevOps security literature.
Bibliographic coupling provides insights into the degree of scholarly consensus
around key topics and methodologies, as well as the presence of distinct research
paradigms or schools of thought.
Practical Implications:
Bibliometric analysis provides researchers, practitioners, and policymakers with
valuable insights into the current state of DevOps security research. By
synthesizing quantitative data on citation patterns, thematic clusters, and emerging
trends, bibliometric analysis enables stakeholders to make informed decisions
about resource allocation, research priorities, and strategic investments in the field.
Furthermore, bibliometric analysis fosters a deeper understanding of the
intellectual landscape of DevOps security, facilitating interdisciplinary
collaboration and knowledge exchange among diverse stakeholders.
Key Insights:
The review summary encapsulates the key insights gleaned from the literature
review and bibliometric analysis, including seminal works, influential research
communities, and emerging research trends. By synthesizing diverse sources of
information, the review summary offers a panoramic view of the intellectual
landscape of DevOps security, identifying areas of consensus, controversy, and
innovation.
Research Gaps:
In addition to highlighting existing knowledge and trends, the review summary
identifies important gaps and unresolved questions in the literature on DevOps
security. These gaps may relate to theoretical frameworks, methodological
approaches, empirical evidence, or practical implications. By articulating research
20
gaps, the review summary sets the stage for future inquiry and innovation, guiding
researchers toward fruitful avenues for further investigation.
Future Directions:
Finally, the review summary outlines potential avenues for future research and
inquiry in the field of DevOps security. By identifying unanswered questions,
unresolved controversies, and emerging trends, the review summary inspires
researchers to push the boundaries of knowledge and explore new frontiers in
DevOps security research. Future research directions may include interdisciplinary
collaborations, methodological innovations, and empirical studies aimed at
addressing pressing challenges and advancing the state of the art in DevOps
security.
21
2.4. Problem Definition
The problem definition articulates the core challenges and issues addressed by
research in DevOps security. It provides a clear and concise statement of the
problem domain, setting the stage for the formulation of research questions and the
development of theoretical frameworks and methodologies.
Problem Context:
In the context of DevOps, where software development and deployment cycles are
accelerated through continuous integration and continuous delivery (CI/CD)
pipelines, security vulnerabilities and threats pose significant risks to organizations.
Traditional security measures often struggle to keep pace with the rapid pace of
DevOps practices, leading to gaps in security controls, inadequate threat detection,
and increased exposure to cyber attacks.
Key Challenges:
The problem definition identifies key challenges and pain points faced by
organizations in securing DevOps environments. These challenges may include:
22
2.6. Goals and Objectives
The goals and objectives outline the overarching aims and specific targets of
research in DevOps security. They provide a roadmap for addressing the identified
challenges and research questions, guiding the development of research
methodologies, experiments, and evaluation criteria.
Goals:
The goals of research in DevOps security encompass broad objectives aimed at
advancing knowledge, improving practices, and enhancing security posture in
DevOps environments. These goals may include:
Objectives:
The objectives of research in DevOps security specify measurable targets and
outcomes that support the achievement of broader goals. These objectives may
include:
23
3. Promoting Adoption: To disseminate research findings, best practices, and
guidelines to industry practitioners, policymakers, and the academic community,
fostering the adoption of secure DevOps practices and technologies.
By defining clear goals and objectives, research in DevOps security can drive
meaningful advancements in the field, inform policy and practice, and ultimately
contribute to a safer and more secure digital ecosystem.
DESIGN FLOW/PROCESS
Containerization Technology:
Selection: Docker is chosen for its lightweight, portable runtime environment, facilitating the
encapsulation of microservices into containers. Kubernetes is selected for its powerful
orchestration capabilities, enabling automated deployment, scaling, and management of
containerized applications.
Reasoning: Docker and Kubernetes are industry-standard tools widely adopted for
containerization and orchestration, offering robust features and community support.
Deployment Strategies:
Feature: Blue-green deployment, canary deployment.
Selection: Blue-green deployment is chosen for its ability to minimize downtime and risk by
running two identical production environments, allowing for seamless updates. Canary
deployment is selected for gradually rolling out updates to a subset of users to mitigate risks.
Reasoning: These deployment strategies provide flexibility and reliability in rolling out
updates to microservices while minimizing disruptions to the application's availability and
performance.
24
Networking Configurations:
Feature: Service discovery, load balancing
.
Selection: Kubernetes-native solutions such as Kubernetes Service and Ingress are chosen
for service discovery and load balancing. Network policies are implemented to control traffic
flow between microservices and enforce security policies.
Reasoning: These networking configurations ensure seamless communication between
microservices, efficient traffic routing, and robust security measures to protect against
unauthorized access.
Selection: Docker Hub is chosen as a public registry for hosting and sharing Docker images.
Google Container Registry and Amazon Elastic Container Registry are selected for private
registry options with integrated security features.
Reasoning: The selection of these container image registries offers flexibility in image
management, with options for public and private repositories and built-in security controls to
safeguard sensitive data.
Selection: Prometheus and Grafana are chosen for their compatibility with Kubernetes and
ability to provide comprehensive monitoring and visualization of containerized applications.
The ELK Stack is considered for log management and analysis.
Reasoning: These logging and monitoring solutions offer real-time insights into the
performance, health, and behavior of containerized applications, enabling proactive
monitoring, troubleshooting, and optimization.
Security Features:
Feature: Role-based access control (RBAC), network policies, encryption.
Selection: RBAC is implemented for granular access control to Kubernetes resources.
Network policies are enforced to restrict traffic between microservices and external sources.
25
Encryption mechanisms such as Transport Layer Security (TLS) are employed to secure
communication channels and data at rest.
Reasoning: These security features help mitigate security risks associated with containerized
environments, ensuring data confidentiality, integrity, and availability while adhering to
compliance requirements and industry best practices.
Auto-scaling:
Feature: Horizontal Pod Autoscaler (HPA), Cluster Autoscaler.
Selection: Horizontal Pod Autoscaler (HPA) is chosen for automatically adjusting the
number of replica pods in a deployment based on observed CPU utilization or other custom
metrics. Cluster Autoscaler is selected to automatically adjust the size of the Kubernetes
cluster based on resource demands.
Reasoning: Auto-scaling features ensure optimal resource utilization and application
performance by dynamically adjusting the number of running instances based on workload
demand, thereby minimizing costs and maximizing efficiency.
Secrets Management:
Feature: Kubernetes Secrets, HashiCorp Vault.
Selection: Kubernetes Secrets is used for storing and managing sensitive information such as
API keys, passwords, and certificates within Kubernetes clusters. HashiCorp Vault is
considered for more advanced secrets management and encryption capabilities.
Reasoning: Effective secrets management is essential for securing sensitive data and
credentials used by microservices. Kubernetes Secrets provides native support for managing
secrets within the Kubernetes ecosystem, while HashiCorp Vault offers additional features
such as encryption, access control, and audit logging.
27
Fig 4. Architecture of ETCD after data encryption
1. Resource Limitations:
• Constraint: Limited computing resources such as CPU, memory, and storage
may impose constraints on the scalability and performance of containerized
28
applications.
• Impact: Resource limitations can affect the deployment and scaling of
microservices, leading to potential bottlenecks and performance degradation.
• Mitigation: Efficient resource management strategies, including resource
requests and limits, vertical and horizontal scaling, and optimization of
containerized workloads, are implemented to mitigate the impact of resource
constraints.
29
• Mitigation: Robust security measures, including encryption, access control,
network segmentation, and vulnerability management, are implemented to
safeguard containerized workloads and ensure compliance with relevant
regulations and standards.
4. Network Limitations:
• Constraint: Network limitations, such as bandwidth constraints, latency, and
network connectivity issues, may affect the communication and performance of
containerized microservices.
• Impact: Network bottlenecks and failures can disrupt communication between
microservices, leading to degraded application performance and availability.
• Mitigation: Implementing network redundancy, load balancing, caching, and
optimizing network configurations help mitigate the impact of network
limitations and ensure reliable communication between microservices.
30
6. Vendor Lock-in:
• Constraint: Dependency on proprietary containerization platforms and vendor-
specific tools may result in vendor lock-in, limiting flexibility and portability.
• Impact: Vendor lock-in can inhibit interoperability and hinder migration
between different containerization platforms and cloud providers.
• Mitigation: Embracing open standards, adhering to cloud-agnostic design
principles, and adopting container orchestration tools with multi-cloud support
help mitigate the risk of vendor lock-in and promote flexibility and portability
7. Regulatory Compliance:
• Constraint: Adherence to regulatory requirements and industry standards, such
as GDPR, HIPAA, or PCI DSS, imposes constraints on data handling, storage,
and processing within containerized environments.
• Impact: Non-compliance with regulatory mandates can lead to legal
repercussions, fines, and reputational damage for organizations, particularly in
highly regulated industries.
• Mitigation: Implementing robust data governance policies, encryption
mechanisms, audit trails, and compliance monitoring tools helps ensure
adherence to regulatory frameworks and maintain data integrity and
confidentiality within containerized workloads.
31
Fig 5. The synthesized framework of critical success factors.
To address the lack of a comprehensive model of the CSFs of DevOps, we have developed a
synthesized model from our findings. The model is built on top of the identified factors and
categories. In this model, we suggest that technical factors and organizational factors (intra-
organizational collaboration, organization hierarchy, and strategic planning) would directly
impact DevOps success. These two relationships are supported by the technology-organization
environment (TOE) framework [106,107], which suggests that both technological and
organizational factors directly impact the adoption of technology in an organization. These two
relationships have also been empirically verified in prior information systems and management
science literature [108–110]. Following these findings, we suggest that these two factors can
also drive DevOps cloud-based organizations. We propose that the social and cultural factors
(team dynamics and cultural shift) would moderate the effects of both technical and
organizational factors on DevOps success [111,112]. The justification of such moderating
effects is rooted in the differences among different cultures in terms of
individualism/collectivism, power distance, uncertainty avoidance, and masculinity/femininity
[113]. Prior literature on IT adoption has also empirically shown culture to be a moderator.
32
This implies that the effects of technical and organizational factors might vary depending on
the culture. In addition, social and cultural factors might directly also impact DevOps success.
However, we note that the actual relationships can be explored in future research by collecting
empirical data from organizations that use DevOps. Furthermore, it might be that not all-
important CSFs have already been identified, as the current review is based only on peer
reviewed literature, and the model might need to be updated after the field has matured. In
addition, we hope the proposed framework could be used as a starting point to understand
DevOps CSFs and how to tackle challenges in an organization. Specifically, this model can
help raise awareness of DevOps practices among practitioners and DevOps professionals.
Despite its usefulness, we think that empirical data through surveys and interviews with
different organization professionals working with DevOps will be needed to validate this
model. This will also ensure the applicability of the proposed framework. After empirical
validation, and when the field matures more, new factors can be added, or some factors that
will not have a significant impact on success can be removed from the framework.
33
• Constraint: Managing stateful data and ensuring data persistence within
containerized environments pose challenges due to the ephemeral nature of
containers and the need for durable storage solutions.
• Impact: Data loss or corruption, inconsistent data management practices, and
lack of data durability can compromise application reliability and data integrity.
• Mitigation: Leveraging container orchestration platforms with support for
persistent storage volumes, implementing data replication and backup strategies,
and utilizing database management systems with built-in resilience features help
address data management challenges and ensure data persistence in containerized
applications.
34
• Impact: Insufficient funding and budget constraints can limit the scalability,
scope, and capabilities of containerization initiatives, hindering the achievement
of project objectives and deliverables.
• Mitigation: Conducting cost-benefit analyses, optimizing resource utilization,
exploring cost-effective cloud services and infrastructure options, and
prioritizing investments based on business value help mitigate budget and cost
constraints, ensuring the successful execution of containerization projects within
allocated budgets and resources.
• across different environments.
1. Feature Analysis:
35
b. Networking and Service Discovery:
a. Resource Limitations:
37
• Establishes a robust CI/CD pipeline to automate the build, test, and
deployment processes for containerized microservices. Incorporates version
control, automated testing, and deployment orchestration tools to ensure
rapid and reliable delivery of software updates to production environments.
7. Microservices Orchestration:
38
• Integrates distributed tracing and logging solutions to gain visibility into the
performance and behavior of microservices across distributed environments.
Utilizes tools like Jaeger, Zipkin, or ELK stack to trace requests, analyze
logs, and diagnose performance bottlenecks in real-time.
By incorporating these additional points into the "Design Flow" section, the report
39
provides a comprehensive overview of the design considerations and implementation
strategies involved in containerizing microservices and deploying them in production
environments. It underscores the importance of adopting best practices, leveraging
automation, and embracing modern technologies to ensure the scalability, reliability, and
agility of containerized microservices architectures.
The design flow delineates the sequential steps and methodologies employed in developing
the containerization solution for microservices, as informed by insights from the research
paper. This section elaborates on the design flow, encompassing the evaluation, planning,
implementation, and validation stages of the project.
1. Evaluation of Requirements:
• Analysis: The initial phase involves evaluating the requirements and objectives
of the containerization project, including scalability, reliability, security, and
performance considerations. This assessment is informed by insights from the
research paper, which highlights the importance of integrating security
measures and compliance requirements into the design process.
• Action: Stakeholder consultations, requirements workshops, and analysis of
existing infrastructure and application architectures are conducted to gather
insights and define project objectives and constraints.
40
2. Planning and Architecture Design:
• Analysis: Based on the identified requirements and constraints, a detailed plan
and architecture design are formulated to guide the implementation of the
containerization solution. This phase entails selecting appropriate container
orchestration platforms, networking models, security mechanisms, and
monitoring tools, as informed by insights from the research paper.
• Action: Architecture diagrams, deployment models, and infrastructure
specifications are created to visualize the proposed solution and facilitate
stakeholder understanding and buy-in. Consideration is given to factors such as
high availability, fault tolerance, and disaster recovery in designing the
architecture.
Essentially, this section will discuss the architecture of containers and address the issue with
container deployment databases that arises with the Kubernetes component, i.e., etcd. This
design has a cluster at the top, on which several nodes are operating, numerous pods
operating on the node, and multiple containers operating on the pod.
42
Now the authors are going to focus on the Kubernetes architecture and how the deployment
happens, and they will look at their architecture in detail. It orchestrates microservice
deployments within a packaged ecosystem using Kubernetes, a powerful. containerization
orchestration tool. Kubernetes enables autonomous deployment, scaling, and management of
microservices, ensuring efficient utilization of resources and continuous pod inspection. In
the given fig. 2 hierarchy of Kubernetes has been illustrated.
Kubernetes optimizes the whole deployment procedure by utilizing manifest documents to set
up the ideal settings. These settings specify the number of pods to be deployed, the amount of
assets needed to run them, and additional deployment parameters. Kubernetes subsequently
employs constraints along with readily accessible assets to plan to deploy pods, or containers,
to form cluster nodes.
Kubernetes continuously monitors the state of health and functionality of the pods running
within the entire cluster. It collects information on several aspects, such as CPU and memory
use, pod preparedness, and connectivity to the network. Watching systems such as
Prometheus gather such data and preserve it for further examination and visualization.
Automated Correction:
Kubernetes uses auto-healing mechanisms to ensure the reliability and accessibility of
microservices. When an error or shortage of resources causes a container to grow sick or
incoherent, Kubernetes instantly detects the issue and initiates steps to fix it. This may
include ramping up more copies, moving the pod to a safe node, or rebooting them just to
maintain the necessary reliability.
43
A horizontal Pod Self-scaling:
This characteristic of Kubernetes enables a cluster to change the number of pod replicas in
response to traffic needs. For best efficiency and resource consumption, HPA adjusts the
number of duplicates according to factors it tracks, like CPU use or customized
measurements.
The authors here have examined the internal design of etcd, an internal Kubernetes
component that functions essentially as a distributed file system and database. It works on
NoSQL databases. Therefore, the authors can say that data related to clusters, containers, and
pods is handled by Kubernetes components, i.e., ETCD.
Further apart, talking about ETCD, it is a special database that is distributed, highly
consistent, key-value stored, and last but not least, it is the only stateful component of the
whole Kubernetes components. For tasks like managing configurations, and finding
configurations it is used like an authentic database, which stores all the information and
makes the process smoother. The design on which ETCD is built is of high reliability and has
failure tolerance and stability.
The design selection phase involves making informed decisions regarding the specific
technologies, frameworks, and methodologies to be employed in the containerization solution
for microservices. Drawing insights from the research paper and considering project
requirements, this section outlines the rationale behind the selection of key design elements
and components.
44
• Selection: Kubernetes Service Discovery and DNS-based service discovery are
adopted for facilitating communication and discovery between microservices
within the Kubernetes cluster. These native features of Kubernetes simplify
service discovery and enable seamless communication between distributed
components.
• Selection: Kubernetes RBAC and Pod Security Policies (PSP) are prioritized
for enforcing security policies and access control within the Kubernetes cluster.
These native Kubernetes features provide granular control over access rights
and security configurations.
45
mitigating security risks.
By carefully evaluating the features and capabilities of various design options and aligning
them with project requirements and objectives, the containerization solution for microservices
is designed to leverage the strengths of Kubernetes and complementary technologies. This
design selection process ensures the adoption of suitable tools and methodologies that enable
efficient, scalable, and secure deployment and management of microservices architectures.
Code:-
{
"application_owner_request": {
"date": "01-03-2017",
"user_id": "usr_34675",
"requests": [
{
"microservice": "ms1",
...
},
{
"microservice": "ms2",
"instance_mean": 10,
"instance_var": 5.0,
"qom_constraints": {
"constraints": [
46
{
"dimension": "d0",
"name": "status",
"trans_policy": "none",
"acc": "none",
"prec": "none",
"metrics": [
{
"metric": "m8",
"name": "CONT CPU usage",
"sampling": 60000,
"prec": "detailed"
}
]
},
{
"dimension": "d1",
"name": "Performance",
"trans_policy": "ALL",
"sampling": 60000,
"prec": "detailed"
},
{
"dimension": "d2",
"name": "Sustainability",
"trans_policy": "XOR",
"sampling": 1800000,
"prec": "trend"
47
}
]
}
},
{
"microservice": "ms3",
...
}
],
"dep_constraints": [
{
"ms_list": ["ms1", "ms2"],
"type": "same"
},
{
"ms_list": ["ms1", "ms3"],
"type": "diff"
},
{
"ms_list": ["ms1"],
"type": "pref",
"providers": ["cp3"]
}
],
"budget": {
"currency": "$",
"maxbudget": 1000,
"estimated": 700
48
}
}
}
49
50
51
52
This code demonstrates how to encrypt and decrypt data using AES-GCM encryption and
store/retrieve it in/from etcd. Make sure to handle errors appropriately and replace the dummy
encryption key with a secure key management solution in production.
53
54
This YAML file defines a Deployment with three replicas of a container running a busy loop
that consumes CPU resources continuously. Adjust the cpu and memory limits according to
your cluster's capacity and requirements.
This will create the Deployment and start the specified number of replicas of the heavy
workload. You can then monitor the resource usage of the pods using commands like kubectl
top pod or view detailed resource metrics in Kubernetes dashboard tools like Prometheus and
Grafana.
55
Output:
Systems like ETCD will prove beneficial for large businesses because they have worked on
security and authentication, and the main thing is that the admin can identify the scammers who
usually try to hack our data systems.
It reduces the risk of storing private data in ETCD by making it typical for unauthorized users
to access this private data, which may be a big loss to the users. In the whole system of an
ETCD, the protocol that is mostly being used is TLS (Transport Layer Security).
56
Fig.9. The analysis of the metrics
The number of microservices from their distribution and solving the expected value problem
(taking the average instance value as a benchmark). If the application owners are more risk
adverse, they can use some quantiles instead of the expected value. The two distributions
obtained using the two approaches are shown in Fig. 5. The lines represent the density of the
normal distributions that best fit the data. As can be observed, the mean value of the cost
distribution obtained from the solution of the average value problem is 1 percent lower than the
one from the solution obtained by using the 0.9 quantile. This difference reduces the length of
the right tail of the distribution of the costs. Furthermore, in order to verify that this increment
in the cost decreases the risk of paying more, we define a risk measurement close to the
Expected Shortfall consisting of the expected value of the right tail of the distribution above a
certain quantile.
while it grows exponentially with the number of metric measurements (maximum time 55
seconds). As concerns the number of cloud providers, we observed a linear growth and solving
the problem with 200 cloud providers required 300 seconds. However, with a more realistic
number of 50 cloud providers, the problem is solved in 50 seconds. In order to discover the
scalability limits for our approach, we also considered an extreme setting, with 800 metric
measurements, 100 microservices, and 10 cloud providers, taking 3,400 seconds (around 58
min). If we take 3 min as a maximum time limit, a feasible problem size might include 100
metric measurements, 1,500 microservices and 50 cloud providers, which is a more than
reasonable configuration. It should be pointed out that this solution method is used at design
time, hence a response time measured in minutes and not seconds is acceptable. The resolution
58
time allows also the application owner to iterate the process several times, changing
requirements by either adding or relaxing constraints, in order to find the most suitable solution.
The challenges and patterns for monitoring microservices are described in [15]. In an
application split into several microservices, the authors pointed out that it is difficult to detect
the cause of a failure at run time.
The authors provide a model for guiding decisions with a view to selecting the best monitoring
system for a specific microservice architecture. Dealing with the development of applications
requiring the interaction with different providers increases the complexity of managing the
application itself. As discussed there is a rich variability in the configuration options offered by
cloud providers, and managing this variability is not an easy task.
As in our work, the authors support the assignment of microservices to cloud providers with a
matchmaking mechanism between the cloud provider capabilities and the developer
requirements but, unlike our approach, they do not focus on the monitoring aspects. Although
points out that this is one of the most important issues in microservices literature, most existing
studies analyse how to measure a single or several microservices to assess to what extent the
SLAs are satisfied or how to manage the resulting application.
The problem of dealing with heterogeneous cloud providers is not considered at all. When such
heterogeneity is taken into account, the approach is usually provider-centric and focuses on
solutions to mask the heterogeneity of the adopted monitoring platforms by means of a common
interface. Our aim is to consider multi-cloud solutions with a client-centric perspective: the
end-user is the application that coordinates access to and utilization of different cloud providers
to meet the application requirements.
Here, a cloud broker, as seen by the NIST facilitates the relationships between providers and
the application owners (consumers) by providing an intermediation service. In this paper, the
matchmaker (a sort of cloud broker) supports the cloud consumer in the deployment of the
application by providing a deployment strategy that optimises the monitoring capabilities
required by the application. Dealing with different providers entails mediating between
different models used to describe dimensions and monitoring metrics.
Here, Semantic Web techniques can enable the knowledge base to be developed and managed.
Indeed, semantic technologies are gaining increasing attention also in cloud computing sphere
and, specifically with regard to monitoring issues.
In linked data are used to handle the heterogeneity of the collected data, whereas provides a
semantic meta-model for classifying dimensions and metrics. Metric customisability is a
relevant issue as witnessed by the existence of several cloud platforms, differing in terms of:
(i) the set of metrics provided by the monitoring system;
(ii) sampling times for each metric;
(iii) the costs of hosting the application (or microservice);
59
(iv) the flexibility in terms of the option of adding new metrics or reducing sampling rate at an
additional cost. On-demand, customised metrics can be requested on several platforms and
monitoring solutions like Nagios, PCMONS, and Sensus15.
Nonetheless, application owners may be unable to find the provided metrics. Some work has
modelled and discovered the relations between different metrics that can contribute to a
knowledge base for predicting the value of a missing metric. In this way, the application owner
may be able to collect information about the desired metric even if the actual value is not
directly provided by the monitoring system
The information that the admin has in ETCD will be moving from one node to another;
therefore, there might be a chance of a breakdown of the containers, and information can be
leaked. Therefore, it provides security by encrypting and decrypting the data.
Sometimes data is in the rest position; it can neither move nor be shared with anyone; therefore,
it is also necessary to encrypt the data, which will provide security such that whatever
information, i.e., private or public, will be stored safely. Sensitive information is abstracted
from customers to protect it from any unwanted usage, and it is done by restricting usage of
ETCD and by using an advanced client authentication system and access rules. The permission
part here is handled by role-based access control, and it guarantees that only those who have
permission can interact with ETCD.
Giving regular updates to the security system of ETCD with the most advanced security
measures helps in avoiding hackers taking unusual advantage and accessing sensitive
information. To ensure all the ETCD clusters are safe and protected, all the updates can be
deployed in very little time, providing real-time security updates. By using this, businesses now
know who can access information in ETCD, and they can track down any unusual behaviour
by implanting devices that record and audit the system.
Continuously monitoring any kind of malicious activity and unwanted access attempt helps in
taking care of safety.
At last, the conclusion of this paper is that due to the complex vulnerability, there is a chance
of the container breakdown, so secure it. The author just implemented the security on the
database, i.e., ETCD.
In the ETCD, most of the time, data is not encrypted, which will make it easier for hackers to
hack it. With the help of TLS (Transport Layer Security), security is enhanced, which provides
the encryption and decryption of the data while transferring it from one place to another.
For compatibility and reliability, we just handle 70% of the security from the admission
controller system. A tool like Kyverno will help to change the policy according to the situation
at any time. The biggest advantage is that we will implement a procedure in the ETCD so that
we get the logs of every user who is trying to enter in our database, and the system will check
if the user's authentication and authorization are valid or not; if they're not, it will block them.
60
CONCLUSION AND FUTURE WORK
5.1. Conclusion:
The conclusion section serves to summarize the key findings, insights, and implications
derived from the containerization project for microservices. It encapsulates the outcomes of
the project and presents a holistic perspective on its significance and contributions to the field
of software engineering and DevOps practices.
1. Summary of Findings:
• Recapitulates the main findings and results obtained from the containerization
project, including the successful implementation of the containerized
microservices architecture, adherence to security and compliance standards, and
achievement of performance and scalability objectives.
2. Achievement of Objectives:
• Assesses the extent to which the project objectives, as outlined in Chapter 1,
have been met. Highlights the successful fulfilment of requirements, such as
scalability, reliability, security, and compliance, within the containerized
infrastructure.
4. Lessons Learned:
• Identifies key lessons learned and insights gained from the containerization
project, including best practices, challenges encountered, and strategies for
overcoming obstacles. Discusses areas for improvement and optimization in
future projects.
61
5. Contributions to Knowledge:
• Highlights the contributions of the containerization project to the body of
knowledge in software engineering, DevOps, and microservices architecture.
Emphasizes novel insights, methodologies, and approaches developed during
the course of the project.
7. Acknowledgments:
• Expresses gratitude to individuals, teams, and organizations that contributed to
the success of the containerization project. Recognizes the efforts of
stakeholders, collaborators, and supporters in facilitating project execution and
outcomes.
•
62
12. User Experience and Accessibility:
• Focuses on improving the user experience and accessibility of containerized
applications for developers, operators, and end-users. Investigates usability
enhancements, documentation improvements, and developer tooling to
streamline workflows, facilitate collaboration, and empower stakeholders to
leverage the containerized infrastructure effectively.
The conclusion section encapsulates the essence of the containerization project, distilling its
findings, implications, and recommendations into a coherent narrative. It underscores the
value and significance of the project outcomes while providing insights and guidance for
future endeavours in containerization, microservices architecture, and DevOps practices.
63
5.2. Future work
The future work section outlines potential avenues for further exploration,
refinement, and expansion of the containerization project for microservices. It
identifies opportunities for ongoing development, optimization, and
innovation, guiding future research and initiatives in the field.
64
mechanisms, such as runtime security monitoring, vulnerability scanning,
and encryption techniques, to mitigate emerging threats and ensure
regulatory compliance.
65
9. Edge Computing Integration:
REFERENCES
[1] T. Binz, C. Fehling, F. Leymann, A. Nowak and D. Schumm, “Formalizing the Cloud through
Enterprise Topology Graphs,” IEEE Fifth International Conference on Cloud Computing, 2012.
[2] M. Paul, “Fill the Gap Between CI and CD Pipelines With Continuous Testing - DZone DevOps,”
dzone.com, 2017. [Online]. Available:https://dzone.com/articles/fill-the-gap-between-ci-andcd-
pipelines-with-cont.
[3] D. Stahl, K. Hallen, and J. Bosch, “Achieving traceability in large scale continuous integration and
delivery deployment, usage, and validation of the Eiffel framework,” Empirical Software
Engineering, vol. 22, no. 3, pp. 967-995, 2016. Available: 10.1007/s10664-016-9457-1.
[4] K. Wiklund, S. Eldh, D. Sundmark, and K. Lundqvist, “Impediments for software test automation:
A systematic literature review,” Software Testing, Verification and Reliability, vol. 27, no. 8, p.
e1639, 2017. Available: 10.1002/stvr.1639.
67
[5] G. Adzic, “Bridging the Communication Gap: Specification by Example and Agile Acceptance
Testing,” London: Neuri, 2009.
[6] M. Ilyas, “Software Integration Challenges for GSD Vendors: An Exploratory Study Using a
Systematic Literature Review,” Journal of Computers, pp. 416-422, 2017. Available:
10.17706/jcp.12.5.416- 422.
[7] R. Vaasanthi, S. Philip and V. Prasanna, “Comparative Study of DevOps Build Automation Tools,”
International Journal of Computer Applications, vol. 170, no. 7, pp. 5-8, 2017. Available:
10.5120/ijca2017914908.
[8] M. Shahin, M. Ali Babar, and L. Zhu, “Continuous Integration, Delivery and Deployment: A
Systematic Review on Approaches, Tools, Challenges, and Practices,” IEEE Access, vol. 5, pp.
3909- 3943, 2017. Available: 10.1109/access.2017.2685629.
[9] M. Meyer, “Continuous Integration and Its Tools,” IEEE Software, vol. 31, no. 3, pp. 14-16, 2014.
Available: 10.1109/ms.2014.58.
[10] L. Chen, “Continuous Delivery: Huge Benefits, but Challenges Too,” IEEE Software, vol. 32,
no. 2, pp. 50-54, 2015. Available: 10.1109/ms.2015.27.
[11] S. Asmus, A. Fattah and C. Pavlovski, “Enterprise Cloud Deployment: Integration Patterns and
Assessment Model,” IEEE Cloud Computing, vol. 3, no. 1, pp. 32-41, 2016. Available:
10.1109/MCC.2016.11.
[14] J. Kanjilal, “DevOps - Bridging the Gap between Dev and Ops – InsightsSuccess,:
InsightsSuccess, 2017. [Online]. Available:https://www.insightssuccess.com/devopsbridging-the-
gapbetween-dev-and-ops/.
[15] D. Lee, T. Lim and D. Arditi, “Automated stochastic quality function deployment system for
measuring the quality performance of design/build contractors,” Automation in Construction, vol.
18, no. 3, pp. 348-356, 2009. Available: 10.1016/j.autcon.2008.10.002.
68
[16] D. Farley and J. Humble, “Continuous delivery,” Addison-Wesley Professional, 2010.
[17] D. Stahl and J. Bosch, “Modeling continuous integration practice differences in industry
software development,” Journal of Systems and Software, vol. 87, pp. 48-59, 2014. Available:
10.1016/j.jss.2013.08.032.
[18] M. Virmani, “Understanding DevOps and bridging the gap from continuous integration to
continuous delivery,” Fifth International Conference on the Innovative Computing Technology,
2015.
[20] M. Virmani, "Understanding DevOps and Bridging the Gap from Continuous Integration to
Continuous Delivery", Proc. 5th Int’l Conf. Innovative Computing Technology, pp. 78-82, 2015.
[21] D. Spinellis, “Don’t Install Software by Hand,” IEEE Software, vol. 29, no. 4, pp. 86-87, 2012.
[24] F. Liu, et al., NIST Cloud Computing Reference Architecture: Recommendations of the National
Institute of Standards and Technology (Special
Publication 500–292). North Charleston, SC, USA: Createspace Independent Publishing, 2012.
[25] A. Sheth and A. Ranabahu, “Semantic modeling for cloud computing, Part 1,” IEEE Internet
Comput., vol. 14, no. 3, pp. 81–83,
May/Jun. 2010.
[28] G. Aceto, A. Botta, W. de Donato, and A. Pescap, “Cloud monitoring: A survey,” Comput.
Netw., vol. 57, no. 9, pp. 2093–2115, 2013.
[30] J. Gao, “Machine Learning Applications for Data Center Optimization,” Google, 2014.
[35] D. Palma and S. Moser, Eds., “Topology and orchestration specification for cloud applications v.
70
1.0,” 2013. [Online]. Available: http://
docs.oasis-open.org/tosca/TOSCA/v1.0/os/TOSCA-v1.0-os.pdf
71