DevSecOps Sathvik
DevSecOps Sathvik
The Evolution
of Software
Development
Overview- What we’ll cover
Introduction to SDLC
SDLC in Waterfall Model
DevSecOp Transition to Agile
s Introduction to DevOps
Evolution to DevSecOps
Benefits and Challenges of DevSecOps
ntroduction to SDLC:
SDLC is a framework that provides a systematic approach to developing software.
It defines the life cycle of a project from its initial stages to completion.
It is the fundamental model of the software development life cycle. This is a very simple model. The waterfall model is not in
practice anymore, but it is the basis for all other SDLC models. Because of its simple structure, the waterfall model is easier to
use and provides a tangible output. In the waterfall model, once a phase seems to be completed, it cannot be changed, and
due to this less flexible nature, the waterfall model is not in practice anymore.
Transition to Agile
Agile Software Development Life Cycle (SDLC) is a modern approach to software development that emphasizes flexibility,
collaboration, and continuous improvement. It's an iterative process that breaks down the SDLC into smaller cycles, called
sprints or iterations, to deliver value incrementally.
Real
Optimal
Value
Delivery
faster feedback
Agile
Initial
Vision
Waterfall
Real-Time Scenario: Agile Limitations and the Need for DevOps
Scenario: A software company uses Agile to develop a new app. Teams work in sprints, adapt to changes, and prioritize
customer feedback.
Typical Software Release Process
Initial Launch
Improvements
Version 1 (1.0.0):
Replaced Framework: Initial major release.
Version 2 (1.1.0):
New Feature: Minor update adding functionality.
Version 3 (1.1.1):
Bugfix: Patch update fixing issues.
Version 4 (1.1.2):
Additional Bugfix: Further improvements and fixes.
Limitations:
DevOps:
Focus: Extends Agile by adding Continuous Delivery (CD) and Deployment, emphasizing automation and collaboration between
development and operations.
CI/CD Role: Includes both CI and CD to automate testing, building, and deployment for reliable production releases.
Introduction to DevOps
Development
IT
Operations
Continuous integration, where the coding, building, integration, and
testing processes are carried out.
Includes Continuous delivery, which includes continuous integration but mainly
focuses on product delivery.
Continuous deployment, which aims at automating project
deliveries.
The core idea behind DevOps is to create a culture of shared responsibility, where both developers and operations staff
work together throughout the entire lifecycle of a project, from design and development to production support.
Limitations that DevOps going to solve
Result:
Stretching the release period for days,
weeks or even months
Conflict of interest
Resist the speed of release
Check its 100% safe
Result:
Slow down of release process
Choosing DevOps:
Increased Deployment Frequency: DevOps enables organizations to deploy software more frequently,
facilitating faster response to market changes and improving time-to-market for new features.
Reduced Deployment Failures and Rollbacks: By incorporating continuous testing and integration,
DevOps helps to reduce the number of deployment failures by identifying issues early in the development
process.
Faster Recovery Time: In case of a failure, the principles of DevOps (smaller, more frequent updates)
allow for quicker recovery times since it's generally easier to identify and fix problems in smaller change
sets.
Automation of Manual Processes: By automating repetitive tasks like testing, integration, and
deployment, teams can focus on more value-adding activities.
Core Components of DevOps
Automation:
Continuous Integration/Continuous Deployment (CI/CD) Pipeline
Continuous Integration
Continuous Delivery/Deployment (CD)
Continuous Integration/Continuous Deployment (CI/CD) Tools:
Automates the build, test, and deployment processes for faster releases.
Monitoring and Logging: Provides real-time insights into application performance and user behavior.
Monitoring and Logging:
Log Aggregation:
Collects logs from various sources in the IaaS environment. It's crucial for centralizing data to monitor, analyze, and secure
systems effectively.
Storage Systems:
Short Term Storage: Holds recent logs for quick access and analysis.
Long Term Storage: Archives older logs for compliance and historical analysis.
Query Interface:
A tool that allows users to query the log data stored in short-term storage to gather insights or troubleshoot issues.
Anomaly Detection:
Identifies unusual patterns or activities in log data that could
indicate security threats or operational issues. These anomalies
trigger alerts.
Alerting System:
Sends notifications or alerts when anomalies are detected. This
enables rapid response to potential issues.
Leveraging tools like Splunk for log aggregation and query
interfaces, DevSecOps can analyze data to improve security
measures continuously.
Core Components of DevOps
Continuous Testing:
Automated Testing: Ensures code quality and functionality with every change.
Evolution to DevSecOps
Scenario:
Background: A company using DevOps practices experiences frequent software releases with high efficiency.
Security is handled in a separate phase, often just before deployment.
Challenge: During a critical deployment, a security vulnerability is discovered late, requiring urgent patching.
This causes delays, impacts delivery schedules, and affects customer trust.
Issues Identified:
Security as a bolt-on: Addressed too late in the development cycle.
Lack of integration: Security teams work separately from Dev and Ops.
Increased risk exposure: Fast-paced releases overlook important security checks.
What is DevSecOps?
DevSecOps is the practice of integrating security testing at every stage of the software development process. It includes tools
and processes that encourage collaboration between developers, security specialists, and operation teams to build software that is
both efficient and secure.
What does DevSecOps stand for?
DevSecOps is an extension of the DevOps practice. Each term defines different roles and responsibilities of software teams when
they are building software applications.
Cultural Change: Teams must shift their mindset to prioritize security alongside
development and operations. This requires collaboration and new ways of working
together.
Benefits:
Faster Releases: Security integrated early allows for smooth and rapid deployments.