0% found this document useful (0 votes)
34 views46 pages

Dev Ops

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)
34 views46 pages

Dev Ops

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/ 46

DevOps

UNIT- 1
What is DevOps?
The word DevOps is a combination of two words Development and
Operations. Before getting into what DevOps is, let us get an idea about the two
teams involved in software development. The development team is responsible
for developing, designing, and building the application. The operation
team deals with the deployment and testing of the application. If there are
problems with the application, the operation team also provides feedback to the
development team.
DevOps is a software development and IT operations methodology that
emphasizes collaboration, communication, and integration between software
developers and IT professionals. It aims to shorten the development lifecycle and
provide continuous delivery of high-quality software.
Comparing Waterfall vs Agile vs Devops

Waterfall Model:
The development methodology of the Waterfall is
also quite similar to it. A linear production model
allows developers to proceed after the preceding
phase is complete.
This methodology suits smaller-scale projects
which have easily definable deliverables.
Agile
The Agile methodology is a project management approach that involves breaking
the project into phases and emphasizes continuous collaboration and
improvement. Teams follow a cycle of planning, executing, and evaluating.
Water fall vs Agile model
Water fall vs Agile model
Limitation
Limitations of Agile Model
Solution is DevOps
DevOps Tools and Technologies:
DevOps Stages
Version Control
Continuous Integration (CI)
Continuous Delivery
Continuous Deployement
Advantages :
•Faster development and deployment of applications.

•Faster response to the market changes to improve business growth.

•Business profit is increased as there is a decrease in software delivery time and transportation
costs.

•Improves customer experience and satisfaction.

•Simplifies collaboration as all the tools are placed in the cloud for customers to access.

•Leads to better team engagement and productivity due to collective responsibility.


Disadvantages:
•Less availability of DevOps professionals.
•Infrastructure cost is high for setting by DevOps environment.
•Lack of DevOps knowledge can lead to problems in the continuous integration of
automation projects.
What is the Agile methodology?
The Agile methodology is a project management approach that involves breaking the project into
phases and emphasizes continuous collaboration and improvement. Teams follow a cycle of
planning, executing, and evaluating.
* It is the latest model used by major companies today like Facebook, google, amazon, etc. It follows the
iterative as well as incremental approach that emphasizes the importance of delivering of working product
very quickly.
OR
Agile methodology is a project management framework that breaks projects down into several
dynamic phases, commonly known as sprints.
The Agile framework is an iterative methodology. After every sprint, teams reflect and look back to
see if there was anything that could be improved so they can adjust their strategy for the next
sprint.
The Agile framework is an umbrella for several different variations. Here are a
few of the most common Agile methodologies.

Kanban: Kanban is a visual approach to Agile. Teams use online Kanban board tools to represent where
certain tasks are in the development process. Tasks are represented by cards on a board, and stages are
represented in columns. As team members work on tasks, they move cards from the backlog column to the
column that represents the stage the task is in. This method is a good way for teams to identify roadblocks
and to visualize the amount of work that’s getting done.

Scrum: Scrum is a common Agile methodology for small teams and also involves sprints. The team is led by
a Scrum master whose main job is to clear all obstacles for others executing the day-to-day work. Scrum
teams meet daily to discuss active tasks, roadblocks, and anything else that may affect the development
team.
•Sprint planning: This event kicks off the sprint. Sprint planning outlines what can be delivered in a sprint (and how).

•Sprint retrospective: This recurring meeting acts as a sprint review—to iterate on learnings from a previous sprint that
will improve and streamline the next one.
Scrum vs Kanban
12 PRINCIPLES OF AGILE
METHODOLGY
What are the 12 Agile principles?
1.Satisfy customers through early, continuous improvement and delivery: When customers receive new updates
regularly, they're more likely to see the changes they want within the product. This leads to happier, more satisfied
customers—and more recurring revenue.

2.Welcome changing requirements, even late in the project: The Agile framework is all about adaptability. In
iterative processes like Agile, being inflexible causes more harm than good.
3.Deliver value frequently: Similar to principle #1, delivering value to your customers or stakeholders frequently
makes it less likely for them to churn.

4.Break the silos of your projects: Collaboration is key in the Agile framework. The goal is for people to break out of
their own individual projects and collaborate together more frequently.
5.Build projects around motivated individuals: Agile works best when teams are committed and actively working to
achieve a goal.
6.The most effective way to communicate is face-to-face: If you’re working on a distributed team, spend time
communicating in ways that involve face-to-face communication like Zoom calls.
Contd.
7. Working software is the primary measure of progress: The most important thing that teams should strive for with
the Agile framework is the product. The goal here is to prioritize functional software over everything else.

