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

DevOps Unit - 1

The document provides an overview of DevOps and Agile methodologies, detailing their processes, advantages, and disadvantages. It emphasizes the importance of collaboration between development and operations teams, as well as the iterative nature of Agile development. Additionally, it discusses the integration of Continuous Integration and Continuous Delivery practices to enhance software development efficiency and quality.

Uploaded by

vainu85
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 views67 pages

DevOps Unit - 1

The document provides an overview of DevOps and Agile methodologies, detailing their processes, advantages, and disadvantages. It emphasizes the importance of collaboration between development and operations teams, as well as the iterative nature of Agile development. Additionally, it discusses the integration of Continuous Integration and Continuous Delivery practices to enhance software development efficiency and quality.

Uploaded by

vainu85
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/ 67

INTRODUCTION

Balike Mahesh
7207030340

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA : DIGITALMAHESH7


• DEVOPS ====== DEV + OPS(DEVELOPMENT + OPERATIONS )
• PATRICS DEBOIS(2009)
WHAT YOU DO IF YOU GET A PROJECT TO DEVELOP A SOFTWARE ( TO DESIGN
WEBSITE / MOBILE APP)?

ORDER ---------------- PREPERATION ----------------- DELIVERY

PREPERATION :
 PLAN
 REQUIREMENTS / DEFINATION
ANALYSIS
DESIGIN
BUILD/DEVELOP
TESTING
DELIVERY / DEPLOY
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA : DIGITALMAHESH7
SDLC IS A PROCESS USED BY SOFTWARE INDUSTRY TO DESIGN , DEVELOP AND
TEST HIGH QUALITY SOFTWARE PROJECTS

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
IT TEAM (SOFTWARE ENGINEERS )

WEBSITE
ORDER

PROJECT
MANAGEMENT

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
SOFTWARE DEVELOPMENT PROCESS
• . DEVELOPER 01
SOURCE BUILD
DEVELOPER 02 CONTROL COMPILE PACKAGE
INTEGRATION
DEVELOPER 03 MANAGER TEAM

GIT

DEVELOPMENT OPERATIONS DEPLOYMENT TEST TESTING &


PRODUCTION TEA M ENVIRONMENT Q.A TEAM
ENVIORNMENT

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
Issues during this process
• Integrating the code (manual process)
• Functional defects takes longer time to fix
• The project may take longer and cost more if the planning is not done
properly.
• Correcting problems in code can occasionally take a long time and cause
deadlines to be missed if there are many of them.
• Increased time and costs for the project development.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
CI & CD
• CI: CONTINIOUS INTEGRATION IS A PRACTICE THAT
REQUIRE TO DEVELOPERS TO INTEGRATE CODE IN TO A
SHARED REPOSITIRY SEVERAL TIMES IN A DAY (IT IS DONE
WITH HELP OF JENKINS )
• JENKINS(BUILD SERVER ): IT IS A AUTOMATION SERVER
IT HELPS TO AUTOMATE THE PARTS OF THE S/W
DEVELOPMENT RELATED TO BUILDING , TESTING, ABD
DEPLOYMENT

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
CI(JENKINS TOOL)
DEVELOPER 01
UNIT UI
MASTER \ COMPILE PACKAGE
DEVELOPER 02 TEST TESTING
MAIN LINE
DEVELOPER 03

JENKINS BUILD SERVER AND AUTOMATION SERVER

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
CD: CONTINIOUS DELIVERY
• IT IS A S\W DEVELOPMENT PRACTICE WHERE S\W CAN BE RELEASED TO
PRODUCTION AT ANY TIME

PACKAGE OPERATIONS AUTOMATED TEST DEPLOY TO


TEAM SCRIPTS ENVIRONMENT PUBLIC

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
Some of the new job roles emerging for DevOps a

• DevOps Architect
• DevOps Developer
• DevOps Consultant
• DevOps Test Analyst
• DevOps Manager

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
DEVOPS :
• The word "DevOps" is a combination of the words "development" and "operation". This
wordplay already serves to give us a hint of the basic nature of the idea behind DevOps. It is a
practice where collaboration between different disciplines of software development is
encouraged.

• DEVOPS  DEVELOPMENT + OPERATIONS

Patrick Debois is a software developer and consultant with experience in many fields
within IT. He was frustrated with the divide between developers and operations
personnel. He tried getting people interested in the problem at conferences, but there
wasn't much interest initially.

DevOps (development and operations) is a collection of tools and technologies combined to carry out
various business processes. It aims to bridge the gap between two of the most significant
departments in any IT organization, the development department, and the operations department.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
LIFE CYCLE OF DEVOPS

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
Advantages:
• Faster development of software and quick deliveries.
• DevOps is flexible and adaptable to changes easily.
• Compared to the previous software development models confusion about the project
is decreased due to which the product quality and efficiency are increased.
• The
gap between the development team and operation team was bridged. i.e, the
communication between the teams has been increased.
• Efficiencyis increased by the addition of automation which includes continuous
integration and continuous deployment.
• Customer satisfaction is enhanced.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
Disadvantages:
• DevOps is expensive.
• Certain levels of skills are required for maintaining the DevOps architecture.
• Adopting DevOps technology into the traditional style of industries is quite a challenge.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
AGILE DEVELOPMENT
MODEL
Balike Mahesh
7207030340

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
• 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. Agile Methods break the product into small incremental builds.
These builds are provided in iterations.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
• The meaning of Agile is swift or versatile."Agile process model" refers
to a software development approach based on iterative development.
• The division of the entire project into smaller parts helps to minimize
the project risk and to reduce the overall project delivery time
requirements.
• Plans regarding the number of iterations, the duration and the scope of
each iteration are clearly defined in advance.
• Each iteration is considered as a short time "frame“(sprint) in the Agile
process model, which typically lasts from one to four weeks.
• Each iteration involves a team working through a full software
development life cycle including planning, requirements analysis,
design, coding, and testing before a working product is demonstrated
to the client. B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
Phases of Agile Model:
• Requirements gathering
• Design the requirements
• Construction/ iteration
• Testing/ Quality assurance
• Deployment
• Feedback / review

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
1. Requirements gathering: In this phase, you must define the
requirements. You should explain business opportunities and plan
the time and effort needed to build the project. Based on this
information, you can evaluate technical and economic feasibility.

2. Design the requirements: When you have identified the project,


work with stakeholders to define requirements. You can use the user
flow diagram or the high-level UML diagram to show the work of
new features and show how it will apply to your existing system.
3. Construction/ iteration: When the team defines the requirements,
the work begins. Designers and developers start working on their
project, which aims to deploy a working product. The product will
undergo various stages of improvement, so it includes simple,
minimal functionality.B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
4. Testing: In this phase, the Quality Assurance team
examines the product's performance and looks for the
bug.
5. Deployment: In this phase, the team issues a product for
the user's work environment.
6. Feedback: After releasing the product, the last step is
feedback. In this, the team receives feedback about the
product and works through the feedback.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
When to use the Agile Model?
• When frequent changes are required.
• When a highly qualified and experienced team is available.
• When a customer is ready to have a meeting with a software team all the time.
• When project size is small.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
Advantages of the Agile Model
• Is a very realistic approach to software development.
• Promotes teamwork and cross training.
• Functionality can be developed rapidly and demonstrated.
• Resource requirements are minimum.
• Suitable for fixed or changing requirements
• Delivers early partial working solutions.
• Good model for environments that change steadily.
• Minimal rules, documentation easily employed.
• Enables concurrent development and delivery within an overall planned context.
• Little or no planning required. Easy to manage.
• Gives flexibility to developers.
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
Disadvantages of the Agile Model
• Not suitable for handling complex dependencies.
• More risk of sustainability, maintainability and extensibility.
• An overall plan, an agile leader and agile PM practice is a must without which it will
not work.
• Strict delivery management dictates the scope, functionality to be delivered, and
adjustments to meet the deadlines.
• 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.
• Transfer of technology to new team members may be quite challenging due to lack
of documentation.
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
AGILE WHEEL OF
WHEELS
Balike Mahesh
7207030340

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
• There are several different cycles in Agile development, from
the Portfolio level through to the Scrum and Kanban cycles and
down to the Continuous Integration cycle.
• Kanban emphasizes the 24-hour cycle and is popular in
operations teams.
• Scrum cycles can be between two to four weeks and are often
used by development teams using the Scrum Agile process.
• Longer cycles are also common and are called Program
Increments, which span several Scrum Sprint cycles, in Scaled
Agile Framework

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
• Agile portfolio management is an approach to managing connected,
interrelated, and dependent projects and programs by applying agile
methodologies.
• Kanban is a project management method that helps visualize tasks,
while Scrum is a method that provides structure to the team and
schedule.
• Kanban and Scrum are project management methodologies that
complete project tasks in small increments and emphasize continuous
improvement.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
• Scrum focuses on sprint cycles, which can occur biweekly or
monthly.
• Kanban can be said to focus more on shorter cycles, which can
occur daily. Many organizations use both Kanban and Scrum
together.
• From a software-deployment viewpoint, both Scrum and
Kanban are similar. Both require frequent hassle-free(without
problems ) deployments.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
Here are some examples of when DevOps can benefit Agile cycles:
• Deployment systems, maintained by DevOps engineers, make the
deliveries at the end of Scrum cycles faster and more efficient. These can
take place with a periodicity of two to four weeks. In organizations where
deployments are done mostly by hand, the time to deploy can be several
days.
• Organizations that have these inefficient deployment processes will
benefit greatly from a DevOps mindset.
• The Kanban cycle is 24 hours, and it's therefore obvious that the
deployment cycle needs to be much faster than that if we are to succeed
with Kanban.
• A well-designed DevOps Continuous Delivery pipeline can deploy code
from being committed to the code repository to production in the order
of minutes, depending on the
B.MAHESH sizeCHANNEL
(YOUTUBE of the change
:: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
DEVOPS AND ITIL
BALIKE MAHESH

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
• ITIL, which was formerly known as Information Technology
Infrastructure Library, is a practice used by many large and mature
organizations.

• DevOps and ITIL are two frameworks that are commonly used in the
field of IT service management. While they have some similarities,
they are also quite different in terms of their approach and focus.
• 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.
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
• DevOps is focused on streamlining the software development and delivery
process, while ITIL is focused on managing IT services to meet the needs of
the business and end users. Both frameworks can be used together to create
a comprehensive approach to IT service management that takes into account
the needs of both developers and IT operations teams.
• ITIL, is a framework for IT service management that provides a set of best
practices for
managing IT services. ITIL focuses on the delivery of IT services that meet
the needs of
the business and the end user.
• It provides a structured approach for managing the entire lifecycle of IT
services, from
design and development to operation and maintenance.
• 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 theB.MAHESH
practices described
(YOUTUBE CHANNEL in ITIL
:: SV TECH KNOWLEDGE translate
) INSTA : directly into
DIGITALMAHESH7
corresponding DevOps practices. ITIL prescribes a configuration
• ITIL includes a set of processes, functions, and roles that are designed to
ensure that IT services are delivered efficiently and effectively.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
DEVOPS PROCESS AND
CONTINUOUS DELIVERY
BALIKE MAHESH

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
• Continuous delivery (CD) is the process of automating build, test,
configuration, and deployment from a build to a production environment.
• in DevOps, continuous delivery is also called 'Automated deployment
pipeline'. This will include few manual testing as well like 'User acceptance
testing' which generally will be run by the end user and also few manual
approval gates, as the code comes close to the production environment.

An example of a Continuous Delivery pipeline in a large organization is


introduced in the following image:

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
The developers:
• The developers work on their workstations. They develop code and need
many tools to be efficient.
• Ideally, they would each have production-like environments available to
work with
locally on their workstations or laptops. Depending on the type of software
that is
being developed, this might actually be possible, but it's more common to
simulate,
or rather, mock, the parts of the production environments that are hard to
replicate.
• This might, for example, be the case for dependencies such as external
payment
systems or phone hardware.
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
• preferenceis to use a development environment that is similar to
the production environment.
• If
you are running Windows servers in production, it might also
be more convenient to use a Windows development machine.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
The revision control system :
• The revision control system is often the heart of the
development environment.
• The code that forms the organization's software products is
stored here.
• It is also common to store the configurations that form the
infrastructure here.
• If you are working with hardware development, the designs
might also be stored in the revision control system.
• It is one of the key tools used by successful DevOps teams for reducing
development time and increasing the rate of successful deployments.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
benefits of the CD.
1. Increases the number of deliveries.
2. Minimizes the risk of failure in production.
3. Reduces manual work.
4. Increases confidence in the team.
5. Enables the team to automate everything.
6. Enables faster feedback.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
The build server
• A build server is a dedicated server or computer that is used to
automate the process of building software applications.
• It is also known as a continuous integration (CI) server.
• The build server typically runs a software tool called a build
system, which automatically compiles source code, runs unit
tests, and generates binary files or other artifacts that are
required to deploy the software application.
• The main benefits of using a build server are that it ensures
consistency and repeatability in the software build process,
reduces the risk of errors, and helps to identify and fix issues
quickly.
• By automating the build process, developers can focus on writing
code and testing new features, rather than manually building
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
and deploying DIGITALMAHESH7
The artifact repository
• an artifact refers to any file or collection of files that is produced during the
software development lifecycle. This can include source code, compiled
binaries, documentation, test results, configuration files, and other types of
files.
• An artifact repository is a central location for storing and managing software
artifacts such as binary files, build outputs, and other dependencies used in
the software development process. Artifacts are typically produced during
the software development lifecycle, and can include things like compiled or
packaged software components.
• By storing artifacts in a repository, developers can easily manage
dependencies, share code between projects and team members, and ensure
that everyone is using the same versions of libraries and other
dependencies. This can help to reduce the risk of compatibility issues and
make the development process more efficient and streamlined.
• Artifact repositories can B.MAHESH
be hosted on-premises
(YOUTUBE CHANNEL or) in
:: SV TECH KNOWLEDGE INSTAthe
: cloud, and there are
a variety of different tools and platforms available for managing and
DIGITALMAHESH7
package manager
• A package manager is a tool used in software development to
manage the installation, update, and removal of software packages
and their dependencies.
• Package managers automate the process of installing and managing
software dependencies, making it easier to install and configure
software on different platforms and systems. Instead of manually
downloading and installing each software package and its
dependencies, package managers allow developers to simply specify
the packages they need, and the package manager takes care of the
rest, automatically resolving any dependencies and installing the
required packages.
• Packagemanagers are widely used in many programming languages
and development environments,
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
There are several popular package managers available for Linux, Windows, and
Unix systems, including:

1.Linux:
•Advanced Packaging Tool (APT) - used by Debian and Ubuntu
•Yellowdog Updater, Modified (YUM) - used by Red Hat, CentOS, and Fedora
•Pacman - used by Arch Linux
•Portage - used by Gentoo Linux
•Zypper - used by NPM for Node.js,
2.Windows:
pip for Python,
•Chocolatey RubyGems for Ruby,
•Scoop Maven for Java,
•NuGet
•Windows Package Manager (winget) Homebrew for macOS.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
Test environments
After the build server has stored the artifacts in the binary repository, they can be
installed from there into test environments.

Test environments are separate environments that are created to


test software applications before they are deployed to production
environments. These environments can be physical or virtual
and are designed to simulate the production environment as
closely as possible.

Test environments should normally attempt to be


as production-like as is feasible.
Therefore, it is desirable that the they be
installed and configured with the same
methods as production servers.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
There are different types of test environments, including:
1.Development environment: This environment is used by developers to write and test
code before it is checked into version control. It is usually a local environment on the
developer's machine.
2.Staging environment: This environment is used to test the software after it has been
built and before it is deployed to the production environment. It is designed to be as
close to the production environment as possible.
3.Production-like environment: This environment is used to test the software in an
environment that is similar to the production environment. It is useful for identifying
issues that may only occur in a production-like environment.
4.Performance testing environment: This environment is used to test the performance
and scalability of the software application under different loads.
Overall, test environments are an important part of the software development process,
as they help to ensure that software applications are reliable, stable, and perform as
expected in production environments.
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
Staging/production :
• Staging environments are the last line of test environments.
• They are interchangeable with production environments. You install your new
releases on the staging servers, check that everything works, and then swap out
your old production servers and replace them with the staging servers, which
will then become the new production servers. This is sometimes called the blue-
green deployment strategy.
• It is used to test the software application after
it has been built and before it is deployed to the
production environment.
• The staging environment is used to identify & fix
any issues that may arise before the software
application is deployed to the production
environment.
• This helps to ensure that the software application
performs as expected inB.MAHESH
the production environment.
(YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
RELEASE
MANAGEMENT
Balike Mahesh
7207030340

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
• Releasemanagement is a software development process that
involves managing the planning, scheduling, coordinating,
and controlling of software releases. It is a key aspect of
software development and involves a set of activities that
ensure the smooth and efficient release of software products.
• The main objectives of release management are to:
1.Ensure the quality and reliability of software releases.
2.Ensure that software releases are delivered on time and within
budget.
3.Minimize the risks associated with software releases.
4.Maximize the value of software releases to the business.
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
• The release management process typically includes the following activities:
1.Release planning: This involves defining the scope of the release, determining the
release timeline, and identifying the resources required for the release.
2.Release coordination: This involves coordinating the activities of various teams involved
in the release, such as development, testing, and deployment teams.
3.Release testing: This involves testing the software release to ensure that it meets the
quality and reliability standards.
4.Release deployment: This involves deploying the software release to the production
environment.
5.Release monitoring: This involves monitoring the software release in the production
environment to ensure that it is performing as expected.
6.Release feedback: This involves collecting feedback from end-users and stakeholders
to identify areas for improvement and inform future releases.
• Overall, release management is critical for software development and helps to ensure
that software releases are delivered on time, within budget, and with the required
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
quality and reliability. DIGITALMAHESH7
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
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.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
SCRUM, KANBAN, AND
THE DELIVERY PIPELINE
Balike Mahesh
7207030340

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
• Scrum focuses on sprint cycles, which can occur biweekly
or monthly. Kanban can be said to focus more on shorter
cycles, which can occur daily.
• The philosophical differences between Scrum and
Kanban are a bit deeper, although not mutually exclusive.
Many organizations use both Kanban and Scrum together.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
Scrum is an Agile methodology that is used for iterative and
incremental software development. It involves breaking down the
development process into small iterations called sprints, each of
which typically lasts between 1-4 weeks. The team works on a set
of features during each sprint, and at the end of each sprint, a
potentially shippable product increment is delivered. The Scrum
framework consists of roles (Product Owner, Scrum Master, and
Development Team), events (Sprint Planning, Daily Scrum, Sprint
Review, and Sprint Retrospective), and artifacts (Product Backlog,
Sprint Backlog, and Increment).

Kanban is another Agile methodology that is used for


continuous delivery. It involves visualizing the flow of work,
limiting work in progress, and optimizing the flow of work to
improve efficiency and quality.
B.MAHESH The:: SVKanban
(YOUTUBE CHANNEL TECH KNOWLEDGEframework
) INSTA : consists of
visual boards, work items, workDIGITALMAHESH7
in progress limits, delivery
The delivery pipeline is the process used to build, test, and deploy software. It
involves a series of stages, such as development, testing, staging, and
production, that are connected through an automated process. The delivery
pipeline is designed to ensure that software is delivered quickly, reliably, and
with high quality.
• Our pipeline can manage both the following types of scenarios:
• The build server supports the generation of the objective code quality metrics
that we need in order to make decisions. These decisions can either be made
automatically or be the basis for manual decisions.
• The deployment pipeline can also be directed manually. This can be handled
with an issue management system, via configuration code commits, or both.
• So, again, from a DevOps perspective, it doesn't really matter if we use
Scrum, Scaled Agile Framework, Kanban, or another method within the
lean or Agile frameworks. Even a traditional Waterfall process can be
successfully managed— DevOps serves all!
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
A COMPLETE EXAMPLE
Balike Mahesh
7207030340

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
• To make it more clear, let's have a look at what happens to a concrete change as it
propagates through the systems, using an example:
• The development team has been given the responsibility to develop a change to the
organization's system. The change revolves around adding new roles to the
authentication system. This seemingly simple task is hard in reality because many
different systems will be affected by the change.
• To make life easier, it is decided that the change will be broken down into several
smaller changes, which will be tested independently and mostly automatically by
automated regression tests.
• The first change, the addition of a new role to the authentication system, is
developed locally on developer machines and given best-effort local testing. To
really know if it works, the developer needs access to systems not available in his
or her local environment; in this case, an LDAP server containing user
information and roles.
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
• If test-driven development is used, a failing test is written even before
any actual code is written. After the failing test is written, new code
that makes the test pass is written.
• The developer checks in the change to the organization's revision
control system, a Git repository.
• The build server picks up the change and initiates the build
process. After unit testing, the change is deemed fit enough to be
deployed to the binary repository, which is a Nexus installation.
• The configuration management system, Puppet, notices that there
is a new version of the authentication component available. The
integration test server is described as requiring the latest version
to be installed, so Puppet goes ahead and installs the new
component. B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
• The installation of the new component now triggers automated
regression tests. When these have been finished successfully, manual
tests by the quality assurance team commence.
• The quality assurance team gives the change its seal of approval. The
change moves on to the staging server, where final acceptance testing
commences.
• After the acceptance test phase is completed, the staging server is
swapped into production, and the production server becomes the new
staging server. This last step is managed by the organization's load-
balancing server.
• The process is then repeated as needed. As you can see, there is a lot
going on!

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7
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.
B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :
DIGITALMAHESH7
• 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.
• We will examine these challenges further in the chapters ahead.

B.MAHESH (YOUTUBE CHANNEL :: SV TECH KNOWLEDGE ) INSTA :


DIGITALMAHESH7

You might also like