Building an effective CI/CD pipeline for a content management system

Loading...
Thumbnail Image

URL

Journal Title

Journal ISSN

Volume Title

Perustieteiden korkeakoulu | Master's thesis

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, Tapio

Thesis advisor

Nurmela, Miro

Keywords

CI/CD, content management system, deployment pipeline, plugin architecture, monolithic repository

Other note

Citation