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...

Täydet tiedot

Bibliografiset tiedot
Päätekijä: Kettunen, Juho Petteri
Muut tekijät: Faculty of Information Technology, Informaatioteknologian tiedekunta, Jyväskylän yliopisto, University of Jyväskylä
Aineistotyyppi: Pro gradu
Kieli:eng
Julkaistu: 2024
Aiheet:
Linkit: https://jyx.jyu.fi/handle/123456789/95504
Kuvaus
Yhteenveto: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.