0% found this document useful (0 votes)
29 views42 pages

Introduction to DevOps and Agile Models

The document provides an overview of DevOps, emphasizing its role in enhancing collaboration between development and operations teams to improve software delivery speed and quality. It outlines the DevOps lifecycle phases, advantages and disadvantages, and compares it with the Agile development model, detailing its processes and principles. Additionally, it discusses the integration of ITIL practices within DevOps to optimize IT service management and improve customer satisfaction.

Uploaded by

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

Introduction to DevOps and Agile Models

The document provides an overview of DevOps, emphasizing its role in enhancing collaboration between development and operations teams to improve software delivery speed and quality. It outlines the DevOps lifecycle phases, advantages and disadvantages, and compares it with the Agile development model, detailing its processes and principles. Additionally, it discusses the integration of ITIL practices within DevOps to optimize IT service management and improve customer satisfaction.

Uploaded by

bharathyara12
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

UNIT – I

[Introduction: Introduction, Agile development model, DevOps, and ITIL, DevOps process and
Continuous Delivery, Release management, Scrum, Kanban, delivery pipeline, bottlenecks,
examples]

Introduction to Devops:
 Devops is a combination of two words that is “Development C Operations”.

 Devops is a Culture that implements the technology in order to promote


collaboration between the developer team C the operations team to deploy code to
production faster in an automated C repeatable way.
 The Goal of Devops is to increase an organization’s speed when it comes to delivering
applications C services.
 Many companies have successfully implemented Devops to enhance their user
experience including Amazon,Netflix,etc…

Why is DevOps important?

 DevOps is important because it has the potential to help your organization


differentiate itself from competitors by responding more rapidly to business
demands.
 DevOps is a better way of building software with improved collaboration end-to-end
—not only between development and operations, but also with essential disciplines
such as security, testing (quality assurance or QA), version control, and cross-team
collaboration capabilities such as ChatOps.
 DevOps results in a better software product and more successful implementations.

DEVOPS LIFE CYCLE

1
Phases of the DevOps lifecycle in some detail.

 Plan – The planning phase is exactly what it sounds like: planning the project’s lifecycle. In
contrast to conventional methods to the development lifecycle, this model assumes
that each stage will be repeated as necessary. This stage often involves all teams to
ensure that no area of the planning is ignored or forgotten.

 Code – The developers will write the code and prepare it for the next phase during the
coding stage. Developers will write code in accordance with the specifications
outlined in the planning phase and will ensure that the code is created with the
project’s operations in mind.

 Build – Code will be introduced to the project during the construction phase, and if
necessary, the project will be rebuilt to accommodate the new code. The developer
will request the addition of the code, which will then 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. Teams will also test for edge and corner
case issues at this stage. An “edge case” is a bug or issue that only manifests
during an extreme operating event, whereas a “corner case” occurs when many
circumstances are met.

 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. The
project will subsequently enter the deployment phase if it satisfies all requirements
and has been thoroughly inspected for bugs and other problems.

 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.

 Operate – In the operating phase, teams test the project in a production


environment, and end users utilise the product. This crucial stage is by no means the
final step. 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 aid in the development
process. This phase is essential for planning the next iteration and streamlines the
pipeline’s development process.

DevOps Advantages and Disadvantages

Here are some advantages and disadvantages that DevOps can have for business, such as:

Advantages

o DevOps is an excellent approach for quick development and deployment of applications.

2
o It responds faster to the market changes to improve business growth.

o DevOps escalate business profit by decreasing software delivery time and transportation
costs.

o DevOps clears the descriptive process, which gives clarity on product development and
delivery.

o It improves customer experience and satisfaction.

3
o DevOps simplifies collaboration and places all tools in the cloud for customers to access.

o DevOps means collective responsibility, which leads to better team engagement and
productivity.

Disadvantages

o DevOps professional or expert's developers are less available.

o Developing with DevOps is so expensive.

o Adopting new DevOps technology into the industries is hard to manage in short time.

o Lack of DevOps knowledge can be a problem in the continuous integration of automation


projects.

SDLC - Agile development model


o Agile SDLC model is a combination of iterative and incremental process models
with focus on process adaptability and customer satisfaction by rapid delivery of
working software product.
o Agile Methods break the product into small incremental builds. These builds are
provided in iterations.
o Each iteration typically lasts from about one to three weeks. Every iteration
involves cross functional teams working simultaneously on various areas like −

The Agile software development life cycle helps you break down each project you take on
into six simple stages:

Requirement Gathering
 In this stage, the project team identifies and documents the needs and
expectations of various stakeholders, including clients, users, and subject matter
experts.
 It involves defining the project’s scope, objectives, and requirements.
 Establishing a budget and schedule.
 Creating a project plan and allocating resources.
Planning
 The development team creates a plan for delivering the software, including the
features that will be delivered in each iteration.
Design
 Developing a high-level system architecture.
 Creating detailed specifications, which include data structures, algorithms, and interfaces.
4
Development (Coding)
 Writing the actual code for the software.
 Conducting unit testing to verify the functionality of individual components.
