0% found this document useful (0 votes)
21 views97 pages

DevOps Presentation

Uploaded by

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

DevOps Presentation

Uploaded by

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

INTRODUCTION TO

DEVOPS
What is Devops?

DevOps is a set of practices,


principles, and cultural
philosophies that aim to improve
the collaboration between
development (Dev) and operations
(Ops) teams. The primary goal of
DevOps is to shorten the software
development lifecycle and deliver
high-quality software quickly and
efficiently.
SDLC (software development lifecycle)

1. REQUIREMENT

2. ANALYSIS

3. DESIGN

4. DEVELOPER ( CODE BUILD)

5. TESTING

6. VERFICATION AND RELEASE


METHODOLOGY
THREE MOTHODOLOGY

1. WATERFALL METHODOLOGY

2. AGILE METHODOLOGY

3. DEVOPS METHODOLOGY
WATERFALLS
The Waterfall methodology is a
traditional software development
approach where progress flows in
one direction — like a waterfall —
through a linear and sequential
process. It’s one of the oldest and
most structured approaches to
software development and project
management.
AGILE
Agile is a set of principles and
methodologies for software
development that emphasizes
flexibility, collaboration, rapid
delivery, and customer feedback.
Unlike traditional methods like
Waterfall, Agile is designed to
respond to change, focus on
delivering value incrementally, and
prioritize customer satisfaction over
following a strict plan.
DEVOPS
DevOps encourages greater
collaboration between development
teams (who build the software) and
operations teams (who deploy and
manage the software). This helps
eliminate silos and improve the flow
of information across the entire
software delivery process.
Evolution of DevOps
is a cultural a n d professional m o v e m e n t that e m p h a s i ze s collaborati on
b e t w e e n a n d teams. This presentati on explores the
of D ev O ps , h i g h l i g h ti n g its journey f ro m isolated to a m o r e
integrated a n d a p p ro a c h that e n h a n c e s producti vity a n d efficiency.
The Rise of Silos

In t h e early d ays of soft ware deve l o pm ent ,


t e a m s operated in , l e a d i n g to
g a p s a n d inefficiencies.
E a c h d e p a r t m e n t h a d its o w n goals, oft en
resulti ng in a n d delays.
U n d e r s t a n d i n g this historical context is
crucial for a p p re c i ati n g t h e shift towards a
m o r e u n i fi e d a p p ro a c h in .
Transition to Synergy

T h e transiti on f ro m silos to
involved b r e a k i n g d o w n barriers b e t w e e n
teams. This w a s a c h i eve d t h ro u g h
practi ces like ,
, and

. By
fostering a culture of s h a re d responsibility,
organi zati o ns c o u l d deliver soft ware m o r e
qui c k l y a n d w i t h h i g h e r quality, e n h a n c i n g
overall performance.
Conclusion: The Future of
DevOps

T h e evoluti on of s i g ni fies a shift


toward a m o r e collaborati ve a n d efficient
a p p ro a c h to soft ware d eve l o p m e nt . B y
e m b ra c i n g , organi zati o ns c a n
bett er re s p o n d to m a r ke t d e m a n d s a n d
innovate faster. T h e future of D e v O p s lies
in c o nti n u o u s i m p r o v e m e n t a n d
a da ptati o n to e m e r g i n g te c h n o l o g i e s a n d
practi ces.
Benefits of DevOps
Enhancing Collaboration, Efficiency, and Innovation
The Need for DevOps

 - Rapid software delivery in a competitive market.


 - Bridging the gap between development and operations teams.
 - Improved collaboration and communication.
Overview of Benefits

 - Faster delivery of software.


 - Improved collaboration.
 - Enhanced scalability and security.
 - Better quality and reliability of products.
Accelerating Time-to-Market

 - Automation of workflows and pipelines.


 - Continuous integration and continuous delivery (CI/CD).
 - Faster feedback loops and reduced lead times.
Ensuring Better Software

 - Early detection of defects through automated testing.


 - Improved system reliability through continuous monitoring.
 - Higher end-user satisfaction.
Scaling Securely

 - Automated infrastructure provisioning and scaling.


 - Enhanced security practices integrated into CI/CD pipelines.
 - Proactive detection of vulnerabilities.
DevOps in Action

 - Examples of companies leveraging DevOps:


 - Amazon for rapid deployments.
 - Netflix for scalability and reliability.
 - Google for constant innovation.
Agile Practices
A Comprehensive Overview of Key Agile
Practices and Principles
What is Agile?

 Agile is a flexible and iterative approach to project


management and software development. It focuses on
delivering value incrementally, enabling teams to
respond to feedback and adapt to changes quickly.
Agile Principles

1. Our highest priority is to satisfy the customer through the early


and continuous delivery of valuable software.
2. Welcome changing requirements, even late in development.
Agile processes harness change for the customer’s competitive
advantage.
3. Deliver working software frequently, from a couple of weeks to
a couple of months, with a preference to the shorter timescale.
4. Business people and developers must work together daily
throughout the project.
5. Build projects around motivated individuals. Give them the
environment and support they need, and trust them to get the
job done.
6. The most efficient and effective method of conveying
Agile Principles

7. Working software is the primary measure of progress.


8. Agile processes promote sustainable development. The sponsors, developers,
and users should be able to maintain a constant pace indefinitely.
9. Continuous attention to technical excellence and good design enhances agility.
10. Simplicity–the art of maximizing the amount of work not done–is essential.
11. The best architectures, requirements, and designs emerge from self-organizing
teams.
12. At regular intervals, the team reflects on how to become more effective, then
tunes and adjusts its behavior accordingly.
Agile vs. Waterfall

 Agile: Focuses on the iterative development process


within the software development lifecycle (SDLC),
enabling teams to adapt quickly to user feedback.
 Waterfall: Emphasizes a linear and sequential
development approach, where each phase (requirements,
design, implementation, testing, and maintenance) is
completed before moving to the next, making it less
flexible to changes.
Agile vs. Waterfall
Agile vs. Waterfall
Core Agile Methodologies

1. Scrum: Framework for managing work in structured sprints.


2. Kanban: Visual workflow management using boards.
3. Extreme Programming
Scrum

 Scrum organizes work into structured roles, ceremonies,


and artifacts. Key roles include Product Owner, Scrum
Master, and Development Team, while ceremonies
include Daily Standups, Sprint Reviews, and Sprint
Retrospectives.
Scrum
Scrum
 When it comes to software development, a scrum can be characterized
by developers putting their heads together to address complex problems.
 Scrum software development starts with a wish list of features — a.k.a. a
product backlog. The team meets to discuss:
 The backlog.
 What still needs to be completed.
 How long it will take.
 Scrum relies on an agile software development concept called sprints:
 Sprints are periods of time when software development is actually done.
 A sprint usually lasts from one week to one month to complete an item from the
backlog.
 The goal of each sprint is to create a saleable product.
 Each sprint ends with a sprint review.
 Then the team chooses another piece of backlog to develop — which starts a new
sprint.
 Sprints continue until the project deadline or the project budget is spent.
Scrum
 In daily scrums, teams meet to discuss their progress since the previous meeting
and make plans for that day.
 The meetings should be brief — no longer than 15 minutes.
 Each team member needs to be present and prepared.
 The ScrumMaster keeps the team focused on the goal.
Kanban
 Kanban emphasizes managing workflows visually and continuously
optimizing for efficiency. Work items move through stages (e.g., To Do,
In Progress, Done) displayed on a Kanban board.
Extreme Programming

 Extreme Programming (XP) is an Agile software development methodology that focuses


on delivering high-quality software through frequent and continuous feedback,
collaboration, and adaptation. XP emphasizes a close working relationship between the
development team, the customer, and stakeholders, with an emphasis on rapid, iterative
development and deployment.
Conclusion

 Agile practices foster adaptability, collaboration, and


incremental improvements, making it ideal for dynamic
and complex projects.
FOCUS AND
PRODUCT
SERVICE
What is the focus of
DevOps?
In building on top of Agile
practices, DevOps focuses
on incremental development
and rapid delivery of
software. Success relies on
the ability to create a culture
of accountability, improved
collaboration, empathy, and
joint responsibility for
business outcomes.
What is a DevOps product?

