Perceived benefits of declarative software deployment : an exploratory case study
Sonninen, Oskar (2020)
Diplomityö
Sonninen, Oskar
2020
School of Engineering Science, Tietotekniikka
Kaikki oikeudet pidätetään.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi-fe2020052639272
https://urn.fi/URN:NBN:fi-fe2020052639272
Tiivistelmä
Declarative software deployment is a deployment paradigm that promotes usage of documents to describe the desired state of a system. Deployment is defined in documents but decisions on how to execute and achieve the state is left for the tools to decide. This is a distinct difference compared to imperative tools that require the execution to be explicitly written line by line. GitOps is flavor if DevOps that promotes usage of declarative deployment so everything from code to infrastructure are versioned in a single version control repository. This thesis explores if declarative deployment and practice like GitOps that heavily depends on it are perceived beneficial in practice.
Research was conducted as an exploratory case study to gather experiences from declarative deployment. Exploratory case study allowed interviews to pursue subjects that were not know beforehand and would only be revealed during the interviews. The research was conducted in three phases: literature review, interviews and analysis of the interviews. Literature review established a basic understanding about declarative deployment and GitOps, and was later used to produce GitOps reference and process models that were used to demonstrate GitOps in the interviews.
Interviews resulted in discovery of four topics that were perceived beneficial and promoted by declarative deployment. These findings allowed teams to work in more robust development and operation environments. GitOps was seen to support these practices and worth the initial effort required to adopt. The results were supported by the literature review conducted before.
From the results a conclusion was made that declarative deployment is perceived beneficial and GitOps is seen to support its core concept by promoting usage of version control and declarative tools for development and operations despite some initial overhead requirements. Deklaratiivinen ohjelmistojen käyttöönotto on käyttöönotto paradigma, mikä korostaa kuvausdokumenttien käytön tärkeyttä järjestelmien tilan määrittelyssä. Järjestelmän tila määritellään kuvaus dokumentissa, mutta päätös miten haluttu tila käytännössä saavutetaan jää käytetyn työkalun vastuulle. Tämä on perustavanlaatuinen ero imperatiivisen käyttöönoton kanssa, missä jokainen käyttöönoton vaihe pitää kertoa eksplisiittisesti.
GitOps on DevOpsin painotus, mikä korostaa deklaratiivisia toimitapoja, jotta kaikki koodista infrastruktuuriin on versioitu ja löytyy yhdestä versionhallintatyökalusta. Työn tarkoitus on tutkia, millä tavalla deklaratiivinen käyttöönotto ja GitOpsin tapaiset toimintatavat on koettu olevan hyödyllisiä käytännön tasolla.
Tutkimus on tehty eksploratiivisena tapaustutkimuksena, missä kerättiin kokemuksia ja ajatuksia deklaratiivisesta käyttöönotosta. Eksploratiivinen tapaustutkimus mahdollisti ennalta tuntemattomien osioiden tutkimisen aiheesta, mitkä saattavat paljastua vasta haastattelun aikana. Tutkimus suoritettiin kolmessa vaiheessa: kirjallisuuskatsaus, haastattelut ja haastattelujen analyysi. Kirjallisuuskatsaus pohjusti deklaratiivista käyttöönottoa ja GitOpsia, sekä näiden konsepteja. Tätä tietoa käytettiin myöhemmin haastatteluiden pohjana, sekä tuottamaan GitOpsista prosessi ja referenssimallit, mitä käytettiin GitOpsin esittämiseen haastatteluissa. Analyysi tehtiin etsimällä haastattelujen nauhoitteista toistuvia aiheita, joista tehtiin myöhemmin johtopäätökset.
Haastattelujen perusteella löydettiin viisi aihetta, mitkä olivat koettu hyödyllisiksi ja joita deklaratiivinen käyttöönotto tuki hyvin. Kirjallisuuskatsaus tuki havaittuja tuloksia, mitkä mahdollistivat työskentelyn kestävissä kehitys- ja operointiympäristöissä. GitOps koettiin tukevan havaittuja käytänteitä ja sen tavoitteleminen oli hyödyllistä tarvittavasta alkupanostuksesta huolimatta.
Tuloksista tehtiin johtopäätös, että deklaratiivinen käyttöönotto on koettu hyödylliseksi ja GitOpsin nähdään tukevan sen ydinkonsepteja korostamalla versionhallinan ja deklaratiivisten työkalujen käyttöä kehityksessä ja operoinnissa.
Research was conducted as an exploratory case study to gather experiences from declarative deployment. Exploratory case study allowed interviews to pursue subjects that were not know beforehand and would only be revealed during the interviews. The research was conducted in three phases: literature review, interviews and analysis of the interviews. Literature review established a basic understanding about declarative deployment and GitOps, and was later used to produce GitOps reference and process models that were used to demonstrate GitOps in the interviews.
Interviews resulted in discovery of four topics that were perceived beneficial and promoted by declarative deployment. These findings allowed teams to work in more robust development and operation environments. GitOps was seen to support these practices and worth the initial effort required to adopt. The results were supported by the literature review conducted before.
From the results a conclusion was made that declarative deployment is perceived beneficial and GitOps is seen to support its core concept by promoting usage of version control and declarative tools for development and operations despite some initial overhead requirements.
GitOps on DevOpsin painotus, mikä korostaa deklaratiivisia toimitapoja, jotta kaikki koodista infrastruktuuriin on versioitu ja löytyy yhdestä versionhallintatyökalusta. Työn tarkoitus on tutkia, millä tavalla deklaratiivinen käyttöönotto ja GitOpsin tapaiset toimintatavat on koettu olevan hyödyllisiä käytännön tasolla.
Tutkimus on tehty eksploratiivisena tapaustutkimuksena, missä kerättiin kokemuksia ja ajatuksia deklaratiivisesta käyttöönotosta. Eksploratiivinen tapaustutkimus mahdollisti ennalta tuntemattomien osioiden tutkimisen aiheesta, mitkä saattavat paljastua vasta haastattelun aikana. Tutkimus suoritettiin kolmessa vaiheessa: kirjallisuuskatsaus, haastattelut ja haastattelujen analyysi. Kirjallisuuskatsaus pohjusti deklaratiivista käyttöönottoa ja GitOpsia, sekä näiden konsepteja. Tätä tietoa käytettiin myöhemmin haastatteluiden pohjana, sekä tuottamaan GitOpsista prosessi ja referenssimallit, mitä käytettiin GitOpsin esittämiseen haastatteluissa. Analyysi tehtiin etsimällä haastattelujen nauhoitteista toistuvia aiheita, joista tehtiin myöhemmin johtopäätökset.
Haastattelujen perusteella löydettiin viisi aihetta, mitkä olivat koettu hyödyllisiksi ja joita deklaratiivinen käyttöönotto tuki hyvin. Kirjallisuuskatsaus tuki havaittuja tuloksia, mitkä mahdollistivat työskentelyn kestävissä kehitys- ja operointiympäristöissä. GitOps koettiin tukevan havaittuja käytänteitä ja sen tavoitteleminen oli hyödyllistä tarvittavasta alkupanostuksesta huolimatta.
Tuloksista tehtiin johtopäätös, että deklaratiivinen käyttöönotto on koettu hyödylliseksi ja GitOpsin nähdään tukevan sen ydinkonsepteja korostamalla versionhallinan ja deklaratiivisten työkalujen käyttöä kehityksessä ja operoinnissa.