main devops
main devops
UNIT – 1
HISTORY :
Software Development Life Cycle (SDLC)
A software life cycle model (also termed process model) is a pictorial and diagrammatic
representation of the software life cycle. A life cycle model represents all the methods required
to make a software product transit through its life cycle stages. It also captures the structure in
which these methods are to be undertaken.
The senior members of the team perform it with inputs from all the stakeholders and domain
experts or SMEs in the industry.
Planning for the quality assurance requirements and identifications of the risks associated with
the projects is also done at this stage.
Business analyst and Project organizer set up a meeting with the client to gather all the data like
• what the customer wants to build,
• who will be the end user,
• what is the objective of the product.
Before creating a product, a core understanding or knowledge of the product is very necessary.
Stage5: Testing
After the code is generated, it is tested against the requirements to make sure that the products
are solving the needs addressed and gathered during the requirements stage.
During this stage, unit testing, integration testing, system testing, acceptance testing are done.
Stage6: Deployment
Once the software is certified, and no bugs or errors are stated, then it is deployed.
Then based on the assessment, the software may be released as it is or with suggested
enhancement in the object segment.
Stage7: Maintenance
Once when the client starts using the developed systems, then the real issues come up and
requirements to be solved from time to time.
This procedure where the care is taken for the developed product is known as maintenance.
Waterfall model
Winston Royce introduced the Waterfall Model in 1970.This model has five phases:
Requirements analysis and specification, design, implementation, and unit testing, integration
and system testing, and operation and maintenance. The steps always follow in this order and do
not overlap. The developer must complete every phase before the next phase begins.
This model is named "Waterfall Model", because its diagrammatic representation resembles a
cascade of waterfalls.
1. Requirements analysis and specification phase: The aim of this phase is to understand the
exact requirements of the customer and to document them properly. Both the customer and the
software developer work together so as to document all the functions, performance, and
interfacing requirement of the software. It describes the "what" of the system to be produced and
not "how."In this phase, a large document called Software Requirement Specification
(SRS) document is created which contained a detailed description of what the system will do in
the common language.
2. Design Phase: This phase aims to transform the requirements gathered in the SRS into a
suitable form which permits further coding in a programming language. It defines the overall
software architecture together with high level and detailed design. All this work is documented
as a Software Design Document (SDD).
3. Implementation and unit testing: During this phase, design is implemented. If the SDD is
complete, the implementation or coding phase proceeds smoothly, because all the information
needed by software developers is contained in the SDD.
During testing, the code is thoroughly examined and modified. Small modules are tested in
isolation initially. After that these modules are tested by writing some overhead code to check
the interaction between these modules and the flow of intermediate output.
4. Integration and System Testing: This phase is highly crucial as the quality of the end
product is determined by the effectiveness of the testing carried out. The better output will lead
to satisfied customers, lower maintenance costs, and accurate results. Unit testing determines the
efficiency of individual modules. However, in this phase, the modules are tested for their
interactions with each other and with the system
5. Operation and maintenance phase: Maintenance is the task performed by every user once
the software has been delivered to the customer, installed, and operational.
Advantages of Waterfall model
o This model is simple to implement also the number of resources that are required for it is
minimal.
o The requirements are simple and explicitly declared; they remain unchanged during the entire
project development.
o The start and end points for each phase is fixed, which makes it easy to cover progress.
o The release date for the complete product, as well as its final cost, can be determined before
development.
o It gives easy to control and clarity for the customer due to a strict reporting system.
The DevOps is the combination of two words, one is Development and other is Operations. It is
a culture to promote the development and operation process collectively.
DevOps tools such as Git, Ansible, Docker, Puppet, Jenkins, Chef, Nagios, and
Kubernetes.
What is DevOps?
Why DevOps?
Before going further, we need to understand why we need the DevOps over the other methods.
DevOps History
o In 2009, the first conference named DevOpsdays was held in Ghent Belgium. Belgian
consultant and Patrick Debois founded the conference.
o In 2012, the state of DevOps report was launched and conceived by Alanna Brown at
Puppet.
o In 2014, the annual State of DevOps report was published by Nicole Forsgren, Jez
Humble, Gene Kim, and others. They found DevOps adoption was accelerating in 2014
also.
o In 2015, Nicole Forsgren, Gene Kim, and Jez Humble founded DORA (DevOps
Research and Assignment).
o In 2017, Nicole Forsgren, Gene Kim, and Jez Humble published "Accelerate: Building
and Scaling High Performing Technology Organizations".
AGILE DEVELOPMENT:
Agile methodologies are iterative and incremental, which means it’s known for breaking a project
into smaller parts and adjusting to changing requirements.
1. They prioritize flexibility, collaboration, and customer satisfaction.
2. Major companies like Facebook, Google, and Amazon use Agile because of its
adaptability and customer-focused approach.
The average release cycle of software consists of 1 to 4 weeks. According to the Agile
software development phases, the developer team conducts an Agile workflow diagram.
From start to the final completion of software development, the Agile iteration workflow
consists of five steps-
1.PLANNING:
Approach to software development and planning is the Agile workflow's first step.
In the planning stage, the developer team imagined the whole project & made the sprint backlog,
calculated the average time of release product, & determined about the required agile
technologies.
2.Building
The building is the second step of a traditional Agile process model.
In the building or design process, the Agile development team creates input functions &
prepares the system for start testing.
3.Testing
Agile model in software development life cycle, this is the most vital step. In this step, the
whole system is tested before the final production approach.
The quality assurance team works to find bugs and analyze the user flow diagram to fix and
enhance the user acceptance of the application.
4.Delivery
The Agile delivery is the fourth step of the software development workflow.
After performing a series of testing, user training, enhancing system functionalities
developers team release the software.
5.Feedback
Review is the final step of the Agile development process.
Client & user feedback is taken in this step to see the outcomes & if the software works and
is functional or not.
All in all, this is the step of application retirement, either a continuous flow of review & up-
gradation of the software.
ADVANTAGES:
1. Customer satisfaction is rapid, continuous development and delivery of useful software.
2. Customer, Developer, and Product Owner interact regularly to emphasize rather than
processes and tools.
3. Product is developed fast and frequently delivered (weeks rather than months.)
4. A face-to-face conversation is the best form of communication.
5. It continuously gave attention to technical excellence and good design.
6. Daily and close cooperation between business people and developers.
7. Regular adaptation to changing circumstances.
8. Even late changes in requirements are welcomed
DISADVANTAGES OF AGILE:
1. It is not useful for small development projects.
2. There is a lack of intensity on necessary designing and documentation.
3. It requires an expert project member to take crucial decisions in the meeting.
4. Cost of Agile development methodology is slightly more as compared to other
development methodology.
5. The project can quickly go out off track if the project manager is not clear about
requirements and what outcome he/she wants.
SCRUM FRAMEWORK:
Scrum is an Agile framework used for managing and completing complex projects, typically in
software development but also applicable to other fields.
It’s designed to help teams work together more effectively and deliver value incrementally.
Scrum promotes a collaborative, flexible approach to project management, encouraging teams to
deliver high-quality results while continuously improving their processes.
Core Components:
Scrum team: A typical team has between five and nine people, but projects can easily scale into
the hundreds, or just be one-or two-person teams. Everyone on the project works together to
complete the set of work they have collectively committed to complete within a sprint.
Teams develop a deep form of camaraderie and a feeling that “we’re all in this together.”
USER STORIES:
EPIC:
BURNDOWNCHART:
STORY POINT:
1. Roles:
- Product Owner : Represents the stakeholders and is responsible for maximizing the value of
the product. They manage the Product Backlog, ensuring it is prioritized and clear.
- Scrum Master: Acts as a facilitator and coach for the Scrum Team. They help remove
impediments, ensure that Scrum practices are followed, and support the team in improving their
processes.
- Development Team: A cross-functional group responsible for delivering potentially shippable
product increments. They are self-organizing and work collaboratively to meet their goals.
2. Artifacts:
- Product backlog: The product backlog is a prioritized features list containing every desired
feature or change to the product. Note: The term “backlog” can get confusing because it’s used
for two different things. To clarify, the product backlog is a list of desired features for the
product.
-The sprint backlog is a list of tasks to be completed in a sprint.
3. Events:
- Sprint: A time-boxed period, usually lasting 2-4 weeks, during which the Scrum Team works
to create a usable product increment. Sprints are of consistent length throughout the project.
-Sprint Planning:
At the start of each sprint, a sprint planning meeting is held, during which the product owner
presents the top items on the product backlog to the team.
The team selects the work they can complete during the coming sprint.
That work is then moved from the product backlog to a sprint backlog, which is the list of tasks
needed to complete the product backlog items the team has committed to complete in the sprint.
- Daily Scrum: Each day during the sprint, a brief meeting called the daily scrum is conducted.
This meeting helps set the context for each day’s work and helps the team stay on track. All team
members are required to attend the daily scrum.
- Sprint review meeting: At the end of each sprint, the team demonstrates the completed
functionality at a sprint review meeting, during which, the team shows what they accomplished
during the sprint.
Sprint retrospective: Also at the end of each sprint, the team conducts a sprint retrospective,
which is a meeting during which the team reflects on how well their process is working for them
and what changes they may wish to make for it to work even better.
Key Principles
- Transparency: All aspects of the process must be visible to those responsible for the outcome.
This includes the Product Backlog, Sprint Backlog, and progress toward goals.
- Inspection: Regularly review artifacts and progress to identify any deviations from the plan
and make adjustments as needed.
-Adaptation: Make adjustments to processes and practices based on feedback and inspections to
improve efficiency and effectiveness.
This is the cycle followed by a Scrum team in a product development project. The three roles
mentioned above - the Product Owner, the Scrum Team, and the ScrumMaster together play a
major role in exercising this framework.
ADVANTAGES OF SCRUM :
• Scrum can help teams complete project deliverables quickly and efficiently.
• Scrum ensures effective use of time and money.
• Large projects are divided into easily manageable sprints.
• Works well for fast-moving development projects.
• The team gets clear visibility through scrum meetings.
• Scrum, being agile, adopts feedback from customers and stakeholders.
• Short sprints enable changes based on feedback a lot more easily.
• The individual effort of each team member is visible during daily scrum meetings.
DISADVACTAGES OF SCRUM :
Scrum often leads to scope creep, due to the lack of a definite end-date.
The chances of project failure are high if individuals aren't very committed or
cooperative.
Adopting the Scrum framework in large teams is challenging.
The framework can be successful only with experienced team members.
Daily meetings sometimes frustrate team members.
If any team member leaves in the middle of a project, it can have a huge negative impact
on the project.
Quality is hard to implement until the team goes through an aggressive testing process.
KANBAN: