# From DevOps to MLOps: Overview and Application to Electricity Market Forecasting
## 3 An Overview of DevOps and MLOps
### DevOps
#### 3.1.1 DevOps Workflow and Components  
The main focus of DevOps is to automate the software delivery process throughout, thereby ensuring continuous delivery and the feedback loop of the software [76]. Continuous delivery combines the development, testing, and deployment processes into one streamlined operation. The primary goal is to quicken the whole process through automation. If both Development and Operations teams are practicing DevOps, they can quickly deploy code improvements, improving the transparency between two teams and allowing the end user to see changes quickly [53, 74, 77]. Due to continuous deployment and the involvement of customers in the DevOps workflow, the customers do not have to wait for a monthly/quarterly/yearly software release cycle [53, 78] to test or provide feedback about the software. The DevOps workflow shown in Figure 2 helps the teams to build, test, and deploy software quickly and efficiently through a combination of tools and practices, from development to maintenance. DevOps reduces Time to Market (TTM) and enables Agile software development processes [79, 80]. These DevOps components are closely related to Agile. DevOps is the next step in the evolution of Agile methodologies [53, 79]. The following subsections discuss the components--or phases [53]--within the DevOps workflow [58, 79, 81]. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Paper** & **Methodology** & **Novelty** & **Result** \\ \hline
[66] & Review of the two DevOps components CI and CD, in the ML context & ML manual and automated pipeline design with CI/CD components & Scaling ML models \\ \hline
[67] & Five issues in ML-based solutions for performance diagnostics & MLOps pipeline to resolve the five challenges in the performance diagnostics & Fully automated pipeline for continuously training the new models upon the arrival of new data \\ \hline
[9] & Surveyed and compiled responses from ML professionals to investigate the role of MLOps in their daily activities & Survey with questions and goals & Based on survey, presented data on challenges based on survey data, ML problem types, and future plans with ML \\ \hline
[68] & A brief overview of the state-of-the-art MLOps and an overview of the organizational and educational structures around AI software operations & Challenges and trends in AI software operations & Challenges in educating AI operations and properties to be supported by software for the domain it was designed for \\ \hline
[69] & Multiple IoT experimental setups. Each setup is equipped with an IoT device and an edge device & An automated framework for MLOps at the edge, i.e., edge MLOps & Deployed and monitored IoT data and edge node operations in real time \\ \hline
[70] & Study integration between two organizations in detail for a multi-organization setup & Addressed scaling of ML to a multi-organization context & Integrated challenges of the ML pipeline, datasets, models, and monitoring. \\ \hline \hline \end{tabular}
\end{table} 
Table 1: Cont. Plan  
In this phase, requirements are defined, and the initial execution plan is created. The tools used for DevOps help the user and the developers to be constantly in sync. In this phase, if Agile is used as the SDLC, the user stories and tech stories should be defined with the teams [82]. Various issue-tracking and project-management tools, such as Jira [83], are used in this phase to help with the planning. Code  
Coding is the first step in DevOps automation, and all of the team members should adhere to the agreed coding standards and best practices [2; 84]. Test-Driven Development (TDD), Acceptance Test-Driven Development (ATDD), and Behavior-Driven Development (BDD) are a few of the best practices [84]. One of the significant areas in coding that is still highly neglected is versioning of the software via source control. Versioning not only helps to maintain the software, but also helps to automate the DevOps workflow properly [85; 86].