0% found this document useful (0 votes)
71 views24 pages

Importance of Velocity in DevOps

DevOps is a cultural approach that enhances collaboration between development and operations teams to improve the software delivery lifecycle through automation and continuous delivery. It consists of stages including planning, coding, testing, deployment, and monitoring, promoting a culture of continuous improvement and agility. The document also discusses the Agile model, ITIL framework, and the importance of release management in DevOps, highlighting both advantages and disadvantages of these methodologies.

Uploaded by

aparna.cse
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)
71 views24 pages

Importance of Velocity in DevOps

DevOps is a cultural approach that enhances collaboration between development and operations teams to improve the software delivery lifecycle through automation and continuous delivery. It consists of stages including planning, coding, testing, deployment, and monitoring, promoting a culture of continuous improvement and agility. The document also discusses the Agile model, ITIL framework, and the importance of release management in DevOps, highlighting both advantages and disadvantages of these methodologies.

Uploaded by

aparna.cse
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

UNIT-I

1.1 Introduction To DevOps

DevOps is a collection of two words, “Development” and “Operations,”


representing a cultural approach that emphasizes collaboration between
development and operations teams to streamline the entire software delivery
lifecycle.

DevOps is a software development approach emphasizing collaboration,


automation, and continuous delivery to provide high-quality products to customers
quickly and efficiently.

DevOps breaks down silos between development and operations teams to enable
seamless communication, faster time-to-market, and improved customer
satisfaction.

DevOps is a software development approach emphasizing collaboration,


automation, and continuous delivery to provide high-quality products to customers
quickly and efficiently. DevOps breaks down silos between development and
operations teams to enable seamless communication, faster time-to-market, and
improved customer satisfaction.

Every phase of the software development lifecycle, including planning, coding,


testing, deployment, and monitoring, is heavily automated in DevOps. This
improves productivity, ensures consistency, and lowers error rates in the
development process.

A culture of continuous improvement is also promoted by DevOps, where feedback


loops are incorporated into the procedure to facilitate quicker iteration and better
decision-making.

Organizations can increase their agility, lower costs, and speed up innovation by
adopting DevOps.
DevOps lifecycle

Let’s briefly overview how the DevOps lifecycle works at every stage.

The DevOps lifecycle consists of eight representing the processes,capabilities,and


tools needed for development(on the left side of the loop) and operations (on the
right side of the loop).

1. Plan: In this stage, teams identify the business requirement and collect end-
user feedback. They create a project roadmap to maximize the business value
and deliver the desired product during this stage.
2. Code: The code development takes place at this stage. The development
teams use some tools and plugins like Git to streamline the development
process, which helps them avoid security flaws and lousy coding practices.
3. Build: In this stage, once developers finish their task, they commit the code to
the shared code repository using build tools like Maven and Gradle.
4. Test: Once the build is ready, it is deployed to the test environment first to
perform several types of testing like user acceptance test, security test,
integration testing, performance testing, etc., using tools like JUnit, Selenium,
etc., to ensure software quality.
5. Release: The build is ready to deploy on the production environment at this
phase. Once the build passes all tests, the operations team schedules the
releases or deploys multiple releases to production, depending on the
organizational needs.
6. Deploy: In this stage, Infrastructure-as-Code helps build the production
environment and then releases the build with the help of different tools.
7. Operate: The release is live now to use by customers. The operations team at
this stage takes care of server configuring and provisioning using tools like
Chef.
8. Monitor: In this stage, the DevOps pipeline is monitored based on data
collected from customer behavior, application performance, etc. Monitoring
the entire environment helps teams find the bottlenecks impacting the
development and operations teams’ productivity.

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

In the DevOps model, the operations team is responsible for the


following key tasks:
Infrastructure Management: Provisioning, configuring, and maintaining the underlying
infrastructure (servers, networks, storage, etc.) that supports the application and services.

Deployment Automation: Automating the deployment of software artifacts (e.g., code,


configurations, databases) to different environments (development, staging, production) using
tools like deployment pipelines.

Monitoring and Alerting: Setting up monitoring solutions to track the performance, health,
and availability of the systems and services. Configuring alerts to proactively notify the team
of any issues or anomalies.
Incident Response: Quickly identifying, investigating, and resolving production issues or
outages to minimize downtime and ensure service reliability.

