0% found this document useful (0 votes)
8 views54 pages

Devops Unit-3

DevOps is a cultural and methodological approach that integrates development and IT operations to enhance software delivery speed and quality. It promotes collaboration, continuous feedback, and automation throughout the software lifecycle, leading to faster deployments and improved customer satisfaction. Key benefits include increased reliability, risk mitigation, and alignment with business goals, distinguishing it from Agile, which focuses more on adaptability and iterative development.

Uploaded by

sreereshma2004
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views54 pages

Devops Unit-3

DevOps is a cultural and methodological approach that integrates development and IT operations to enhance software delivery speed and quality. It promotes collaboration, continuous feedback, and automation throughout the software lifecycle, leading to faster deployments and improved customer satisfaction. Key benefits include increased reliability, risk mitigation, and alignment with business goals, distinguishing it from Agile, which focuses more on adaptability and iterative development.

Uploaded by

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

UNIT-3

Definition of DevOps
 DevOps can be defined as a combination of cultural
philosophies, processes and tools to facilitate
organizations deliver services and applications much
faster than they can through conventional software
development processes.
 It helps to increase customers‘ confidence in the
applications that an organization offers, there by
allowing the company to grow(flourish) and achieve its
business goals faster .
Definition of DevOps
 DevOps is a collaboration between Development and
IT Operations to make software production and
Deployment in an automated & repeatable way.
 DevOps helps increase the organization’s speed to
deliver software applications and services. The full
form of ‘DevOps’ is a combination of ‘Development’
and ‘Operations.’
 In simple words, DevOps can be defined as an
alignment of development and IT operations with
better communication and collaboration.
Purpose of DevOps
 Before DevOps came into the limelight, two separate
teams in an IT organization - the Development team
and the Operations team.
 Devops aims to bridge the gap between two significant
departments of IT organization.
 DevOps is not a tool or a team, it is the process or a
methodology of using various tools to solve the
problems between Developers and Operations team ,
hence the term "Dev-Ops“.
Purpose of DevOps
 The development team is responsible for developing
software and making sure that the code worked
perfectly.
 After hours of hard work and a lot of trial and error,
the team releases a code that has to be executed by the
Operations team which is responsible for the release
and operation of the code.
 The operations team will be checking the application
and its performance and reporting back any bugs, if
present.
Purpose of DevOps
 Before DevOps, the development and operation team
worked in complete isolation.
 Testing and Deployment were isolated activities done
after design-build.
 Without using DevOps, team members spend a large
amount of their time testing, deploying.
 Development & operation teams have separate
timelines and are not synch, causing further delays.
 There is a demand to increase the rate of software
delivery by business stakeholders.
Purpose of DevOps
 The two major teams always had a conflict when it
came to execution.
 The development team always had the pressure of
completing the old work that was considered faulty by
the operations team.
 With DevOps, there is no wait time to deploy the code
and get it tested.
 Hence, the developer gets instantaneous feedback on
the code, and therefore can close the bugs, and can
make the code production ready faster.
Purpose of DevOps
 Key Purpose of DevOps is to join development and
operations teams to enable continuous delivery.
 One key purpose of DevOps is to decrease the total
lifecycle of software development with the help of
faster deployments with efficient collaboration
between development and operations teams.
DevOps Working Process
 In the DevOps model, development and operations
teams are no longer isolated.
 In some cases, these two teams are combined into one
team, where engineers work throughout the
application lifecycle from development and testing to
deployment and operations .
 These teams automate all processes that are time-
consuming manual processes.
 They use technology stacks and tools to help them
operate and evolve their applications quickly and
reliably.
Life cycle of DevOps
 DevOps lifecycle can be defined as a continuous
software development process that employs best
practices to plan, build, integrate, deploy, monitor,
operate and offer continuous feedback throughout the
software’s lifecycle.
 DevOps Lifecycle can be viewed as a process of adding
new features and fixing bugs continuously to improve
the application, in the shortest time possible.
 It is often represented by a continuous loop diagram.
Life cycle of DevOps
Life cycle of DevOps
 Different phases of the DevOps lifecycle.
 Plan – In contrast to conventional methods of development,
this model assumes that each stage will be repeated as
necessary. In this manner, the DevOps workflow is planned
with the likelihood of future iterations and likely prior
versions in mind.
 Code –Developers will write code in accordance with the
specifications outlined in the planning phase and ensure that
the code is created with the project’s operations in mind.
 Build – Code will be introduced to the project during this
phase. This can be accomplished in a variety of ways, through
GitHub or a comparable version control site is frequently
used.
Life cycle of DevOps
 Build - The developer will request the addition of the
code, which will be reviewed as necessary. The request
will be approved if the code is ready to be uploaded,
and the code will be added to the project. Even when
adding new features and addressing bugs, this method
is effective.
 Test – Throughout the testing phase, teams will do any
necessary testing to ensure the project performs as
planned.
Life cycle of DevOps
 Release – The release phase occurs when the code has
been verified as ready for deployment and a last check
for production readiness has been performed.
 Deploy – In the deploy phase, the project is prepared
for the production environment and is operating as
planned in that environment. This would be the
responsibility of the operations team. In DevOps, it is
a shared responsibility. This shared duty pushes
team members to collaborate to guarantee a successful
deployment.
Life cycle of DevOps
 Operate – In the operating phase, teams test the project in
a production environment, and end users utilise the
product. Rather, it informs future development cycles and
manages the configuration of the production environment
and the implementation of any runtime requirements.
 Monitor – During the monitoring phase, product usage as
well as any feedback, issues, or possibilities for
improvement are recognized and documented. This
information is then conveyed to the subsequent iteration to
help in the development process. This phase is essential for
planning the next iteration.
Life cycle of DevOps
Life cycle of DevOps
Life cycle of DevOps
1. Continuous Development
 This phase involves ‘planning‘ and ‘coding’ for the
software. The vision of the project is defined, project
needs are gathered. Developers begin writing the code
for the application.
 There are no DevOps tools that are required for
planning, but there are a number of tools for
maintaining the code.
Life cycle of DevOps
1. Continuous Development
 The code can be written in any language, but it is
maintained by using Version Control tools. Maintaining
the code is referred to as Source Code Management.
 The most popular tools used are Git, Mercurial, CVS, and
JIRA. Also tools like Ant, Maven, Gradle can be used in this
phase for building/ packaging the code into an executable
file that can be forwarded to any of the next phases.
 Even after the final release, there are feedbacks that the
developer needs to consider. Therefore, this continuous
process of improving the application by the Developer is
called Continuous Development.
GIT
Life cycle of DevOps
2. Continuous Testing
 After the code is uploaded to the source code platform,
it undergoes testing with the help of test codes.
 This is the stage where the developed software is
tested for bugs.
 For continuous testing ,automation testing tools
like Selenium, TestNG, JUnit etc are used.
 These tools allow QAs to test code bases thoroughly to
ensure that there are no flaws in the functionality.
 In this phase, Docker Containers can be used for
simulating the test environment.
Life cycle of DevOps
2. Continuous Testing
 Automation testing saves a lot of time, effort and labor
for executing the tests instead of doing this manually.
 Besides that, report generation is a big plus. The task
of evaluating the test cases that failed in a test suite
gets simpler.
 After testing, the code is continuously integrated with
the existing code.
Continuous Testing
Life cycle of DevOps
3. Continuous Integration
 This stage is the heart of the entire DevOps life cycle.
 Developers require to commit changes to the source
code more frequently.
 Every commit is then verified for early detection of
problems if they are present. code build not only
involves compilation but it also includes code review,
unit testing, integration testing, and packaging.
Life cycle of DevOps
3. Continuous Integration
 The code supporting new functionality is integrated with
the existing code. Since there is continuous development of
software, the updated code needs to be integrated
continuously with the systems to reflect changes to the
end-users.
 Jenkins is a very popular tool used in this phase. Whenever
there is a change in the GIT repository, Jenkins fetches the
updated code and it prepares a build of that code which is
an executable file in the form of a war or a jar.
 This build is then forwarded to the test server or the
production server.
Continuous Integration
Life cycle of DevOps
Continuous Deployment
 This is the most important step of the DevOps lifecycle,
during which the finished code is released to production
servers.
 It is important to ensure that the code is correctly deployed
on all the servers.
 Since the new code is deployed on a continuous basis,
Configuration management tools and Containerization
tools help in achieving Continuous Deployment (CD).
 configuration management tools that are used here are
Chef, Puppet, Ansible, and SaltStack.
Life cycle of DevOps
 Continuous Deployment
 Containerization tools also play an equally important role in
the deployment stage.
 Docker and Vagrant are the popular tools used for this
purpose.
 Containerization tools help in maintaining consistency
across the environments where the application is
developed, tested and deployed.
 Using these tools, there is no scope of errors/ failure in the
production environment as they replicate same packages
used in the development/ testing environment.
Life cycle of DevOps:
Continuous Monitoring
 During this phase, the functioning and features of the
application are regularly monitored to detect system
faults such as low memory or a non-reachable server.
 This phase involves the participation of the Operations
team who will monitor the user activity for bugs or any
improper behavior of the system.
 It helps us automatically fix the problem as soon as
they are detected.

Life cycle of DevOps:
Continuous Monitoring
 This procedure enables the IT staff to detect app
performance issues and their underlying causes.
 Whenever IT teams discover a serious issue, the
application goes through the complete DevOps cycle
again to determine a solution.
 During this phase, security vulnerabilities can be
recognized and corrected automatically.
 The popular tools used for this are splunk,nagios,
NewRelic .
DevOps Tools
Devops
Benefits of DevOps
 DevOps provides range of benefits to organizations,
helping them improve their software delivery
processes, increase collaboration, and enhance overall
business outcomes.
 Some of the key benefits of DevOps include
Benefits of DevOps
1. Ensures effective collaboration between teams:
DevOps breaks down traditional silos between
development and operations teams. Increased
communication and shared ownership of the entire
software lifecycle foster better teamwork and
problem-solving.
2. Faster Time to Market: DevOps practices enable
organizations to release new features, updates, and
bug fixes more frequently and reliably. This agility
allows businesses to respond quickly to market
demands and changes, gaining a competitive edge.
Benefits of DevOps
3. Increased customer satisfaction
 Dissatisfied customers are never a good sign for any
business. Feed back loops are an important
component of DevOps.
 These loops empower end users to track the progress
of app development at various stages. In addition,
they can suggest changes(if any) or give their inputs to
make the app more customer-centric.
Benefits of DevOps
4. Continuous Delivery: DevOps enables continuous
integration and continuous deployment (CI/CD),
automating the end-to-end software delivery process.
This reduces manual intervention, minimizes errors,
and speeds up the deployment pipeline.
5. Improved Quality: With automated testing and
continuous feedback, DevOps ensures that issues are
identified early in the development cycle. This leads to
higher-quality software and fewer defects reaching
production environments.
Benefits of DevOps
6. Enhanced Reliability: Automation and rigorous
testing in a DevOps environment lead to more stable
and reliable systems. This reduces the likelihood of
outages and downtime, resulting in improved user
experience and customer satisfaction.
7. Risk Mitigation: Continuous monitoring and
feedback help detect vulnerabilities and performance
issues early, allowing teams to address them before
they impact users. This contributes to enhanced
security and risk management.
Benefits of DevOps
8. Innovation and Experimentation: DevOps
promotes a culture of experimentation and learning
from failures. Teams are more willing to try new ideas
and quickly adapt to changing requirements, leading
to innovation and business growth.
9. Cultural Transformation: Embracing DevOps
requires cultural shifts, such as adopting a mindset of
continuous improvement and collaboration. This
transformation can lead to increased employee
engagement and job satisfaction.
Benefits of DevOps
10. Alignment with Business Goals: DevOps aligns IT
activities with business goals and customer needs. By
delivering features and updates faster, organizations
can respond to market shifts and customer feedback
more effectively.
DevOps vs Agile
 DevOps and Agile are modern software development
practices aimed at providing a framework to produce
a product.
 Although both DevOps and agile result in the
development of software, they have different
approaches, involve different groups and departments
and structure production differently.
DevOps vs Agile
 DevOps is a culture, fostering collaboration amongst
all participants involved in the development and
maintenance of software.

 Agile can be described as a development methodology


designed to maintain productivity and drive releases
with the common reality of changing needs.
DevOps vs Agile
 When evaluating DevOps versus agile, it is important
to understand the overall philosophy of each, where
they' re similar and where they' re different, as well as
how to integrate each within your team.

 DevOps and Agile are not mutually exclusive-you can


incorporate aspects of each in your business.
DevOps vs Agile
DevOps Definition
 DevOps is a software development practice that brings
people, process and technology together to deliver
continuous value.
 The approach is divided into planning, development,
build and test, delivery and monitoring
 DevOps is unique in the way that development, IT
operations, quality engineering, and security teams
work together to create efficiency across all tasks
involved in launching a new product, release, or
update.
DevOps vs Agile
Agile Definition
 Agile development is a delivery approach creating a
working prototype or build amidst the realities of
changing needs and requirements.
 Bridging the gap between the development team and
the end user,
 Adaptability is a core attribute of agile, giving
precedence to the needs of users and stakeholders over
rigid plans.
DevOps vs Agile
DevOps philosophy and focus
 DevOps culture seeks to identify new ways to improve
and streamline processes.
 As a result, DevOps focuses on maximizing efficiency,
identifying programmable processes and increasing
automation.
Agile philosophy and focus
 The mindset of agile centers around adaptability and
keeping pace with customer needs and expectations.
 placing the focus on the individual user, what he or she
needs and why.
DevOps vs Agile
 DevOps scope
 DevOps represents the intersections of development,
operations and quality assurance.
 Cross-disciplinary teams unite and collaborate in the
development and delivery of software.
 Agile scope
 Agile development is specific to the development team,
 it is productivity and it is progress toward completing the
project at hand.
 Development is completed in incremental sprints, and
software delivery, deployment, or ongoing maintenance of
each release is managed by different teams.
DevOps vs Agile
DevOps manifestations
 Continuous integration
 Continuous delivery
 Continuous deployment
Agile manifestations
 Scrum
 Kanban
 DSDM
 Extreme programming
 Feature-driven development
DevOps vs Agile
Top features from DevOps
1. Broader scope, wider reach
 DevOps addresses all stages of software development and
delivery, seeking to make releases faster and more reliable.
2. Inter-department collaboration
 A culture of reducing friction and fostering cross-
functional teamwork can produce an improved work
environment and more effective teams.
3. Efficiency from automation
 The DevOps practice seeks to find opportunities to create
programmable processes and automate workflows where
possible, driving efficiency.
DevOps vs Agile
Top features from agile
Workflow productivity tools
 Kanban, Scrum and other familiar planning tools from
agile help track work, helping organize requirements,tasks
and progress.
Incremental progress
 Using sprints or other time-boxed production approaches
help create a consistent development .
Needs of the customer
 Agile's helps provide a consistent feedback loop, bringing
customer expectations to the forefront.
DevOps vs Agile
Agile DevOps
What is it? Agile refers to an DevOps is
iterative approach considered a practice
which focuses on of bringing
customer feedback, development and
and small rapid operations teams
releases. together.
Philosophy Agile is a philosophy DevOps describes
about how to develop how to continuously
and deliver software. deploy code through
the use of modern
tools and automated
processes.
DevOps vs Agile
Agile DevOps
Focus Agile process focuses DevOps focuses on
on constant changes. constant testing and
delivery.
Team size Agile requires a small DevOps requires
team. relatively a large team
Target Area Target area of Agile is Target area of DevOps
Software is to give end-to-end
development. business solutions and
fast delivery.
DevOps vs Agile
Agile DevOps
Feedback is given by the Feedback comes from
Feedback
customer. the internal team.
Duration Agile development is DevOps strives for
managed in units of deadlines and
“sprints.” This time is benchmarks with
much less than a month major releases. The
for each sprint. ideal goal is to deliver
code to production
DAILY or every few
hours.
DevOps vs Agile
Agile DevOps
Cross- Any team member In DevOps, development
functional should be able to do teams and operational
what’s required for teams are separate.
the progress of the
project.
Automation Agile doesn’t Automation is the
emphasize on primary goal of DevOps.
automation. Though It works on the principle
it helps. to maximize efficiency
when deploying
software.
DevOps vs Agile
Agile DevOps
Focus It focuses on It focuses more on
functional and non- operational and business
functional readiness. readiness.
Challenges The agile method DevOps process needs to
needs teams to be streamline development,
more productive testing and production
which is difficult to environments.
match every time.

You might also like