DevOps is a set of practices, tools, and a cultural philosophy that automate and
integrate the processes between software development and IT teams. It
emphasizes team empowerment, cross-team communication and collaboration,
and technology automation.
What is an example of a
product focus company?
These and other companies
that focus on products
include Microsoft, Google,
Amazon, Apple, Netflix,
Adobe, Intel.
What is a focus product?
Product-Focused refers
to a system in which
company assigns
ownership of a product
to an internal team. The
team's performance
evaluation is tied to the
long-term success of the
product in the
marketplace.
● What are the 4 basic focus
strategies for services?
There are four primary areas
of strategic focus: design,
produce, deliver, and service.
The choice of strategic focus
dictates your organizational
and operational choices
Product-focused management
A management style that involves analyzing a
company's products or offerings and
developing strategies to improve them. Product
teams are responsible for developing products
and ensuring their success in the marketplace.
Customer-focused strategy
A business strategy that involves
understanding customers' needs and providing
products and services that meet those needs.
This strategy can help businesses increase
customer satisfaction, loyalty, and profitability
FOCUS AND PRODUCT AND SERVICE
Product and service focus can
refer to a management style
or a business strategy:
Product-focused
management A
management style that
involves
analyzing a company's
products or offerings and
developing strategies to
improve them. Product teams
are responsible for developing
products and ensuring their
CROSS-Functional
Delivery Teams
Cross-Functional Teams:
In today's fast-paced environment, Cross functional delivery teams are essential
for achieving organizational goals than the Functional teams and leading to
improved project outcomes and customer satisfaction.
What is Functional Teams:
 Functional Teams (Traditional Teams) represents the team which has group of
individuals having same or similar skills.
 Each and every team will have specific Behavior.
 Handing over the product to the next team after a specific task completion
(Designing -> Developing -> Testing).
Disadvantages of Functional
Teams:
 Inconvenience delivery to the next level team
 Lack of Communication between teams
 Taking more time to deliver a s/p
 High-cost management

To overcome these Drawbacks many company using CROSS-


Functional Delivery Teams. Especially Startup companies.
Cross-Functional Delivery Team:
Cross-Functional teams are the teams that include individuals from various
departments and roles with different skills. Which means, In this team there will be
cross platform members like Designers, Developers, Testers, Sales person etc… in the
name of Collaboration.
Advantages of Cross-Functional
team:
 Improve Communication and
Collaboration.
 Reduces the Cost & Delivering Time.
 No interaction of other teams.
 Cross platform Experience.
 Strong Work Relationship.
Some Disadvantages:

 Team member Absenteeism.

 Small Companies can’t take many project


simultaneously.

 Only recommended of simple interface


projects.
What is Automation
Testing in DevOps?

Automation Testing in DevOps integrates testing


processes into the software delivery pipeline to ensure
faster, reliable, and consistent testing. This helps in
maintaining high software quality while speeding up
delivery.
Role of Automation
Testing in DevOps

• Continuous Testing: Automating tests ensures testing occurs in every


stage of the CI/CD pipeline.

• Early Bug Detection: Tests integrated into the build pipeline catch
issues early in development.

• Accelerated Delivery: Automating repetitive test cases saves time,


allowing faster software releases.

• Improved Collaboration: Testing aligns with development and


operations, creating a unified process.
Benefits

• Consistency: Reduced human error with automated test execution.

• Scalability: Supports testing multiple environments simultaneously.

• Cost Efficiency: Early bug fixes reduce expensive late-stage


debugging.

• Faster Feedback Loops: Immediate feedback on code changes


improves agility.
Common Tools for Automation
Testing in DevOps

Unit Testing:
A crucial software development practice that involves
testing individual units of code (methods, classes, functions) in
isolation. This ensures that each unit functions correctly and
meets its intended purpose.
Unit testing frameworks

JUnit
• Platform: Java
• Simple and easy to use
• Annotations for test case definition and organization
• Test fixtures for setting up and tearing down test
environments
• Flexible assertion methods for verifying expected outcomes

• Integration with popular IDEs and build tools


NUnit
• Platform: .NET
• Key Features:
• Similar to JUnit in structure and usage
• Supports a wide range of .NET platforms
• Powerful assertion methods and constraints
• Data-driven testing for efficient test case execution
• Test categories for organizing tests into logical groups
TestNG
• Platform: Java
• Inspired by JUnit and NUnit, but with enhanced features
• Flexible test configuration through XML or annotations
• Powerful grouping and dependency mechanisms for
organizing tests
• Parallel test execution for improved performance
• Data-driven testing and parameterized tests
• Integration with various testing tools and frameworks
Functional Testing

A crucial aspect of software development that ensures a web


application functions as intended. It involves testing the
application's features and user interface to verify that they meet
the specified requirements.
Tools for functional testing
Selenium
• A Versatile Framework: Selenium is a popular open-source
tool that supports multiple programming languages (Java,
Python, C#, Ruby, JavaScript) and browsers.
• Cross-Browser Compatibility: Test your application on
various browsers and operating systems.
• Flexible Test Automation: Create robust and maintainable
test scripts.
• Community Support: Benefit from a large and active
community.
• Integration with CI/CD Pipelines: Seamlessly integrate
Selenium into your development workflow.
Cypress
• Modern and User-Friendly: Cypress is a relatively newer
tool that offers a modern approach to web testing.
• Fast and Reliable: Execute tests quickly and reliably.
• Time-Traveling Debugger: Easily debug test failures.
• Automatic Waiting: Cypress automatically waits for DOM
elements to load.
• Real-Time Reloads: Test changes instantly.
Playwright
• Cross-Platform and Cross-Browser: Playwright supports
multiple browsers and platforms, including mobile devices.
• High Performance: Efficient test execution.
• Multiple Language Support: Write tests in JavaScript,
Python, Java, or .NET.
• Auto-Waiting: Automatically waits for elements to be
available.
• Mobile Testing: Test your web applications on real or
simulated mobile devices.
API Testing
A crucial part of software development that ensures the correct
functioning of APIs. It involves testing the API's functionality,
performance, security, and reliability.

TOOLS
Postman: User-Friendly Interface: Postman offers a simple and
intuitive interface, making it easy to use for both technical and
non-technical users.

SoapUI: It is a powerful open source tool designed for testing


API’s, particularly those based on SOAP and REST protocols.
It offers a comprehensive suite of features for both functional
and nonfunctional testing
CI/CD INTEGRATION
Continuous Integration (CI) and Continuous Delivery (CD) are
essential practices for modern software development. They
automate the building, testing, and deployment of code
changes, leading to faster and more reliable releases.

Jenkins:
A highly customizable platform with a vast ecosystem of
plugins, allowing you to tailor it to your specific needs.

GitHub Actions:
Tightly integrated with GitHub, making it easy to set up and
manage CI/CD workflows directly within your repositories.
Performance Testing
A crucial aspect of software development that helps assess an
application's ability to handle load and stress. It involves
simulating real-world user behavior to identify performance
bottlenecks, optimize resource utilization, and ensure a smooth
user experience.
JMeter
A widely used open-source tool that offers a comprehensive set
of features for performance testing.

Locust
A Python-based tool that emphasizes simplicity and ease of
use.
Best Practices
• Automate High-Value Test Cases: Prioritize repetitive and critical
paths.

• Parallel Execution: Use distributed testing to save time.

• Maintain Test Scripts: Regularly update to adapt to changes in the


application.

• Use Version Control: Track changes in test scripts along with


application code.

• Implement Reporting: Tools like Allure or Extent Reports improve


test result visibility.
Challenges

• Initial setup cost and time investment..

• Maintenance of scripts in dynamic environments..

• Handling flaky tests due to unstable environments..


Deployment
Strategies in DevOps
Efficient and Reliable Software Deployment
Introduction to Deployment

 Deployment is the process of delivering software from development to


production environments.
 Goals:
 - Ensure minimal downtime
 - Maintain software reliability
 Importance:
 - Rapid and secure software delivery
 - Efficient updates and patches
Deployment Strategies and Models

 1. Blue-Green Deployment
 - Two environments: Blue (current) and Green (new)
 - Instant traffic switch for zero downtime
 2. Canary Deployment
 - Gradual rollout to a subset of users
 - Monitor performance before full release
 3. Rolling Deployment
 - Incremental update of servers or instances
 - Reduces impact on users
Continuous Integration & Continuous
Deployment (CI/CD)
 Continuous Integration (CI): Automated integration of code changes
into a shared repository with testing.
 Continuous Deployment (CD): Automated release of changes to
production after passing all tests.
 Benefits:
 - Faster delivery
 - Reduced manual errors
 - Consistent and repeatable deployments
Deployment Pipeline Overview

 1. Code Commit: Version control using Git, GitHub, etc.


 2. Build Automation: Tools like Jenkins, Azure DevOps
 3. Automated Testing: Unit, integration, and performance tests
 4. Deployment: Use of Docker, Kubernetes, or cloud platforms (AWS,
Azure)
Tools and Technologies

 1. Version Control: Git, Bitbucket


 2. CI/CD Tools: Jenkins, GitHub Actions, CircleCI
 3. Containerization: Docker, Kubernetes
 4. Infrastructure as Code (IaC): Terraform, Ansible
 5. Monitoring and Logging: Prometheus, Grafana, ELK Stack
Best Practices

 - Automate deployment processes to reduce human error


 - Implement monitoring to catch issues early
 - Secure your pipeline and configurations
 - Maintain rollback plans for failed deployments
 - Test thoroughly before deployment
DATA AND DATA MANAGEMENT IN DEVOPS
In DevOps, data and data management play a critical role in
ensuring smooth development, testing, deployment, and
monitoring of applications.

Here’s an overview of their significance and key practices:


1. Importance of Data in DevOps:
• Continuous Integration/Continuous Deployment (CI/CD): Reliable data ensures
that the development and deployment pipelines function effectively.
• Testing and Validation: Data is critical for creating test environments that mimic production systems.
• Monitoring and Analytics: Real-time data supports proactive monitoring and issue detection.
• Configuration Management: Data is required to store and manage environment-specific
configurations.
• Decision-Making: Metrics and logs derived from data guide decisions on scaling, optimization, and
troubleshooting
2. Key Aspects of Data Management in DevOps
• Version Control for Data:
• Similar to code, data and database schema changes should be version-controlled.
• Tools like Flyway and Liquibase are often used for database migrations.
• Data Pipelines:
• Automating data ingestion, processing, and storage pipelines is crucial.
• Tools: Apache Airflow, AWS Glue, Azure Data Factory.
• Environment-Specific Data:
• Dev, test, staging, and production environments often require unique datasets.
• Use synthetic or masked data for non-production environments to ensure privacy and
compliance.
• Data as Code:
• Configuration files (e.g., YAML, JSON) are used to manage infrastructure and data
configurations as code.
3. DevOps Tools for Data Management
• Database Automation Tools:
• Flyway, Liquibase, and Redgate help manage database schema changes.
• Infrastructure as Code (IaC):
• Terraform, Ansible, and CloudFormation are used to automate data storage infrastructure
provisioning.
• Monitoring and Observability:
• Tools like Prometheus, Grafana, ELK Stack (Elasticsearch, Logstash, Kibana), and Datadog
analyze application and infrastructure data.
• Data Storage and Management:
• Kubernetes for stateful application storage.
• Cloud services like AWS S3, Google Cloud Storage, and Azure Blob Storage.
4. Challenges in Data Management
• Data Integrity: Ensuring consistent and accurate data during CI/CD pipeline
operations.
• Compliance: Adhering to regulations like GDPR, HIPAA, or PCI DSS when
handling sensitive data.
• Scaling: Managing large datasets in distributed environments.
• Backup and Recovery: Automating data backups and ensuring rapid
recovery in case of failures.
5. Best Practices
• Automate Data Operations:
• Use scripts and tools for data migration, backup, and restoration.
• Integrate Data Security:
• Encrypt sensitive data and use role-based access controls (RBAC).
• Use Containerized Data Stores:
• Deploy databases in containers for portability (e.g., using Docker or
Kubernetes StatefulSets).
• Enable Observability:
• Set up alerts, dashboards, and analytics for real-time insights.
Conclusion: Efficient data management is fundamental to DevOps
success. By leveraging automation, version control, and monitoring tools,
teams can ensure seamless workflows and maintain high system
reliability.
THANK YOU
- Midhilesh and TEAM

You might also like