Security and Compliance: Implementing security measures, such as access controls,


vulnerability management, and compliance with industry standards and regulations.

Capacity Planning: Forecasting and provisioning the required computational resources (e.g.,
CPU, memory, storage) to handle the expected workload and ensure scalability.

Change Management: Coordinating and managing changes to the production environment,


such as infrastructure upgrades, software updates, or configuration changes, to minimize the
risk of disruptions.

Collaboration with Development: Closely working with the development team to ensure a
smooth handoff of new features or bug fixes from development to production, and providing
feedback on infrastructure and operational concerns.

Continuous Improvement: Analyzing operational data, identifying bottlenecks, and


implementing process improvements to enhance the reliability, efficiency, and scalability of
the overall system.

1.2 Agile Model Development Model


• The meaning of Agile is swift or versatile."Agile process model" refers to a
software development approach based on iterative development.
• Agile methods break tasks into smaller iterations, or parts do not directly
involve long term planning.
• The project scope and requirements are laid down at the beginning of the
development process.
• 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" in the Agile process
model, which typically lasts from one to four weeks.
• The division of the entire project into smaller parts helps to minimize the
project risk and to reduce the overall project delivery time requirements. 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.
Phases of Agile Model:

Following are the phases in the Agile model are as follows:

1. Requirements gathering
2. Design the requirements
3. Construction/ iteration
4. Testing/ Quality assurance
5. Deployment
6. Feedback

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.

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.

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.

Testing: In this phase, the Quality Assurance team examines the product's
performance and looks for the bug.

Deployment: In this phase, the team issues a product for the user's work
environment.

Feedback: After releasing the product, the last step is feedback. In this, the team
receives feedback about the product and works through the feedback.

Agile Testing Methods:


o Scrum
o Crystal
o Dynamic Software Development Method(DSDM)
o Feature Driven Development(FDD)
o Lean Software Development
o eXtreme Programming(XP)

When to use the Agile Model?


o When frequent changes are required.
o When a highly qualified and experienced team is available.
o When a customer is ready to have a meeting with a software team all the time.
o When project size is small.

Advantage(Pros) of Agile Method:


1. Frequent Delivery
2. Face-to-Face Communication with clients.
3. Efficient design and fulfils the business requirement.
4. Anytime changes are acceptable.
5. It reduces total development time.

Disadvantages(Cons) of Agile Model:


1. Due to the shortage of formal documents, it creates confusion and crucial
decisions taken throughout various phases can be misinterpreted at any time
by different team members.
2. Due to the lack of proper documentation, once the project completes and the
developers allotted to another project, maintenance of the finished project can
become a difficulty.

1.3 DevOps and ITIL

ITIL is an abbreviation of Information Technology Infrastructure Library.

It is a framework which helps the IT professionals for delivering the best services
of IT. This framework is a set of best practices to create and improve the process of
ITSM (IT Service Management). It provides a framework within an organization,
which helps in planning, measuring, and implementing the services of IT.

The main motive of this framework is that the resources are used in such a way so
that the customer get the better services and business get the profit.

This framework was introduced by HMSO (Her Majesty's Stationery Office) in


the U.K in the year of 1989. It was developed based on C.C.T.A. (Central
Communication and Telecommunication Agency).

Service Lifecycle in ITIL

The ITIL framework is completely based on the lifecycle of a service. The


lifecycle of IT Service Management is also called as a 'Plan-Do-Check-Act
(PDCA)' or 'Deming Cycle'. It helps the service providers to achieve a better
understanding of its structure. It also defines the process that how the services are
started and maintained.
The lifecycle of a service in the framework of ITIL is broadly classified into the
following five stages:

Service Strategy

Service Strategy is the first and initial stage in the lifecycle of the ITIL
framework. The main aim of this stage is that it offers a strategy on the basis of the
current market scenario and business perspective for the services of IT.

This stage mainly defines the plans, position, patters, and perspective which are
required for a service provider. It establishes the principles and policies which
guide the whole lifecycle of IT service.

Following are the various essential services or processes which comes under
the Service Strategy stage:

o Financial Management
o Demand Management
o Service Portfolio Management
o Business Relationship Management
o Strategy Management

Service Design
It is the second phase or a stage in the lifecycle of a service in the framework of
ITIL. This stage provides the blueprint for the IT services. The main goal of this
stage is to design the new IT services. We can also change the existing services in
this stage.

o Following are the various essential services or processes which comes


under the Service Design stage:

o Service Level Management


o Capacity Management
o Availability Management
o Risk Management
o Service Continuity Management
o Service Catalogue Management
o Information Security Management
o Supplier Management
o Compliance ManagementArchitecture Management

Service Transition

Service Transition is the third stage in the lifecycle of ITIL Management


Framework.

The main goal of this stage is to build, test, and develop the new or modified
services of IT. This stage of service lifecycle manages the risks to the existing
services. It also certifies that the value of a business is obtained.

This stage also makes sure that the new and changed IT services meet the
expectation of the business as defined in the previous two stages of service strategy
and service design in the lifecycle.
It can also easily manage or maintains the transition of new or modified IT services
from the Service Design stage to Service Operation stage.

There are following various essential services or processes which comes under the
Service Transition stage:

o Change Management
o Release and Deployment Management
o Service Asset and Configuration Management
o Knowledge Management
o Project Management (Transition Planning and Support)
o Service Validation and Testing
o Change Evaluation

Service Operations

Service Operations is the fourth stage in the lifecycle of ITIL. This stage provides
the guidelines about how to maintain and manage the stability in services of IT,
which helps in achieving the agreed level targets of service delivery.

This stage is also responsible for monitoring the services of IT and fulfilling the
requests. In this stage, all the plans of transition and design are measured and
executed for the actual efficiency. It is also responsible for resolving the incidents
and carrying out the operational tasks.

There are following various essential services or processes which comes under the
stage of Service Operations:

o Event Management
o Access Management
o Problem Management
o Incident Management
o Application Management
o Technical Managemen

Continual Service Improvement

It is the fifth stage in the lifecycle of ITIL service. This stage helps to identify and
implement strategies, which is used for providing better services in future.

Following are the various objectives or goals under this CSI:

o It improves the quality services by learning from the past failures.


o It also helps in analyzing and reviewing the improvement opportunities in
every phase of the service lifecycle.
o It also evaluates the service level achievement results.
o It also describes the best guidelines to achieve the large-scale improvements
in the quality of [Link] also helps in describing the concept of KPI, which
is a process metrics-driven for evaluating and reviewing the performance of
the services.
1.4 DevOps Process and continuous Delivery
DevOps defines an agile relationship between operations and Development. It is a
process that is practiced by the development team and operational engineers together
from beginning to the final stage of the product.

1) Continuous Development

This phase involves the planning and coding of the software. The vision of the
project is decided during the planning phase. And the developers begin
developing the code for the application.

2) Continuous Integration

It is a software development practice in which the developers require to commit


changes to the source code more frequently. This may be on a daily or weekly
basis. Then every commit is built, and this allows early detection of problems if
they are present.
3) Continuous Testing

This phase, where the developed software is continuously testing for bugs. For
constant testing, automation testing tools such as TestNG, JUnit, Selenium, etc
are used. These tools allow QAs to test multiple code-bases thoroughly in parallel
to ensure that there is no flaw in the functionality

4) Continuous Monitoring

Monitoring is a phase that involves all the operational factors of the entire
DevOps process, where important information about the use of the software is
recorded and carefully processed to find out trends and identify problem areas.
Usually, the monitoring is integrated within the operational capabilities of the
software application.

5) Continuous Feedback

The application development is consistently improved by analyzing the results


from the operations of the software. This is carried out by placing the critical
phase of constant feedback between the operations and the development of the
next version of the current software application.

6) Continuous Deployment

In this phase, the code is deployed to the production servers. Also, it is essential
to ensure that the code is correctly used on all the [Link] new code is
deployed continuously, and configuration management tools play an essential
role in executing tasks frequently and quickly. Here are some popular tools which
are used in this phase, such as Chef, Puppet, Ansible, and SaltStack.

7) Continuous Operations

All DevOps operations are based on the continuity with complete automation of
the release process and allow the organization to accelerate the overall time to
market continuingly
Continuous Delivery

