Enhancing development efficiency with DevSecOps template : a design science approach for IaC and CI/CD implementation for AWS
Puolitaival, Ville (2024)
Diplomityö
Puolitaival, Ville
2024
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2024111894696
https://urn.fi/URN:NBN:fi-fe2024111894696
Tiivistelmä
Digitalization and more technology-driven business models push organizations to implement new software systems, and software consultancy companies are constantly challenged to deliver solutions to their customers more efficiently. Standardizing common practices can improve efficiency and product delivery by reducing development overhead during the early stages of the project implementation.
The objective of the thesis is to study how to design and develop a template for deploying small- and medium-sized projects to the cloud while standardizing the tools and practices used. The research focuses on identifying the template elements essential for maintaining relevance in a continually evolving technological environment. A design science approach is used to create such an artifact and evaluate its suitability to the current environment based on previous research.
The created template uses Terraform IaC and GitLab CI/CD to deploy resources to AWS. It provides a modular and parametrized framework for starting new projects with varying requirements and promotes the best practices in all aspects of DevSecOps. While not fully optimized for usability, this solution establishes a strong foundation for future iterations. Due to the modular approach, the primary challenge is keeping the project’s internal dependencies simple, which complicates the template maintenance over its lifetime. Future research could focus on simplifying the template’s core structure by experimenting with different IaC technologies or improving the current version with modules that provide new functionality. Digitalisaatio ja digitaaliset liiketoimintamallit ajavat organisaatioita kehittämään uusia ohjelmistojärjestelmiä, minkä seurauksena konsultointiyritykset kohtaavat jatkuvaa painetta toimittaa ratkaisuja asiakkailleen tehokkaammin. Yhteisten käytäntöjen standardointi voi parantaa tehokkuutta ja tuotteiden toimitusnopeutta vähentämällä tarvittavien kehitysresurssien määrää projektien alkuvaiheessa.
Opinnäytetyön tavoitteena on tutkia, miten pieniä ja keskisuuria projekteja varten voidaan suunnitella ja kehittää mallikehys, joka standardoi käytettävät työkalut ja menetelmät. Tutkimus keskittyy selvittämään, mitkä ominaisuudet ovat tärkeitä kehyksen mukautuvuuden kannalta sen elinkaaren pidentämiseksi alati muuttuvassa toimintaympäristössä. Tutkimusmenetelmänä käytetään suunnittelutiedettä, jonka avulla malli toteutetaan ja sen soveltuvuutta ympäristöön tarkastellaan aiempien tutkimusten tuloksiin verraten.
Luotu mallikehys hyödyntää IaC-menetelmää yhdessä GitLab CI/CD-ympäristön kanssa AWS-infrastruktuurin käyttöönottamiseksi. Se tarjoaa modulaarisen ja parametrisoidun lähestymistavan, jonka avulla uudet projektit voidaan alustaa vaatimuksista riippumatta samalla edistäen DevSecOps-periaatteita. Vaikka luotu ratkaisu ei täysin vakuuta käytettävyydellään, se toimii vahvana perustana jatkokehitykselle. Modulaarisuus monimutkaistaa projektin sisäisiä riippuvuuksia, mikä vaikeuttaa ylläpitoa sen elinkaaren aikana. Jatkotutkimus voisi keskittyä mallin perusrakenteen yksinkertaistamiseen kokeilemalla erilaisia IaC-ratkaisuja tai nykyversion kehittämiseen ja laajentamiseen uutta toiminnallisuutta lisäävillä moduuleilla.
The objective of the thesis is to study how to design and develop a template for deploying small- and medium-sized projects to the cloud while standardizing the tools and practices used. The research focuses on identifying the template elements essential for maintaining relevance in a continually evolving technological environment. A design science approach is used to create such an artifact and evaluate its suitability to the current environment based on previous research.
The created template uses Terraform IaC and GitLab CI/CD to deploy resources to AWS. It provides a modular and parametrized framework for starting new projects with varying requirements and promotes the best practices in all aspects of DevSecOps. While not fully optimized for usability, this solution establishes a strong foundation for future iterations. Due to the modular approach, the primary challenge is keeping the project’s internal dependencies simple, which complicates the template maintenance over its lifetime. Future research could focus on simplifying the template’s core structure by experimenting with different IaC technologies or improving the current version with modules that provide new functionality.
Opinnäytetyön tavoitteena on tutkia, miten pieniä ja keskisuuria projekteja varten voidaan suunnitella ja kehittää mallikehys, joka standardoi käytettävät työkalut ja menetelmät. Tutkimus keskittyy selvittämään, mitkä ominaisuudet ovat tärkeitä kehyksen mukautuvuuden kannalta sen elinkaaren pidentämiseksi alati muuttuvassa toimintaympäristössä. Tutkimusmenetelmänä käytetään suunnittelutiedettä, jonka avulla malli toteutetaan ja sen soveltuvuutta ympäristöön tarkastellaan aiempien tutkimusten tuloksiin verraten.
Luotu mallikehys hyödyntää IaC-menetelmää yhdessä GitLab CI/CD-ympäristön kanssa AWS-infrastruktuurin käyttöönottamiseksi. Se tarjoaa modulaarisen ja parametrisoidun lähestymistavan, jonka avulla uudet projektit voidaan alustaa vaatimuksista riippumatta samalla edistäen DevSecOps-periaatteita. Vaikka luotu ratkaisu ei täysin vakuuta käytettävyydellään, se toimii vahvana perustana jatkokehitykselle. Modulaarisuus monimutkaistaa projektin sisäisiä riippuvuuksia, mikä vaikeuttaa ylläpitoa sen elinkaaren aikana. Jatkotutkimus voisi keskittyä mallin perusrakenteen yksinkertaistamiseen kokeilemalla erilaisia IaC-ratkaisuja tai nykyversion kehittämiseen ja laajentamiseen uutta toiminnallisuutta lisäävillä moduuleilla.
