Thanks to visit codestin.com
Credit goes to www.scribd.com

100% found this document useful (1 vote)
398 views39 pages

DevOps Principles and Practices Guide

The document provides an overview of DevOps including definitions, principles, practices, benefits and the DevOps lifecycle. Some key points: - DevOps combines cultural philosophies and tools to help organizations deliver applications and services faster through closer collaboration between development and operations teams. - The DevOps lifecycle ("7 C's") includes continuous development, integration, testing, monitoring, feedback, deployment and operations to enable rapid, stable releases. - DevOps principles include automation, continuous integration/delivery, infrastructure as code, and microservices. Practices include configuration management, continuous integration, and continuous monitoring. - Benefits include faster delivery, more stable environments, improved collaboration, and more time for innovation

Uploaded by

Mital
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
398 views39 pages

DevOps Principles and Practices Guide

The document provides an overview of DevOps including definitions, principles, practices, benefits and the DevOps lifecycle. Some key points: - DevOps combines cultural philosophies and tools to help organizations deliver applications and services faster through closer collaboration between development and operations teams. - The DevOps lifecycle ("7 C's") includes continuous development, integration, testing, monitoring, feedback, deployment and operations to enable rapid, stable releases. - DevOps principles include automation, continuous integration/delivery, infrastructure as code, and microservices. Practices include configuration management, continuous integration, and continuous monitoring. - Benefits include faster delivery, more stable environments, improved collaboration, and more time for innovation

Uploaded by

Mital
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 39

UNIT-9

DevOps

Prepared By
Prof. Mital Sarvaiya
Computer Engineering
BHGCET - Rajkot
Topics

• DevOps Overview, Problem Case Definition, Benefits of Fixing


Application Development Challenges
• DevOps Adoption Approach through Assessment, Solution
Dimensions,
• 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
DevOps Overview, Problem Case Definition

DevOps is the combination of cultural philosophies, practices, and tools


that increases an organization's ability to deliver applications and services at
high velocity: evolving and improving products at a faster pace than
organizations using traditional software development and infrastructure
management processes.

In writing a case report, you present a problem definition, the criteria for a
successful solution, a description of the situation and relevant facts, your
analysis and solution, and arguments for the value of your solution.
Depending on the situation, an abstract may also be needed.
Benefits of Fixing Application Development Challenges

Before DevOps, developers


used to write hefty codes and
convey it to the operations
team but DevOps has made it
a lot easier by bringing the
development and operations
team on the same page. By
adapting to the DevOps
process, the responsibilities
are distributed equally
among the variant teams with
a single goal and clear
visibility of app
performance.
DevOps Adoption Approach through Assessment, Solution
Dimensions

DevOps is a re-organization practice that focuses on automated


environments, provisioning, and process improvement to reduce cycle time by
removing bottlenecks and also an organizational culture shift that promotes
breaking down silos and minimizing hand-offs.

Four main dimensions of DevOps are identified: collaboration, automation,


measurement and monitoring. An initial conceptual framework is developed
to communicate the phenomenon to practitioners and the scientific community
as well as to facilitate input for future research.
What is DevOps?
What is DevOps? Continue…

The word DevOps is the mixture of two words Dev (it represents Software
Development) and Ops (It represents IT Operations e.g. Application and
infrastructure planning, Automation implementation, incident response, and
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 continuous & high-quality delivery
of the software by making shortening SDLC (Software Development Life
Cycle)
• DevOps bridges the gap between the operation team & development
team, which generally used to work in isolation with another.
DevOps Importance and Benefits

Technical benefits
• Continuous software delivery
• Less complexity to manage
• Faster resolution of problems
• Maximizes Efficiency with Automation
Cultural benefits
Happier, more productive teams
Higher employee engagement
Greater professional development opportunities
Business benefits
Faster delivery of features
More stable operating environments
Improved communication and collaboration
More time to innovate (rather than fix/maintain)
Optimizes the Entire Business
Gets the focus on What Matters Most: People
DevOps Principles and Practices

DevOp Practices DevOps Principles


• Process automation DevOps principles guide how to
• Continuous Integration (CI) organize a DevOps environment.
• Continuous Delivery (CD) • Incremental Releases
• Continuous Deployment • Automation
• Infrastructure as code • DevOps Pipeline
• Micro services • Continuous Integration
• Configuration management and • Continuous Delivery
many more. • Continuous Monitoring
• Feedback Sharing
• Version Control
• Collaboration
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.
7 C’s of DevOps Lifecycle for Business Agility Continue…
7 C’s of DevOps Lifecycle for Business Agility Continue…
Continuous Development
• Planning and Coding of the software are involved in this initial phase.
• During the planning phase, the vision of the project and scope is decided.
• After the planning, developers used to begin coding the application.
• For the planning no DevOps tools available, but many tools available to
maintain the code.
Continuous Integration
• This is the main stage of the DevOps lifecycle.
• Developers should commit the changes to the source code more frequently
as a software development practice. This should be on daily and weekly
basis.
7 C’s of DevOps Lifecycle for Business Agility Continue…

• Next step is to build the every commit, this is used for early detection of
problems if they are present. Building the code involves not the
compilation, but also includes unit testing, integration testing, code review,
and packaging.
• The new functionality is continuously integrated with the existing code.
So, there is continuous development of software. The newly written code
needs to be integrated continuously and smoothly 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 and
prepares a build of that code. Then this build is given to the test server or
the production server.
7 C’s of DevOps Lifecycle for Business Agility Continue…

Continuous Testing
• In this phase, software continuously testing for bugs. The tools like
TestNG, JUnit, Selenium etc are used for the constant testing.
• This phase, where the developed software is continuously testing for bugs.
For constant testing, automation testing tools such as TestNG, JUnit,
Selenium, etc are used.
• These testing tools allow QAs to test multiple code-bases in parallel to
ensure that there is no flaw in the functionality. Docker Containers can be
used for simulating the test environment.
• 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.
7 C’s of DevOps Lifecycle for Business Agility Continue…

Continuous Monitoring
Monitoring is the phase where important information about the use of
software is recorded and processed to identify the problem areas. Monitoring
is integrated with the operational capabilities of the software application. The
system errors such as server not reachable, low memory, etc are resolved in
this phase. It maintains the security and availability of the service.
7 C’s of DevOps Lifecycle for Business Agility Continue…

Continuous Feedback
• By analyzing the results from the operations of the software, one can
improve the application development.
• This can be achieved by constant feedback among the development and the
operations of the next version of the current software applications.
Continuous Deployment
• This phase deploys the code to the production servers.
• This is essential to ensure that the code is correctly working on the
production servers and real environments. The new code should be
deployed continuously.
• The new code is deployed continuously, and configuration management
tools play an essential role in executing tasks frequently and quickly. Here
are some popular tools which are used in this phase, such as Chef, Puppet,
Ansible, and SaltStack.
7 C’s of DevOps Lifecycle for Business Agility Continue…

Continuous Operations
• All the operations in DevOps are based on the continuity with complete
automation of the release process. It allow the organization to accelerate
the overall time to market.
• It is clear that continuity is the critical factor in the DevOps in removing
steps that often distract the development, take it longer to detect issues and
produce a better version of the product after several months. With DevOps,
we can make any software product more efficient and increase the overall
count of interested customers in your product.
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.
DevOps and Continuous Testing Continue…

Continuous Delivery (CD) | Automated Deployment Pipeline


DevOps and Continuous Testing Continue…

Continuous Testing (CT)


DevOps and Continuous Testing Continue…

• As per the continuous testing (CT) diagram, unit tests are carried out on the CI
server. It tests each unit of the system in an isolation.
• Integration tests are carried out on the Integration environment to verify the
components integrated.
• System tests are carried out in the system testing environment where the system
the integrated components and interfaces are tested through system-level
scenarios in a system testing environment.
• CT progressively becomes harder and longer with the progression towards the
production environment as environment complexity advances.
• The test cases are required to update each time at different phases. The
automated scripts required to update because the code becomes more mature &
progresses to a higher level of environment ill it gets into production.
• The time to execute the tests increases with the testing progress. E.g. the unit
test may take very little time to execute, the integration tests, system tests or
load tests may take a few hours to execute or may take a few days for
execution.
• The CT mainly running the automated test cases. It also involves certain
manual tests and approval gates, where few tests are executed manually, before
pushing into the production.
DevOps and Continuous Testing Continue…

Benefits of Continuous Testing in DevOps


• Early identification of critical bugs
• Smooth collaboration among developers, QA and Operations team
• At each stage of SDLC, it helps to assess the quality of software developed
• Leads to improvement in code quality by driving faster test results which
• Repeated testing ensures minimal failure rate for new releases
• Faster time to market with a viable product and continuous feedback
mechanism
How To 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.
How To Choose Right DevOps Tools Continue…

• 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.
Challenges with DevOps Implementation

• Lack of a Standard Definition for DevOps


– Many companies are still not have the actual understanding of DevOps
e.g. the purpose behind it, or for that matter, the benefits of using it.
– Many people believe that DevOps overrules existing methodologies
like Scrum which are practiced in most industries.
– Actually, DevOps helps to improve the execution of available
methodologies.
– The implementation of DevOps becomes risky 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 methods like DevOps for betterment – all
at the same time!
Challenges with DevOps Implementation Continue…

• Shortage of Tool Knowledge


• Choice of Tools
• Lack of Tool Integration
• Cultural Challenges
• Isolated Teams
• Risk Analysis
Must Do Things for DevOps, Mapping My App to DevOps
Assessment Definition, Implementation, Measure and
Feedback

Implementing DevOps in your organization


If you haven’t yet implemented a DevOps process in your organization, the
task can seem daunting. Keep in mind—it is not only a process shift but a
cultural shift as well.
As you strive for successful DevOps adoption, consider implementing it in
stages. Depending on where your organization currently stands, you may want
to build on an agile approach for DevOps implementation.
A gradual implementation sequence might look like this:
• Establish an agile development process
• Adopt cloud computing
• Adapt your processes to a CI and CD workflow
Implementing DevOps in your organization Continue…

• Automate your software deployment


• Automate software testing
• Implement continuous deployment
Keep in mind that DevOps automation brings with it both an infrastructural
and tooling shift. Without the proper infrastructure and tools to support your
processes, you risk having gaps in your DevOps process flow. To create a true
DevOps environment, each stage of the development pipeline should be as
automated and agile as possible.
Also consider how visuals can help you map out your DevOps processes and
understand everything from who is working on what, to timelines, and process
flows. Visuals can ease the implementation process, keeping everyone on the
same page from the start.
DevOps tools to help you map your processes

While DevOps is as much about mindset as it is about process, there are still
many moving parts to keep track of. As you adapt your processes to a DevOps
environment, consider using these DevOps tools to stay on point.
• Git: A distributed source code management DevOps tool that allows you to
track your development progress. Easily save or revert back to different
versions of your source code and leverage features like branching, staging
areas, and different workflow options.
• Lucidchart: A visual workspace that helps developers and IT managers
create robust, easy-to-understand diagrams of processes, teams, and data.
You can use Lucidchart as a DevOps tool to model your new DevOps
process flow to train team members, document handoffs, track ongoing
development progress, and keep everyone on the same page.
DevOps tools to help you map your processes Continue…

• Kubernetes: Take containerization to the next level by grouping into


logical units, deploying in clusters, and automating distribution and
scheduling. Kubernetes is a popular open-source system and DevOps tool
that helps teams move their projects forward at scale.
• Raygun: Monitor your errors and crash reports with Raygun, an
application performance monitoring platform. This DevOps tool can help
you diagnose issues and track the error all the way back to a specific line
of code, function, or API call.
• One of the biggest challenges for IT managers is managing a large tool
chain. Whatever tools and applications you use to make DevOps work,
Lucidchart can help you keep everything straight.
DevOps tools to help you map your processes Continue…
DevOps tools to help you map your processes Continue…

Lucidchart can help you map out your tool chain and identify how each tool
interacts with your DevOps processes. Plus, data linking allows you to
connect your diagrams with live source data. You can monitor your
application status in real time so you can proactively address issues and
communicate with team members to resolve problems.
Measuring DevOps

While there are many metrics you could measure to track your DevOps
journey, these 17 are a great way to start. Here broken them down into three
key functional areas:
• DevOps measurements for basic application and infrastructure health
• DevOps measurements for reliability and system health 
• Measurements for DevOps and DevOps team health 
Measuring DevOps Continue…

1) DevOps measurements for basic application and infrastructure health


• Apdex
– Apdex tracks three response counts at three different levels:
– Satisfied: The response time is less than or equal to T.
– Tolerating: The response time is greater than T and less than or equal to
4T.
– Frustrated: The response time is greater than 4T.
• Average response time
• CPU percentage usage
• Error rates
• Load average
• Memory percentage usage
• Throughput
Measuring DevOps Continue…

2) DevOps measurements for reliability and system health


DevOps teams can track system reliability, quality, and overall health using a
few key metrics. In DevOps organizations, site reliability engineers,
operations engineers, software developers, project managers, and engineering
leadership will all find value in these measurements.

• Defect metrics
• Mean time to detection (MTTD)
• Mean time to recovery (MTTR)
• Service-level agreements (SLAs)
• Service-level objectives (SLOs)
Measuring DevOps Continue…

3)DevOps measurements for team health


Successful DevOps organizations don’t just track technical metrics, they also
look at measurements of team health and performance. These measurements
are of particular interest to software developers, operations engineers, project
managers, and engineering leadership in DevOps organizations.

• Code commits
• Deployment time and deployment frequency
• Iteration length
• Passed/failed unit tests
• Project lead time
DevOps Feedback
DevOps Feedback Continue…

• Continuous feedback is essential to application release and deployment


because it evaluates the effect of each release on the user experience and
then reports that evaluation back to the DevOps team to improve future
releases. This feedback can be gathered through two methods: structured
and unstructured.13-Jun-2016
THANK YOU(*_*)

You might also like