Continuous Delivery (CD) is a DevOps practice that refers to the building, testing,
and delivering improvements to the software code. The phase is referred to as
the extension of the Continuous Integration phase to make sure that new changes
can be released to the customers quickly in a substantial manner.

This can be simplified as, though you have automated testing, the release process
is also automated, and any deployment can occur at any time with just one click
of a button.

Continuous Delivery gives you the power to decide whether to make the releases
daily, weekly, or whenever the business requires it. The maximum benefits of
Continuous Delivery can only be yielded if they release small batches, which are
easy to troubleshoot if any glitch occurs.

1.5 Release Management in DevOps

Definition and Role

• Release management involves planning, scheduling, and controlling software


builds, updates, and deployments.

• It involves coordinating teams, automating processes, and aligning all aspects of a


release with the organization's goals.

Automation and Continuous Delivery

• Release management heavily relies on automation to streamline the release


[Link] delivery practices enable frequent, reliable releases with
minimal manual intervention.

Release Pipeline

• The release pipeline includes stages like build, testing, staging, and deployment.

• It is often integrated with CI/CD tools like Jenkins, GitLab CI/CD, or CircleCI.
Version Control and Configuration Management

• Version control systems and configuration management tools help maintain a


consistent state across different environments.

Environment Management

• Each environment needs to be correctly configured and aligned with the pipeline
for smooth transitions.

Risk Management and Quality Assurance

• Effective release management involves identifying and mitigating risks associated


with deploying new software.

Communication and Coordination

• Release management requires strong communication and coordination among


different teams. A clear release plan with defined timelines and responsibilities
ensures smooth execution.

Continuous Improvement

• Release management is not static, continually refining processes based on feedback


and evolving project requirements.

1.6 Scrum
Definition

A lightweight Agile framework for managing and completing complex projects.

Scrum is designed to help teams work together more effectively by breaking down work into
manageable chunks, delivering value incrementally, and continuously improving through iterative cycles.
Roles
Scrum Master: Facilitates the process, ensures the team follows Scrum practices, and removes obstacles.

Product Owner: Represents stakeholders, prioritizes the product backlog, and ensures the team delivers value.

Team: A cross-functional group responsible for delivering increments of the product.

Artifacts

Product Backlog: A prioritized list of features, enhancements, and bug fixes required for the product.

Sprint Backlog: A list of tasks and items the team commits to completing during a sprint.

Increment: The sum of all completed product backlog items at the end of a sprint, representing a
potentially shippable product version.

Events
- Sprint: A time-boxed iteration (usually 2-4 weeks) during which the team works on completing the tasks in the
sprint backlog.

- Sprint Planning: A meeting where the team plans the work for the upcoming sprint by selecting items from the
product backlog.

- Daily Scrum: A short, daily meeting where the team members discuss their progress, plans for the day, and any
obstacles they face.

- Sprint Review: A meeting at the end of the sprint where the team demonstrates the completed increment to
stakeholders for feedback.

- Sprint Retrospective: A meeting where the team reflects on the sprint, discussing what went well, what didn’t,
and how to improve in the next sprint.

Sprint Goal

The Sprint Goal provides the team with a focused objective and helps align their efforts toward a
common outcome.

Backlog Refinement
Backlog refinement involves breaking down high-priority backlog items into smaller, more manageable
pieces and ensuring the backlog is up-to-date and reflects the latest priorities.

Incremental Delivery

Delivering small, usable pieces of the product frequently. Each sprint aims to deliver a potentially
shippable increment of the product, allowing for continuous feedback and improvement

Continuous Improvement

Through retrospectives and ongoing feedback, Scrum encourages teams to continually refine their
processes, improve collaboration, and increase productivity over time

1.7 Kanban

• Kanban is a visual project management methodology that helps teams manage


and improve the flow of their work.
• Originating from the Toyota Production System, Kanban emphasizes a
continuous, incremental approach to process improvement.
• By making work visible, limiting work-in-progress, and focusing on
bottlenecks, Kanban enables teams to enhance their efficiency, productivity,
and responsiveness to changing business needs.

Kanban Principles
Visualize the Workflow

Kanban starts with making the work visible by creating a Kanban board that displays the
different stages of the workflow, from "To Do" to "Done". This allows teams to gain a clear
understanding of the current state of their work and identify any bottlenecks or blockages.

Limit Work-in-Progress

Kanban emphasizes the importance of limiting the amount of work that is in progress at any
given time. This helps prevent overloading the team, reduces context switching, and ensures that
work is completed efficiently and on time.

Manage Flow
Kanban focuses on optimizing the flow of work through the system, rather than maximizing the
utilization of individual resources. By understanding and improving the flow of work, teams can
identify and address issues that are affecting their productivity and efficiency

Kanban Workflow

Backlog

The Backlog represents the list of tasks or user stories that need to be completed. This is where
new work is added to the system.

To Do
The To Do column represents tasks that are ready to be worked on, but have not yet been started.

In Progress

The In Progress column represents tasks that are currently being worked on by team members

Done

The Done column represents tasks that have been completed and are ready for delivery or
deployment.

Kanban Boards

Physical Boards.
Kanban boards can be physical, using sticky notes or cards on a wall or whiteboard,
which allows for easy visualization and collaboration.

Digital Boards

Many teams use digital Kanban boards, which are often integrated with project
management software or collaboration platforms. These provide additional features like real-
time updates, reporting, and remote access.

Customizable

Kanban boards can be customized to fit the unique needs and workflows of each team, with
columns and swimlanes that represent the specific stages of their process.
Visibility

The visual nature of Kanban boards helps to increase transparency and accountability, allowing
teams to quickly identify and address issues or bottlenecks

Kanban Cards

Task Details

Kanban cards represent individual tasks or user stories, and typically include
information like the task name, description, due date, and assignee.

Work in Progress

As tasks move through the Kanban workflow, the cards are physically or digitally
moved across the board, providing a clear visualization of the current state of the
work.

Prioritization

Kanban cards can be prioritized based on factors like business value, due date, or
dependencies, helping teams focus on the most important work.

Metadata

Additional metadata, such as labels, tags, or custom fields, can be added to Kanban
cards to provide more context and facilitate better decision-making.

Kanban Metrics
Lead Time

The time it takes for a task to go from "To Do" to "Done".

Cycle Time

The time it takes for a task to go from "In Progress" to "Done".


Work in Progress (WIP)

The number of tasks currently in the "In Progress" column.

Throughput

The number of tasks completed per unit of time (e.g., per day or week).

Benefits of Kanban

Increased Visibility

Improved Efficiency

Adaptability

1.8 Identifying and Addressing Bottlenecks in DevOps

Identifying Bottlenecks
• Implement robust monitoring and metrics to pinpoint stages of pipeline delays or inefficiencies.

• Analyze Work in Progress (WIP) limits to identify overloaded stages and adjust WIP limits.

• Gather regular feedback from development and operations teams to identify common delays or issues.

• Automated testing and deployment processes can identify bottlenecks if tests or deployments
consistently fail or take longer than expected.

• Visualize the pipeline using tools like Kanban boards or value stream mapping to identify bottlenecks.

Addressing Bottlenecks
• Optimize workflows by simplifying or automating complex processes.

• Adjust WIP limits to control the flow of work through the pipeline.

• Improve communication between development, operations, and testing teams to prevent


misunderstandings and delays.
• Scale resources to alleviate bottlenecks due to insufficient computing power or limited personnel.

1.9 Delivery Pipeline

• A delivery pipeline is an automated process guiding code through stages from development to
production.

• Stages include source control, build, automated testing, and deployment.

• Continuous Integration (CI) and Continuous Delivery (CD) are key practices within the pipeline.

• Tools like Jenkins, GitLab CI/CD, and Ansible, Docker,Kubernets automate these processes, making them
more efficient and less prone to human error.

• Feedback loops provide developers with immediate insights into the success or failure of each stage,
facilitating quick troubleshooting and continuous improvement.

• The "Pipeline as Code" configuration allows it to be version-controlled and repeatable across


environments.

• Benefits of the delivery pipeline include consistency in the release process, faster delivery of features
and fixes, and improved code quality.
• Security and scalability are important considerations in managing complex pipelines.

• A well-structured delivery pipeline fosters a culture of continuous improvement and rapid iteration

You might also like