At the end of the iteration, a working product is displayed to the customer and important
stakeholders.

5
Agile Software Development Techniques (Tools):

 Scrum: Scrum is an agile software development system that includes daily stand-
up meetings, iterative cycles called sprints, and a customer-prioritized product
backlog.

 Kanban: Kanban is a visual system that facilitates better process and job
management for teams. It entails using cards or sticky notes to indicate work items
and a board with columns to reflect the various stages of the development process.

12 AGILE PRINCIPLES:

The Advantages of the Agile Model:

 Suitable for fixed or changing requirements


 Delivers early partial working solutions.
 Good model for environments that change steadily.
 Minimal rules, documentation easily employed.
 Little or no planning required.
 Easy to manage.
 Gives flexibility to developers.
The Disadvantages of the Agile Model

 Not suitable for handling complex dependencies.


 More risk of sustainability, maintainability and extensibility.
 Depends heavily on customer interaction, so if customer is not clear, team can be
driven in the wrong direction.
 There is a very high individual dependency, since there is minimum documentation
generated.

6
DevOps and ITIL
 DevOps is the practice of bridging the gap between development and
operations. Its core principles are open communication, collaboration, and
shared goals.
 ITIL (Information Technology Infrastructure Library) is a set of guidelines
for IT service management.
 ITIL, which stands for Information Technology Infrastructure Library,
encompasses a set of practices and processes that serve as a framework for
efficient IT service management.
 Processes within ITIL represent the structured steps and activities that guide IT
service management. These procedures assist businesses in increasing efficiency,
lowering waste, and improving the caliber of their services. They cover a wide variety
and are intended to maintain and enhance IT services.
 Examples include incident management, change management, problem management,
and more.
 ITIL processes and functions create a comprehensive framework that empowers
organizations to align their IT services with business needs, enhance customer
satisfaction, and drive continuous improvement in the dynamic world of
technology.

List of Five Service Lifecycle Stages:

1. Service Strategy
2. Service Design
3. Service Transition
4. Service Operations
5. Continual Service Improvement (CSI)

1. Service Strategy ITIL Processes

The service strategy stage has Five ITIL processes:

Service strategy is the first stage of the ITIL® service lifecycle. It helps businesses set and
achieve their mission.

This stage is specifically for developing strategies.

These strategies help analyze market trends and optimize products in accordance with them,
which eventually helps businesses serve their customers better.
7
Strategy Management

This process is used to analyze the market and know the market position of products.
Activities involved in this process are,
- Conducting a strategic assessment
- Creating a strategy
- Execution of the strategy
- Measuring and evaluating results
Demand Management
This process helps in evaluating demand versus supply in the market. By understanding
demands and customer requirements, businesses can take steps to meet them. Demand
management is all about evaluating demand and availability, deciding capacity, and
making profitable decisions out of it.
Activities involved in this process are:
- Finding sources of demand and forecasting
- Business activity and user profiles analysis
- Developing differentiated offerings
- Handling operational demand.
Service Portfolio Management
Service portfolio management helps in managing portfolios of the IT services. It ensures
that the services remain in alignment with the goals of Service Strategy.
Activities involved in service portfolio management are,
- Defining services
- Analyzing services
- Approving services
- Chartering services
Availability Management
Availability management is used for evaluating customer demand against the availability of
services being provided. Demand Management helps businesses understand the
requirements and demands of their customers in order to make necessary upgrades to
their processes.
Activities involved in availability management are,
- Identifying demand
- Forecasting
- Business activity and user profiles analysis
- Developing offerings
- Managing operational demand
Business Relationship Management
Business Relationship Management is the last one in the ITIL Service Strategy lifecycle stage.
Activities involved in this process are,

8
- request and complaint handling
- identifying opportunities
- managing business relationships.

9
2. Service Design ITIL Processes
The next one in the ITIL® service lifecycle is service design. This stage is focused on design
and functions. It involves the planning of products, designs, processes, and more. It is
used to meet customer demands while meeting business goals.
There are eight ITIL processes in the service design stage;

Service Level Management


Service level management helps in setting the target for the business and evaluating its
performance based on it. It involves the use of SLAs and helps in understanding service
level goals.
Activities involved in Service Level Management are:
- Understanding service requirements
- Drafting and negotiating SLA’s,
- Defining and standardizing SLA’s
- Monitoring and reporting service performance
Service Catalog Management
Service Catalog Management focuses on the availability of the latest and most updated
catalogs. It promotes productivity by making sure catalogues are available to customers
whenever required.
Activities involved in Service Catalog Management are:
- Documenting service definition
- Documenting service description
- Service catalog contents
- Creating the service catalog
- Maintaining the service catalog
Capacity Management
Capacity management is primarily focused on systems and operations. It helps businesses
operate at optimum capacity, which ensures the business requirements are
[Link] involved in capacity management are,
- Monitoring data and capacity
- Analysis of capacity data
- Investigation of capacity issues
- Setting and updating capacity plans
- Review of capacity
- Optimization of capacity
Availability Management
The aim of Availability Management is to make sure that the required services are made
available to customers during the time of [Link] involved in availability management