8. Maintain a sustainable working pace: Some aspects of Agile can be fast-paced, but it shouldn't be so fast that
team members burn out. The goal is to maintain sustainability throughout the project.
9. Continuous excellence enhances agility: If the team develops excellent code in one sprint, they can continue to
build off of it the next. Continually creating great work allows teams to move faster in the future.
10. Simplicity is essential: Sometimes the simplest solution is the best solution. Agile aims to not overcomplicate
things and find simple answers to complex problems.

11. Self-organizing teams generate the most value: Similar to principle #5, proactive teams become valuable
assets to the company as they strive to deliver value.

12. Regularly reflect and adjust your way of work to boost effectiveness: Retrospective meetings are a common
Agile practice. It's a dedicated time for teams to look back and reflect on their performance and adapt their
behaviors for the future.
What are the benefits of the Agile development methodology?

1. Agile methods are adaptable: One of the main benefits of using Agile processes in software
development is the ability to shift strategies quickly, without disrupting the flow of a project.
2. Agile fosters collaborative teamwork: One of the Agile principles states that the most effective way to
communicate with your team is face-to-face. Combine this with the principle that encourages teams to
break project silos and you have a recipe for collaborative teamwork. While technology has changed
since Agile’s inception and work has shifted to welcome more remote-friendly policies, the idea of
working face-to-face still hasn't changed.
3. Agile methods focus on customer needs: One of the unique aspects of software development is that
teams can focus on customer needs much more closely than other industries. With the rise of cloud-
based software, teams can get feedback from their actual customers quickly. Since customer satisfaction
is a key driver for software development, it’s easy to see why it was included in the Agile process. By
collaborating with customers, Agile teams can prioritize features that focus on customer needs. When
those needs change, teams can take an Agile approach and shift to a different project.
Advantages of Agile Methodology

1.Focus on Customer Value: Agile places a high priority on providing customers with value by attending to their requirements and
preferences. Agile guarantees that the most important features are produced first and that iterative changes are driven by customer
feedback by dividing work down into small, manageable tasks.

2.Enhanced Team Morale and Motivation: Agile gives teams the freedom to own their work and decide together. Team members feel
motivated, proud, and owned when they have this autonomy together with a focus on providing value and ongoing growth.

3.Stakeholder Collaboration: Throughout the development process, agile promotes strong coordination between product owners,
developers, and other stakeholders. Better communication, a common understanding of the objectives, and ongoing feedback are all
fostered by this partnership, which produces results that are higher quality and boost stakeholder satisfaction.

4.Early and Continuous Delivery: Agile encourages the tiny, incremental releases of functional software. This gives early access to
observable progress and facilitates early input and validation for stakeholders. Continuous delivery reduces risks by spotting problems
early on and taking action to fix them.

5.Delivering high-quality software: It is a key component of agile development, and this is emphasized by techniques like continuous
integration, automated testing, and frequent inspection and modification. Agile guarantees that the software satisfies the required
standards and lowers the likelihood of faults by integrating quality assurance throughout the development process.
Disadvantages of the Agile Methodology

1.Lack of Predictability: Project timeframes and outcomes might be difficult to predict with accuracy due to Agile iterative and
incremental methodology. Stakeholders who need set budgets or timeframes may find this unpredictability troublesome.

2.Dependency on Customer Availability: Agile greatly depends on ongoing customer and stakeholder feedback and participation.
Customers who are unavailable or who don’t know enough about the domain can impede development and slow it down.

3.Scaling Agile: While Agile works effectively for small to medium-sized teams working on relatively basic projects, scaling Agile methods
to bigger teams or more complicated projects can be more difficult. As the project grows, it gets harder to maintain coordination,
alignment, and communication.

4.Dependency on Team Dynamics: Agile’s focus on self-organizing, cross-functional teams with the authority to reach decisions
together is paramount. Inadequate communication within the team or a lack of experience or expertise among team members can
negatively affect output quality and productivity.

5.Increased Overhead: Planning, coordinating, and communicating take more time and effort when using agile frameworks like Scrum.
This overhead can take a lot of time, especially for projects with short deadlines or small teams.
DevOps and ITIL
DevOps fits well together with many frameworks for Agile or Lean enterprises. Scaled Agile Framework, or SAFe® ,
specifically mentions DevOps. There is nearly never any disagreement between proponents of different Agile practices
and DevOps since DevOps originated in the Agile environments.

ITIL, which was formerly known as Information Technology Infrastructure Library, is a practice used by many
large and mature organizations. ITIL is a large framework that formalizes many aspects of the software life cycle.

