0% found this document useful (0 votes)
11 views6 pages

Understanding DevOps and SDLC

DevOps is a cultural and technical approach aimed at improving software delivery efficiency through automation, quality assurance, and continuous integration/delivery. It integrates various roles in the software development lifecycle (SDLC), allowing for faster application deployment while maintaining high standards. Tools like JIRA are used for project management, enabling tracking and collaboration among team members, while virtual machines enhance server efficiency by allowing multiple logical partitions on a single physical server.

Uploaded by

rogstarrocks
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views6 pages

Understanding DevOps and SDLC

DevOps is a cultural and technical approach aimed at improving software delivery efficiency through automation, quality assurance, and continuous integration/delivery. It integrates various roles in the software development lifecycle (SDLC), allowing for faster application deployment while maintaining high standards. Tools like JIRA are used for project management, enabling tracking and collaboration among team members, while virtual machines enhance server efficiency by allowing multiple logical partitions on a single physical server.

Uploaded by

rogstarrocks
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

➔ What Is Devops?

• There are so many defintions for different companies but In general, devops means
Culture that improves deliver.
• For example: If [Link] company is taking 10 days to deliver version 1 to version 2
then if we choose devops it will deliver with in hours or 1 to 2 days.
• Normally people sees devops as Continuous Integration (CI)/ Continous Delivery
(CD).
• Devops is not only about improving delivery it is also about automation, quality ,
monitoring , Testing.
• Devops – process of improving application delivery by ensuring
➢ Proper Automation
➢ good quality
➢ [Link] proper monitoring
➢ Continous Testing

→Why Devops?
Before 10 years
Developer
system administrator Tests the data for bugs

Central location Servers Testers

(where developers store takes code to servers

Code data)

Build and Release Engineer

(checks the application

and sends to pre production)

Pre production / Production

Customers

Before 10 years the process is manual it involves many people. To automate this process from
manual the devops are devoped.
→How to introduce yourself as a devops engineer?

Only if you are experienced----------I am Devops engineer from 4 to 5 years before I worked
as a System Administrator or Build Release engineer. And add some of roles and
responsibilities.
If you are Fresher-----Its not a problem no need adding experiencing.

What are your Day Day Activities being devops engineer?- not mentioned in video

Video-2:

Software Development Life Cycle (SDLC)


• It is a process used by the software industry whether it’s a process or whether it’s
a culture but it’s a set of standard that is followed in the software industry to
design, develop, test.
• The end goal of SDLC is to deliver high quality software.
• Eg : [Link] (E-commerce)– for every company mostly the same phases will
be there before delivering an application
Planning Defining Defining Designing Designing

Deploying Testing Building

Now we need to understand where develops include in this process and how devops
improve this process. As a devops engineer your main goal should be to improve company
efficieny by selecting which tool is suitable.

Planning – Gather the Requirements (from the customers)


Defining- You clearly define the requirements interms of documents(Software Requirement
Specification Document).
Desigining- There are two types 1. High Level Design 2. Low Level Design
High Level design- they will write like scalable to high load, highly available, Which type of
database, N number of replicas etc
Low level design- about modules and process how it needed to execute like extremely low
level (for example using java then which type of function call and where function calls are
like that)
From Here devops come to focus as a devops engineer we will automate this processes
Building- Developing (writing the code after writing the code they will store the code in a
repository which is git)
Testing- The code taken from the repository and store in server and the team will be QE
team (quality assurance engineer) will test the application to check bugs present or not and
to check its working correctly or not.
Deployment- Promote the application to production it will be received by customers.
Now we will learn what devops engineer will do

• He will fasten the process to deliver the application quickly by following all building,
testing and deployment
• Devops Engineers ensures that Building, Testing and Deployment are followed
without any manual interaction that is every thing is automated.
• Good Automation leads to good accuracy. That’s why devops engineer came into
face.
There are so many models in SDLC like water fall model, Agile model . Now a days mostly
companies using Agile model.

Video -3:

If suppose we are working in amazon company like amazon fresh