10
are:
- Monitoring availability
- Analyzing availability
- Data investigation

11
- Service unavailability
- Availability planning
- Availability review
- Testing

IT Service Continuity Management


IT Service Continuity Management involves efficient management of risk and business
continuity. Activities involved in IT Service Continuity Management are,
- Developing requirements
- Continuity plans
- Implementation of continuity plans
- Invoking the continuity plan
Information Security Management
Information security management focuses on protecting systems and data. It keeps strict
restriction on the access. Information Security Management involves activities are,
- Intrusion detection
- Damage prevention
- Damage control
-Problem solving
- Understanding security requirements
- Creating and implementing security policies
- Information assessment
-Security control review
Supplier Management
Supplier management is focused on monitoring supplies. This helps in handling supplies,
ensuring good supplier relationship, adherence to contracts and [Link] involved in
supplier management are,
- Setting requirements
- Evaluating suppliers
- Selecting suppliers
- Managing performance
- Updating or ending contracts
Design Coordination
Design coordination focuses on the management of the design phase. It handles areas like
resource availability, design optimization, and more. Processes involved in this help
determine the design quality and make sure it meets customer [Link] involved in
Design Coordination are,
- Defining policies and methods
- Planning resources and capabilities
- Management of design risks
- Service design improvements
3. Service Transition ITIL Processes
Service transition is the third stage of the ITIL® service lifecycle. It helps in maintaining the existing
services and handling transitions while making new upgrades to the organization. The
service transition stage also handles risks and offers guidance on avoiding them.
There are seven ITIL processes in service transition.

Release and Service Asset and


Change Service Validation Knowledge
Change Evaluation Deployment Configuration
Management and Testing Management
Management Management

Transition Planning
and Support
12
Change Management
ITIL Change management focuses on supporting changes and upgrades to the business while
ensuring it remains [Link] involved in Change Management are,
- Registration
- Categorization
- Risk and impact analysis
- Approvals
- Authorization of change deployment
- Review of change
Change Evaluation
Change evaluation process focuses on management and evaluation of changes that will
help in the growth of the [Link] involved in this process are,
- Planning evaluation
- Evaluation of predicted and actual performance
Release and Deployment Management
The major aim of release and deployment management is to handle software
deployment without impacting the existing production [Link] involved in release
and deployment management are,
- Release planning
- Building and testing release
- Deployment
- Reviews and closure
Service Validation and Testing
Service validation and testing focus primarily on the service changes and their continuation. The
activities involved in service validation and testing are,
- Plan and design
- Verification of test plans and designs
- Preparation of test environments
- Performance of tests
- Evaluation of exit criteria
- Test environments and closure.
Service Asset and Configuration Management
Service Asset and Configuration Management focuses on the management of CI attributes,
relationships, and [Link] involved in this process are,
- Management and planning
- CI identification and control
- Status accounting and reporting
- Verification and accounting
Knowledge Management
Knowledge management helps in the collection and usage of data. This will help technicians in
the resolution of problems. Activities involved in knowledge management are,
- Knowledge management strategy
- Identification of data sources
- Collection of data sources
- Drafting knowledge
- Technical and editorial reviews
- Publishing of reviews
Transition Planning and Support
The transition planning and support process helps with the implementation of a new transition
and the upgrade of a [Link] involved in transition planning and support process are,
- Defining transition strategy

13
- Preparation for service transition
- Planning and coordinating the transition

14
- Monitoring and reporting the progress of transition
4. Service Operations ITIL Processes
Service Operations ITIL Process is the fourth one in the ITIL service lifecycle. It helps with
the seamless delivery of services in the process and focuses on offering quality services
to customers. It manages business goals and keeps them in line with market updates.
There are Five ITIL processes in service.

Incident Management
Incident management focuses on eliminating interruptions in the process. It helps
professionals take steps to restore the flow of the process when they encounter
[Link] management involves activities like,
- Registration of incident
- Segregating the incident
- Prioritizing restoration
- Investigation and diagnosis of issue
- Issue resolution
Problem Management
Problem management focuses on resolution and avoidance of issues that occur repeatedly in
a process. Activities involved in this process are,
- Problem detection
- Problem registration
- Investigation and diagnosis of the problem
- Resolution of problem
Event Management
Event management process is focused on service continuity. It keeps a check on all
processes, monitors the flow, offers solutions and helps avoid [Link]
involved in event management process are,
- Event notifications
-Detection of the event
- Correlation of events
- Categorization of events
- Event reviews
Access Management
Access management focuses on security of the system. It works on prevention of
unauthorized system access and offers access only to legal [Link] involved in
access management are,
- Access of requisition
- Verification and validation
- Rights provision
- Monitoring and tracking the access
15
- De-provisioning access

