KEMBAR78
DevOps Phases Cheat-Sheet | PDF | Software Development Process | Agile Software Development
0% found this document useful (0 votes)
42 views5 pages

DevOps Phases Cheat-Sheet

The document discusses the integration of DevOps within the Software Development Lifecycle (SDLC), emphasizing the importance of collaboration between development and operations teams to enhance efficiency and quality of software delivery. It outlines various phases of DevOps, including Continuous Business Planning, Collaborative Development, Continuous Testing, Continuous Release & Deployment, Continuous Monitoring, and Continuous Customer Feedback, along with the tools that support each phase. The paper also highlights the challenges organizations face in adopting DevOps and the significance of selecting appropriate tools for successful implementation.

Uploaded by

Shantanu Mishra
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)
42 views5 pages

DevOps Phases Cheat-Sheet

The document discusses the integration of DevOps within the Software Development Lifecycle (SDLC), emphasizing the importance of collaboration between development and operations teams to enhance efficiency and quality of software delivery. It outlines various phases of DevOps, including Continuous Business Planning, Collaborative Development, Continuous Testing, Continuous Release & Deployment, Continuous Monitoring, and Continuous Customer Feedback, along with the tools that support each phase. The paper also highlights the challenges organizations face in adopting DevOps and the significance of selecting appropriate tools for successful implementation.

Uploaded by

Shantanu Mishra
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
You are on page 1/ 5

DevOps phases across Software Development Lifecycle

Mayank Gokarna, DevOps and Cloud Architect,


IBM India Pvt Ltd. Email: mgokarna@in.ibm.com

Abstract: DevOps is the combination of 1. Introduction


cultural mindset, practices, and tools that The objective of DevOps is to make the
increases a team's ability to release applications software delivery lifecycle as efficient as
and services at high velocity. The development possible to enable more business change to be
and operations teams always have a conflict delivered and, ultimately, so efficient that
around the scope of responsibility. With these business change can be delivered continuously.
differences the quality and speed of delivery DevOps is implemented through a combination
across software Development Life Cycle is of people, process and tooling. Continuous
negatively impacted. DevOps is about Integration and Continuous Delivery also
removing the barriers between two traditionally known as CI/CD are a critical component in
delimited teams, development and operations. DevOps [2]. CI/CD enables to deliver the code
faster and securely. DevOps emphasizes on
With DevOps, these two teams work together to
people working together and accepting the
optimize both the productivity of developers change [3]. It helps in releasing of high-quality
and the reliability of operations. They strive to software and at a faster delivery speed. It
communicate frequently, increase efficiencies, encourages a culture of open-mindedness,
and improve the quality of services they predictability, cross-skill training and
provide. They take full ownership for their performing shared tasks. Often implementing
services, often beyond where their stated roles DevOps is easier said than done. For solving the
or titles have traditionally been scoped. problem of integration between different
Transitioning to DevOps requires a change in environments and tools, DevOps tools play a
culture and mindset first. It is quite difficult to critical role [4]. These tools once implemented
persuade a whole company to change its culture blend different systems together and work in a
at once [1]. This paper aims to bring different continuous serving fashion enabling any
change in the source code to propagate across
phases of software development lifecycle into
different environments [5]. A lot of
DevOps implementation strategy and presents a
Organizations face the challenge of selecting a
comprehensive collection of leading tools used fit for purpose tool and selection of appropriate
across Software Development life Cycle to DevOps Tooling is an important criterion to
automate and integrate different stages of automate and integrate different systems
software delivery. This paper also highlights on together. Figure 1 below shows various
DevOps practices which span across different DevOps tools which are spread across different
phases of the Software Development Lifecycle phases of DevOps. In general, a lot of software
and how those can be implemented with delivery programs uses Open-Source tools as
different tools available. they continue to evolve further. Organizations
have also developed internal frameworks to
Keywords: DevOps, Continuous Integration, calculate the maturity level of the DevOps
DevOps lifecycle, Continuous Delivery, Agile implementation in a project.
and DevOps, Cloud Computing, Software
Delivery
Figure 1. DevOps tools at various stages

Jira is a Plan and track tool which helps in sprint


planning, creating stories and issues and track 2. DevOps and Agile
the issues with labelled priority. Confluence is DevOps integrates Agile processes with
a documentation tool which serves as a operations. Agile and DevOps are not the same,
knowledge base at a common place. Gitlab is a but they do go well together. Both Agile and
hosted version control tool to store the code DevOps share in common the idea of getting
fast feedback [8] as depicted in the figure 2. In
committed by developers. There are various
Agile, a review is done at every sprint. DevOps
IDE tools where developers write and compile is similarly build on the idea of getting fast
the code locally. Docker is a container feedback, starting with during Continuous
technology which isolates the application in a Integration ("Is our code still working after a
self-contained environment. Jenkins is a change?") going on to Continuous Testing
continuous integration server which helps to ("Does it do what it should?") all the way to
continuously integrate the code into different continuously monitoring an application in
environments [6]. Artifactory is a repository production to get feedback to apply to the next
manager tool which stores the build artefacts version. So, one could argue that Agile is a
and libraries centrally. SonarQube is an subset of DevOps that is cantered around the
opensource static code analysis tool and helps practice of collaborative development and one
in analysing the code against different code would not be wrong. However, it is important
to note that a project can be agile without
quality rules defined in the quality profile [7].
employing much of the DevOps practices and
Cucumber and Selenium are test automation
another project can use a waterfall methodology
frameworks for automated testing supporting and still employ DevOps practices throughout.
multiple programming languages. Ansible is a
configuration management tool which
automates the configuration of applications and
infrastructure too. Grafana is a monitoring tool
which provides charts, graphs, and alerts for the
web when connected to supported data sources.
Elasticsearch, Logstash and Kibana commonly
called as ELK stack provides logging and
monitoring capabilities into a DevOps tooling. Figure 2. Agile and DevOps together
3 DevOps Lifecycle I. Plan & Measure,
II. Develop & Test,
DevOps looks at the complete Software III. Release & Deploy, and
Development Lifecycle, breaking it down into IV. Monitor & Optimize
four phases which further spans to six areas for
scope coverage as shown in the figure 3:

Figure 3. DevOps scope across SDLC

3.1 Continuous Business Planning • Iteration Planning


Continuously plan, measure and bring business • Progress Monitoring and Reporting
strategy and customer feedback into the
development lifecycle. Continuous Business 3.2 Collaborative Development and
Planning assures that the investment choices are
Continuous Integration
aligned throughout their life cycle to your
organization's needs. It employs lean principles Collaborative Development brings together
to help teams start small, identifying the business, development, and QA organizations
outcomes and resources needed to test the to deliver innovative, quality customer
business vision and value. Adapt and adjust experiences with speed. It dramatically
continually, measuring actual progress, and transforms the way clients build their apps in
customer requirements so teams can shift order to drive real business outcomes.
direction with agility [9]. Product backlog is
maintained and gets split into smaller releases The technological enablers for DevOps
and milestones based on the priority decided by establish DevOps capabilities by automating
the various stakeholders. Following are the different trivial and non-trivial tasks [10].
major components in Continuous Business Automation helps in achieving continuous
planning: delivery and deployment by providing a
DevOps pipeline to production for all changes
• Requirements Management to a given software environment [11].
• Change Management
• Project Planning and Work
Management
3.3 Continuous Testing
Utilizes highly automated approaches to
dramatically reduce the time and effort in
delivering quality results [12]. Eliminates
testing bottlenecks through virtualized
dependent services. It simplifies the creation of
virtualized test environments. Continuous
Testing also reduces the costs of provisioning
and maintaining the various test environments.

Figure 5. Build and Release cycle

3.5 Continuous Monitoring


Continuous Monitoring automates and
optimizes the ability to monitor and manage the
performance and availability of applications
and infrastructure continuously. It tells how
good my systems are performing and whether it
needs any correction [17]. Choice of correct
tool decides the level of correctness which can
be brought into the system. Following are the
Figure 4. Test Automation Pyramid main areas for monitoring in a DevOps
implemented project:
Most of the software testing activities are based
on the test-driven development [13] which is • Application Performance Management
supported by continuous integration practises. • IT Operations Analytics
Developers are required to write unit test cases • Operational Problem Management
to integrate their code frequently [14]. These
tests are executed repeatedly in the automated
Logging needs to be used effectively to monitor
fashion by means of continuous integration as
application logs. Logging mechanism works at
shown in the figure 4 above.
multiple levels and should be configured to
analyse the logs by drilling down when needed
3.4 Continuous Release & Deployment
[18].
There are various advantages of continuous
release and deployment. Continuous The logs are analysed to provide quality
deployment helps in receiving an early feedback to the development teams and then
feedback from the customers and users. It perform a deeper problem analysis to go to the
enables frequent and reliable releases which
root of the issue. The results of the log analysis
improves customer satisfaction [15], trust and
help the development and Operations team to
product quality [16]. It also enables teams to
perform on-demand Dev/Test self-deployments prepare better for future.
to continuously integrate software driven 3.6 Continuous Customer Feedback
innovation. Figure 5 below shows a high-level
build and deployment cycle till Production
and Optimization
environment. Continuously getting customer's feedback on
their experience brings far better insights that
form the basis for improved decision making
Technological Enablers:
and optimization. An early and rapid feedback
from the systems help to save time and improve
• Release Management the end user experience on continuous basis
• Build Automation [19]. The DevOps maturity model enables
• Deployment Automation growth through continuous learning among
development and operations teams as depicted
by figure 6 below. The capabilities and skills
defined, guarantees enhanced ability to handle 4 Role of DevOps tools
issues of scale and complexities. Information
Technology Infrastructure Library, ITIL is a I conducted a study on various DevOps tools
framework of best practices for IT service used in the leading Organisations for DevOps
management which focuses on aligning IT implementation at different stages of Software
services according to the needs of the business. Delivery. Figure 7 below shows this list of
The degree of DevOps implementation can also various tools used in the projects pertaining to
be measured by means of maturity models Retail, Banking and Automobile industries.
against various matrices [20]. Each of these tools serving one of the DevOps
phases are unique in its own ways and provide
different features while making optimum use of
the tools for the right purpose [21]. These tools
are used to design, build, deploy, test, monitor,
manage and operate software and systems
connected as one integrated pipeline. Tools are
broadly classified as Commercial and Open
Source tools. With the Open Source community
growing large and enabling state of the art
functionalities, a lot of Enterprises have moved
to Open Source from Commercial tools also
because of the high cost of licencing. Jenkins is
an open source Continuous Integration and
automation server which works on plugins-
based architecture [22] and has the capability to
integrate variety of tools enabling Continuous
Integration/ Continuous Delivery also known as
CI/CD toolchain and it can build deploy and test
across multiple platforms [23]. With the invent
of Cloud Computing, various services are
available for performing automation tasks
which are cloud native to support the platform
developed on Cloud [24]. Security services is
Figure 6 Continuous Feedback
an added advantage which comes with Cloud
providers. The cost of these services depends on
the volume and usage across the platform.

DevOps Phases
Continuous
Continuous
Continuous Business Collaborative Development Continuous Continuous Customer
Release &
Planning and Continuous Integration Testing Monitoring Feedback and
Deployment
Optimization
Trello Jenkins JUnit Ansible Nagios Open Web Analytics
JIRA Git Selenium Chef Grafana Webalizer
Redmine Gerrit JMeter Docker Kibana W3Perl
Trac SonarQube Cucumber IBM Urban Code Prometheus ServiceNow
Rally Maven Microfocus UFT Kubernetes Logstash Slack
Tools Gradle TestNG Puppet AppDynamics Flowdock
Apache Ant Tricentis Tosca Go Datadog
Make Jasmine BMC Release Dynatrace
Microsoft Build XL Release Splunk
Travis CI Icinga
TeamCity PagerDuty

Figure 7 Tools across DevOps phases

You might also like