devops
devops
Looping
Outline
What is DevOps?
DevOps Importance and Benefits
DevOps Principles and Practices
7 C’s of DevOps Lifecycle for Business Agility
DevOps and Continuous Testing
How to Choose Right DevOps Tools
Challenges with DevOps Implementation
Must Do Things for DevOps
Mapping My App to DevOps –Assessment
Definition, Implementation, Measure and Feedback
Limitation of Waterfall
3
Agile Model
4
Limitation of Agile
5
Solution is DevOps
6
What is DevOps?
7
What is DevOps?
The word DevOps is the mixture of
Plan Code
two words Dev (it represents Software
Build Test Development) and Ops (It represents
IT Operations e.g. Application and
Development infrastructure planning, Automation
implementation, incident response, and
DevOps incident management, etc.)
DevOps is a group of practices &
principals that perfectly blends
software development (Dev) and IT
operations (Ops).
The main aim of DevOps is to provide
Operations continuous & high-quality delivery of
Releas Deplo the software by making shortening
SDLC (Software Development Life
e y
Operat Monit Cycle)
e or DevOps bridges the gap between 8 the
DevOps Importance and Benefits
1 Technical benefits 3 Business benefits
Continuous software Faster delivery of features
delivery
Less complexity to More stable operating environments
manage
Faster resolution of Improved communication and collaboration
problems
Maximizes Efficiency with More time to innovate (rather than
Automation fix/maintain)
Optimizes the Entire Business
2 Cultural benefits Gets the focus on What Matters Most: People
Happier, more productive
teams
Higher employee
engagement
Greater professional
development
opportunities
9
DevOp Practices DevOps Principles
Process automation DevOps principles guide how to organize a
Continuous Integration DevOps environment.
(CI) Incremental Releases
Continuous Delivery Automation
(CD) DevOps Pipeline
Continuous Deployment Continuous Integration
Infrastructure as code Continuous Delivery
Microservices Continuous Monitoring
Configuration Feedback Sharing
management and many
more. Version Control
Collaboration
10
7 C’s of DevOps Lifecycle for Business Agility
An agile relationship between development & operations are defined by
DevOps.
DevOps is a set of rules and procedures followed by the development
team and operational engineers together from beginning to the final
stage of the product.
To understand the DevOps lifecycle phases is essentials to Learn DevOps.
The DevOps Life cycle is described by 7’C
The 7’C approach to DevOps requires an efficient integration of
processes and tools to automate the seamless information exchange and
execution.
The 7’C approach to DevOps also requires efficient collaboration between
all stakeholders empowering them to contribute more.
The 7’C approach removes all deviation of information and execution.
11
7 C’s of DevOps Lifecycle for Business Agility
Continuous Development
Continuous Integration
Continuous Testing
Continuous Monitoring
Continuous Feedback
Continuous Deployment
Continuous Operations
12
7 C’s of DevOps Lifecycle for Business Agility
Cont.
1 Continuous 2 Continuous Integration
Development
Planning and Coding of This is the main stage of the DevOps lifecycle.
the software are involved Developers should commit the changes to the source
in this initial phase. code more frequently as a software development
During the planning practice. This should be on daily and weekly basis.
phase, the vision of the Next step is to build the every commit, this is used for
project and scope is early detection of problems if they are present.
decided. Building the code involves not the compilation, but
After the planning, also includes unit testing, integration testing, code
developers used to begin review, and packaging.
coding the application. The new functionality is continuously integrated with
For the planning no the existing code. So, there is continuous
DevOps tools available, development of software. The newly written code
but many tools available needs to be integrated continuously and smoothly
to maintain the code. with the systems to reflect changes to the end-users.
Jenkins is a famous tool used for continuous
integration. Once the change in the Git repository is
ready, then Jenkins fetches the committed code 13 and
7 C’s of DevOps Lifecycle for Business Agility
Cont.
3 Continuous Testing 4 Continuous Monitoring
In this phase, software continuously testing for Monitoring is the phase where
bugs. The tools like TestNG, JUnit, Selenium etc important information about the
are used for the constant testing. use of software is recorded and
This phase, where the developed software is processed to identify the
continuously testing for bugs. For constant problem areas. Monitoring is
testing, automation testing tools such as integrated with the operational
TestNG, JUnit, Selenium, etc are used. capabilities of the software
application. The system errors
These testing tools allow QAs to test multiple such as server not reachable,
code-bases in parallel to ensure that there is low memory, etc are resolved in
no flaw in the functionality. Docker Containers this phase. It maintains the
can be used for simulating the test security and availability of the
environment. service.
Replacing manually testing to Automation
testing saves a lot of time and effort for
executing the tests. The code is continuously
integrated with the existing code, after the
testing. 14
7 C’s of DevOps Lifecycle for Business Agility
Cont.
5 Continuous Feedback 7 Continuous Operations
By analyzing the results from the operations All the operations in DevOps are
of the software, one can improve the based on the continuity with
application development. complete automation of the
This can be achieved by constant feedback release process. It allow the
among the development and the operations organization to accelerate the
of the next version of the current software overall time to market.
6applications.
Continuous Deployment It is clear that continuity is the
This phase deploys the code to the production critical factor in the DevOps in
servers. removing steps that often
distract the development, take it
This is essential to ensure that the code is longer to detect issues and
correctly working on the production servers produce a better version of the
and real environments. The new code should product after several months.
be deployed continuously. With DevOps, we can make any
The new code is deployed continuously, and software product more efficient
configuration management tools play an and increase the overall count of
essential role in executing tasks frequently interested customers in your
and quickly. Here are some popular tools product. 15
DevOps and Continuous Testing
In DevOps Continuous testing is the most important process of the
continuous delivery pipeline along with Continuous Integration in the
same pipeline.
The continuous testing in DevOps contains the execution of automated
tests repeatedly & continuously against the codebase in the various
deployment environments.
Continuous testing contains unit tests, static code analysis, security code
analysis, integration tests & load and performance tests. These sets of
tests run in an automated continuous testing pipeline.
To test every line of code, every time at different stages is almost
impossible to do each time manually when a line of code is updated into
version control. That’s where continuous testing comes into the picture.
16
DevOps and Continuous Testing Cont.
Continuous Delivery (CD) | Automated Deployment Pipeline
Continuous Integration Build Pipeline
Automate
Code Compile &
d Unit
Check In Build
Test
User Release to
Acceptanc
Acceptance Productio
e Test
Automatic
Test Manual
n
Approval Approval
Quality Quality
Gate Gate
Continuous Testing – Test Pipeline
17
DevOps and Continuous Testing Cont.
AAQG = Automated Approval
Quality Gate
G
Security Non Functional
e
Tests
Tests Test
20
Choose Right DevOps Tools
At the time of adopting a DevOps approach for building and operating
software systems, one should rely on modern tools for each & every
aspect of build, release, and operations activities.
The first step to choose Right DevOps Tools is one need to think more
broadly about what company need.
Following are the guideline for selecting the right DevOps tools for any
organization
Select tools which facilitate collaboration
One should give proper importance to collaboration as a key selection aspect of
tools.
Verify the main purpose of the tool to find collaboration opportunities.
Check, “How does the use of selected tool helps in collaboration?”
Select DevOps tools which provides APIs
The company can get mixture of new capabilities from multiple API-driven tools.
21
Choose Right DevOps Tools Cont.
Select the tools which can store configuration in version control
Select tools that provides configuration to version control system available in
market.
DevOps tools should encourages learning
Few tools for DevOps are so much involved and complicated for the people new to
them; one should not expect everyone to understand or adopt complex new tools
immediately. If management selects a tool that is too tricky to use, some people
may start opposing, especially if management don't provide training.
Company should select tools which is easy to use.
Bring people with company into the DevOps journey.
Avoid special production-only tools
Select tool that enhance inter-team communications
Consider the entire organization as a system you are building.
Select separate tools for the separate teams.
One should deploy shared tools for the collaborative teams.
22
Challenges with DevOps Implementation
Lack of a Standard Definition for DevOps Shortage of Tool
Many companies are still not have the actual Knowledge
understanding of DevOps e.g. the purpose
behind it, or for that matter, the benefits of Choice of Tools
using it. Lack
Many people believe that DevOps overrules
of Tool
existing methodologies like Scrum which are
Integration
practiced in most industries. Cultural Challenges
Actually, DevOps helps to improve the
execution of available methodologies.
Isolated Teams
The implementation of DevOps becomes risky Risk Analysis
because of the lack of proper understanding.
Lack of Vision
It is difficult to have a vision without proper
understanding and definition of the problem or
solution. Because of it analysts may stuck to
ambiguous circle.
It is really more difficult to break this ambiguous
circle & to become more receptive to the newer 23