DevOps 16 Pages
DevOps 16 Pages
BASICS OF DEVOPS 1
The Software Development Life Cycle (SDLC) is a systematic process for planning,
creating, testing, deploying, and maintaining software applications or systems. It
provides a structured framework to guide the development process from the initial
concept to the final product. The SDLC encompasses various phases, each with its own
set of activities, goals, and deliverables.
Here are the typical phases of the SDLC:
BASICS OF DEVOPS 2
requirements, both functional and non-functional.Identify constraints, risks, and potential
challenges.
Planning:
Define project scope, objectives, and deliverables.Create a detailed project plan with
timelines, tasks, and resources.Allocate budgets, human resources, and technology
resources.
Design:
Design the software architecture, including system components and their
interactions.Create detailed technical specifications for various components.Design the
user interface (UI) and user experience (UX) elements.
Implementation (Coding):
Write code according to the design specifications.Follow coding standards and best
practices.Conduct peer code reviews for quality assurance.
Testing:
Develop and execute test cases to validate the functionality of the software.Perform unit
testing, integration testing, system testing, and user acceptance testing.Identify and fix
bugs, issues, and defects.
Deployment:
Prepare the software for production release.Configure servers, databases, and other
necessary resources.Deploy the software to the target environment.
BASICS OF DEVOPS 3
For example:
Waterfall: Emphasizes a sequential approach with distinct phases, where each phase is
completed before moving to the next.
Scrum: A specific Agile framework that involves time-boxed iterations (sprints) and a
structured set of roles and ceremonies.
Kanban: Visualizes the workflow and emphasizes continuous delivery and incremental
improvements.
Each methodology has its strengths and weaknesses, and the choice depends on
factors like project complexity, team dynamics, customer requirements, and
organizational culture. Regardless of the methodology, the SDLC provides a structured
approach to manage software development projects and deliver high-quality software
products.
Rigidity and Lack of Flexibility: Waterfall follows a strict sequential process, where each
phase must be completed before the next one starts. This can make it difficult to
BASICS OF DEVOPS 4
accommodate changes or new requirements that emerge during the project. Changes
often require revisiting earlier phases, causing delays and additional costs.
Late Discoveries of Issues: Testing and quality assurance are often conducted in the
later stages of Waterfall projects. This means that issues, defects, or misunderstandings
might only be identified after a substantial amount of development work has been
completed, leading to costly rework.
Long Time to Deliver Value: Since the final product is typically delivered at the end of
the project, it can take a long time before customers start seeing any value. This may
not align well with today's fast-paced business environments.
Risk Management Challenges: Risk assessment and management are often delayed
until later phases in Waterfall projects. This can lead to issues being discovered late in
the project, when addressing them might be more difficult and costly.
BASICS OF DEVOPS 5
within the different phases. This can hinder collaboration and cross-functional
teamwork.
Delayed Feedback Loops: Due to the linear nature of Waterfall, feedback loops from
testing, users, or stakeholders can be delayed until later in the process, making it harder
to make course corrections.
BASICS OF DEVOPS 6
Lack of Predictability: Agile projects often have variable schedules and evolving scope,
making it challenging to predict when specific features will be completed. This can be
problematic for projects with strict deadlines or fixed timelines.
Scope Creep: The flexibility of Agile can lead to scope creep, where new requirements
are continuously added during the development process, potentially affecting project
timelines and budgets.
Complexity for Large Projects: Agile works well for small to medium-sized projects, but
its flexibility and focus on small increments can lead to complexities in managing large,
complex projects.
Incompatible with Fixed-Price Contracts: Agile's iterative nature and evolving scope can
BASICS OF DEVOPS 7
make it challenging to work within fixed-price contracts, which often require predefined
scope and costs.
Testing and Quality Challenges: Frequent changes and iterations can lead to challenges
in maintaining consistent testing and quality assurance practices, resulting in potential
defects slipping through the cracks.
DevOps, short for Development and Operations, is a set of practices, principles, and
cultural philosophies that aim to bridge the gap between software development and IT
operations teams. The primary need for DevOps arises from the challenges and
inefficiencies that traditional development and operations approaches often face.
DevOps addresses these challenges by promoting collaboration, automation, and a
culture of continuous improvement.
Here are some key reasons why DevOps is needed:
BASICS OF DEVOPS 8
Agile Alignment: DevOps complements Agile development methodologies by enabling
the continuous delivery of small, incremental changes. This aligns with Agile's iterative
approach and ensures that software can be released more frequently and respond to
changing requirements more effectively.
Faster Problem Resolution: DevOps practices like monitoring, log analysis, and
automated testing make it easier to identify the root cause of issues. This speeds up
troubleshooting and resolution.
BASICS OF DEVOPS 9
and consistently. This customer-centric approach aligns with the modern demand for
faster feature releases and responsiveness to user feedback.
DevOps stages along with some commonly used tools for each stage:
What is DevOps?
BASICS OF DEVOPS 10
Source. DevOps Cycle
Stages of DevOps?
Continuous Development
ontinuous Integration
Continuous Testing
Continuous Deployment
Continuous Operations
1. Continuous Development
This stage involves planning and coding the product. Use tools, such as Git, SVN, CVS,
etc..
BASICS OF DEVOPS 11
Fig. Continuous Development
2. Continuous Integration
In the continuous integration stage, the source code in the central
repository(Github) is regularly updated by developers. Also in this
stage, The code compile, validate, code renew, unit testing and
integration testing performed by the developers.
In this DevOps process Jenkins, Bamboo, GitLab etc, tool are used.
3. Continuous Testing
BASICS OF DEVOPS 12
Fig. Continuous Testing
4. Continuous Deployment
5. Continuous Operations
BASICS OF DEVOPS 13
The continuous operations stage involves the reduction or elimination of
planned downtime like scheduled maintenance. The goal of this phase is
to increase the uptime or the time the users can use the application.
Companies use container management systems like Kubernetes or Swarm in
this phase.
BASICS OF DEVOPS 14
Fig. Continuous Monitoring & logging
7. Continuous Feedback
As digital technology continues to transform and the use of social
networks continues to grow, user feedback on specific applications is
crucial. Feedback today is almost immediate and can spread to multiple
people in seconds. And it can be furious and unforgiving.
On the other hand, good feedback can increase both mind share and market
share for your organization, directly impacting your corporate image.
With the advent of agile development, design thinking and DevOps, teams have
a clear approach to provide new application releases directly to lines
of business. Several times I have seen teams developing apps in an agile
way — integrating more, testing more, delivering and deploying more —
but in the end the user outcome and satisfaction was not optimal.
BASICS OF DEVOPS 15
Continuous feedback is essential to application release and deployment because it
evaluates the effect of each release on the user experience and then
reports that evaluation back to the DevOps team to improve future
releases.
BASICS OF DEVOPS 16