Maintainability in cloud-native architecture

Tutkielman tavoitteena on selvittää kuinka ylläpidettävyys huomioidaan pilvinatiivien sovellusten arkkitehtuurisuunnitteluvaiheessa. Tämän saavuttamiseksi toteutin kyselyn nykyisen työnantajani Nordcloudin pilviarkkitehtien keskuudessa. Kyselyn perusteella havaitsin, että ylläpidettävyys priorisoid...

Full description

Bibliographic Details
Main Author: Kettunen, Juho Petteri
Other Authors: Faculty of Information Technology, Informaatioteknologian tiedekunta, Jyväskylän yliopisto, University of Jyväskylä
Format: Master's thesis
Language:eng
Published: 2024
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/95504
Description
Summary:Tutkielman tavoitteena on selvittää kuinka ylläpidettävyys huomioidaan pilvinatiivien sovellusten arkkitehtuurisuunnitteluvaiheessa. Tämän saavuttamiseksi toteutin kyselyn nykyisen työnantajani Nordcloudin pilviarkkitehtien keskuudessa. Kyselyn perusteella havaitsin, että ylläpidettävyys priorisoidaan korkeammalle kuin skaalautuvuus ja suorituskyky, mutta alemmaksi kuin turvallisuus ja luotettavuus. Kategorisoin vastaajien antamat neuvot, jonka ansiosta näin että ylläpidettävyyden parantamiseksi he valitsevat vakiintuneita teknologioita, infrastructure-as-code -työkaluja, hallinnoituja palveluita, ja CD/CD-putkia. Yleisimmät arkkitehtuuriin liittyvät suositukset liittyivät löyhään kytkentään, mikropalveluarkkitehtuuriin, modulaarisuuteen, ja arkkitehtuuriseen yksinkertaisuuteen. Tulevaisuuden päivitysten helpottaminen nähtiin myös arvokkaaksi, ja usein yksittäisetkin ehdotukset olivat oleellisia. Vaikka vertailu kirjallisuuteen perustuu esimerkkeihin, niin tulokset vaikuttavat yleisesti ottaen noudattavan olemassaolevan kirjallisuuden ohjeistuksia. Goal of the thesis is to investigate how maintainability is addressed during the architectural design phase of cloud-native software development lifecycle. To this end, I conducted a survey among cloud architects at my current employer Nordcloud. Based on the survey, I found that maintainability is prioritized higher than scalability and performance, but lower than security and reliability. I categorized the advice given by the respondents, and saw that in order to increase maintainability, they prefer using established technologies, infrastructure-as-code, managed services, and CI/CD pipelines. To the same end, architectural considerations include loose coupling, microservices architecture, modularity, and architectural simplicity. Facilitating easy updates in the future is also seen valuable, and often even individual suggestions were relevant. Even if the comparison to literature is based on examples, the results generally appear to align with advice found in existing literature.