16
Service Request Fulfillment
Service request fulfillment focuses on managing service requests. The process involves receiving,
logging, prioritizing, and resolving service requests.
Activities involved in the service request fulfillment process are,
- Registration requests
- Requests for validation
- Categorization and prioritization of requests
- Reviewing requests
- Authorizing requests

5. Continual Service Improvement ITIL Processes


 Continual Service Improvement is the fifth and last stage of the ITIL® service lifecycle.
 It focuses on policy upgrades and improvements involved in the ITIL® process framework.
 CSI helps in finding out the areas for improvement and evaluating their effects.
 The CSI stage involves market research and directs businesses to make
improvements and upgrades based on demand.
Difference between Devops and ITIL

DevOps ITIL

DevOps refers to effective collaboration ITIL refers to a set of detailed guidelines for
between the development team and effective and efficient management of an
operations team. organization’s IT services.

Use a methodical approach to minimize the It uses a systematic approach to manage


friction between two teams. the IT service to ensure growth.

CI and CD are the backbone of modern ITIL aims to increase the delivery process.
DevOps philosophy.

Continuous integration and continuous Services are built, discuss, tested, and
delivery are critical to increasing. implemented.

DevOps focus on the concept. It has a DevOps focus on the concept. It has a dynamic
dynamic body of knowledge. body of knowledge. ITIL focus on
development. It has a static body of
knowledge
What are the processes of ITIL?
ITIL includes processes like Incident Management, Change Management, Problem
Management, and more, focusing on effective IT service management.
How many processes are in ITIL?
ITIL comprises 26 core processes, with organizations choosing which to implement based
on their specific needs.
What are the 5 stages of ITIL?
It consists of five ITIL stages: Service Strategy, Design, Transition, Operation, and Continual
Improvement.
What are the 4 pillars of ITIL?

17
ITIL's four pillars are People, Processes, Products, and Partners, emphasizing personnel,
efficient processes, technology, and external relationships in service management.

18
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.

7 Cs of DevOps process:

Continuous
Continuous Continuous Continuous Deployment Continuous Continuous Continuous
Development Integration Testing /Continuous Monitoring Feedback Operations
Delivery

1. Continuous Development

In Continuous Development code is written in small, continuous bits rather than all at
once, Continuous Development is important in DevOps because this improves efficiency
every time a piece of code is created, it is tested, built, and deployed into production.

Continuous Development raises the standard of the code and streamlines the process of
repairing flaws, vulnerabilities, and defects. It facilitates developers’ ability to concentrate
on creating high-quality code.

2. Continuous Integration

Continuous Integration (CI) is a software development practice where developers regularly


integrate their code changes into a shared repository, typically multiple times a day.

Each integration is automatically verified by running automated builds and tests, which helps
to detect and address issues early in the development process.

CI relies on a centralized version control system (like Git), where all developers push their
code changes. This repository serves as the single source of truth for the project's
codebase.

A CI server (such as Jenkins, Travis CI, CircleCI, or GitHub Actions) monitors the repository for
changes and triggers the automated build and test process whenever code is pushed to
the repository.

Continuous Integration can be explained mainly in 4 stages in DevOps. They are as follows:

1. Getting the SourceCode from SCM(Source code management)


2. Building the code
19
3. Code quality review
4. Storing the build artifacts

20
3. Continuous Testing

Any firm can deploy continuous testing with the use of the agile and DevOps methodologies.

Depending on our needs, we can perform continuous testing using automation testing
tools such as Testsigma, Selenium, LambdaTest, etc.

[Link] Deployment/ Continuous Delivery

Continuous Deployment: Continuous Deployment is the process of automatically


deploying an application into the production environment when it has completed testing and the
build stages. Here, we’ll automate everything from obtaining the application’s source code
to deploying it.

Continuous Delivery: Continuous Delivery is the process of deploying an application into


production servers manually when it has completed testing and the build stages. Here, we’ll
automate the continuous integration processes, however, manual involvement is still
required for deploying it to the production environment.

A continuous delivery pipeline refers to the series of processes that are performed on
product changes in stages. A change is injected at the beginning of the pipeline. A change
may be new versions of code, data, or images for applications. Each stage processes the
artifacts resulting from the prior stage. The last stage results in deployment to production.

5. Continuous Monitoring

Continuous Monitoring (CM) is the practice of constantly observing, detecting, and


reporting on the performance, security, and health of an IT environment, application, or
system. It's a crucial component of modern software development and operations,
21
particularly within DevOps practices.

22
Continuous Monitoring helps teams identify and address issues in real-time, ensuring
that applications and systems remain stable, secure, and performant throughout their
lifecycle.

6. Continuous Feedback

Continuous Feedback is a practice within software development and DevOps that focuses
on providing regular, timely, and actionable feedback to all stakeholders involved in the
development and delivery of a product.

The goal of Continuous Feedback is to ensure that everyone—developers, testers,


operations teams, and even end-users—has the information they need to improve the
product continuously and make informed decisions quickly.

Continuous Feedback promotes transparency within teams and across the organization.
By sharing feedback openly, everyone can stay informed about the current state of the
project and contribute to decision-making.

7. Continuous Operations

In this context, continuous operations aim to create a 24/7 process that delivers software
updates and bug fixes to end users with minimal disruption.

The benefits of continuous operations include higher output, lower production costs and
improved quality control.

Examples of continuous operations may include: Airports. Municipal transit operations. 24


hour security services.

Release management
What is Release Management?

Release Management is a critical process that oversees the planning, coordination,


testing, and deployment of software releases from development to production
environments.

In other words, it's the process of managing software releases throughout their entire lifecycle,
from conception to deployment and ensuring that the releases are delivered efficiently and
effectively.

Key components of Release Management

The key components of Release Management include:

 Version control: Version control involves keeping track of different versions of


code and software to ensure that developers are working on the correct version of
the code.

 Change management: Change management involves tracking and managing


changes to software releases, ensuring that changes are made in a controlled and
systematic manner.

 Deployment management: Deployment management involves planning and


executing the deployment of software releases to production environments

 Release automation: Release automation involves using automated tools and


processes to streamline and optimize the software delivery pipeline.

23
Goals of Release Management in DevOps

The goals of Release Management in DevOps are focused on reducing risk, increasing
efficiency, and enhancing collaboration between development and operations teams.

24
The primary objective of Release Management is to ensure that software releases are
delivered on time, with minimal disruption to operations, and at a high level of quality.

Benefits of Release Management for DevOps

DevOps Release Management offers several benefits for software development and
deployment, including:

1. Improved reliability and stability of software releases by identifying and fixing bugs,
reducing errors, and ensuring consistent performance across different
environments.

2. Increased collaboration between development and operations teams, enabling


faster feedback loops, and better communication and coordination between
teams.

3. Faster time to market by streamlining the software delivery pipeline, reducing


manual processes, and automating testing and deployment.

4. Enhanced customer satisfaction by delivering high-quality software releases that


meet customer needs and expectations.

5. Cost savings and greater efficiency by reducing downtime, minimizing errors, and
optimizing resource utilization.

 Release Management Types


There are three main types of Release Management:

1. Planning-based Release Management

It involves a structured approach to planning, testing, and deploying software releases. This type of
Release Management is suitable for large and complex projects with long release cycles.

2. Automated Release Management

It involves the use of automated tools and processes to manage the entire software delivery
pipeline, from development to deployment. This type of Release Management is ideal for
organizations that require frequent and rapid releases.

25
3. Agile Release Management

It is a flexible and iterative approach to Release Management, focused on delivering


incremental changes and continuous improvements to software releases.

This type of Release Management is best suited for organizations that require quick and
frequent releases, with the ability to adapt to changing requirements and feedback.

 DevOps Release Management Best Practices


Implementing agile methodologies, automation, and continuous integration and delivery to
streamline software releases and improve collaboration between development and operations
teams.

Continuous Integration and Continuous Deployment (CI/CD)

Continuous integration (CI) and continuous deployment (CD) are crucial elements of
DevOps release management. They involve automating the software build, test, and deployment
process to reduce the time it takes to deliver software updates.

CI/CD ensures that new code is integrated into the existing codebase quickly and efficiently,
with minimal disruption to the development cycle. DevOps consulting services and
DevOps as service providers can help organizations implement CI/CD best practices.

Testing and Quality Assurance

Testing and quality assurance are critical components of DevOps release management.
Quality assurance ensures that software releases meet the required quality standards, and
testing helps to identify and fix bugs before they reach the end user.

DevOps services and solutions providers can help organizations implement robust testing
and quality assurance processes.

Version Control and Change Management

Version control and change management are essential to DevOps release management.
They involve managing changes to software code and tracking revisions to ensure that
26
developers are working with the latest version of the code.

27
Version control also allows developers to collaborate effectively on code changes,
reducing the risk of conflicts and errors.

Documentation

Documentation is critical to DevOps release management. It helps to ensure that everyone


involved in the software development process has access to up-to-date information and
instructions.

Documentation also helps to maintain consistency and clarity across the development
process, reducing the risk of errors and miscommunications.

Communication and Collaboration

Effective communication and collaboration are crucial to DevOps release management. It


involves ensuring that all team members are aware of their responsibilities and deadlines
and that everyone is working towards a common goal.

Communication and collaboration help to reduce the risk of misunderstandings and


errors. And ensure that software releases are delivered on time and to the required
quality standards.

Monitoring and Metrics

Monitoring and metrics are essential to DevOps release management. They involve
tracking the performance of software releases and identifying any issues that arise. It also
helps to ensure that software releases meet the required performance standards and enable
organizations to identify opportunities for improvement.

 Types of Release Management DevOps Tools


Deployment automation tools enable DevOps teams to automate the process of
deploying software releases, ensuring consistency and reducing errors. Below are a few
of the promising types of release management DevOps tools that top DevOps consulting
companies use.

Continuous Integration (CI) tools


28
Continuous integration tools automate the build, test, and integration of software code.
They include tools such as Jenkins, CircleCI, and Travis CI.

29
Configuration Management tools

Configuration management tools automate the deployment and management of software


environments. They include tools such as Puppet, Chef, and Ansible.

Continuous Deployment (CD) tools

Continuous deployment tools automate the release of software code to production


environments. They include tools such as Kubernetes, Docker, and AWS CodeDeploy.

Testing and Quality Assurance tools

Testing and quality assurance tools automate the testing and quality assurance process. They
include tools such as Selenium, JUnit, and Appium.

Monitoring and Analytics tools

Monitoring and analytics tools track the performance of software releases and identify
issues that arise. They include tools such as Nagios, Prometheus, and Splunk.

 Release Management Process


Efficiently and effectively deploying software updates to maximize user satisfaction and
minimize disruptions. A systematic approach to planning, scheduling, coordinating and
deploying software updates and changes.

Planning and Scheduling

The release management process begins with planning and scheduling. It involves
identifying the scope of the release, setting timelines and deadlines, and allocating
30
resources.

31
Code Development

Code development involves writing and testing software code. It includes activities such as
code reviews, unit testing, and integration testing.

Testing and Quality Assurance

Testing and quality assurance involve ensuring that the software release meets the
required quality standards. It includes activities such as functional testing, regression
testing, load testing, and user acceptance testing (UAT).

DevOps services and solutions providers can help organizations implement


comprehensive testing and quality assurance processes.

Deployment

Deployment involves releasing the software to production environments. Continuous


deployment tools automate this process, ensuring that software releases are delivered
quickly and efficiently. DevOps consulting services can help organizations implement the
most effective deployment strategies.

Monitoring and Feedback

Monitoring and feedback involve tracking the performance of software releases and
identifying any issues that arise. Monitoring tools such as Nagios and Prometheus can help
organizations track metrics such as response times, error rates, and resource utilization.

Feedback mechanisms such as user surveys and support channels can help
organizations identify areas for improvement.

Post-Release Analysis and Reporting

Post-release analysis and reporting involve evaluating the success of the software release
and identifying areas for improvement. It includes activities such as;
 Gathering feedback from users
 Analyzing performance metrics
 Documenting lessons learned
Post-release analysis and reporting are crucial to the ongoing improvement of DevOps
release management processes.

32
Scrum
Scrum is a framework used by teams to manage work and solve problems collaboratively
in short cycles. Scrum implements the principles of Agile as a concrete set of artifacts,
practices, and roles.

The Scrum lifecycle


The diagram below details the iterative Scrum lifecycle. The entire lifecycle is completed
in fixed time periods called sprints. A sprint is typically one-to-four weeks long.

Scrum team roles

There are three key roles in Scrum: the product owner, the Scrum master, and the development
team.

1. Product owner
 The product owner is responsible for what the team builds, and why they build it.
 The product owner is responsible for keeping the backlog of work up to date and in priority
order.
2. Scrum master
 The Scrum master ensures that the Scrum process is followed by the team.
 Scrum masters are continually on the lookout for how the team can improve, while
also resolving other blocking issues that arise during the sprint.
 Scrum masters are part coach, part team member, and part cheerleader.
3. Development team
 The members of the development team actually build the product.
 The team owns the engineering of the product, and the quality that goes with it.

Product backlog

 The product backlog is a prioritized list of work the team can deliver.
 The product owner is responsible for adding, changing, and reprioritizing the backlog as
needed.
 The items at the top of the backlog should always be ready for the team to execute on.

Plan the sprint

 In sprint planning, the team chooses backlog items to work on in the upcoming sprint.
 The team chooses backlog items based on priority and what they believe they can
complete in the sprint.

33
 The sprint backlog is the list of items the team plans to deliver in the sprint.
 Often, each item on the sprint backlog is broken down into tasks.
 Once all members agree the sprint backlog is achievable, the sprint starts.

34
Execute the sprint

 Once the sprint starts, the team executes on the sprint backlog.
 Scrum does not specify how the team should execute.
 The team decides how to manage its own work.

Daily Scrum

 Scrum defines a practice called a daily Scrum, often called the daily standup.
 The daily Scrum is a daily meeting limited to fifteen minutes.
 Team members often stand during the meeting to ensure it stays brief.
 Each team member briefly reports their progress since yesterday, the plans for
today, and anything delay in their progress.

To aid the daily Scrum, teams often review two artifacts:

Task board

 The task board lists each backlog item the team is working on, broken down into the
tasks required to complete it.
 Tasks are placed in To do, In progress, and Done columns based on their status.
 The board provides a visual way to track the progress of each backlog item.
Sprint burndown chart
 The sprint burndown is a graph that plots the daily total of remaining work, typically shown
in hours.
 The burndown chart provides a visual way of showing whether the team is on track
to complete all the work by the end of the sprint.

Sprint review and sprint retrospective


At the end of the sprint, the team performs two practices:
Sprint review
 The team demonstrates what they've accomplished to stakeholders. They demo
the software and show its value.
Sprint retrospective
 The team takes time to reflect on what went well and which areas need
improvement. The outcome of the retrospective are actions for the next sprint.
Increment
 The product of a sprint is called the increment or potentially shippable increment.
Regardless of the term, a sprint's output should be of shippable quality, even if it's
part of something bigger and can't ship by itself.
 It should meet all the quality criteria set by the team and product owner.

35
Kanban
Kanban is a popular framework used to implement Agile and DevOps software
development. It requires real-time communication of capacity and full transparency of
work. Work items are represented visually on a kanban board, allowing team members to
see the state of every piece of work at any time. Kanban is a Japanese term that means
signboard or billboard. An industrial engineer named Taiichi Ohno developed Kanban
at Toyota Motor Corporation to improve manufacturing efficiency.

The Principles of Kanban


Before we get into what a Kanban board looks like and how it is used, it is helpful to
understand the guiding principles of the approach. There are four fundamental ideas:
1. Visualize the workflow
The purpose of Kanban is to make apparent where each element of work-in-progress
stands, whether it is waiting to be started, actively being worked, or complete. Anything that
stalls progress, including blockers, bottlenecks, and queues, becomes apparent by
visualizing the workflow. The task of visualizing WIP is ongoing.
2. Limit work in progress
Kanban’s ultimate goal is an uninterrupted flow of value to the customer. Work only moves
from one stage to the next when there is demand either by a customer or the next stage of
the process. This means that the pipeline of work-in-progress must be limited to what can be
reasonably managed at any point in time. Work is never forced through the stages unless
there is a pull of demand. This ensures that work does not pile up for any one person or
team, which is an essential element of quality management.
3. Focus on flow
With the first two principles in place, work will flow freely through the process. That
means that any interruption in flow requires attention and represents an opportunity for
additional visualization and improvement.
4. Continually improve
Visualized workflows are easier to improve because deficiencies are laid bare. Organizations
with a culture of continuous improvement use Kanban to perfect processes, never to
blame people.

36
The structure of a Kanban board depends on the process being visualized and the nature of the
work. However, the most common design includes the following elements:

5. Kanban Cards: Each Kanban card is the visual representation of a task. The card
contains information about the task, including its current status, deadline, owner,
and description.

6. Kanban Columns: The Kanban board columns represent the various stages of
the process workflow. Cards move through the flow until they are complete. The
simplest column structure is “To Do, Doing, Done.”

7. Work-in-Progress (WIP) Limits: WIP limits represent the maximum number of


tasks allowed in the different stages of the workflow. Enforcing WIP limits helps the
team complete the flow faster by focusing only on a reasonable number of current
tasks.

8. Kanban Swimlanes: Swimlanes are horizontal divisions that can be used to


separate different categories of tasks, teams, projects, or classes of activity.
Scrum vs. kanban
Kanban and scrum share some of the same concepts but have very different
approaches. They should not be confused with one another.

SCRUM KANBAN

Release
Regular fixed-length sprints (i.e., two weeks) Continuous flow
methodology

Product owner, scrum master, Continuous delivery


Roles
development team or at the team's
discretion

Key metrics Velocity Cycle time

Teams should strive not to change the


Change Change can happen
sprint forecast during the sprint. Doing
philosoph at any time
so compromises learning around
y
estimation.

37
Delivery pipeline
A delivery pipeline in DevOps is a set of automated processes that move code changes
from development to production. It typically includes several stages:

1. Plan
o Tools: Jira, Trello, Confluence, Asana, Microsoft Project, Azure Boards
o Purpose: Project management, task tracking, documentation
2. Code
o Tools: Git, GitHub, GitLab, Bitbucket, Visual Studio Code, IntelliJ IDEA, Eclipse
o Purpose: Source code management, version control, integrated
development environments (IDEs)
3. Build
o Tools: Jenkins, Travis CI, CircleCI, Bamboo, Azure Pipelines, Maven, Gradle
o Purpose: Continuous integration, automated builds, dependency management

4. Test
o Tools: Selenium, JUnit, TestNG, Postman, Appium, SonarQube
o Purpose: Automated testing, unit testing, integration testing, static code analysis
5. Release
o Tools: Docker, Kubernetes, Jenkins (for continuous deployment), Helm, GitOps,
Ansible
o Purpose: Continuous deployment, container orchestration, configuration
management
Additionally:
 Source Repository s Bug Tracking: Git, GitHub Issues, GitLab Issues, Jira, Bugzilla
 APM and Log Analysis: New Relic, Datadog, Splunk, ELK Stack
(Elasticsearch, Logstash, Kibana), Prometheus, Grafana
These tools help streamline the processes within each stage of the software development
lifecycle.
Each stage in the pipeline is designed to ensure that code changes are reliable, consistent, and
delivered quickly, facilitating continuous integration and continuous delivery (CI/CD) practices.
The benefit of defining a pipeline is:
1. Knowing what you have
2. Knowing what you don’t have
3. Knowing your bottlenecks
4. Seeing your whole operation in one place
5. And finally having an opportunity to improve

38
Types of Delivery Pipelines
There are various delivery pipeline approaches, each catering to specific needs:
1. Continuous Delivery (CD Pipeline)
This is where the code is automatically packaged after it has passed all tests and is
prepped for deployment. The developer just needs to approve and deploy the
already-prepped package.
2. Continuous Deployment (CD Pipeline with Automatic Production Deployments)
This is an extension of CD. This process eliminates the need for manual approval
and schedules automatic deployments. In this case, the code is pushed to
production when it has passed all the previous stages in the pipeline.
3. Feature Flag Pipelines
These pipelines allow some control over who gets access to the new features.
Features can be toggled on or off for specific user groups, facilitating A/B testing.
4. GitOps Pipelines
This approach uses Git as the single source of truth. This means this approach
believes the latest update on the Git repository. It focuses on managing
infrastructure and application development stored in the Git repositories. This makes
it easier for everyone to collaborate and reduces errors. All the changes are made
through Git commits. This enables teams to easily roll back changes to previous
versions in case of issues, minimizing recovery time. The Git repository has the
updated infrastructure and application configurations.
Benefits of Delivery Pipelines
The advantages of implementing a delivery pipeline are numerous.
1. Increased Speed and Efficiency
Since there are automated tests and deployments, it minimizes human errors. This
eventually leads to faster development cycles by using the saved time on efficient
error resolution in the code.
2. Improved Quality
Continuous integration and testing helps to catch bugs early. This helps in timely error
solving and preventing them from reaching production and impacting users.
3. Enhanced Collaboration
Since all the code is in a unified platform on Git, everyone involved can check on
the code. This promotes effective collaboration and transparency amongst the
developers.
4. Better Resource Management
Automation frees up a lot of the developers’ time. This allows them to focus on higher-
level tasks and innovation.

39
Bottlenecks in Devops
In DevOps, a bottleneck refers to a point in the development, deployment, or operations
process that slows down or restricts the flow of work, leading to delays or inefficiencies.
Identifying and addressing these bottlenecks is crucial for optimizing the DevOps pipeline
and improving overall productivity.

Introducing the Bottleneck


When working and living inside any system, it becomes really difficult to really see the
problems within said system. The same applies to the organisational structure and to the
processes used. This is why it’s important to understand that any handover within a
system can be a potential bottleneck. It looks like this:

Building Effective Devops Infrastructure-(How to avoid them)

The conventional way of developing and managing software across development


organizations has changed significantly. As a result, building, testing, and deploying
software is increasingly flexible.

To create an effective DevOps infrastructure, you must quickly identify and remediate
bottlenecks. DevOps infrastructure refers to systems and tools that support software
applications’ development and operation.

The main bottlenecks you may encounter in DevOps infrastructure, and how to overcome them.
40
1. Unchecked Technical Debt
 Outdated Systems: Using old or outdated systems increases complexity
and reduces agility, making infrastructure hard to maintain.
 Increased Risk: Technical debt can lead to unreliable systems, causing
outages, failures, and backlogs.

41
 Performance Impact: Technical debt can degrade application performance,
leading to customer frustration and potential business loss.
 Awareness and Action: Regularly monitor and address technical debt to
keep DevOps infrastructure optimized.
 Collaboration: DevOps teams should work with product leads to ensure
tools and systems are up-to-date and compatible.
 Regular Maintenance: Consistently perform code reviews and refactoring to
manage technical debt and prevent errors.
2. Inefficient Automation
 Manual Intervention: Complex automation that requires manual tweaks
slows down workflows and delays updates.
 Lack of Standardization: Inconsistent automation practices lead to
errors and disruptions.
 Scaling Issues: Poorly designed automation processes are hard to scale,
increasing downtime and reducing efficiency.
 Visibility Problems: Limited transparency in automation makes it hard to
spot and fix issues quickly.
 Continuous Improvement: Regularly refine and standardize automation
processes to enhance efficiency and prevent bottlenecks.
3. Failure to Cultivate DevOps Culture:
 Siloed Teams: Lack of collaboration and communication causes delays and
disruptions.
 Limited Buy-In: Without widespread support, implementing changes and
adopting new tools becomes challenging.
 Lack of Improvement: Absence of a DevOps culture hinders continuous
improvement and may lead to inefficiencies.
4. Not Accounting for Scale
 Infrastructure Issues: Poorly designed automation or infrastructure can
cause delays and disruptions as demand grows.
 Resource Shortages: Insufficient servers or bandwidth leads to
performance problems or outages.
 Scalability Challenges: Tools and processes that don’t scale well can’t handle
increased
demand effectively.
 Monitoring Gaps: Without proper monitoring and capacity planning, it’s hard to
foresee
and manage infrastructure limits, leading to unexpected issues.
5. Inability to Fail Fast
 Long Lead Times: Slow problem identification and resolution delay new features
and updates, reducing efficiency.
 Reduced Agility: Difficulty in adapting to customer needs or market changes
affects competitiveness.
 Customer Dissatisfaction: Delayed problem resolution leads to lower
customer satisfaction.

42

You might also like