DevOps Tools
from Practitioner's Viewpoint
Deepak Gaikwad
Viral Thakkar
suit, =
Preface v
Acknowledgements vit
List of Figures and Tables ee
Chapter 1 BUCA SCR tants DevOps, Really? 1
1 ew
1.2. Problem Case Definition
13 of Fixing Application Development Challenges ‘
1.4 DevOps Adoption Approach through Assessment 4
1.5 Solution Dimensions 5
1.6 Structure of the Book 6
Your Understanding ¢
Assignment to Strengthen Your Understanding 7
KEEEIEY Agile Methodology and DevOps 9
2.1 Before Agile —Waterfall :
2.2 Agile Development =
2.3) What is Deve Ips?
24 1
*vOps Importance and Benefits
25 DevOps Principles and Practices
2.6 7 Cs of Deve ps Lifecycle for Business Agility
2.6.1 Continuous Planning
2.6.2 Continuous Development
2.6.3 Continuous Integration
2.6.4 Continuous Deployment
2.6.5 Continuous Testing2.6.6 Continuous Delivery and Monitoring
2.6.7 Continuous Feedback
2.7. DevOps and Continuous Testing
2.7.1. Reference Architecture with CI Server
2.8 How to Choose Right DevOps Tool?
2.8.1 7 Steps to be Followed to Choose the Right DevOps Tools
2.8.2 Selecting the Right Tools
2.9 Challenges with DevOps Implementation
2.10. Must Do Things for DevOps
‘Test Your Understanding
Assignment to Strengthen Your Understanding 3s
3.1 Assessment 36
3.2. Definition 8
3.3 Implementation 9
3.4 Measure and Feedback 4
‘Test Your Understanding 4
Assignment to Strengthen Your Understanding 2
4.1 Atlassian Tools “
4.1.1 Key Features 5
4.1.2 Competitors of Athisian 6
4.1.3, Where can Atlassian be Best Utilized? 46
4.1.4 Pros and Cons of Adassian
4.1.5 Example of Reference Architecture
4.2, Phabricator
4.2.1 Key Features
4.2.2 Competitors
4.2.3, Where can Phabricator be Best Utilized?
4.2.4 Pros and Cons of Phabricator
4.2.5 Example of Reference Architecture5.1 Jenkins
5.1.1 Features
5.1.2 Example of Reference Architecture
5.2. Microsoft TFS
5.2.1 Features
5.2.2 Example of Reference Architecture
5.3 TeamCity
5.3.1 Why Choose TeamCity as CI Server?
5.3.2 Key Features
5.3.3 Popular Competitors
5.3.4 Where can TeamCity be Best Utilized?
5.3.5 Example of Reference Architecture
5.4 Ansible
5.4.1 Why Ansible?
5.4.2, What can Ansible Do?
5.4.3 Key Features
5.4.4 Pros and Cons
5.4.5 Example of Reference Architecture
5.5 Bamboo
5.5.1 Features
5.5.2 Popular Competitors
5.5.3 Where can Bamboo be Best Unilized?
5.5.4 Pros and Cons
5.5.5 Example of Reference Architecture
‘Test Your Understanding
Assignment to Strengthen Your Understanding,
61 JIRA
6.1.1 Key Features
6.1.2 Popular Competitors of JIRA
6.1.3 Where can JIRA be Best Utilized?
S14 Pros
61s
55
56
56
56
58
58
58
60
60
60
60,
61
61
61
62
63
63
64
oF
64
66,
66
66
66,7.1 Bitbucket
7.1.1 Key Features
7.4.2 Popular Competitors ’
7.1.3 Where can Bitbucket be Best Utilized?
7.1.4 Prov and Cons
7.4.5 Example of Reference Architectu
7.2 Crucible
7.2.1 Key Features
7.2.2. Where can crucible be Best Utilized?
7.2.3. Popular Competitors
7.2.4 Pros and Cons
7.2.5. Example of Reference Architecture
Test Your Understanding
Assignment to Strengthen Your Understanding
8.1 Liquibase
8.1.1 Key Features
8.1.2 Popular Competitors
541.3 Where can Liquibase be Best Utilized?
8.14 Pros and Cons9.
93
94
95
9.6
Chapter 9
9.1. DevOps and Cloud Adoption
914
9.1.2
9.1.3
DevOps in IBM Cloud ~ Bluemix
9.2.1
92.2
9.2.3
DevOps with VSTS and Azure
931
93.2
9.3.3
9.3.4
9.3.5
9.3.6
Benefits of using DevOps along with Cloud
Few Best Practices for DevOps in tht Cloud
Reference DevOps Pipeline
IBM Cloud DevOps Competitors
Pros and Cons
IBM Cloud DevOps Architecture
VSTS Feavures
Competitors
Where can VSTS be Best Utilized? 1
Pros and Cons 1
Example of Reference Architecture 102
Why Azure? 103
Pivotal Cloud Foundry 103
94.1
9.4.2
9.4.3
944
AWS
95.1
9.5.2
9.5.3
9.5.4
956
9.5.6
Openshift
964
9.6.2
9.6.3
Key Competitors 104
Pros and Cons 105
Example of Reference Architecture 105
Concourse: CI-CD Tool by Pivotal 105
Reasons for Selecting AWS for DevOps 106
Features of AWS "1 107
AWS Tools and Services for Orchestrating DevOps —<——
Key Competitors i
Pros and Cons
Example of Reference Architecture
OpenShift Flavors
Why OpenShift in DevOps?
Key CompetitorsContents
EEE ison sey
10.1. Security with HP Fortify
10.1.1. Key
10.1.2, Where can HP Security be Best Utilized?
10.1.3. Key Competitors
10.1.4 Pros and Cons
10.1.5 Example of Reference Architecture
Features
Test Your Understanding
Assignment to Strengthen Your Understanding
11-1 What is DevOps Governance and Controls?
11.2 How to Implement DevOps Governance?
11.3 What are DevOps Governance Benefits?
114 Implementing DevOps Controls
‘Test Your Understanding
Assignment to Strengthen Your Understanding
What is a DevOps Playbook?
12.2 Developing a Playbook
12.2.1 Identify Target State from Current State
12.2.2 Preparing DevOps Playbook
12.3 Implementing DevOps Playbook
12.3.1 Playbook Implementation in New Application Development
12.3.2 Playbook Implementation for Existing Application
Test Your Understanding i
Assignment to Strengthen Your Understanding43.2. Custom Frameworks
49.3. Separating Unit Test Code from Main Code Ao
13.4 Choosing Correct Branching Strategy 139
43.5 Check-in and Check-out Practices 140
13.6 Checkstyle Integration with IDEs =
13.7. Standardize Code Review Checks pd
13.8 Externalize Unit Test Data 12
13.9. Shift Left bine
13.10 Externalize Environment-Specific Properties o
13.11. Libraries Management pees
13.12. Right Mindset of Testung Team 144
13.13 Ensure Collaboration amongst Stakeholders 144
13.14 Give Weightage to Tool Selection 145
13.15. Avoid Over-Automation 145
14.1. Strategy Trends “7
14.1.1. Independent Teams to Full Stack Developer Teams ur
14.1.2. DevOps to No-Ops 148
14.1.3 DevOps Resilience 148
14.1.4 Site Reliability Engineering (SRE) 9
14.1.5. SecOps HS
14.2 Technology Trends ™
14.2.4 Al and DevOps =
14.2.2 ChatBors =
14.2.3. Tools Moving Forward
Appendix: A i
Appendix: B . goList of ile [gor and Tables
Figure it SI application maintenance activity view
Figure 1.2. Application assessment process
Figure 2.1. Waterfall methodology
Figure 2.2 Agile methodology
Figure 2.3 Dev plus Ops.
Figure 2.4 Development stages and activities, 2
Figure 2.5. DevOps layers.
Figure 2.6 Practices for DevOps culture. 7
Figure 2.7 7 C’s of DevOps 8
Figure 2.8 Continuous testing reference architecture
Figure 2.9 Selecting the right DevOps tool.
Figure 2.10 Popular DevOps tools. 2
Figure 2.11 Tools periodic table
Source: https://xebialabs.com/periodic-table-of-devops-tools/(see color image 2
vailable at this source for clarity).
Figure 3.1 DevOps assessment process.
Figure 3.2 DevOps maturity levels.
Figure 3.3 Sample assessment report. i
Figure 3.4 Definition phase =
Figure 3.5 Implementation 2
Figure 4.1 Adasian toolset. ri
Source: Atlassian; https://wwwatlasian. com /blog/dewops/haweto-ehoase-evops
ooks 48
Figure 4.2 Reference architecture using Adassian tools. 50
Figure 4.3 Phabri
ols landscape
Figure 4.4 Phabricator reference architect
Piste 5.1. Ci orchasration using Jenkiot
Figure .2 Capabilities of Jenkins.
Bowe 5.3 Reference architecture using Jenkins
Figure 5.4 Microsoft'TES reference architecture.Development using TeamCity.
Reference architecture of CI using TeamCity.
Ansible features.
Reference architecture using Ansible.
CL-CD using Bamboo.
Role of ALM tool in development.
Delivery lifecycle with JIRA.
Asks from an SCM tool.
Distributed version control with bitbucket.
Delivery lifecycle with Bitbucket,
Effective Cl with crucible,
Role of a deployment tool.
Liguibase reference architecture.
‘Chef deployment technology landscape.
DevOps with Chef
Puppet setup model.
Reference architecture for DevOps with Puppet.
Infrastructure types overview.
Reference DevOps pipeline on Azure.
IBM Cloud DevOps architecture,
Source: https://wwwiibm. com/blogs/bluemix/2016/11/devops-architecture-available- 100
on-bluemix-garage-method-site/
VSTS in CCD. 102
Atlassian too! pipeline with PCE 106
CI-CD using Concourse, 106
DevOps with AWS tools.
AWS DevOps reference architecture,
OpenShift DevOps reference architecture,
Security using Fortify.
Typical governance structure,
DevOps governance benefits,
Systematic approach to DevOps adoption.
Sample assessment findings,Module-wise projects,
Figure 13-2 Projects according to layers in architecture. 138
igore 13.3 Test classes separation from main classes 138
Figure 13.4 Branching strategy for parallel development =
igure 13.5. Branching strategy for bug fixes ie
Figure 13.6 Shift-lft testing, a
Figure 13.7 Test pyramid. 1S
Figure 14.1. Full stack developer teams a
Table 9.1 IBM Cloud -
Table 9.2. PCF rational and features Fn
Table 11.1 DevOps controls 121
‘Technology trends 150The World without
DevOps, Really?
EEE overview
Before we dive deep into the ocean of DevOps to find an answer to what it is
necessiry to understand the applications and organizations without DevOps. How are application ¢
ppment and maintenance carried out in this world? What is the team composition? What are t
hallenges that different stakeholders in these application teams face? What are the
applications? And so on, In addition to these
ind how it works, it is
¢ typical
key concerns that
questions, the next important aspect we must understand is
How are delivery teams currently trying to find answers to these questions?
How much success are they
bagging currently?
Which are the concerns still not having concrete answers? Finally; we must understand
shat will be the impact of these open questions on the business functions supported by
Atthe end of the day, everything is translating into business and business decisions
these applications.
Let us start with an example
We are picking a case from capital markets domain. You may have the question, wh
reasons ~ first, we assume that share mark
‘or two simple
ind trading is a topic that most of us have heard about, and
‘oncepts during our discussion. Second, most of the authors are from banking
and financial services domain, Hence, it will be easy for both, readers and authors, to relate and unde
the
twill be easy to visuali
erstand
oncepts discussed here. However, if share market and trading is a jinx for you, it does not matte
The discussion in this book will not make you feel out of the world. You can just look at the considered
‘pplication from a technology point of view to deliver certain functionality
EES Prostem case EFINITION
we considering online share trading application as a case for our further discussion. We would dis
us how the world of this application and people around it are currently, i.e application technology,
‘akcholders and processes followed to deliver functionality, and then get into discussion of changing
it for better.
For the benefit of those who know nothing about shares and tr Jing, let us have a brief discussion
ut the business and functionality of this domain. There are libraries filled with books on capital marker
‘Pic, but we will try to condense basics of it into a few sentences
abou
1. Shares are commoditized share in the ownership of a company
2 Shareholders can own shares by buying those directly from the company 6H
3. Place where buying and selling or trading of shares is done is called exel
4 Not only shares, but Products derived from shares are also traded at exel5. Exchanges provide
Bi
& Many brokers offer different channels to shareowners to perform trading, activity, such as call centers,
DevOps Tools from Practitioner's Viewpoint
cility to shareowners to perform this activity of | buying-selling shares and
products through brokers.
desktop application, mobile application, ete
7. Shareowners can perform trading activity using these fa
during exchange business hours, ;
Online share trading appheatic ‘which is our case for discussion, is one such channel provided by the
broker or investment bank to its customers, who are or want to be shareowners.
ities provided by the broker on the exchange
% This is an internet-based application that the traders (or investors) can use fromm anywhere using 3
esktop or any other device that supports it,
What are the highlights of this trading activity that influence application development and maintenance?
Here are few that would be of interest to us:
1. Trading is done during business/working hours of exchange.
2. The number of people trading is continuously varying and can surge due to any external event
3. There are frequent minor or major modifications to the way trading is done.
4 Trading activity needs co be very secure,
Now let us come to the application that facilitates thie trading activity online. This is an existing applica
book nny it Production and serving customers. We name it a Tradelive for further references in this
book. Figure 1.1 is a detail view of this maintenance activity along with different tools used also showing
whether the process is manual (human figure next to the stage) or automated.
Requirement
Analysis 8 DesignThe development/maintenance team of this ap
pres. However, following are the unit stops
end user
plication has recently adopted Agile as its delivery
constituting an iteration of functionality delivery to
4, Requirement Analysis: Business users provide functional and
development team in a certain format.
: Designers outline the structure of the program and document it to a certain extent.
# Developers write code as per design, perform peer code review followed by unit testing,
Testing: There are four types of testing cycles, in most of the cases, before software is ready for pro-
duction deployment ~ integration testing, functional testing, user aceptance testing and performance testing.
Multiple teams perform these testing cycles. The operational team ensures that the software is pack-
aged and deployed on a test environment for testing,
5, Deployment: TradeLive application is packaged and deployed on production environments and
monitored.
non-functional requirements to the
ae
All these steps are followed as applicable to the fianctional piece being delivered as per product backlog
for the sprint
Mos common interpretation of DevOps is Dev + Ops, that is, Development + Operation. DevOps
eo
There are multiple challenges in this application development life cycle which affect the business and
stakeholders both. Let us list a few key challenges here which have been collated through discussion with
the development team and business users:
~ As highly manual release/deployment process starts post market closure on Frid
‘eum works late night and over the weekend to accomplish it.
Quality is a concern at most of the stages in the development process.
There are multiple environments, and it takes a very long time to provision thos
oS after making changes to TradeLive. This requires advance planning and
‘yele due to delays in provisioning activity. ;
. Taceaiiy of requirement chrough the development lfcycle sage i ed
+ Repeatability of testing cycles is very costly. :
As the team is new to agile methodology, there are concerns that it will
| There are many steps involving manual actions leading to dependency on individuals an the
Asliverables, and agile benefits may not be realized fully.
‘en ct eS use Maen pea ey ae aad
does not have the insight of deliverable quality due to un
{RSS 2 many more challenges in the deliveryDevOps Tools from Practitioners Viewpoint
BENEFITS OF FIXING APPLICATION DEVELOPMENT CHALLENGES)
One might wonder why are we talking about problems that the development process has? For this, we
need to see the benefits of solving these problems in actual business context. The application is to facilitate a
business function; hence, itis imperative that by fixing these problems, we must gain business benefits in
‘one or other way, directly or indirectly, What are the key business benefits?
1. Time to Market: How quickly can a change reach end users? When end users or business users
semand certain functionality change in the application, how fast can IT turn it around and deliver it
£0 production. In today’s highly competitive world, where business keeps on changing every minute,
time to market has gained huge importance. In addition, IT inffastructure is the backbone of many
services; hence, the ability of IT systems to align with the business creates a huge impact.
2 Implementation Cost: Can we reduce the implementation cost? Cost has been a key player in
software delivery: There has always been a focus to reduce the development cost of certain business
function. Cost reduction can occur by actually reducing the development effort or by reducing the
waste in the development process.
3. Quality: Docs it improve and become predictable? There are two important parameters: actual deliv=
cred quality of software product and end quality predictability in early stages of development. Fixing
application development challenges must improve product quality.Along with improvement in prod-
uct quality, it should make product quality predictable, that is, the delivery team should be able to
quantify the quality of product in the early stages of development.
EEE] vevors apoprion APPROACH THROUGH ASSESSMENT ai
Now that we know there are challenges, what do we do next? We have a few problems reported, but there
can be more issues. How can we find out all or most of the istues? The answer is — Experts cam tell by
reviewing application, processes, tools, etc. This process of reviewing the application and related processes
to identity the status of DevOps, challenges in unit processes and coming up with the recomeneadae
tion is called assessment, to be precise maturity assessment. Assessment is Just the first step, but to address
all the issues, we need a comprehensive methodology. In the following discussion, we detail this iterative
approach end to end, that i, assessment to implementation methodology,
There is 4 five-step process to identify and fix application challenges. These steps are
intuitive (Figure 1.2)
1. Assess to identify gaps.
2. Define solutions.
3. Implement solutions.
4. Measure benefits
5. Feedback benefits and challenges,
‘ext iteration we implement
abit more about these isFigure 1.2 Application assessment proces.
2. Define solutions to the issues as per priority. Definition phase also comprises solutions as per
organization's DevOps strategy.
3, Implement solutions in a step-by-step manner by taking maximum benefit, low impact recommen-
dations first.
4. Measure benefits along with solution implementation so that the team can understand the success of
the strategy.
5. Feedback benefits and challenges to refine solutions to achieve the right results in fewer iterations.
‘twill not be wise to think that all the challenges in our application will
4set of tools to automate development steps. Definitely, there will be an
‘ider additional dimensions to realize actual business benefits because so
Process involving multiple factors in addition to tools. Below are the thre
k into, in an integrated way, to solve the issues:-
BEE ors tom rato vewpint af
3. Architecture and Technology: It is aligning architecture and technology to allow ace
development. Solution must evaluate architecture from automation point of views Ifthe architecture
is not capable of adapting to parallel development, automation and tool, then it needs refinement 49
that it does not become a hurdle in accelerated delivery.
Most ofthe transformations will fll in these three categories. Hence, DevOps assessment requires experts
with knowledge of these dimensions. Addressing mere one area will only lead to limited benefit In
addition, its sometimes hard to find one person fulfilling expertise required forall three heterogencous
dimensions, Hence, more than one person is part of not only the assessment but also recommendation or
solution phase
However, if we look at the development proces end to end, it is rarely the case that there is zero tool
wsage at any given time. In most of the projects, the common scene is ~ there are tools in use but in bits
and pieces to automate certain development tasks. There are process changes being brought in place to
accelerate delivery: There are initiatives to change the architecture and technology to align market and
application needs. Hence, the development world is always with one or other form of DevOps. Though
wwe have been thinking of faster development of features since ages, itis just that now we are taking a
focused and organized approach to solving this problem under an umbrella called DevOps
STRUCTURE OF THE BOOK 4
Now that we have understood the application case and challenges in it, we can proceed to solve
these. However, before diving into the tools, we would start with the basic concepts of DevOps
These inclide the theoretical concepts and terminologies one must know for a better understanding
Of the technology solutions. It is followed by the details of the assessment method and the maturity
model. This basically gives us details of action items to address, Next, we design an approach to map
{hs application to DevOps journey. We can build our solution around these challenges. Finally, we
come to the tools aspect, where we go through the details of technology we use to solve identified
problems.
CONCLUSION aa
Challenges in application development may span across process, technology, and architecture,
affect cost of product development, quality of product, and time to market.which of the following is a busine: j
BL Time to market 8s benefit of DevOps?
Cost of implementation
(Product quality
p, Allof the above
3, In DevOps adoption through assessment, what i a
A. Identify gaps in the current process » what is the significance of the step - Define?
Propose a solution to gaps through process and technology ch
(. Monitor benefits of solution implementation mee
B. None of the above
4, What is time to market?
A. Transportation time
B Time required to deliver an application functionality to end wser
G Sales time
D. None of the above
5. Which of the following are DevOps solution dimensions?
A. Process
B. Tools and Technology
G People
D. All of the above
ASSIGNMENT TO
Drivers for Agile Adoption: Analyze 2 project where waterfall or any other process than Agile devel-
opment is followed to identify reasons or drivers for Agile adoption. List these drivers against expected
benefits.Agile Methodology and
Iie) ex)
y's fast world, IT organizations can offer better serv:
y in market, by deliver
ore effec ng change and services faster. This will give advantage to
stomer over their competitors by reducing time to realize any new busines re quiremen
in“time to market” is a primary goal in the fast changing business scenarios. To achic
arket, conventional delivery methodologies and (manual) practices may not prove efficien
erative to change both in order to bring agility in the entire delivery process. In addition
ary to change the process used by delivery team along with underly
process adoption tries to address the first part of this change
or any client, the top concerns are timely and stable releases, addressing problems befor
get impacted, etc. One of main reason behind such issues is the lack of coordination and collab
between the development and operations teams. Both these teams have different goals, they work o:
nt tools, and thus there exists something known as a wall of confusion between the cwo. If we are
nchow able to break this wall, we could expect better results wherein the two teams work w
ether on common goals, This is exactly what DevOps objective is.
€ to their customers, ar >mpetitive
lar
ng delivery
EB crore AGILE - WATERFALL
Before Agile ~ in waterfall method — value to the end customer was being delivered after testing phase.
Traditionally, testing phase is towards the end of the project. Hence, end user used to get a view of
mented requirement towards the end of the project: If there is a need to deliver a change in requirement
project lifecycle, itis required to repeat the delivery cycle completely: Figure 2.1
during th
depicts the waterfall methodology.
Picts the waterfall methodology ca
Depending on the current stage of project, in this scenario where the whole delivery cycle repeats,
eases exponentially, Hence, in a traditional development project, waterfall method
the cost of change
zi Business requirements Hon Saha ie ek ihe passion:
iscover —y
Technical design
Design
What is the Cost of accomodating
‘hang a each stage?
Figure 2.1 Waterfall methodology.DevOps Tools from Practitioners Viewpoint
ossible to imagine running business Withong
across few months.
AGILE DEVELOPMENT 7
With Agile development becoming mainstream aver the lst decade, it has done a good job of address.
ing problems with Waterfall Model. Agile processes improve collaboration amongst different teams
involved. Iterative small development and delivery cycles spread development stages, such as analysis,
design and testing across iterations making those 4 Continous process. This has also made it possible tg
nature of development process allows end user to
ssful delivery has also increased with
Shippatie
Change 1 Change 1
Discover Test Discover Test Discover
mt) Cee) Comal
Design Develop Design Develop Design
RS
— ia
impeat Asile methodology aims to accelerart the overall product
Deron 9 move the technology, manuel intervention
DevOps comprises everything that x wired to reduce the g
available to the end user, iv eaFigure 2.3 Dev plus Ops,
Simply put, DevOps means considering software development and operations together — it is
bringing of these two disciplines on same platform in order to streamline communication, cohesion
and collaboration between the traditionally isolated developer and IT operations teams (Figure 2.3)
DevOps aligns these two differently focused teams on one common goal with highlighted
interdependence.
DevOps introduces collaboration amongst teams. With collaboration, teams share responsibility
amongst them along with trust. It improves the teams’ cros-finctional working ability. The end goal of
DevOps is to extend continuous development goal of Agile. DevOps fulfils this goal through continuous
integration and continuous delivery. The business objective to improve software release frequency with
desired quality and customer experience is ako fulfilled by introducing automation, configuration, test
automation and automation in deployment processes. In fact, it improves customer experience with best
delivery results. Figure 2.4 depicts the developments stages and activities
Each lifecycle stage in Figure 2.4 involves specific activities to generate intermediate and final
deliverable artefacts, Intermediate deliverables may be directly related to the end product, such as user
stories, design documents, test cases or something required as a part of infrastructure to build the end
Product, for example environments required to deploy developed product, source conttol set up to
manage code files, etc, These activities can also be categorized as core activities mandatory to build
Product as well as non-core activities such as additional activities required due to DeyOps, modern
infrastructure — Cloud, tool usage, etc.
"= Know concepr: continuous DEVELOPMENT
inuous testing, continuous deployment, ete. This process is iterative and.
ive of the complexity of the feature.[ 2 | DevOps Tools from Practitioner’ Viewpoint
Bringing it all together
Service virtualization
Test automation
Detect tracking Vv
Continuous integration
Artotact repositories
Vuinerability scanners
Requirements management
Ee
or
en eee
SRC ee ee eee
CetteFigure 2.5 DevOps layers
DevOps brings three key layers — people, process and products (Figure 2.5). It extends approach that
amalgamates automation and toolchain, This approach improves monitoring and provisioning tools, agile
process and DevOps collaboration.
as ;
DevOps aims to build a culture of collaboration amongst teams involved in delivery of software. This
cultural shift is based on a shift in mindset with tighter integration of development teams with operations
teams. It combines agile and automation to ensure continuous delivery and much more for teams to be
innovative, efficient and to deliver higher value to the end customers. To achieve this, DevOps needs to
break down the wall between development and operations teams.
The benefits of DevOps are discussed as follows
1
Speed: Accelerated delivery allows businesses to align to changes in
market and to grow more efficiently while driving business results by
innovating faster for end customers. For example, adapting to micro:
services for business lines demanding frequent changes will be further
accelerated by implementing continuous delivery.
reduction in time
tomers. This also det‘DevOps Tools from Practitioner's Viewpoint —
need of faster delivery of changes, the quality of change ae
be ensured. DevOps adoption makes delivery process repeatable,
thereby making delivery more predictable by increasing probability
of successful delivery.
4, Scale: Automation and optimized development plus del
processes make it possible to scale the size of functional release,
on demand. Agile and DevOps adoption ensures that increase in
delivery and operational teams’ size happens without impacting the
delivery quality and timelines.
5. Improved Collaboration: DevOps transforms cultural model of
development and operations reams by integrating these teams to
deliver changes collectively. These teams improve collaboration by
understanding and sharing delivery responsibilities: Their independent
workflows are also combined in Agile process with DevOps. This has
A
Continuous
Planning
Engingaring
Yerion conte
sie Poll oan 2
Commit ve
ee
Figure 2.7 7 Ci of Devops
d
quod may, s2u0yR»e14 Way sjoo| sdonagCHAPTER2 / Isietetnclay dons IM
2.6.1 Continuous Planning
Continuous planning process makes businesses capable of planning delivery of new features con
tinuously. New business requirements, changes requited in existing fumctionality, prioritized defects, ete
could be planned to deliver continuously. This prioritized requirement “backlog” works as an input to
implementation team, which can deliver it continuously. Agile process and matured DevOps pipelines
can build this capability within organizations. Requirement management tools, matured communication
model and effective feedback loop make it possible to establish continuous planning process.
2.6.2 Continuous Development
Continuous development is an umbrella to recognize end-to-end delivery of software covering con-
tinuous integration, continuous testing, continuous deployment, and continuous monitoring. When a
requirement’ feature is planned for delivery, continuous development capability makes sure that it is deliv-
cred to end users seamlessly through an established development process. This continuous development
process is repeatable for all the features irrespective of type of feature (requirement, configuration, etc)
and complexity level. Continuous development through a development pipeline ensures automation and
streamlining of activities and processés required to deliver software.
2.6.3 Continuous Integration
Integration of unit steps in software coding stage is done through continuous integration.
This comprises steps the developer performs from assignment of a feature to delivering finished
implemented feature for testing activity. When a developer checks in code to SCM, continuous
integration process performs quality checks through automated code reviews, unit testing, which is
followed by generation of deliverable artefacts through compilation and packaging process. Orches-
tration cools make it possible to integrate these code operations — getting code from SCM, compi-
lation, code review, unit testing, and build. Teams can also schedule continuous integration to get
periodic insight to code quality. Orchestration tools used in this process also allow teams to publish
results on fancy dashboards. These reports and statuses can also be notified to different teams using
email notification in orchestration tools.
2.6.4 Continuous Deployment
Deployment of developed software artefacts on different environments is automated through continuous
deployment. Ir is also called as release automation. It requires automation of environment provision
ing, build and packaging of deployable software components, deployment
related software services, Configurability and programmability of inft
a code, builds continuous deployment capability. Continuous deplo
©perations teams to collaborate effectively so that the transfer of dey
Development, Test (System Test, User Acceptance Test, Perforn
Recovery environments are primary candidate for continuous dep
2.6.5 Continuous Testing
Continuous testing (CT) is the process of executing automated
Its goal isto obvain imme iDevOps Tool from Practitioner's Viewpoint
Key Benefits
1. Quality at Speed: Continuous testing provides high-quality code at a faster speed. Release candidate
cove i abvays ready with a complete cycle of testing. Test automation avoids human errors,
2. Shift Left approach: Continuous testing promotes test carlier and more often in the delivery
lifecycle. Testing should not be an activity toward the end of the life cycle. Unit test, system test
ing, user acceptance testing, service virtualization, regression testing, and performance testing
should all be performed at an early stage ~ possibly as soon as the code is pushed to the develop-
ment environment
3. Faster Release: New sofiware or change in software can quickly be delivered to the intended
audience. It most suits to Agile and DevOps methodology where working software needs to deliver
quickly
4. Collaboration: Continuous testing and continuous feedback improve collaboration between
development team, testing team, product owner and customer. Increase in collaboration improves
product quality.
5. Cost Efficient: Continuous testing helps in early detection of defects and hence it has less impact on
schedule and cost.Test automation reduces human efforts on a repetitive task. Test automation helps in
better capacity planning and delivery speed.
& Reduce Risk and Increase Confidence: Continuous testing identifies the problem in the eatly
Phase of delivery ~ almost immediate of development. It not only validates the component/piece of
ode as an independent unit, but also its integration with rest of the application and other applications,
that is, validation as a whole system,
2.6.6 Continuous Delivery and Monitoring
Continuous delivery is delivery of any type of cl
into production environments as soon as possible
Continuous monitoring ensurcs applicati
02 application’s service to users and other appli
toring focuses on production environment. Apy
hange — functional, configuration changes, defect fixes ~
after completing all applicable processes.
‘on health is monitored continuously to keep a check
ications, performance and security. Continuous moni-
plication, software, and infrastructure are monitored
2.6.7 Continuous Feedback
Continuous feedback is a process in which the feedbac
ferent stakeholders and tools is given back to teams whe
Application aspects include application performance, usee
service quality, infrastructure performance, development p
from different stakeholders such as end customers, op
quickly feedback is captured and provided back to take con
entinuous feedback process, It also determines the costCHAPTER 2 / AcleMethedsiagy nd Devops EEE
feedback. For example, if outage in one of the application process is not feedback to the concerned
team in time, it can result in loss of millions of dollars per hour depending on criticality of applica
tion function
P® A DEVOPS AND CONTINUOUS TESTING
Ic is necesary to understand how DevOps and continuous testing exist together. End-to-end DevOps
pipeline has a mandatory step of test automation. Continuous testing in an Agile development environ-
ment makes automation of testing mandatory. Manual continuous testing has its own limitations and cost
overheads. Hence test automation through the implementation of different tools is the only solution.
Following are the key points to consider
1, Test automation and automated testing is a key aspect of DevOps.
2. Continuous testing promotes test early, test faster, test often and automate.
3. Continuous delivery needs continuous testing.
4
Continuous testing is the linchpin between continuous integration and continuous delivery,
CONTINUOUS TESTING IN TRADELIVE APPLICATION
TradcLive application, problem case defined in Chapter 1, has multiple modules to test during
cach release cycle. In addition, it requires integration with many in-house applications (e.g., identity
‘management, trade settlement application, confirmation application, billing application) and couple
of external stock exchanges, (You can take your own application example/project involving similar
complexity). Define continuous testing strategy for this scenario considering following points:
How test automation will help to improve release frequency, quality, and reduce cost?
‘Which tools can be used to automate testing?
Identify challenges in test automation,
How will you address requirement of exchange availability for testing?
To what extent test automation is achieved?
| Identify benefits achieved by implementing continuous testing.
ayewno
2.7.1 Reference Architecture with Cl Server
In the reference architecture in Figure 2.8, CI~CD pipeline is shown with i
Which enables to achieve continuous feedback at an carly stage. Test autor
Yalidate codes at an early stage —as soon as code check-in into SCM (Softw
happens. Testing cycle identifies and reports issues at an early stage. Figure
‘ure of continuous testing using various test automation tools and integratio
Selenium, cucumber, and HP quality center can be used to aui
automate performance testing involving herp requests. We are not goin:
Continuous integration, and post-stage, that is deployment, in this referenc
‘im detail separately in Chapter 5, Orchestration and Chapter 8, DeploymentSeay
Sonaraubey ebrerey
@ coverity
erry
Poised
ee
| Eo aa |
3 ==
Apuppet ep0n0n 150 zwaLavHD| | DevOps Too from Practitioners Viewpoint
CHALLENGES WITH DEVOPS IMPLEMENTATION
many challenges that the organization has to
Ps tenets, Following are few key challenges that muse
When an organization adapts to DevOps, ther
come before the culture is fully aligned to DevOy
addressed during this process
1. Culture Change: Along with tools and technology, the most important transformation that occur ig
ip an onganzations and team’s work culture, This sone of the most dificult co transforms. Culeue ap
abstract term resulting from aggregation of work behavior of team members or employees,
Cultural change is a slow and long process requiring a lot of patience and endurance. The aim of
the enterprise should be to introduce a collaborative culture and nurture it for effective DevOps adop-
tion, Transparency and positive air in workplace are to be maintained by leaders in the organization,
Employees with pro-DevOps culture should discuss/exhibit benefits of it to convince co-workers
2. Knitting the Silos Together: Most ofthe organizations face the challenge of silos and Sectors within
ockets and brings all of them together to achieve a com
around team pockets are not dissolved, when it requires handover of
Proder across (cam, it increases cost and time required for the product. I is possible that the
Enterprises must update their exis
behind recent technologies demand re
ako another challenge to be addressed,
‘Tool Turbulence: During DevOps journey, numerous too! wailable in the market
team members. This makes them go for a vew tool oy che eae problem.
improved features of took keep on attracting developers, leading to fh
of took. Tools become center of the organization's delivery se
Wapout long-term strategy and evaluation of tools, lads ts weal
tools becomes dificult with a change in strategy and benef ony
2 well-analyzed took strategy and availabilty through library,
and makes tool usage better,
5 Different Metrics: In « product development process differen)
through different Parameters. When such teams are integrated int
metrics start clashing with each other. In such a scena i
ACHAPTER2 / Agile Methodology and DevOps
6 Resistance to Change: Most of the times,
0 there are workers in companies who unwelcome change,
This is because of their comfort zones, preter
red working styles, silos not opening up for other teams
and so on. This leads to disturbances amongyt teams. tt also creates unhealthy and confising envison-
ment within the organization. An organization cannot accept to bend in front of such elements, It is
against che reforming strategies of organizations. Hence, technology, process atid cultural changes have
to be pushed through the teams and zhrough internal resistance, Organizations find their own ways to
overcome such resistances,
7, Process Challenges: Agile and DevOps culture docs not define strict rules to follow from process
and tools implementation point of view, It allows teams and eventually team members to define their
own processes, select their own tools within defined boundaries, and change those if they find limited
benefits to overall delivery. Project goal is important and rigid; hence, everything else can be changed to
meet those goals.
Though this empowers the employees to be more innovative and ( be more responsible
it can also lead to challenging circumstances due to confusion and disputes within teams. This
happens due to the complex nature of software delivery involving many teams working together.
MUST DO THINGS FOR DEVOPS
1, Find your DevOps Drivers
A DevOps drivers is a resource, process or condition that will help us to focus for the continued
success in IT Software development and IT operations activities along with supporting
enterprise-IT activities such as Security and Data Management to provide effective outcome
to an organization;
What?
DevOps does nor have a standard set of fixed practices.
DevOps does not define measurement standards.
DevOps has different forms in different organizations.
I is not only about tools or technologies.
Ie is all about people and mindsets.
It should address the gaps between Dev and Ops and focus.
Once you know Why, you can be better build the effective dri
journey,
.
Why?
ecceee
It should help to get customer experience feedback early.
Jt must find out the waste during software delivery and
It must help to predict IT delivery.
It must address changing habits of the customer.
It must increase reliability and stability of IT operations,
© It must help to change culture and mindsets,
Stainsr
pe DevOps Too from Practitioner’ Viewpoint
Why?
How?
Why?
How?
4 Discover the Customer Journey
© Have specialized IT practitioners in cach part of software development and hence
among them. "
Traditional software development practices, processes and tools over collaboration,
Close loop communication where interactions are only on important milestones,
Agile development (delivery) and often frustrated IT operations.
The DevOps = Cloud vision.
Remember, DevOps isn't the goal, so creating a culture is getting everyone headed in the
same direction.
© Measuring culture impact is difficult but increase in collaboration and communication
that’s the culture of DevOps
‘© DevOps makes team autonomous and everyone responsible.
© Start building quality into the development and deployment process.
© Itis also important for the team to value feedback.
Good at Coaching and Steer a Team in Right Direction
DevOps changes the way team members relate to cach other. It doesn't happen overnight,
‘That’ why coaching in both Agile and DevOps ~ to help teams embrace changes in culture, |
Practices, and tools that are essential to successful DevOps adoption, 1
* Those organizations that are trying to adapt fo agile and eventually to DevOpe need
guidance in setting up DevOps right.
‘Motivate team members and help to remove team silos,
Inspire reactiveness and innovation,
Enable and enhance horizontal communication,
Bring in a sense of responsibility.
Make DevOps values more visible,
Learn and implement new. concepts,
Create Agile and DevOps coaches from existing experienced members from various
(echnical and non-technical), i
© Create a workshop where you can teach teams how to implement DevOps and
them each week or so. ‘ aa
Recognize and reward teams who reach to maturity as
Place, Set some guidelines and outcome expectations
* DevOps coaching should be uniform irrespective of t
Following che customer’ journey to detect bottlenecks ¢
Tr agate of testing you perform and automation yo
17 operations, think of users first and you'll a 100s
high quality - that’s going to make a customer har ’Se -” iia)
How?
HAPTER? / nneigisne
© Must define potential right DevOps strategy for the product.
¢ Do you have a you build it, you run it” philosophy? You must think as one team.
A step-by-step process you could follow to come up your customer journey:
Look at the “whole system” ~ product or service applications.
© Look at phases of customer journey — from joining to 6 months period ~ and gather their
thoughts, emotions, touchpoints, goals
Listen, engage and learn from your IT Dev and Ops.
© Get a coach to guide and help to refine it and set up right tools.
Focus on people, but don’t forget convergence of process.
5. Follow Principles Every Day
;
why?
How?
j
For any enterprise embarking on a DevOps transformation, the journey can be daunting.
‘Where do you start? What early wins can you achieve to gain the much-needed early momen-
tum? Defining the mission, objectives or even the framework for 2 DevOps transformation is
easier said than done,
© To support collaboration and communication across development, operations, security and
business stakeholders.
Enable a culture of collaborative learning is crucial.
Adopt and embed DevOps culture.
Avoid silo teams and close-loop communication.
Learn to trust.
To focus on bottlenecks and flow, ultimately reduce the waste in IT delivery.
‘Teams must build the principles around CLAMS — Culture, Lean, Automation, Measurement
and Sharing team coined by Damon Edward. Here are a few examples:
© Automate repetitive tasks.
Everyone is responsible.
Keep it simple,
Integrate quick and often.
Get continuous feedback.
6. Never Lose Your Inner Security ‘ 4
Adoption of DevOps practices introduces complications for i
dardized security controls and presenting issues such as ¢:
deployment and a breakdown in the traditional segregation
how to think about making their product, services, applicatio
Security in DevOps is no longer the domain of security ¢
Authorized and unauthorized software tools access controls.= Dev0ps Tool from Practitioners Viewpoint A
d Ops work tracking systems.
security work is in Dev ani ie
J aetse sceurey nto the deployment pipeline and protect from malicious code
+ .
il.
°
.
tories a
Integrate preventive security controls into shared source code repositories and shared
aa > development ieranian
Secure your applications and integrate security into development iteration.
ture the software supply chain and environment through automation,
< wa a
Integrate information security into production telemetry, eg monitoring and loging,
7. Fill Your Software Delivery with Right Tools
No tool in the world will magically make your organization or team DevOps (or agile
| tcan) compliant. Most developers have moved beyond understanding the business value
i DevOps and on to how best to implement it. The former was easy to define, while the
has been more difficult.
* Collaborate on vision and design — Bridge gaps between people, process and tools during
communication and feedback management.
‘The number and types of problem domains differ greatly from one problem domain to the new.
Unwinding the complexity.
Automation in monotonous activities that machine can do better than human,
Understand the collaboration and shared tools strategy for the Dev, QA and infrastructure
automation teams.
Use agile Kanban project manage:
with in the tooling,
* Use tools to log metrics on both manual
* Implement test automation,
© Ensure continuous feedback
why?
ment for automation and DeyOps requests that can be.
and automated processes.
acceptance tests and test data provisioning tooling,
between the teams and from tools.
§ Surround Yourself with Key Technologies and ‘Terminologies
DevOps practices have more frequent deploys, which allows them to introduce new
‘more offen in a highly stable environment. But traditionally, applications are build in
ughtly coupled and non-cloud environments, ‘To practice DevOps principles, it is
to change applications landscape using new technologies
. Help fo serve customers on omni-channels,
$ Rapid cloud transformation and its adoption for scalab
* Increase limited re-use is realized
© Add operation agility in repeated
© An exponential level of inefficiency that j
® Can bring scaling benefits to monolithic applications.
DevOps isn't just about the new: Its about cleaning
© Identifying legacy. a
© Quarantine the slow movers,
. oe iubinaa
* Approach to refactoring to Microservices ~
Why?CHAPTER 2 /_ Agile Methodology and Devops eal
Split frontend and backend
Extract services
| ¥ Stop making the monolith bigger
TEST YOUR UNDERSTANDING
1. Which of the folle
A. Speed
B. Time to market
Improved collaboration
D. All of the above
ng is a benefit of DevOps?
2. Which mindset is observed in teams with DevOps?
‘A. Waterfall delivery
Process centric
G Product
D. None of above
3. What is shift left approach in continuous testing?
A. Writing test cases before code
8. Introducing testing in early stages of development
(Using tools in testing
D. Requirement reprioritizing
ASSIGNMENT TO STRENGTHEN YOUR UNDERSTANDING
Assessment Questionnaire: Come up with a questionnaire to be used in assessment of an application to
know challenges, technology, tools and processes followed. Output of this questionnaire should give insight
to project DevOps maturity, and findings of this questionnaire will be an input to “Define” solutions.Map My App to
DevOps Journey
)evOps has become a mandatory strategy for almost all the projects. With Agile adoption, itis impera
nat the project is going to get enabled for DevOps. There ate so many concepts, tools and
prace; hence a common question that most of the organizations, projects and finally developer
Whe we start?” If this question is not addressed correctly, it is very much possible that th
gule to achieve the desired benefits and a mess will be created.
Best understanding of this chapter can be achieved by applying principles and technique
© t9 DevOps problem around you. One can select an application where the DevOps
ired and follow the adoption journey defined below. It can be end-to-end DevOps adoption. If it
0 much for you, then select a lifecycle stage (eg., coding) and go through the methodology
ssesment by coming up with your own assessment template, identify tools and define, and
y implement tools to see actual benefits. Repeating this couple of times will give you a good under-
¢ to map an application to DevOps. You can try doing it for one lifecycle stage at 2 time initially
then go for end-to-end development process
In this chaps
er, we will learn about the approach 4 project can take to enable the underlying applica
ion for DevOps im a systematic way. So, what is this approach to start DevOps journey?
As we call DevOps adoption a journey, we
citerate that it is not a one-time activity, but a continuous
crative process with the following steps (Figure 3.1)
1. Assessment of enterprise and project DevOps maturity.
2 Definition of DevOps solution.
3. Implementation of prioritized solution elements,
4. Measuring benefits of imple
5. Feedback to next iteration.
ation.
We will discuss these steps in this chapter.
Application
DovOps
: adoption
(seme Meee
Nad
Figure 3,1 DevOps adoption process.=
En DevOps oc rom Practitioner’ Viewpoint a
ERY assessment
ssment. There are multiple m
i explore ¢ first step, DevOps maturity assessment.
We are going to explore details of the first step : ae
available in the market for DevOps assessment, As our focus is project or application é ee assess
thisscthod we discuss i 1g to limit the scope to project only. Maturity assessment of a portfolio
he method we discuss is going to limit the se oF
plications require Dy
for example, how many app
enter :
¢ will involve additional aspects to cover ra
what isan enterprise tool strategy and framework, enablement capability, etc. Second is the type of projec
meas tiking example of a support project, where the application is already in production and certaiy
processes are in place
A typical project maturity framework measures project maturity from DevOps aspects (process,
People and culture, tools, measurements and reporting) at different unit activity levels to determine
overall maturity. It tries to recognize the project DevOps capability in terms of Crawl, Walk, Ran
and Sprint or equivalent levels measuring maturity in increasing order. Figure 3.2 shows the DevOpy
maturity levels
The method used to gather assessment data is brain-storming with different stakeholders, either
individually or in groups. This activity is also iterative by presenting an understanding to stakeholder and
refining it farther
“typical assessment is pecformed with a predefined questionnaire investigating the maturity of applic
10% and <50% |
automated systom testing 5
‘Automation initiated: >10% and <50%
peat ae : : |
Partially automated security testing
Figure 3.3 Sample assessment reportBEEME °e:0p fxs om patton viewpoint
ctc., area maturity jy
Similarly in testing and test data management, deployment, monitoring, etc a¥ea maturity jy
obtained by interviewing different stakeholders, going through the steps followed By | am actly
doing the activities, and reviewing effectiveness of DevOps adoption at consti ty level,
> KNOW A CONCEPT: DEVOPS CULTURE
DevOps culture is an abstract term used to represent concerned team’s ee a pele
can comprise the openness to evaluate new tools and agility in adapting those tools, overall readiness
(mentally) to automate processes, collaboration amongst different involved groups (¢.g., developers,
business users, operations), and finally rigidity or resistance to change from current DevOps state,
Biss
ES 9 DEFINITION
Next is the Definition phase, to define the solution, to identify action items to reach mostly to next matu-
nity level (Figure 3.4). Action items are also prioritized to achieve maximum benefits quickly. Though
the key input to definition phase is provided by the findings from the assessment phase, there is another
ey inpat that governs definition ~ Enterprise Strategy. Most of the organizations have either complete
or evolving enterprise DevOy
Ps strategy. It needs to be adapted as it is or after customizing according to
the project needs,es CHAPTERS / Map My Aoptoer0pssoumey ES
Enterprise DevOps strategy comprises set of guidelines for indivi
Guidelines enforce DevOps governance by controling what individual tcams are implementing is according
to long-term DevOps vision of organization. Guidelines can restrict took to be used by providing list of
approved tools. Tool usage cari also be controlled by asking teams to use only offerings by central team, Foe
example, organizations that offer central Jira instance to projects get project-specific set ‘up according to
enterprise Jira configuration, Matured Enterprise DevOps strategy goes further to offer a ready NevOps
platform with a reusable pipeline, when projects adhere to certain technology stack and project structure. In
this case, when projects check-in project code to source control in a pre-defined structure with a specifica-
sion, the enterprise DevOps pipeline is executed to perform all quality checks, builds and deployments with
monitoring as per demand in specification/contract defined.
Enterprise DevOps strategy is also enriched by accepting contributions from individual projects,
which implement something (tool or process) that is nor already implemented in the organization. Thus,
the enterprise DevOps repository is continuously evolving to accept better and new.
Definition phase is to define blue print of projects DevOps strategy to achieve the desired objectives.
It proposes roadmap to address the issues identified in assessment stage. Definition phase tries to come up
with action item for each element in assessment report.
‘dual projects to adopt DevOps.
EE] imecementation
This phase is actually realizing the application of DevOps strategy. The application development
landscape changes with the implementation of action items identified in the definition phase. Tool
implementation automates many manual operations in the development lifecycle. Policies and gover~
nance ensure efficient implementation of tools and processes. In real project scenario, though the strat-
egy defines a complete solution for iteration, project rarely goes for “big bang” way of implementing
all recommendations; instead a phased approach is adopted to achieve the desired maturity, Figure 3.5
shows the implementation cycle,
In Figure 3.5, we can see the changes in development process introduced by adopting DevOps in
individual states, primarily through tools usage. Team uses JIRA to track user stories and design informa
tions along with development traceability. This JIRA adoption is governed by enterprise Jira strategy.
In coding phase, the team automates code quality by automating code review through SonarQube
and unit testing using JUnit. Jenkins is used to orchestrate continuous integration. Build proces and con
‘unuous integration are also automated. Similarly, different tools and changes in processes automate testing
and deployment activities
",1 want so
In short, after the implementation step, we can sec there is considerab
“ses by using different tools, Team should start getting benefits of this tool| 40 | DevOps Tool from Practitioners Viewpoint
i
|
i
!
PieCCHAPTER3./ Map My App to DevOps Joumey
| 3. | MEASURE AND FEEDBACK
nce the project has implemented and integrated DevOps to align project to digital transformation
aqrategy, it is necessary to measure the benefits of tools and process implementation. DevOps framework
ses not define specific KPIs or metries to track success, Hence it becomes more important to create
cpetrcs that tie DevOps strategy to business benefits, Metrics can be fitted into the following categories —
Eficiency and Effectiveness, Velocity, Quality and Culture. Based on changes introduced, the team can
densify relevant KPIs. Here are a few sample KPIs:
1, Release Frequency: Can the project deploy more frequently than earlier? Tool usage and process
changes reduce the development activity time,
2. Deployment Time: Introduction of tools in the deployment process shortens the duration of the
deployment activity.
3, Failure Rate: What is the frequency of change failure?
4, Mean Time to Recovery: How quickly can an application recover from failure?
In addition to this, many dashboards are provided by tools which can be used to monitor individual
tools parameters, Projects can also measure defect injection rate, productivity, resting time, etc. to measure
DevOps success. For example, when the team automates testing using Selenium, it will reduce the testing
cycle time and improve the product quality. This will subsequently reduce the cost of testing and it wall
also make product quality predictable.
2 KNOW A CONCEPT: RELEASE FREQUENCY
Release fiequency represents production release frequency, that is, after how many days/weeks/
months, the team releases a feature or fix to production. Many factors govern this release frequency.
In case of Internet-based selling sites, the release frequency can be as high has few hundred release per
day, whereas in case of a banking application, the release frequency can be 3 to 6 months. Automation,
development methodology and application modularity are few more parameters controlling release
in projects.
Similarly introduction of continuous integration, automated code quality checks will improve devel-
oper productivity, Teams can see visible positive change in average number of story points delivered per
Agile Sprint by same team, ibsequie
These reals can be used to define a strategy for next DevOps refinement in subsequene erations
TEST YOUR UNDERSTANDING
1. Which of the following is the correct sequence of DevOps
A. Walk, Crawl, Run, Sprint
8 Crawl, Walk, Run, Sprint
G Crawl, Walk, Sprint, Run
Crawl, Sprint, Walk, RunDevOps Tools from Practitioner’ Viewpoint
2, Which of the following is not an influencer in solution definition?
A. Feedback from the previous iteration
B. Organization strategy
G Assessment findings
D. None of above
3. Which phase comes after feedback?
A. Assess
B. Measure
G Implement
D. Define
ay
Solution Definition: Define solution for an application to fix minimum three known issues to come up
Yat minimum one tool-based strategy and one process change strategy. Also define che expected benefis
of this strategy.There are many tools, both free and propriet
ary, available to accomplish a task while defining DevOps
pipeline. The question is, which one to choose? Each tool needs to be integrated with one or more other
tools in pre- and post-activities. In addition, the tool output needs to be provided to the dashboard to
consolidate execution progress of different unit steps and report. Will there be challenges in the integra
tion of these tools? Will these tools provide data suitable to present a combined view with other tools?
Will took: from different vendors result in constraints during the upgrade? A DevOps architect has to find
answers to so many such questions
Scenario: Can I get all the tools from only one vendor?
Icis not always necessary that there will be seamless integration in different tools from different vendors
Most of the times, DevOps architects have to live with certain limitations arising due to multi-vendor
tools. This results in limited collaboration amongst the teams using these tools. This also results in addi-
tional efforts due to the following additional factors that need to be addressed:
1. Non-standard integration options amongst tools, such as plugin-based integration, xml or text file-
based data integration, support for only batch mode integration, ctc.
Formatting of data from different tools to show on the dashboard.
Functional limitation due to non-availability of the same feature in different took.
Thorough feature analysis before upgrading a tool from an established ecosystem to the latest version.
This
2
3.
4.
Scenario resulted in two alternatives to reduce the impact of multi-vendor tools in one eco-system:
| Usage of tools fiom one vendor only.
2 Use of akernate tool which is capable of integrating tools from different providers,
\n this chapter, we explore toolsets off
for uni functions ir
inte
ed by vendors to address challenges in the usage of multiple tools
1 a DevOps pipeline. Atlassian and Phabricator provide multiple tools, which can be
Stated seamlessly into respective tool stack, to provide a uniform pipeline,
EXH aruassian roots
DevOps is an ecos
collaboration acy
collaboration, in
tools and addin,
system of multiple tools and not an all-in-one solution
Toss teams. Atlassian tools are one such example. Atlas
mprove quality and accelerate releases. Atlassian is cot
1 New tools to their toolset.IR EE 9: hon rae vegan
Atlassian tools are widely used in small as well as large organizations. All these took are
accepted because of the features offered, Tools like JIRA, Confluence and HipChat are very wig
because these tools allow stakeholders to centralize information with these integrated took, Ths he
teams to work effectively in a distributed em
ament.
©} KNOW A concer: pisrmIBuTED ENVIRONMENT EY
Distributed environment in DevOps context is used to represent distribution of development activiy
onto separate development environments, sometimes at different locations, with different -
ment speeds, etc. Delivery of unitied software by these distributed teams becomes dl "
Communication, collaboration and consolidation of work needs extra management effort. ay
Similarly tools ike Bamboo and Bitbucket are very rich tools in continuous integration, Bamboo an
orchestrate continuous integration segment of DevOps pipeline with Bitbucket as a source, code manage.
ment tool. Figure 4.1 shows the Atlassian toolset.
Adsian tools require licenses to be purchased separately. Licensing aspect needs separate evaluation
in the sclection process.
SRIIRA Service Dask
system, more suitable for managing workflows forCHAPTER A / voisus RE
fi for the solution like HR. onboarding or simple workflows. All of these flavors are availabl
vou service and on-premises implementations, finds
2, Of the two collaboration tools, Confluence and HipChat, Confluence gives the capability to its
or sen colaboratvely share, view and discuss meeting notes, share file, ete,t0 individual in a team
multiple groups. It can work as a knowledge repository, wiki, within the project and even at the th
prise level. Its web application interface improves accessibility and is one of the key reasons behind
‘wide use, Many organizations are using confluence as a knowledge hub for projects and enterprises.
44. Quick communication within teams can be done using HipChat, Atlassian’ real-time messaging tool.
This is a replacement of AIM, GoogkeTalk, Skype.
4, Birbucket is one of Atlassian’s development tools used to create and maintain code repositories and
codes in them, It is both cloud code manager and on-premises code manager (previously known as
Stash). Bitbucket also improves collaboration amongst teams through source code management. It can
scale as the teamn size grows
5, Bamboo is another development tool for Continuous Integration, Deployment, and Release
Management. It can also integrate with JIRA.
6 Crucible is a flexible code review tool! that lets the team collaborate in code review activity by letting
to discuss and identify defects across, Crucible claims to offer a flexible review workflow.
‘There are many other tools, in addition to Atlassian tools, in proprietary and open-source space offering
the same functionality with some variance,
4.1.1 Key Features
1. All the tools provide cross-platform support, ability to integrate a custom tool or third-party service
using a standard integration mechanism like REST APIs. These abilities are over the ability of seamless
integration capability with internal tools.
2, All Adassian tools can be integrated using Application Links, These tools share knowledge with one
another,
JIRA provides rich planning features, complete transparency to the team’s work, extensive reporting
functionality, etc
Bitbucket,a Git solution, makes it easy to collaborate with the team, iterate often, and ship higher
quality code. It provides an easy interface for viewing changes in repositories with unified or
side-by-side diffs (term used to show differences between two versions of a code file). The GIT Lange
File Storage in Bitbucker stores large assets for game development, Bitbucket Pipelines feature enables
development to deployment for fast feedback.
Crucible, code review tool, helps catch major defects, improve code architecture, or discuss desired
«,‘mProvements with formal, standard or quick code reviews.
. Bamboo facilitates early catching of quality issues by static cade analysis, security code analysis,
performance code analysis, unit testing and quality gates configured in continuous integration
(Cl) builds,
Deployment projects in Bamboo automate release
is cen environment.
5 ‘2
a 4 Content Collaboration Software
2