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

Browsing by Subject "continuous delivery"

Sort by: Order: Results:

  • Mäkinen, Sasu (2021)
    Deploying machine learning models is found to be a massive issue in the field. DevOps and Continuous Integration and Continuous Delivery (CI/CD) has proven to streamline and accelerate deployments in the field of software development. Creating CI/CD pipelines in software that includes elements of Machine Learning (MLOps) has unique problems, and trail-blazers in the field solve them with the use of proprietary tooling, often offered by cloud providers. In this thesis, we describe the elements of MLOps. We study what the requirements to automate the CI/CD of Machine Learning systems in the MLOps methodology. We study if it is feasible to create a state-of-the-art MLOps pipeline with existing open-source and cloud-native tooling in a cloud provider agnostic way. We designed an extendable and cloud-native pipeline covering most of the CI/CD needs of Machine Learning system. We motivated why Machine Learning systems should be included in the DevOps methodology. We studied what unique challenges machine learning brings to CI/CD pipelines, production environments and monitoring. We analyzed the pipeline’s design, architecture, and implementation details and its applicability and value to Machine Learning projects. We evaluate our solution as a promising MLOps pipeline, that manages to solve many issues of automating a reproducible Machine Learning project and its delivery to production. We designed it as a fully open-source solution that is relatively cloud provider agnostic. Configuring the pipeline to fit the client needs uses easy-to-use declarative configuration languages (YAML, JSON) that require minimal learning overhead.
  • 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.