Skip to main content
Login | Suomeksi | På svenska | In English

Browsing by Subject "continuous deployment"

Sort by: Order: Results:

  • Yumo, Luo (2023)
    Machine Learning Operations (MLOps), derived from DevOps, aims to unify the development, deployment, and maintenance of machine learning (ML) models. Continuous training (CT) automatically retrains ML models, and continuous deployment (CD) automatically deploys the retrained models to production. Therefore, they are essential for maintaining ML model performance in dynamic production environments. The existing proprietary solutions suffer from drawbacks such as a lack of transparency and potential vendor lock-in. Additionally, current MLOps pipelines built using open-source tools still lack flexible CT and CD for ML models. This study proposes a cloud-agnostic and open-source MLOps pipeline that enables users to retrain and redeploy their ML models flexibly. We applied the Design Science methodology, consisting of identifying the problem, defining the solution objectives, and implementing, demonstrating, and evaluating the solution. The resulting solution is an MLOps pipeline called CTCD-e MLOps pipeline. We formed a conceptual model of the needed functionalities of our MLOps pipeline and implemented the pipeline using only open-source tools. The CTCD-e MLOps pipeline runs atop Kubernetes. It can autonomously adapt ML models to dynamic production data by automatically starting retraining ML models when their performance degrades. It can also automatically A/B test the performance of the retrained models in production and fully deploys them only when they outperform their predecessors. Our demonstration and evaluation of the CTCD-e MLOps pipeline show that it is cloud-agnostic and can also be installed in on-premises environments. Additionally, the CTCD-e MLOps pipeline enables its users to flexibly configure model retraining and redeployment as well as production A/B test of the retrained models based on various requirements.
  • Kuronen, Arttu (2023)
    Background: Continuous practices are common in today’s software development and the terms DevOps, continuous integration, continuous delivery and continuous deployment are fre- quently used. While each one of the practices helps in making agile development more agile, using them requires a lot of effort from the development team as they are not only about au- tomating tasks but also about how development should be done. Out of the three continuous practices mentioned above, continuous delivery and deployment focus on the deployability of the application. Implementing continuous delivery or deployment is a difficult task, especially for legacy software that can set limitations on how these practices can be taken into use. Aims: The aim of this study is to design and implement a continuous delivery process in a case project that does not have any type of automation regarding deployments. Method: Challenges of the current manual deployment process were identified and based on the identified challenges, a model continuous delivery process was designed. The identified challenges were also compared to the academic literature on the topic and solutions were taken into consideration when the model was designed. Based on the design, a prototype was created that automates the deploy- ment. The model and the prototype were then evaluated to see how it addresses the previously identified challenges. Results: The model provides a more robust deployment process, and the prototype automates most of the bigger tasks in deployment and provides valuable information about the deployments. However, due to the limitations of the architecture, only some of the tasks could be automated. Conclusions: Taking continuous delivery or deployment into use in legacy software is a difficult task, as the existing software sets a lot of limitations on what can be realistically done. However, the results of this study prove that continuous delivery is achievable to some degree even without larger changes to the software itself.