Change is an inevitable part of any business. Customer satisfaction and building good will is the primary goal. The real success lies in the above two factors rather than money. Different businesses operate in different ways. Each one focuses on a different set of criteria and thus follows a different set of models. There are various models in the software development life cycle, such as the waterfall model, spiral model, V-model, and so on. These models have advantages and disadvantages and aid in the improvement of a company's workforce. They overcome the disadvantages of the previous model with each model. DevOps is the most recent model that is widely used. This chapter deals with DevOps, including the need, working, and how it differs from other models. This also looks into how intelligent techniques can be used to enhance the DevOps process for better productivity in the businesses (i.e., AIOps). It summarizes the different phases in DevOps, the corresponding machine learning or artificial algorithms that can be applied in the phases.
TopIntroduction
DevOps is a software development model that has been recently in high demand as of around 2009 (Subramanya et al., 2022). As the name suggests DevOps derived from the words development and operation, aims to combine the development and operations parts of a software development life cycle (Faustino et al., 2022). It includes a set of activities or procedures and the necessary tools required to combine the responsibilities of both the processes of software development and its operation in the same team as shown in Figure 1.
It overcame the struggles faced as a result of the development and operations team being two separate entities where one was not concerned with the activities of the other creating an obstacle to the smooth rollout of software (Subramanya et al., 2022). DevOps allows cross-functional team synchronization based on the company's philosophy and culture, hence it’s more than just a set of practices. A major feature of DevOps is that it need not have major technological changes but instead focuses on team culture and coordination (Arvanitou et al., 2022). The development side of DevOps focuses on developing the software based on the client's requirements, continuously testing, debugging, and optimizing the software based on the continuous feedback received from the operations side that helps identify bugs and provides the parameters to be optimized. The simultaneous and synchronized working of the development and operations teams results in cutting down the effort required for software development and the expenditure required for its maintenance after deployment (Faustino et al., 2022).
DevOps allows the faster introduction of software into the market in a more stable manner for the company. However, since it consists of new methods and ideas which haven't been practiced by companies until recently it is still underdeveloped and consists of obstacles. These obstacles are being overcome as many companies use, study, improve, and implement DevOps while producing their software products (Wiedemann et al., 2019).
An ethnographic study on three companies that implemented DevOps methods consistently concluded that it provides the advantages of easy and rapid iteration and deployment, increased reliability, and reduced burden (Zhou et al., 2022). The DevOps model allows companies to have frequent releases and rapid bug fixing. New update releases that are less prone to bugs and improved with rapid iterations are possible with lesser effort with the DevOps model.
DevOps is inclusive of the culture, process, and technology that is required to be executed and implemented. Different companies and their software products have different implementations and maturity, therefore, the creation and implementation of the DevOps models are difficult between teams. Apart from these aspects the continuous software delivery and feedback cycles demand the need for automation as it is new and difficult for teams to cope and collaborate with it (Wiedemann et al., 2019).
The main challenges are the unavailability of proper infrastructure, knowledge, skill, and management, lack of collaboration and communication, and the lack of confidence and trust in the DevOps method as this approach of software development is new to the market. These challenges exist despite the results that the companies that have implemented DevOps have shown. However, over time these obstacles would be overcome as the practice and study of this model develop (Bijwe & Shankar, 2022).