While DevOps and Continuous Delivery hold the view that the changesets we deliver to production should be small and
happen often, at first glance, ITIL would appear to hold the opposite view. It should be noted that this isn't really true.
Legacy systems are quite often monolithic, and in these cases, you need a process such as ITIL to manage the complex
changes often associated with large monolithic systems. If you are working in a large organization, the likelihood that you
are working with such large monolithic legacy systems is very high. In any case, many of the practices described in ITIL
translate directly into corresponding DevOps practices. ITIL prescribes a configuration management system and a
configuration management database. These types of systems are also integral to DevOps.
DevOps and ITIL
When it comes to IT operations, businesses often adopt DevOps or ITIL (IT Infrastructure
Library) frameworks to help streamline their digital workflows. While both frameworks deal
with IT practices, they differ quite a bit in their structure and areas of focus.

ITIL is more rooted in ITSM (IT Service Management), whereas DevOps brings development
and operations teams together with the help of methodologies and tools such as Instatus. In
this article, we’ll be going through both DevOps and ITIL frameworks to help you decide
which one best suits your business.
DevOps vs. ITIL:

DevOps and ITIL are well-known frameworks for IT workflows, but they both specialize in
different areas. DevOps focuses on collaboration and offers a flexible approach toward
IT lifecycles phases. ITIL, on the other hand, offers a more strict set of guidelines for ITSM
implementation, although these can be adapted if necessary.
DevOps is a series of methodologies and tools that help automate and streamline software
development processes, such as software deployment, testing, and monitoring. The goal
is to improve communication and interactions between IT and development teams, with a
strong focus on automating workflows for faster and better product releases.

** DevOps Examples

Continuous Integration with Jenkins.

Deploying Application Using Kubernetes.

Create a CI/CD Pipeline using Azure DevOps


DevOps involves the use of various specialized tools, such as Instatus. With the help
of Instatus, you’re able to create your own beautiful status page within seconds,
which allows you to enable continuous monitoring in your DevOps workflow.

PROS CONS

• Automates software development and deployment processes • DevOps professionals aren’t readily available

• Elevates customer experience and satisfaction • Costly infrastructure for DevOps environments

• Leads to better collaboration and productivity • Optimal integration can be hard to achieve

• Allows for flexibility in terms of methodologies and toolchains • In-depth DevOps knowledge is required to carry out certain processes

• Improves the quality of your products

• Creates more cost-efficient workflows

• Helps you quickly identify and resolve software errors


What is ITIL?
ITIL involves using a set of best practices, which are designed to elevate your ITSM, improve customer relations, and establish a
reliable environment for optimal delivery of IT services.

Pros Cons

Streamlines IT service delivery Less flexibility

Increases customer satisfaction Can be difficult to learn

Allows for better ITSM integration Costly to implement

Helps align IT goals with company objectives •Can be challenging to integrate if you’re
unfamiliar with ITIL ions, and establish a reliable
environment for optimal delivery of IT services.

Optimizes IT usage
Service Lifecycle in ITIL
1) Service strategy : All managers follow instructions to developa service strategy that ensures
the company can manage all associated costs and risks. There are multiple roles involved in
service strategy, and they can defineas follows.

A) Business relationship manager B) Finance manager C) IT steering group (ISG) D)


Demand manager E) Service Strategy manager F) Service Portfolio manager.

2) Service operation Service operation includes technical support teamsandapplication


management that respond whenanissuehas an impact on the business.

3) Service design It involves when the service’s architecture is developed, and the business needs
are translated intotechnical requirements.
4) Service transition In this stage, all assets are controlled to deliver a complete service for
testing and integration.

5) Service improvement It is a reflective approach that involves four stages to check the services
are always in line with the demands of the business.
Key Differences Between DevOps and ITIL
1: Roles

DevOps: Here are some common DevOps roles: ITIL: Here are some examples of ITIL roles:
• Software Developer or Tester: In charge of building applications and reviewing or updating • IT Steering Group (ISG): Responsible for reviewing IT and business strategies
code.
and ensuring they complement one another.
• DevOps Engineer or Automation Architect: Responsible for integrating tools and practices to
automate DevOps processes, managing infrastructures, and helping set up CI/CD pipelines. • Service Strategy Manager: Helps the IGS design and manage the IT service
provider’s strategy. Also in charge of introducing this strategy to the company.
• DevOps Evangelist: Helps maintain a safe work culture, assigns key DevOps roles, ensures team
members are well-trained, and promotes the advantages of DevOps across the company. • Business Relationship Manager: Ensures positive customer relations, analyzes
customer wants and needs, and helps the IT service provider satisfy those needs
• Release Manager: Involved in planning and managing the software development and deployment using an appropriate catalog of services.
processes, making sure DevOps teams release products on time.

