Dev Ops
Dev Ops
In simpler words — it’s about developers (Dev) and operations (Ops) working together
instead of in separate silos, so that building, testing, deploying, and maintaining software
becomes faster, smoother, and less error-prone.
2. Automation
Automating repetitive tasks like code building, testing, deployment, and
infrastructure setup.
o CI: Merging code changes frequently into a shared repository and running
automated tests.
Benefits
Skills Needed
Technical: Linux, networking, cloud platforms (AWS, Azure,
GCP), scripting (Bash, Python), containers (Docker, Kubernetes).
Soft Skills: Problem-solving, communication, collaboration.
💡 Analogy:
If software development is like manufacturing a car, the DevOps
Engineer is the production line manager — making sure every step is
automated, efficient, and high quality, so the car is delivered fast and
without defects.
Responsibilty of DevOps Engineer:-
1.Continuous Integration and Continuous Deployment (CI/CD)
Design, implement, and maintain CI/CD pipelines to automate software
builds, testing, and deployment.
Ensure that new code is integrated smoothly without breaking existing
functionality.
Automate repetitive tasks like deployment, testing, and monitoring.
2. Infrastructure Management
Manage cloud infrastructure (AWS, Azure, GCP) or on-premises servers.
Use Infrastructure as Code (IaC) tools like Terraform, Ansible, or
CloudFormation to provision and configure servers and services.
Optimize resource utilization and ensure high availability.
3. Monitoring and Logging
Set up monitoring tools (Prometheus, Grafana, ELK stack, Datadog) to
track application performance and infrastructure health.
Analyze logs to troubleshoot issues and improve system reliability.
Implement alerting mechanisms for critical failures or performance
degradation.
4. Collaboration and Communication
Work closely with development, QA, and operations teams to streamline
workflows.
Ensure smooth handoff between development and operations.
Promote a culture of shared responsibility for system reliability and
quality.
5. Automation and Scripting
Write scripts (Python, Bash, PowerShell) to automate repetitive
processes.
Reduce manual intervention in software deployment and system
maintenance.
6. Security and Compliance
Implement security best practices for applications and infrastructure.
Manage access control, secrets, and compliance standards.
Ensure systems are updated and patched regularly.
7. Performance Optimization
Identify bottlenecks in applications or infrastructure.
Optimize deployment pipelines, servers, and network configurations.
Ensure systems can scale efficiently to handle traffic.
8. Disaster Recovery and Backup
Plan and test backup and disaster recovery strategies.
Ensure minimal downtime in case of system failures or outages.
Continuous Integration:-
Continuous Integration (CI) in DevOps
Definition:
Continuous Integration is a software development practice where developers
frequently merge their code changes into a central repository. Each merge
triggers an automated build and testing process to detect errors early, ensure
code quality, and reduce integration issues.
Key Points:
Code is integrated multiple times a day.
Automated builds and tests catch bugs early in development.
Helps maintain a stable codebase for faster delivery.
Often paired with Continuous Deployment (CD) for full automation.
Continuous Integration Flow Diagram (Simple Version)
+------------------+
| Developer Code |
+--------+---------+
|
v
+------------------+
| Version Control |
| (Git, SVN, etc)|
+--------+---------+
|
v
+------------------+
| Automated Build |
| (Compile Code) |
+--------+---------+
|
v
+------------------+
| Automated Tests |
| (Unit/Integration)|
+--------+---------+
|
v
+------------------+
| Feedback Report |
| (Pass/Fail Status)|
+------------------+
|
v
+------------------+
| Deployment or |
| Merge to Main |
+------------------+
Flow Explanation:
1. Developer writes code locally.
2. Pushes changes to a version control system (like Git).
3. CI server (like Jenkins, GitLab CI, or Travis CI) automatically builds the
code.
4. Automated tests run to ensure no new bugs are introduced.
5. Developers get immediate feedback.
6. If everything passes, code is merged into the main branch or deployed
to a test environment.
Key Points of Continuous Integration (CI)
1. Frequent Code Integration
o Developers merge code changes into the main repository multiple
times a day.
o Reduces integration problems and conflicts.
2. Automated Builds
o Each code commit triggers an automatic build to compile the
code.
o Ensures the code is always in a runnable state.
3. Automated Testing
o Unit tests, integration tests, and sometimes functional tests run
automatically.
o Detects bugs early, improving software quality.
4. Immediate Feedback
o Developers get quick notifications if the build or tests fail.
o Helps fix errors before they accumulate.
5. Stable Codebase
o Frequent integration ensures that the main branch remains
stable.
o Reduces the risk of "integration hell" at the end of a project.
6. Supports Collaboration
o Teams can work concurrently without overwriting each other’s
code.
o Encourages a culture of shared responsibility for quality.
7. Foundation for Continuous Delivery/Deployment
o CI is the first step towards CD, enabling automated deployments.
8. Tools Commonly Used
o Jenkins, GitLab CI, Travis CI, CircleCI, Bamboo.
Key Points:
Builds on Continuous Integration.
Developer Code
(Staging/Pre-production)
Deployment to Production
Flow Explanation:
Key Points:-
DevOps culture is a way of working that combines development (Dev) and operations (Ops)
teams to improve collaboration, efficiency, and speed in software delivery. It focuses on
automation, communication, continuous improvement, and shared responsibility
throughout the software lifecycle.
b) Shared Responsibility
Everyone is responsible for the success of the software, not just development or
operations.
Example: If a feature causes a bug in production, both Dev and Ops work together to
fix it quickly.
c) Continuous Improvement
Teams adopt new tools and best practices to increase efficiency and quality.
d) Automation
Repetitive tasks like code builds, testing, deployments, and monitoring are
automated using CI/CD tools (Jenkins, GitLab CI, etc.).
Continuous feedback from automated tests, monitoring, and users helps identify
issues early.
Development Team: Writes new features like hotel search, booking, and payment.
Without DevOps:
Operations deploys it manually; if something breaks, developers and Ops blame each
other.
4. Both Dev and Ops monitor performance and fix issues together.
In DevOps, process automation means using tools and scripts to perform repetitive
software development and operations tasks automatically instead of doing them manually.
It is one of the core principles of DevOps because it improves speed, accuracy, and
reliability of software delivery.
Automation ensures tasks are done faster, in the same way every time.
2. Testing – Run automated unit, integration, and functional tests without manual
intervention.
5. Monitoring and Alerts – Automatically collect metrics and send alerts if performance
drops or errors occur.
Example
Without Automation: Someone manually builds the code, tests it, and deploys it —
which takes hours.
With Automation: A CI/CD pipeline (e.g., Jenkins) automatically builds, tests, and
deploys the code within minutes.
1) Automation Process
Example: CI/CD pipeline automatically building and deploying code after each
commit.
2) Centralizing Information
Function: Collects and stores logs, metrics, and system information in a single
accessible location.
Example: Using tools like ELK Stack or Grafana to centralize application and server
performance data.
Agile
What is Agile?
Agile is a way of developing software step-by-step instead of making the whole project at
once.
Work is divided into small parts (called sprints), and after each part is done, it is shown to
the customer for feedback.
This way, changes can be made quickly if needed, and the product improves continuously.
Work is done in small parts (iterations or sprints) instead of making the whole
project at once.
After each part, the product is shown to the customer for feedback.
Short meeting (10–15 minutes) held every day with the team.
Agile teams use special tools to plan, track, and manage work.
Tools help in task management, bug tracking, and communication.
Examples: Jira, Trello, Slack, GitHub.
4) Practicing Stand-Ups
Daily stand-up meetings are short 10–15 minute discussions where each team
member shares three things: what they did yesterday, what they will do today, and if
they are facing any issues. This keeps everyone updated, allows quick problem-
solving, and makes the team more accountable. Stand-ups also help maintain the
sprint’s pace and ensure that no one is stuck for long.
Reason for Adopting DevOps:-
1) Efficient Development and Deployment Planning
DevOps helps plan software development and deployment in a more organized way. By
using automation tools and collaboration, teams can decide what to build, when to release
it, and how to deliver it without confusion or delays.
A DevOps Engineer is the core member who connects development and operations. They
handle automation, CI/CD pipelines, monitoring, and infrastructure.
Example: If developers make a new feature, the DevOps engineer ensures it’s tested,
packaged, and deployed automatically without delays.
2) Release Manager
They coordinate between teams to ensure the release doesn’t break existing
systems.
Example: Before launching a new payment system in an app, the release manager
checks that all teams are ready and deployment will not affect users.
3) DevOps / CloudOps Architect (person who able to handle the all resources for cloud and
devOps).(planning of using and maintaining software.)(apply best practices to make sure
automation and CI/CD pipeline workflow)
This person designs the overall infrastructure for DevOps or cloud-based systems.
They decide how servers, storage, and networks should be set up.
They choose the right tools for automation, monitoring, and scalability.
Example: For an e-commerce website expecting huge sales traffic, the CloudOps
Architect designs a cloud system that can handle millions of users without crashing.
They check vulnerabilities, encrypt sensitive data, and follow compliance standards.
Example: For a banking app, they ensure customer data is encrypted and follows RBI
or GDPR regulations.
In DevOps, developers and testers work together more closely and even share some
responsibilities.
Example: A developer creates a chat feature, and the tester ensures it works on all
devices without crashing.
6) DevOps Evangelist
A DevOps Evangelist is like a promoter and motivator for DevOps practices within the
organization.
They spread awareness, encourage teams to adopt DevOps, and help remove
resistance to change.
They train people and show the benefits of automation, collaboration, and
continuous delivery.
Example: In a company still using slow manual deployment, the DevOps Evangelist
explains how DevOps can save time and reduce errors.
With DevOps, this coordination changes completely. Instead of working in isolation, all these
teams come together as one cross-functional team. They plan, build, test, and deploy
collaboratively from the start of the project until delivery. They share the same goals, use
common tools (like CI/CD pipelines, monitoring dashboards), and have real-time
communication through chat tools, daily stand-ups, and dashboards.
In short, DevOps changes coordination from a relay race (passing work from one team to
another) to a team huddle where everyone works together in sync.
This means writing and updating code in small, frequent changes instead of doing
everything at once.
Developers keep adding new features, fixing bugs, and improving the software
continuously.
Example: Instead of waiting 3 months to release a feature, you push small updates
every few days.
Every time a developer makes changes, the new code is automatically merged with
the main codebase.
Automated tools check if the new code works well with the existing code.
Example: GitHub Actions or Jenkins automatically build and test the code after each
commit.
3) Continuous Testing
Automated tests run on the code regularly, often immediately after integration.
4) Continuous Deployment
The process of automatically releasing tested code into the staging or production
environment.
There’s no long waiting time for manual approvals in fully automated setups.
5) Continuous Monitoring
After the software is live, its performance, uptime, and errors are tracked
continuously.
This ensures that if something breaks, the team gets alerts immediately.
Example: Prometheus or Grafana sends alerts if the server CPU usage is too high.
6) Continuous Feedback
Gathering regular feedback from users, testing teams, and monitoring tools.
Example: User surveys, error logs, and analytics reports are reviewed every week to
improve the app.
7) Continuous Operations
Example: Kubernetes automatically adds more servers during high traffic to keep the
site fast.
1. What is Orchestration?
It’s like a conductor of an orchestra who tells all the musicians when to play.
5. Example
6. Simple Diagram
+------------------+
| Orchestration |
| (Kubernetes) |
+------------------+
| | |
v v v
| | |
Load Balance
Summary:
task
Monitoring &
Automatic monitoring & error recovery Limited
Recovery