Set Devops
Set Devops
o Agile mainly deals with the development side, emphasizing collaboration, iterative
development, and responding to changes quickly.
o DevOps bridges the gap between development and operations, ensuring that
software developed in Agile cycles is deployed, monitored, and maintained
efficiently.
o DevOps ensures that the developed software is continuously integrated, tested, and
deployed with minimal errors and downtime.
Agile focuses on developing the software iteratively, while DevOps focuses on delivering that
software to production quickly and reliably. DevOps complements Agile by automating and
streamlining the post-development stages, ensuring continuous and faster releases.
2(b) Evaluate how ITIL supports service delivery in a DevOps environment
ITIL (Information Technology Infrastructure Library) is a best-practice framework for IT Service
Management (ITSM) that ensures IT services meet business needs. In a DevOps environment, ITIL
supports service delivery by providing structured processes for planning, deploying, and improving
services.
1. Service Strategy – Aligns IT services with business goals, helping DevOps focus on valuable
releases.
2. Service Design – Ensures services are reliable, secure, and scalable for CI/CD.
3. Service Transition – Handles automated releases and changes, reducing deployment risks.
4. Service Operation – Monitors services and resolves incidents quickly to maintain uptime.
• Faster Incident Resolution: ITIL’s incident and problem management processes support
DevOps in handling production issues quickly.
ITIL supports DevOps by providing a structured framework for service delivery and management,
ensuring that rapid deployments remain stable, reliable, and business-focused. ITIL and DevOps
together enable organizations to deliver high-quality IT services faster while continuously
improving performance.
1. State-Based Migration
• Defines the desired final state of the database and generates scripts to align the current
schema with it.
• Pros: Full snapshot of schema, easy onboarding, good for stable databases.
• Cons: Slower, requires manual review to avoid data loss, less suited for frequent changes.
• Use in CD: Effective for environments with infrequent schema changes where automation
and versioning are needed.
2. Change-Based Migration
• Applies a series of incremental migration scripts from the current state to the new state.
• Pros: Fast, supports frequent iterative updates, easier rollback, ideal for CI/CD.
• Cons: Requires an unbroken migration chain, conflict resolution is harder, sensitive to out-of-
band changes.
• Use in CD: Preferred in agile pipelines for continuous, safe, and automated database
evolution.
Evaluation in CD Pipelines
• Change-Based is highly suitable for frequent releases and iterative changes, aligning well
with DevOps and Continuous Delivery.
• Combining both techniques ensures safe, versioned, and automated migrations while
reducing deployment risks.
1. Plan – Understand business needs, gather feedback, and create a plan aligned with project
goals.
2. Code – Developers write and manage the source code using tools like Git, ensuring clean and
secure code.
3. Build – Code is compiled and integrated using CI tools like Jenkins, preparing it for testing.
4. Test – Automated testing (e.g., JUnit, Selenium) verifies functionality, performance, and
security.
5. Release – After successful testing, the software is packaged and prepared for production
deployment.
6. Deploy – Infrastructure is automatically provisioned (using IaC tools like Terraform), and
code is deployed in an automated, repeatable way.
7. Operate – The application runs in production, managed with configuration tools like Chef for
smooth operation.
8. Monitor – Performance, errors, and user behavior are continuously tracked using monitoring
tools to quickly detect and resolve issues.
The DevOps lifecycle ensures continuous planning, development, testing, deployment, and
monitoring, creating a feedback-driven loop that improves software quality and accelerates delivery.
o Continuous testing identifies defects as soon as code changes are made, preventing
major failures in later stages.
o Automated testing using tools like Jenkins saves time and effort compared to manual
testing.
o Provides immediate insights about code issues, enabling teams to fix and integrate
changes quickly.
Continuous Testing is essential in DevOps as it ensures faster delivery, higher software quality, early
defect detection, and reliable production deployments, making it a cornerstone of continuous
integration and delivery pipelines.
Maintenance Becomes harder as the app grows Easier due to modular structure
Team Large teams work on same codebase, Small teams work independently on
Management causing conflicts services
1. Collaboration
o Changes are tracked so team members can view and review updates easily.
2. Traceability
o Merging ensures that independent work integrates smoothly into the main
codebase.
o Source code control integrates with Continuous Integration and Delivery pipelines.
Source code control is essential in DevOps for team collaboration, version tracking, automated
delivery, and safer code management, making it a backbone of modern software development
workflows.
6(b) Compare Centralized and Distributed SCM Systems with Examples
In DevOps, Source Code Management (SCM) systems are used to track, manage, and collaborate on
code. SCM can be Centralized or Distributed, and both have different structures and workflows.
Repository Single central repository for the whole Each developer has a local repository
Structure project + central
Changes are visible to others Commit affects only the local repo;
Commit Visibility
immediately after commit must push to share
Workflow for
Commit → Update Commit → Push → Pull → Update
Sharing
Single Point of Yes, if the central server fails, no No, every user has a complete copy of
Failure collaboration is possible the repo
Slower for remote teams due to central Faster local operations due to local
Performance
dependency repositories
In Continuous Delivery, the product passes through a pipeline consisting of automated build, testing,
and integration phases. A manual approval step (manual gate) can be used before production release
when required.
o Ensures new features and bug fixes are delivered to users faster.
2. Improved Productivity
o Continuous testing and automated pipelines reduce the risk of human errors.
o Reduces manual effort, enabling teams to deliver consistent and stable releases.
1. Lack of duplication and singularity of purpose of the individual components render the
overall system easier to maintain.
3. The strategies required to ensure that each component only concerns itself with a single set
of cohesive responsibilities often result in natural extensibility points.
4. The decoupling which results from requiring components to focus on a single purpose leads
to components which are more easily reused in other systems, or different contexts within
the same system.
5. The increase in maintainability and extensibility can have a major impact on the
marketability and adoption rate of the system.
2. Monitoring and logging: Monitoring systems, applications, and infrastructure in real time and
collecting logs can help detect and diagnose issues quickly, reducing downtime.
3. Disaster recovery: Having a well-designed disaster recovery plan and regularly testing it can help
ensure that systems can quickly recover from disruptions.
4. Continuous testing: Continuously testing systems and applications can help identify and fix issues
before they become critical.
5. High availability: Designing systems for high availability helps to ensure that systems remain up
and running even in the event of failures or disruptions.
By focusing on these components, DevOps teams can create a resilient and adaptive DevOps system
that is able to deliver high-quality applications and services, even in the face of failures and
disruptions.
Roles in DevOps
1. Development Team
2. Operations Team
3. DevOps Team
o Tracks and manages changes in the codebase using tools like Git, Subversion, or
Mercurial.
o Benefits:
• Code Migration
In summary, DevOps roles ensure smooth collaboration between teams, while code management
provides version control, collaboration, and automation to deliver software quickly and reliably.
The project goals, scope, and requirements are analyzed. Inputs are gathered from stakeholders,
business analysts, and domain experts. Output: Feasibility analysis and clear project requirements.
2. Defining Requirements
Requirements are translated into system architecture and design, including High-Level Design (HLD)
and Low-Level Design (LLD) for modules and data flow.
4. Development (Implementation)
The actual coding of the software is done following coding standards using tools like compilers,
interpreters, and debuggers.
5. Testing
The developed software is tested to ensure it meets requirements. Methods include unit testing,
integration testing, system testing, and acceptance testing.
6. Deployment
After testing, the software is deployed to the production environment. Deployment can be full or
phased based on client needs.
7. Maintenance
After release, real-world issues or enhancements are addressed. Continuous maintenance keeps the
software functional, secure, and updated.
2(b) Explain how a Delivery Pipeline Functions in the Software Development
Process
A delivery pipeline in DevOps is a series of automated steps that move software from code
development to production, ensuring faster, reliable, and continuous releases. It reduces manual
effort and improves collaboration between development and operations teams.
o The pipeline automatically triggers builds and initial tests to ensure the new code
works with existing code.
2. Build Automation
o The application is compiled, and deployable artifacts like binaries or Docker images
are generated.
o Tools like Jenkins, GitLab CI, or Azure DevOps handle automated builds.
o Runs unit, integration, and functional tests using tools like JUnit, TestNG, and
Selenium.
o Feedback helps teams quickly fix issues and improve the next release.
A delivery pipeline automates integration, build, test, deploy, and monitor stages, enabling faster
releases, higher quality, and continuous improvement in software development.
3(a) Distinguish between DevOps and ITIL
DevOps ITIL
Prioritizes speed, agility, and continuous Prioritizes stability, efficiency, and service
improvement in software development. reliability in IT operations.
Mainly applied in software development and Mainly applied in IT operations and service
deployment pipelines. lifecycle management.
1. Code Creation and Maintenance: Write, review, and maintain application code.
2. Continuous Integration (CI): Regularly integrate code into shared repositories using tools like
Git and Jenkins.
3. Automated Testing: Implement unit and integration tests to ensure the code works before
deployment.
4. Collaboration with Operations: Share feedback and design applications that are easier to
deploy and maintain.
5. Quick Bug Fixes and Updates: Rapidly resolve issues during testing or in production.
3. Monitoring and Logging: Continuously monitor applications using tools like Nagios or
Prometheus to ensure stability.
5. Security and Compliance: Implement necessary security measures and ensure compliance
with standards.
In summary, Development focuses on building and testing high-quality code, while Operations
ensures deployment, monitoring, and stability, working together for faster and reliable software
delivery.
4(a) Explain a key difference between Scrum and Kanban (7 Points)
Scrum Kanban
Changes are not allowed during an active sprint. Changes can be introduced anytime.
Requires defined roles: Product Owner, Scrum No mandatory roles, team manages work
Master, Team. collaboratively.
Delivery is incremental at the end of each sprint. Delivery is continuous as tasks are completed.
SCRUM
KANBAN
4(b) Analyze how Scrum Principles Differ from Traditional Project
Management
Scrum Principles Traditional Project Management Principles
2. Flexible to Changes: Can easily adapt to Rigid Planning: Difficult to implement changes
changing requirements during the project. once the plan is finalized.
4. Self-Organizing Teams: Teams are cross- Hierarchical Teams: Project manager controls
functional, sharing responsibility for outcomes. task assignments and decision-making.
7. Continuous Risk Management: Risks are Late Risk Handling: Risks are often discovered
identified and handled in every sprint. late in the project lifecycle.
(Set – 1 : 4(b))
5(b) What is the DevOps lifecycle, and how does it contribute to business
agility?
DevOps Lifecycle and Its Contribution to Business Agility
DevOps Lifecycle:
The DevOps lifecycle is a continuous process that integrates development (Dev) and operations
(Ops) teams to deliver software efficiently, reliably, and quickly. It consists of the following phases
executed in a continuous loop:
1. Plan – Gather requirements and align development with business goals.
2. Code – Develop and manage source code efficiently using version control tools like Git.
3. Build – Compile code and integrate components using CI tools like Jenkins.
4. Test – Continuously test the application for bugs using automated tools like Selenium or
JUnit.
6. Deploy – Automatically deploy applications to servers using tools like Docker or Kubernetes.
8. Monitor – Track application performance and collect feedback for continuous improvement.
• Faster Time-to-Market: Continuous integration and delivery allow rapid release cycles.
• Quick Adaptation to Changes: Frequent updates help businesses respond quickly to market
and customer needs.
o Each sprint produces a workable product that can be tested and reviewed.
2. Continuous Feedback
o After every iteration, stakeholders review the product and provide feedback to the
team.
3. Adaptive Planning
o Instead of a single release after 6–18 months, Agile delivers usable features every few
weeks.
o Developers, testers, and business users work closely, ensuring everyone is aligned
with project goals.
Result:
Agile ensures faster, flexible, and customer-focused software delivery, allowing continuous
improvement throughout the project lifecycle.
2(b) Analyze the relationship between Continuous Delivery and other DevOps
practices like Continuous Integration and Continuous Deployment
Continuous Delivery (CD) is a DevOps practice that ensures software is always in a deployable state,
enabling frequent and reliable releases. It is closely related to Continuous Integration (CI) and
Continuous Deployment, forming a seamless software delivery pipeline:
o Relationship: CI feeds into CD by ensuring stable, tested builds are always ready for
deployment.
o Role: CD bridges the gap between development and operations for reliable releases.
3. Continuous Deployment
Together, these practices reduce errors, accelerate delivery, and increase business agility.
3(a) Design an optimized delivery pipeline that minimizes bottlenecks and
ensures continuous flow
An optimized DevOps delivery pipeline ensures smooth movement of code from development to
production.
2. Continuous Integration (CI) – Automated builds and unit tests on each commit.
6. Monitoring & Feedback – Real-time monitoring to detect and resolve issues quickly.
Optimization Tips:
3(b) Analyze the challenges that arise from database migrations in continuous
delivery pipelines
Database migrations are critical in continuous delivery but introduce challenges like:
1. Schema Changes – Updating tables, columns, or constraints can break existing functionality.
2. Data Loss Risk – Improper migrations may delete or corrupt production data.
3. Synchronization Issues – Application and database must stay in sync during deployment.
4. Rollback Complexity – Reverting database changes is harder than reverting code changes.
5. Downtime Risk – Large migrations can cause delays if not handled with zero-downtime
strategies.
6. Testing Difficulty – Production-like test environments are needed to detect migration issues.
Solutions:
o All schema changes, scripts, and stored procedures are maintained in source control
similar to application code.
4. Backward Compatibility
o In case of failures, rollback scripts or database snapshots are used to restore previous
states.
Properly managing migrations ensures smooth deployments, minimal downtime, and consistent
database structure across environments.
4(b) Analyze the challenges that arise from database migrations in Continuous
Delivery pipelines
Database migrations in CD introduce several challenges because databases are stateful and changes
are harder to reverse than code deployments.
Key Challenges:
o Unlike code, databases store persistent data that must be protected during migrations.
2. Downtime Risks
o Schema changes on large datasets can lock tables and lead to downtime.
3. Complex Rollbacks
o Reverting a failed migration is often difficult, especially if data was altered or deleted.
o Ensuring that no data is lost or corrupted during schema changes is a major challenge.
5. Environment Synchronization
6. Performance Issues
Handling database migrations in Continuous Delivery requires careful planning, automation, and
testing to ensure zero downtime, data safety, and smooth deployments.
7(a) Discuss the role of source code management (SCM) systems in DevOps
project management
Source Code Management (SCM) systems are crucial in DevOps project management as they provide
version control, collaboration, and automation for managing code efficiently.
1. Version Control
o Developers can work on separate branches for new features or bug fixes.
o Branches are merged into the main code after validation, reducing conflicts.
3. Collaboration
o Provides history and audit trails to recover previous stable versions in case of failures.
o SCM systems integrate with pipelines to trigger build, test, and deployment processes
automatically.
Importance:
o Maintains a record of all database schema changes, including who, when, and why
they were made.
o Ensures that migrations are applied uniformly across development, staging, and
production.
3. Rollback Capability
4. Automation in CI/CD
6. Disaster Recovery
o Provides a clear path to restore or rebuild the database in case of unexpected failures.
Version-controlling migration scripts enhances reliability, traceability, and agility in DevOps pipelines,
reducing risks during continuous delivery.