0% found this document useful (0 votes)
2 views

Unit1_devops

The document provides an overview of DevOps, emphasizing its role in enhancing collaboration between development and operations teams throughout the software development lifecycle. It discusses the benefits of DevOps and CI/CD (Continuous Integration and Continuous Deployment), including faster delivery, improved code quality, and early error detection. Additionally, it outlines the tools and processes involved in implementing DevOps practices across various industries.

Uploaded by

umauppal25
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Unit1_devops

The document provides an overview of DevOps, emphasizing its role in enhancing collaboration between development and operations teams throughout the software development lifecycle. It discusses the benefits of DevOps and CI/CD (Continuous Integration and Continuous Deployment), including faster delivery, improved code quality, and early error detection. Additionally, it outlines the tools and processes involved in implementing DevOps practices across various industries.

Uploaded by

umauppal25
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 30

Unit-1

Introduction to S/w Engineering


Table of Content
• What is DevOps?

• DevOps Collaboration Cycle

• Meaning of infinite loop

• Benefits of DevOps

• DevOps Tools

• CI/CD Pipeline

• Benefits of CI/CD

2
Process

DevOps 3
Feedback Loop
<- - - - - - - - - - - - - - - - - - - - -

Development Department Operations Department

4
DevOps DevOps

Development Operations

DevOps is a set of practices and


tools designed to shorten the
life cycle of a software
development process
5
What is DevOps?
• DevOps is a s/w development approach that emphasizes collaboration and
communication between development and operations team.

• Allows a single team to handle the entire application lifecycle from development
to testing, deployment and operations

• Reduce the disconnection between software developers, quality assurance


engineers and system administrators

6
What is DevOps?

7
How DevOps practices
are applied across
different industries?

security 8
Contd.
1. Software Development
•Description: Startups and companies in software development adopt DevOps to build and deploy reliable
applications efficiently.
•Key Benefits:
• Accelerated development and deployment cycles.
• Reduction in risks associated with releasing software.

2. E-Commerce
•Description: E-commerce businesses leverage DevOps for faster setup times and optimized workflows.
•Key Benefits:
• Automated processes streamline operations.
• Enhances workflow efficiency, reducing time-to-market for features.

9
Contd.
3. Healthcare
•Description: The healthcare industry, being heavily regulated, relies on DevOps for addressing data
privacy and security challenges.
•Key Benefits:
• Compliance with strict regulations.
• Improved security and reliability in handling sensitive patient data.

4. Fintech/Banking
•Description: In the highly sensitive and regulated banking sector, DevOps is used to address
security concerns while maintaining agility.
•Key Benefits:
• Enhanced security protocols.
• Ensures compliance with industry regulations.
• Facilitates continuous delivery while minimizing risks.
10
Contd.
5. Social Impact Organizations/Development Sector

•Description: DevOps supports social impact organizations by enabling them to achieve


efficiency and scalability in their operations.
•Key Benefits:
• Accelerates project timelines.
• Ensures reliable deployment of applications in impactful development initiatives.

11
DevOps collaboration cycle:

DevOps cycle
12
Meaning of infinite loop:

illustrates how development and operations teams work together in a never-ending


process to build, deploy, operate, and improve applications.

Continuous Feedback:
Seamless feedback between development and operations at every stage ensures
continuous improvement of software and processes.

Seamless Collaboration:
Reflects the integration of teams, breaking down silos between development and
operations.

Automation and Iteration:


Processes like testing, deployment, and monitoring are automated and repeat in cycles
which reduces manual effort and increases efficiency.
13
Benefits of DevOps:

DevOps benefits
14
DevOps Tools:
• Version Control: Git, GitHub, GitLab

• CI/CD Tools: Jenkins, GitLab CI/CD

• Configuration Management: Ansible, Puppet, Chef

• Containerization: Docker, Kubernetes

• Monitoring: Prometheus, ELK Stack

15
CI/CD (Continuous Integration and Continuous Deployment) pipeline
A process used in software development to automate building, testing and deploying
code.
It streamline development workflows, reduce errors, and deliver software faster and
more reliably.

16
CI: Continuous Integration
Developers regularly merge their code changes into the main branch,
followed by automated testing and running of the project.
•Process: After completing a task, the developer saves changes into the
working project copy. The CI/CD tool (Jenkins, GitLab CI/CD, etc.)
detects these changes and runs the project.
•Error Handling: If issues occur, the developer is notified with a
detailed error description. If no issues are found, a confirmation of a
successful run is provided.
•Benefits: Detects and resolves conflicts or errors at the earliest stage
possible.
17
CD: Continuous Delivery/Deployment
Continuous Delivery involves the regular and automated deployment of
new application versions into a production environment.
•Key Aspect: Ensures that the application is always in a deployable
state. Deployment processes are automated but may include a final
manual approval step.
•Benefit: Enables rapid and reliable delivery of updates to users.

18
Imagine you are developing a food delivery app like
Uber Eats

• Code: A developer adds a feature, like a new "dark mode" for the app.

• Commit: The developer saves (commits) the changes to a shared repository (like
GitHub).

• CI Pipeline:
• Build: The system automatically builds the app with the new feature to check if
it compiles correctly.

• Unit Tests: It tests only the "dark mode" feature to ensure it works as
expected.

• Integration Tests: It ensures the new feature works with existing app features,
19
Contd.
• CD Pipeline:
• Review: The team reviews the feature for quality (optional for Continuous Deployment).

• Staging: The app is deployed to a staging environment where a team or beta users test
"dark mode" as if it's live.

• Production: Once stable, the feature is automatically or manually deployed to the app
that users download from app stores.

Real-Life Benefit: Every small change, like "dark mode," is tested, integrated and delivered
seamlessly to users with minimal downtime or errors.

20
CI/CD Pipeline

CI: Continuous Integration CD: Continuous Delivery/Deployment


• Enabling Continuous Integration and Deployment for Modern software

• CI/CD pipelines enable faster and reliable software delivery processes.

• It is a software development approach to automate the process of integrating code


changes, testing, and deploying applications.

• Automates builds, tests and deployments for seamless collaboration.

• Tools like Jenkins, Docker, Kubernetes streamline pipeline workflows.


21
Tools for CI/CD

• Version Control: Git, GitHub, GitLab for source management.

• Build Tools: Jenkins, CircleCI, TravisCI automate build processes.

• Containerization: Docker simplifies deploying applications using containers.

• Orchestration: Kubernetes manages containerized applications at scale.

• Testing Tools: Selenium, JUnit ensure automated software testing workflows.

22
CI/CD Pipeline Workflow
• Source Control: Code pushed to version control repository.

• Build Stage: Application code compiled and dependencies installed.

• Test Stage: Automated tests run to ensure software quality.

• Release Stage: Deployment package prepared and versioned for delivery.

• Deploy Stage: Application deployed to production or staging environments.

23
• Monitor Stage: Application performance monitored post-deployment.
Benefits of CI/CD:

• Faster Time-to-Market: Accelerates delivery of features and


updates.
• Improved Code Quality: Automated testing reduces bugs and
regression issues.
• Early Error Detection: Integration issues are caught earlier.
• Reliable Deployment: Automation reduces manual errors during
release.
• Enhanced Collaboration: Encourages frequent and smaller code
changes.

24
Challenges in CI/CD Adoption
1.Cultural Resistance: Teams may resist transitioning from traditional
workflows.
2.Toolchain Complexity: Integrating and managing CI/CD tools is
challenging.
3.Skill Gaps: Teams may lack expertise in CI/CD processes and tools.
4.Infrastructure Costs: Setting up and maintaining CI/CD can be expensive.
5.Testing Challenges: Comprehensive test coverage is time-consuming to
build and maintain.
6.Security Concerns: Automated pipelines can expose vulnerabilities if not
secure.
7.Integration Issues: Legacy systems may not integrate well with CI/CD
pipelines.
8.Change Management: Frequent changes can lead to instability if not
managed properly.
9.Monitoring and Feedback: Failures in pipelines can go unnoticed without
robust monitoring.
10.Scalability: Scaling pipelines for large teams and complex apps is difficult. 25
Diagram illustrates a DevOps pipeline integrating tools and
platforms like Git, Jenkins, Docker, and Kubernetes.

1. Developers and Source Code Repository


•Developers: Write and commit source code.
•Git/GitHub: The source code is stored and version-controlled in Git
or GitHub, which acts as the central repository for the codebase.

2. Jenkins for Continuous Integration


•Jenkins: A CI/CD tool that automates building, testing,
and integrating code.
•Process:
• Jenkins pulls code from the GitHub repository.
• Jenkins builds the application and runs tests to ensure
code quality.
• Once successful, Jenkins triggers the next step
(containerization with Docker).
26
3. Docker for Containerization
•Docker: Used to package the application and its
dependencies into a portable container ensuring consistency
across different environments.
•Steps:
• Jenkins uses Docker to create a Docker image of the
application.
• The image is then pushed to Docker Hub, a cloud-
based repository for storing and sharing Docker
images.

4. Continuous Deployment with Kubernetes


•Kubernetes Cluster: After the Docker image is available in
Docker Hub, it is deployed to a Kubernetes cluster.
•Key Features:
• Kubernetes handles orchestration, ensuring that
containers are deployed across multiple nodes.
• It enables auto scaling, meaning the number of
containers increases or decreases based on
demand.
27
Summary of workflow
• Code changes: developers commit code changes to a
version control system (e.g. Git)
• Build Process: Jenkins pulls the latest code and triggers
the build process
• Containerization: Jenkins uses Docker to package the
application into a Docker container.
• Testing: Jenkins runs automated tests within the Docker
container to ensure the application works correctly.
• Deployment: Once tests pass, Jenkins pushes the
Docker image to a container registry (e.g. Docker Hub)
• Orchestration: Kubernetes pulls the Docker image from
the registry and deploys it to the Kubernetes cluster.
• Management: Kubernetes manages the deployed
containers, ensuring they are running, scaled, and
updated as needed.
28
Summary of workflow
• Source Code Management: Developers push code
to GitHub.
• Continuous Integration: Jenkins builds and tests
the code.
• Containerization: Docker packages the application
into images and uploads them to Docker Hub.
• Continuous Deployment: Kubernetes manages the
deployment and scaling of the application in
production.

This pipeline demonstrates a modern DevOps process


that enables automation, scalability, and efficiency
in deploying applications.
29
CI/CD Pipeline:
Continuous Integration (CI):
•Automates merging code changes into a shared repository.
•Runs automated tests to validate changes.
•Detects integration issues early.

Continuous Delivery (CD):


•Prepares code changes for release to production.
•Ensures the application is always in a deployable state.

Continuous Deployment:
•ensures that tested, stable changes are delivered to users
quickly and reliably.
CI/CD Pipeline Workflow
•Minimizes human intervention in deployment.
30
CI/CD Pipeline Workflow

You might also like