Roles in a company
Business Analyst – He interacts with the customers for requirements. And writes BRD
document.
Product Manager- He interacts with Business Analysts for requirements and prioritize the
requirements according to the capability of the team or skills of the team.
Product Owner - Product manager interacts with product owner, the product owner devides
the requirement into actionable items which is called Epics. Actionable items like UI,
Backend, DB.
Software Architect- PO interacts with solution architect as there are low level Design and
high level Design implementation for the developers.
Developers – got the requirements from the software architect and they ask for
infrastructure, kuberenets, docker files, github files. Devops Engineers- And these all
operations performed by devops engineers.
QE Engineers – They work on to test the requirement.
DBA- might set up the database and administrate the database.
Developers takes help from devops engineers , DBA and QE engineers to develop the
requirements.
Release Engineers (optional)
SRE- Responsible for checking the availability and reliability of the requirement. If anything
goes wrong they create notifiers ,If notifiers are required they will notify the development
team .
Technical Writers – people who document the entire thing
Eg: Kubernetes gets the latest version then we need to document the version.

Software Development Life Cycle:


1. Planning
2. Analysis
3. Design
4. Implementation
5. Testing and Integration
6. Maintenance
Devops engineers tries to check gap in SDLC. Eg: If the requirement is done in 2 months how
it is possible to do in 2 months only in developers phase where devops engineer is included
like if QE engineer is using manual testers then devops engineer includes CI/ CD pipeline to
automate the QE written task. To improve the efficiency of the software.

JIRA- Project Management Tool


Here we can monitor all the operations what the engineers are doing and is there any
change we need to do , from these tool all the management persons can check the
performance of all engineers like business analyst to SRE.
There are so many tools but JIRA is mostly used tool.
1. Install
Search for JIRA cloud login , create a account or signup using google account and give any
site name and continue.
2. Setup a project
Now name your first project name and click next after few minutes it will setup.
3. Tasks
Eg: Here we are working as a product owner

• Now At top there is create option and click create then there is work type there enter
epic and type summary- 15 min delivery service and
• description- To mark this epic as done, following things need to be completed.
▪ Add feature in the mobile app with a good interactive ui
▪ Provide an option to the customer to disable 15 mins service anytime
▪ Enable 15mins service in the desktop application
• After click the create button, the person working on the epic will change the progress
of the epic in todolist so that management can track the work easily.
• The devopers creates a story in work type Kubernetes cluster creation these can be in
backlog and assigned to a devops engineer.
• The epics are keep on creating by the developers when they needed these all are
stored on backlogs and assigned to devops engineers.

Video-4:

Virtual Machines (VM) :


What is Server?
After developing the application the developers keeps the application in public servers to
easily access by the customers.
Eg: [Link] bought 5 servers from HP , App1 is deployed in server1 which uses 4gb ram
and 4cpu but there is 100gb and 100 crore and app2 is deployed in server2 which uses 5gb
but capacity 50gb which means there is so many waste of storage which effects the
efficiency.
To overcome this problem virtual machines are introduced, There is a one server which is
server1 there we install a Hypervisor. Hypervisor is a software, by using this one server is
divided into 5 servers only doing logical partition not breaking the server physically.
Server1-→ VM1, VM2,……… in this case we added efficiency by automating the process by
using hypervisor.
Some of the popular hypervisors are VMware, Xen
Easy VM has their own CPU, memory and harddisk.

Common questions

Powered by AI

CI/CD pipelines provide several benefits in software development according to DevOps methodologies. They enable continuous integration, which ensures that code changes are automatically tested and integrated into the main branch when approved . This process reduces integration errors and simplifies bug tracking. Continuous delivery (CD) allows new features to be automatically deployed to production after passing tests, significantly reducing the time-to-market . Additionally, CI/CD pipelines minimize manual tasks, enhancing efficiency and consistency while maintaining high-quality standards throughout the development lifecycle. They allow teams to deliver updates more frequently and reliably, adapting quickly to feedback and business needs .

Automation in DevOps-driven environments enhances accuracy by minimizing human errors and ensuring repeatability of tasks through scripts and tools. Automation covers various stages such as code integration, testing, deployment, and monitoring . By eliminating manual intervention, DevOps engineers achieve consistent environments where discrepancies are significantly reduced, leading to fewer deployment failures and bugs. Automation ensures that every change made to an application is thoroughly tested and deployed in identical conditions, ensuring reliability and performance remain high . Furthermore, automated processes allow teams to quickly identify and rectify issues, contributing to a stable production environment.

DevOps improves the software delivery process by automating tasks that were traditionally manual. Over a decade ago, software delivery involved many manual steps performed by system administrators, build and release engineers, and testers, which was time-consuming and error-prone . DevOps integrates Continuous Integration (CI) and Continuous Delivery (CD) into the development cycle, allowing for faster and more reliable software releases. By automating testing, monitoring, and deployment processes, DevOps reduces the delivery time from days to hours or even mere minutes . This automation also enhances quality and efficiency by ensuring consistent and reproducible deployment processes .

In the Software Development Life Cycle (SDLC), a DevOps engineer plays a crucial role in bridging gaps between development and operations. They introduce automation tools and processes to improve the efficiency and speed of software delivery. During the building phase, DevOps engineers automate code storage in repositories like Git and ensure that code changes lead to automated testing and deployment . They set up CI/CD pipelines, allowing for continuous integration and continuous deployment, which rectifies inefficient manual testing and deployment processes. Their role ensures that software moves seamlessly from development to testing and production environments, maintaining quality and consistency .

DevOps profoundly impacts quality assurance processes by integrating automated testing within the CI/CD pipelines, leading to quicker detection and correction of defects. It emphasizes continuous testing throughout the development cycle, reducing the time between when bugs are introduced and when they are fixed . The automation of testing ensures that software can be quality checked rapidly and under consistent conditions, leading to more reliable releases. This transition from manual to automated quality assurance processes not only speeds up the validation phases but also supports simultaneous development and testing, minimizing bottlenecks and enhancing overall development velocity and software quality .

Adopting DevOps offers modern businesses strategic advantages like accelerated delivery times, enhanced collaboration, and improved operational efficiencies compared to traditional methodologies. DevOps fosters a culture of continuous improvement, enabling companies to release updates more frequently and quickly respond to market changes and customer feedback . It breaks down silos between development and operations teams, promoting collaboration and shared responsibility which results in better resource utilization and innovation . Additionally, automation and monitoring tools ensure high system reliability and service delivery, which can translate into better customer satisfaction and competitive advantage in increasingly digital marketplaces .

JIRA enhances project management within a DevOps framework by serving as a centralized platform for tracking tasks, progress, and collaboration among team members. It offers detailed visibility into the development process, allowing managers to monitor the performance of various roles such as business analysts, developers, and SREs . JIRA facilitates agile practices by enabling the breakdown of requirements into epics, stories, and tasks, which are then tracked through their lifecycle. This structured tracking ensures accountability and transparency, which are crucial in a DevOps ecosystem. Overall, JIRA supports continuous improvement and efficient resource management, aligning operations with business objectives .

DevOps practices enhance the Planning and Design phases of the SDLC by ensuring early and continuous involvement of operations and development teams. During planning, DevOps facilitates accurate gathering and definition of requirements which speeds up subsequent phases. Tools and pipelines used in DevOps enable real-time collaboration and iterative improvements, ensuring all stakeholders have a shared understanding of goals and constraints from the onset . For designing, DevOps incorporates High-Level and Low-Level Designs in its planning tools, allowing these designs to be more aligned with operational realities. This results in designs that are not only theoretically sound but practically viable, enhancing scalability and maintainability from the start .

Virtual machines (VMs) solve efficiency problems related to server utilization by allowing multiple instances to run on a single physical server, optimizing resource usage. Traditionally, servers were often underutilized because each application required a dedicated server, leading to wasted capacity . VMs create logical partitions within a single server using a hypervisor, enabling multiple isolated environments that share the underlying hardware. This not only maximizes CPU, memory, and storage utilization but also reduces costs and enhances flexibility and scalability. Organizations can run multiple applications on different VMs without additional physical servers, which streamlines IT architecture and operational efficiency .

Monitoring in a DevOps environment is crucial for maintaining application reliability and performance. It provides real-time insights into the health and status of applications and infrastructure, facilitating proactive issue detection and resolution . This continuous oversight ensures that operations teams can quickly respond to any anomalies or failures, reducing downtime and enhancing the user experience. Monitoring also informs capacity planning and resource allocation, helping teams to optimize performance and scalability. Overall, effective monitoring is an integral part of the DevOps feedback loop, enabling iterative improvements and ensuring high-quality, robust applications .

You might also like