• Quality or Experience Assurance Specialist: Tests software products to check if they meet the
• Demand Manager: Analyzes activity or trends to better understand and forecast
company’s quality standards. customer demands for IT services. Collaborates with the capacity manager to
ensure the IT service provider is able to satisfy these demands.
• Security and Compliance Engineer (SCE): Ensures infrastructure is built securely and works
with development teams to design or improve security measures. Also responsible for handling • Financial Manager: Manages the IT service provider’s budgeting, accounting,
compliance requests and responding to security incidents.
and monetary expenses. Creates yearly IT budgets and sends them to the ISG for
approval.
• Utility Technology Player: In charge of maintaining servers and keeping them active. Implements
stringent controls to better manage what can and can’t run on the servers.
• Service Portfolio Manager: Devises strategies to help deliver satisfactory
services to customers. Works with the IGS to elevate service capabilities and
monitors the service portfolio.
2: Software Delivery Process

DevOps

DevOps has a large focus on optimizing the software delivery process, with the use of
automation tools such as Jenkins and Azure DevOps. It also introduces continuous
monitoring and testing to help identify errors quicker, promoting faster software updates.

ITIL

ITIL introduces a set of practices to help increase your software delivery efficiency. It centers
around optimizing the quality of your services and defining clear expectations you can
measure later on to drive continuous improvement.
3: Use Approach

DevOps — A Methodical Approach


•Increase Deployment Frequency: DevOps allows you to deploy small software releases
regularly, making it easy to fix any errors that pop up.
•Resolve Incidents: Use automated systems to locate and resolve simple errors. You can also
avoid shifting blame when larger incidents occur with a well-integrated communications system
across teams.
ITIL — A Structured Approach
•Reduce Workloads: Reduce IT support desk activities with efficient ITSM, which involves offering
self-help options for customers to minimize tickets.
•Increase Customer Satisfaction: Alleviate customer confusion with SLAs (Service Level
Agreements), so customers know exactly what to expect from you.
DevOps processes

1. Continuous Integration

2. Continuous Delivery

3. Continuous Deployment

4. The Release pipeline


DevOps process and Continuous
Delivery
The DevOps process flow is all about agility and automation. Each phase in the DevOps lifecycle
focuses on closing the loop between development and operations and driving production through
continuous development, integration, testing, monitoring and feedback, delivery, and deployment.
Release Management

Release management is the process of overseeing the planning, scheduling, and controlling of software
builds throughout each stage of development and across various environments. Release management
typically included the testing and deployment of software releases as well.Release management has
had an important role in the software development lifecycle since before it was known as release
management. Deciding when and how to release updates was its own unique problem even when
software saw physical disc releases with updates occurring as seldom as every few years.Now that
most software has moved from hard and fast release dates to the software as a service (SaaS) business
model, release management has become a constant process that works alongside development. This is
especially true for businesses that have converted to utilizing continuous delivery pipelines that see
new releases occurring at blistering rates. DevOps now plays a large role in many of the duties that
were originally considered to be under the purview of release management roles; however, DevOps has
not resulted in the obsolescence of release management.
Advantages of Release Management for
DevOps

Advantages of Release Management for DevOps


With the transition to DevOps practices, deployment duties have shifted onto the shoulders of the
DevOps teams. This doesn’t remove the need for release management; instead, it modifies the
data points that matter most to the new role release management performs.

Release management acts as a method for filling the data gap in DevOps. The planning of
implementation and rollback safety nets is part of the DevOps world, but release management still
needs to keep tabs on applications, its components, and the promotion schedule as part of change
orders. The key to managing software releases in a way that keeps pace with DevOps deployment
schedules is through automated management tools.
Delivery Pipeline

A DevOps pipeline is a set of automated processes and tools that allows both developers and
operations professionals to work cohesively to build and deploy code to a production
environment. While a DevOps pipeline can differ by organization, it typically includes
build automation/continuous integration, automation testing, validation, and reporting. It may also
include one or more manual gates that require human intervention before code is allowed to
proceed.

Continuous is a differentiated characteristic of a DevOps pipeline. This includes continuous


integration, continuous delivery/deployment (CI/CD), continuous feedback, and continuous
operations. Instead of one-off tests or scheduled deployments, each function occurs on an ongoing
basis.
Identifying bottlenecks
As is apparent from the previous example, there is a lot going on for any change that propagates
through the pipeline from development to production. It is important for this process to be efficient.
As with all Agile work, keep track of what you are doing, and try to identify problem areas. When
everything is working as it should, a commit to the code repository should result in the change being
deployed to integration test servers within a 15-minute time span. When things are not working well,
a deploy can take days of unexpected hassles. Here are some possible causes:
• Database schema changes.

• Test data doesn't match expectations.

• Deploys are person dependent, and the person wasn't available.

• There is unnecessary red tape associated with propagating changes.

• Your changes aren't small and therefore require a lot of work to deploy safely. This might be because your architecture is basically a monolith.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy