Practical 3
Practical 3
Practical 3
Stages
SDLC Phases:
Given below are the various phases
● Requirement gathering and analysis
● Design
● Implementation or coding
● Testing
● Deployment
● Maintenance
Business analyst and Project Manager set up a meeting with the customer
to gather all the information like what the customer wants to build, who will be the
end-user, what is the purpose of the product. Before building a product a core
understanding or knowledge of the product is very important. For
Example, A customer wants to have an application which involves money transactions.
In this case, the requirement has to be clear like what kind of transactions will be done,
how it will be done, in which currency it will be done, etc.
Once the requirement gathering is done, an analysis is done to check the feasibility of
the development of a product. In case of any ambiguity, a call is set up for further
discussion.
2) Design
In this phase, the requirement gathered in the SRS document is used as an input and
software architecture that is used for implementing system development is derived.
3) Implementation or Coding
Implementation/Coding starts once the developer gets the Design document. The
Software design is translated into source code. All the components of the software are
implemented in this phase.
4)Testing
Testing starts once the coding is complete and the modules are released for testing. In
this phase, the developed software is tested thoroughly and any defects found are
assigned to developers to get them fixed.
5)Deployment
Once the product is tested, it is deployed in the production environment or first UAT
(User Acceptance testing) is done depending on the customer expectation.
6)Maintenance
After the deployment of a product on the production environment, maintenance of the
product i.e. if any issue comes up and needs to be fixed or any enhancement is to be
done is taken care by the developers.
Why DevOps?
Before we know what DevOps is, it is very important to know how DevOps came into
existence. Before DevOps, we had the waterfall model and the agile model for
software development.
Waterfall Model
The waterfall model can be defined as a sequential process in the development of a
system or software that follows a top-down approach. This model was a
straightforward and linear model. The waterfall model had various phases such as
Requirement Definition, Software Design, Implementation, Testing, Deployment, and
Maintenance.
This model was only suitable for projects which had stable requirements. By
stable, I mean that requirements will not change with the time. But in today’s world,
this is a very unlikely thing because requirements keep on changing from time to time.
These were a few drawbacks of the waterfall model
AGILE Methodology
What is DevOps?
The term DevOps is a combination of two words namely Development and
Operations. DevOps is a practice that allows a single team to manage the entire
application development life cycle, that is, development, testing, deployment, and
operations.The aim of DevOps is to shorten the system’s development life cycle while
delivering features, fixes, and updates frequently in close alignment with business
objectives.
Continuous Development
This is the phase that involves ‘planning‘ and ‘coding‘ of the software. The vision of the
project is decided during the planning phase and the developers begin developing the
code for the application. There are no DevOps tools that are required for planning, but
there are a number of tools for maintaining the code.
Continuous Testing
This is the stage where the developed software is continuously tested for bugs. For
Continuous testing, automation testing tools like Selenium, TestNG, JUnit, etc are
used. These tools allow QAs to test multiple code bases thoroughly in parallel to
ensure that there are no flaws in the functionality.
Continuous Integration
This stage is the heart of the entire DevOps life cycle. It is a software
development practice in which the developers are required to commit changes to
the source code more frequently. This may be on a daily or a weekly basis. Every
commit is then built and this allows early detection of problems if they are present.
Building code not only involves compilation but it also includes code review, unit
testing, integration testing, and packaging.
The code supporting new functionality is continuously integrated with the
existing code. Since there is continuous development of software, the updated
code needs to be integrated continuously as well as smoothly with the systems to
reflect changes to the end-users.
Continuous Deployment
This is the stage where the code is deployed to the production servers. It is also
important to ensure that the code is correctly deployed on all the
servers.Configuration Management is the act of establishing and maintaining
consistency in an application’s functional requirements and performance. Let me
put this in simpler words, it is the act of releasing deployments to servers,
scheduling updates on all servers and most importantly keeping the
configurations consistent across all the servers.Since the new code is deployed on
a continuous basis, configuration management tools play an important role in
executing tasks quickly and frequently.
Continuous Monitoring
This is a very crucial stage of the DevOps life cycle where you continuously
monitor the performance of your application. Here vital information about the use
of the software is recorded. This information is processed to recognize the proper
functionality of the application. The system errors such as low memory, server not
reachable, etc are resolved in this phase.
These DevOps stages are carried out on loop continuously till you
achieve the desired product quality. Therefore almost all of the major IT
companies have shifted to DevOps for building their products.
CONCLUSION: