Devops 1
Devops 1
DEVELOPMENT(20CS3603)
DevOps
Presented By:
SHARAN.KALBURGI (ENG20CS0331)
SHREY NAHAR (ENG20CS0342)
SUMUKH SANKARSHANA M (ENG20CS0371)
TABLE OF CONTENTS
01 02 03
✔ DevOps word in itself is a combination of two words one is Development and other is Operations.
✔ It is neither an application nor a tool; instead, it is just a culture to promote development and
Operation process collaboratively. As a result of DevOps implementation, the speed to deliver
applications and services has increased.
✔ DevOps' main goal is to develop a sustainable infrastructure for specific applications and ensure
high scalability. It enables organizations to serve their customers strongly and better in the market.
✔ Infrastructure in the context of DevOps refers to the underlying technology and resources required to support the
software development and delivery process, such as servers, networks, databases, and other tools. Teams aim to
develop a sustainable infrastructure by automation, monitoring, and testing to ensure that the infrastructure is
resilient, reliable, and secure.
✔ Scalability refers to the ability of the software and infrastructure to handle increased workload or demand without
sacrificing performance. DevOps teams aim to ensure high scalability by using techniques such as load testing,
performance tuning, and cloud computing to ensure that the software and infrastructure can handle fluctuations in
demand.
History of DevOps
✔ Patrick Debois , a Belgian consultant, project manager, and
agile practitioner is one among the initiators of DevOps.
• Build – Code will be introduced to the project during the construction phase, and if necessary,
the project will be rebuilt to accommodate the new code. This can be accomplished in a variety
of ways, although GitHub or a comparable version control site is frequently used.
The developer will request the addition of the code, which will then be reviewed as necessary.
The request will be approved if the code is ready to be uploaded, and the code will be added to
the project. Even when adding new features and addressing bugs, this method is effective.
• Test – Throughout the testing phase, teams will do any necessary testing to ensure the project
performs as planned. Teams will also test for edge and corner case issues at this stage.
• An “edge case” is a bug or issue that only manifests during an extreme operating event, whereas a
“corner case” occurs when many circumstances are met.
• Release – The release phase occurs when the code has been verified as ready for deployment
and a last check for production readiness has been performed. The project will subsequently
enter the deployment phase if it satisfies all requirements and has been thoroughly inspected
for bugs and other problems.
• Deploy – In the deploy phase, the project is prepared for the production environment and is
operating as planned in that environment. This would be the responsibility of the operations
team; in DevOps, it is a shared responsibility. This shared duty pushes team members to
collaborate to guarantee a successful deployment.
• Operate – In the operating phase, teams test the project in a production environment, and
end users utilize the product. This crucial stage is by no means the final step. Rather, it
informs future development cycles and manages the configuration of the production
environment and the implementation of any runtime requirements.
• Monitor – During the monitoring phase, product usage, as well as any feedback, issues, or
possibilities for improvement, are recognized and documented. This information is then
conveyed to the subsequent iteration to aid in the development process. This phase is
essential for planning the next iteration and streamlines the pipelineʼs development process.
1. Continuous Development – This step is crucial in defining the vision for the entire software development
process. It focuses mostly on project planning and coding. At this phase, stakeholders and project needs are
gathered and discussed. In addition, the product backlog is maintained based on customer feedback and is
divided down into smaller releases and milestones to facilitate continuous software development.
Once the team reaches consensus on the business requirements, the development team begins coding to
meet those objectives. It is an ongoing procedure in which developers are obliged to code whenever there
are modifications to the project requirements or performance difficulties.
2. Continuous Integration – Continuous integration is the most important stage of the DevOps lifecycle. At
this phase, updated code or new functionality and features are developed and incorporated into the existing
code. In addition, defects are spotted and recognized in the code at each level of unit testing during this
phase, and the source code is updated accordingly. This stage transforms integration into a continuous
process in which code is tested before each commit. In addition, the necessary tests are planned during this
period.
3. Continuous Testing – Some teams conduct the continuous testing phase prior to integration, whereas
others conduct it after integration. Using Docker containers, quality analysts regularly test the software for
defects and issues during this phase. In the event of a bug or error, the code is returned to the integration
phase for correction. Moreover, automation testing minimizes the time and effort required to get reliable
findings. During this stage, teams use technologies like as Selenium. In addition, continuous testing
improves the test assessment report and reduces the cost of delivering and maintaining test environments.
4. Continuous Deployment – This is the most important and active step of the DevOps lifecycle,
during which the finished code is released to production servers. Continuous deployment involves
configuration management to ensure the proper and smooth deployment of code on servers.
Throughout the production phase, development teams deliver code to servers and schedule
upgrades for servers, maintaining consistent configurations.
5. Continuous Feedback – Constant feedback was implemented to assess and enhance the
applicationʼs source code. During this phase, client behavior is routinely examined for each release in
an effort to enhance future releases and deployments. Companies can collect feedback using either a
structured or unstructured strategy.
6. Continuous Monitoring – During this phase, the functioning and features of the application are
regularly monitored to detect system faults such as low memory or a non-reachable server. This
procedure enables the IT staff to swiftly detect app performance issues and their underlying causes.
Whenever IT teams discover a serious issue, the application goes through the complete DevOps cycle
again to determine a solution. During this phase, however, security vulnerabilities can be recognized
and corrected automatically.
7. Continuous Operations – Continuous operation automates the appʼs startup and subsequent
upgrades. It eliminates downtime using container management platforms such as Kubernetes and
Docker.
DevOps Principles/CALMS MODEL
DevOps Benefits
✔ Reliability-DevOps practices promote collaboration, continuous testing, and monitoring, which can
improve software reliability by reducing the risk of errors and failures.
✔ Scalability-DevOps practices can improve scalability by enabling teams to quickly and efficiently deploy
code changes, automate infrastructure management, and monitor performance in real-time.
✔ Security-DevOps practices can enhance security by integrating security into the development
process, automating security testing and compliance checks, and implementing
security-focused monitoring and incident response processes to reduce the risk of
vulnerabilities and data breaches.
✔ Rapid Delivery- DevOps practices can enable rapid delivery of software by automating the build,
testing, and deployment processes, promoting collaboration and communication between
teams, and providing real-time feedback and monitoring to continuously improve the delivery
pipeline.
✔ Speed- DevOps practices can improve speed by automating manual processes, reducing cycle
times, and improving the frequency and reliability of software releases, allowing organizations
to deliver software faster and with higher quality.
Challenges of DevOps
✔ Resistance to change: DevOps involves significant cultural changes, which can be challenging
for some organizations to adopt. Resistance to change can come from employees who are
comfortable with traditional siloed approaches to development and operations, as well as from
management that may be reluctant to invest in the necessary changes.
✔ Extensive automation: DevOps relies heavily on automation to reduce manual processes and
improve efficiency. However, implementing automation can be complex and time-consuming,
and require specialized skills.
✔ Balancing speed with quality and security: DevOps aims to deliver software quickly, but this
can be at odds with ensuring high quality and security. To overcome this challenge,
organizations need to implement automated testing and security checks throughout the
development pipeline.
✔ Collaboration and communication: Effective collaboration and communication are essential
to DevOps success. However, this can be difficult to achieve in organizations with
dispersed teams, time-zone differences, or cultural barriers.
✔ Toolchain complexity: DevOps requires a wide range of tools and technologies, including
automation frameworks, deployment tools, monitoring solutions, and more. The complexity
of these toolchains can make it challenging to manage and maintain them.
✔ Managing legacy systems: Many organizations have legacy systems that are difficult to
integrate with modern DevOps practices. This can make it challenging to implement
DevOps across an entire organization.
✔ Overall, while DevOps can offer many benefits, it also presents significant challenges.
Organizations must be prepared to address these challenges to successfully implement
DevOps and realize its full potential.
CONCLUSION
✔ DevOps is a software development approach that emphasizes collaboration,
communication, and integration between development and operations teams.
✔ DevOps combines Agile methodologies, Continuous Integration/Continuous
Deployment (CI/CD), and infrastructure automation to break down tasks, reduce
manual processes, and accelerate the software delivery pipeline. DevOps also
emphasizes the importance of monitoring and feedback to enable teams to identify
and address issues quickly and effectively.
✔ Implementing DevOps can also present significant challenges. Resistance to
change, cultural shifts, toolchain complexity, and skills gaps can make it difficult for
organizations to successfully adopt DevOps.
✔ Despite these challenges, the benefits of DevOps outweigh the disadvantages.
Organizations that are able to address these challenges and successfully
implement DevOps can gain a competitive advantage in the marketplace and
deliver value to their customers. By promoting collaboration, automation, and
continuous improvement, DevOps can help organizations to stay ahead of the
curve and adapt to changing business requirements.
REFERENCES:
✔ https://azure.microsoft.com/en-in/overview/devops-tutorial/#understanding
✔ https://www.ibm.com/in-en/topics/devops
✔ http://www.webdevelopmenthelp.net/2017/11/devops-tutorial-for-beginners.html