Devops Unit-1 Notes (SM)
Devops Unit-1 Notes (SM)
Part A:
https://www.geeksforgeeks.org/software-development-life-cycle-sdlc/
The Software Development Life Cycle (SDLC) is a structured and systematic process
that defines the steps involved in developing software applications, ensuring the
delivery of high-quality products that meet or exceed customer expectations. It acts as
a roadmap for software teams, guiding them through the creation, deployment, and
maintenance of software solutions. The stages of SDLC typically include:
Requirement Analysis: Gathering and understanding the specific needs and objectives of the
end-users or stakeholders. This phase involves detailed discussions and documentation to
capture functional and non-functional requirements.
Design: Planning the architecture, components, and technical specifications of the software.
This step includes creating system models, wireframes, and prototypes.
Implementation/Development: Writing the code to create the software. Developers follow
coding standards and practices to ensure the product aligns with the design and
requirements.
Testing: Verifying the functionality, performance, and reliability of the software. This phase
involves unit testing, integration testing, system testing, and acceptance testing.
Deployment: Releasing the software into the production environment, making it available to
users. This includes configuring the environment and ensuring compatibility.
Maintenance: Providing ongoing support, updates, and fixes to address issues, enhance
features, and ensure the software remains relevant and operational over time.
Sequential Phases: The model progresses through stages such as requirement gathering,
design, implementation, testing, deployment, and maintenance in a predefined order.
Fixed Scope: All requirements are defined and locked at the start of the project, leaving little
room for changes later.
Limited Flexibility: Each phase has specific deliverables and review processes, and there is no
overlap or iteration between phases, making it less adaptable to evolving requirements.
Use Cases: Suitable for projects with clearly defined and stable requirements, such as
government or military applications.
4) Why DevOps?
DevOps bridges the gap between development and operations teams, addressing
challenges such as slow deployment cycles, siloed workflows, and inconsistent
environments. It fosters a culture of collaboration and leverages automation to
streamline software delivery. Key benefits include:
Speed: Accelerated release cycles enable businesses to respond quickly to market demands.
Efficiency: Automation of repetitive tasks reduces manual errors and increases productivity.
Reliability: Continuous monitoring and feedback loops enhance system stability and user
satisfaction.
Scalability: DevOps practices support scaling infrastructure and applications efficiently.
5) What is DevOps?
DevOps is a cultural and technical practice that integrates development (Dev) and
operations (Ops) teams to improve collaboration, automate workflows, and optimize
the delivery pipeline. It emphasizes a shared responsibility for the entire application
lifecycle, from planning to production. Core principles include:
6) What is ITIL?
Version Control: Storing and managing code changes in repositories like Git.
Automation: Using tools to eliminate manual steps and reduce errors.
Collaboration: Enabling teams to work simultaneously on different aspects of the software.
Continuous Testing is the process of executing automated tests at every stage of the
software development lifecycle. It helps ensure that the software meets quality
standards and remains stable. Benefits include:
Early Issue Detection: Bugs and vulnerabilities are identified as soon as they are introduced.
Improved Quality: Testing throughout the lifecycle ensures consistent standards.
Faster Feedback: Rapid testing results accelerate the development process.
Automated Pipelines: Code passes through rigorous testing and validation stages.
Faster Releases: Reducing manual steps in the deployment process enables quicker delivery.
High Confidence: Ensures that every release is stable, reliable, and ready for production.
Continuous Deployment is an advanced practice where every code change that passes
automated testing is deployed directly to production without manual intervention.
This ensures:
Rapid Updates: New features and fixes are delivered to users almost immediately.
Full Automation: The entire deployment process is hands-free.
Consistency: Eliminates human errors and ensures uniformity across environments.
Visual Boards: Represent tasks, their statuses, and their progress visually.
Pull System: Tasks are pulled into the process only when capacity is available, preventing
overburdening.
Continuous Improvement: Teams analyze their workflows and identify bottlenecks to
improve efficiency.
Part B:
Agile and DevOps are both methodologies aimed at improving software development
and delivery, but they have distinct focuses and approaches:
Focus:
o
o
o
o
Scope:
o
o
Collaboration:
o
o
o
Automation:
o
o
Flexibility:
o
o
Waterfall: Rigid, with predefined stages that must be completed
sequentially.
Delivery:
o
o
Testing:
o
o
Customer Involvement:
o
o
Waterfall: Customer involvement is limited to the initial requirements
gathering and final delivery stages.
Documentation:
o
o
The DevOps process flow consists of multiple stages that ensure continuous
integration, delivery, and deployment. These stages include:
1.
2.
3.
Develop: Developers write code and use version control systems like Git to
manage changes. Peer reviews and collaboration are encouraged.
4.
5.
Build: The code is compiled and packaged into deployable artifacts using
tools like Jenkins, Maven, or Gradle.
6.
7.
Test: Automated testing is conducted to identify and resolve issues. This
includes unit, integration, and regression testing using tools like Selenium or
JUnit.
8.
9.
10.
11.
12.
13.
14.
15.
16.
How it works:
1.
2.
3.
Build and Package: The code is compiled and packaged into deployable
units.
6.
7.
8.
9.
10.
Continuous Delivery ensures that software can be released quickly, reliably, and with
minimal manual intervention.