0% found this document useful (0 votes)
47 views35 pages

CSE320 - Unit1 - 4 Devops Ci-Cd

The document provides an overview of DevOps, a software development approach that enhances collaboration between development and operations teams to improve efficiency and software delivery. It details key principles such as Continuous Integration (CI) and Continuous Deployment (CD), along with their benefits, tools, and applications across various industries. Additionally, it discusses the CI/CD pipeline workflow and the challenges faced in adopting these practices.

Uploaded by

CLASH RON
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)
47 views35 pages

CSE320 - Unit1 - 4 Devops Ci-Cd

The document provides an overview of DevOps, a software development approach that enhances collaboration between development and operations teams to improve efficiency and software delivery. It details key principles such as Continuous Integration (CI) and Continuous Deployment (CD), along with their benefits, tools, and applications across various industries. Additionally, it discusses the CI/CD pipeline workflow and the challenges faced in adopting these practices.

Uploaded by

CLASH RON
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/ 35

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
5
development process
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?

Collaboration between Software Developers


and IT Operations Team.

Emphasizes automation, communication, fast


feedback, and iterative improvement to
accelerate software delivery.

Enables organizations to deliver software faster,


with higher quality, and more reliably. 7
• DevOps stands for Development and Operations.
• It's a set of practices that bring together software
development (Dev) and IT operations (Ops) to
improve collaboration and efficiency in the software
development lifecycle.
Why DevOps?
• Traditional software development had separate teams
for development and operations.

• This led to slow deployment, and reduced agility.

• DevOps aims to break down these barriers and create a


culture of collaboration.
Key Principles of DevOps
• Continuous Integration (CI): Developers integrate code
changes into a shared repository frequently.

• Continuous Deployment (CD): Automated deployment of


code changes to production.

• Automation: Automate repetitive tasks to save time and


reduce errors.
How DevOps Works
• DevOps works by bridging the gap between software
development (Dev) and IT operations (Ops), enabling
organizations to deliver high-quality software
continuously and efficiently.

• Here's how it operates:


How DevOps practices are
applied across different
industries?

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

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

18
DevOps collaboration cycle:

DevOps cycle
19
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. 20
Benefits of DevOps:

DevOps benefits
21
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

22
CI/CD (Continuous Integration and Continuous Deployment) pipeline
A process used in software development to automate
building, testing and deploying code.

23
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,
24 like
the checkout or order screens.
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.

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


26
What is CI/CD?
• Continuous Integration: Merging code into shared repository frequently.
• Continuous Deployment: Automating software delivery to production
environments.
• Goal: Streamline development, testing, and deployment processes efficiently.

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

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

• Monitor Stage: Application performance monitored post-deployment. 29


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.

30
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. 31
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). 32
3. Docker for Containerization
• Docker: Used to package the application and its
dependencies into a portable container.
• 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 33
demand.
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.
34
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.
35
CI/CD Pipeline Workflow

You might also like