Title:- Detail study of devops
Experiment No.:- 1a Detail Study of Devops
What is Devops?
More recently, agile approaches introduced the integrated concept of DevOps. It has been
reported that “DevOps is a set of practices that is trying to bridge developer-operations gap at
the core of things and at the same time covers all the aspects which help in speedy, optimized
and high quality software delivery” DevOps practices focus on continuous-deployment, log-
monitoring, automated testing and update components, etc.. These practices can be supported
by a number of tools such as repository, build and deploy management tools.[1]
Need of devops.
Companies offering Internet-based services like Facebook, are now deploying software
functionality to customers on a daily basis [1]. This paradigm change towards continuous
deployment of software functionality has brought opportunities as well as challenges for most
companies . DevOps, a blend of two words, Developers and Operations, is a new phenomenon
that helps facilitate this change [2]. It builds a living bridge between development and operations
and gives them an opportunity to work and collaborate effectively and seamlessly. Agile
methods have improved the performance of software development teams by establishing cross-
functional teams and providing closer collaboration with customers [3]. DevOps seeks to extend
collaboration of development towards operations, which is responsible for deploying, managing
and supporting systems’ performance at the customer’s site [2]. The continuous deployment
paradigm requires software companies to increase communication amongst stakeholders,
implement automation and improve agility in designing, delivering and operating software
products and services. Erich et al. [4] identified the main concepts of DevOps as: culture,
automation, measurement, sharing, services, quality assurance, structures and standards.[2]
Devops Tools
DevOps practices require the support of appropriate technology [28]. There are a number of
DevOps tools (See Appendix B: DevOps Tools Catalogue) such as Jenkins and Codeship
(Continuous Integration, Continuous Testing), Puppet and Ansible (Cloud Management), New
Relic and AWS CloudWatch (Monitoring), Bitbucket and Github (Repository), MongoDB
(NoSQL Database Management), and HipChat (DevOps team Communication). Cataloguing
such tools and their usefulness will enable the organisations to make an informed decision about
the different types of DevOps technology and their local needs [29]. In this review, we found
twelve categories of DevOps tools, which are shown in Table 6. IaaS/PaaS along with the
continuous integration and deployment are the highly reported technology categories for
enabling DevOps[3]
DevOps Tools Categories
Source Control Management
Continuous Integration
Continuous Deployment
Monitoring
Database Management
Logging/Security
Build
Testing
Collaboration Challenges affecting the Successful Adoption of
DevOps
DevOps has emerged as a promising approach in software development and operations, aiming
to enhance collaboration, automation, and efficiency in delivering high-quality software
products. More specifically, the analysis revealed major challenges such as resistance to change,
absence of supportive and visionary leadership, outdated legacy systems, high cost of
investment, skills gaps, communication gaps between development and operations teams, and a
deep-seated company culture.[4]
DEVOPS IN THE CLOUD ERA: EVOLUTION AND ADAPTATION
In the cloud era, continuous deployment has gained significant importance in DevOps practices.
With cloud platforms providing scalable and on-demand resources, organizations can automate
the process of deploying software changes quickly and frequently. Continuous deployment
maximizes the value delivered to customers by enabling organizations to release new features,
bug fixes, and improvements rapidly. The cloud has revolutionized infrastructure automation and
configuration management. Infrastructure resources can be provisioned, managed, and scaled
dynamically through APIs, reducing manual efforts and ensuring consistency across
environments. Tools like Ansible, Puppet, and Chef facilitate the automation of infrastructure
tasks, such as server provisioning, configuration management, and orchestration. Infrastructure-
as-Code (IaC) enables organizations to define and manage infrastructure through human-
readable code, promoting version control, collaboration, and repeatability. This approach ensures
that infrastructure changes can be applied consistently across different environments, reducing
errors and promoting efficient resource management. In the cloud era, microservices architecture
has gained popularity due to its ability to create scalable and loosely coupled systems.
Microservices enable organizations to break down monolithic applications into smaller,
independent services that can be independently developed, tested, and deployed. This approach
aligns well with DevOps principles by promoting decentralized and autonomous development
teams. Microservices allow teams to work independently on different services, applying DevOps
practices within their respective domains. Each team can adopt its own DevOps pipeline,
develop and deploy their services independently, and scale them based on specific requirements.
This decentralized approach fosters faster innovation, better response to changing business
needs, and encourages faster time-to-market.
References:-
[1]. Akalanka Nayanajith, Ruwan Wickramarachchi,” Challenges Affecting the Successful
Adoption of DevOps Practices: A Systematic Literature Review”, 2024, IEEE
[2]. Lucy Ellen Lwakatare, Pasi Kuvaja & Markku Oivo,Dimension of Devops, 2015, Springer
Nature Link.
[3]. Georges Bou Ghantous, Asif Gill, 2017, DevOps: Concepts, Practices, Tools, Benefits and
Challenges, AIS eLibrary