Building an effective CI/CD pipeline for a content management system
Loading...
URL
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Authors
Date
2022-01-25
Department
Major/Subject
Information Networks / Media
Mcode
SCI3047
Degree programme
Master’s Programme in Information Networks
Language
en
Pages
44+4
Series
Abstract
This thesis examines how a deployment pipeline can improve the quality of the software and how it can support developers and end-users alike. It focuses on the case of Sanoma Media Finland Oy and their content management system. The current deployment pipeline of the system is analysed using the available literature and first-hand experience of the developers who worked on it. The aim is to create an effective pipeline that utilises many of the processes and methods of continuous integration and continuous delivery (CI/CD). The main purpose of CI/CD is to provide a way for the developers to deploy features in a reliable and timely fashion. It supports mainly developers, but the end users of the software also benefit from it. CI/CD usually means minimal downtime, as well as fast feedback loops for features. Consequently, fast feedback cycles enable developers to ship new features efficiently, which is also beneficial for other stakeholders. There are commercial CI/CD services available on the market. However, due to the architecture of the content management system a customised solution was required. While analysing the deployment pipeline, difficulties that complicated the deployment process were identified. The analysis is based on the current theory of continuous integration and continuous deployment, plugin architecture and monolithic repository. After examining the various environments, the maintainability and complexity of the pipeline, an alternative solution is proposed. This thesis proposes a database-based solution, instead of the current solution which is based on source code control. Using a database alleviates the problem of the missing semantic versioning, as well as the insufficient context information during integration and deployment. Finally, it introduces an improved way of handling deployments, which reduces the manual editing steps of the deployment process.Description
Supervisor
Takala, TapioThesis advisor
Nurmela, MiroKeywords
CI/CD, content management system, deployment pipeline, plugin architecture, monolithic repository