Beyond the Twelve Factor App -menetelmäoppi ohjelmistopalvelun kehittämisen tukena
Pystynen, Ville (2021)
Pystynen, Ville
2021
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021111920647
https://urn.fi/URN:NBN:fi:amk-2021111920647
Tiivistelmä
Insinöörityön aiheena oli tutkia, kuinka rakennetaan Beyond the Twelve Factor App -menetelmäoppia noudattaen moderni pilvinatiivi sovelluspalvelu. Työn tavoitteena oli saada käsitys niistä menetelmistä, joita noudattamalla tällainen sovelluspalvelu toimii minkä tahansa palveluntarjoajan pilvi-infrastruktuurissa.
Tämä menetelmäoppi esittelee 15 sääntöä, joita noudattamalla voidaan rakentaa pilvinatiiveja sovelluksia minkä tahansa toimittajan pilviympäristöön. Se päivittää vanhemman The 12 Factor App -menetelmäopin sääntöjä kolmella uudella säännöllä, joista tärkein on rajapintalähtöinen ohjelmistosuunnittelu. Menetelmäoppi on saanut kritiikkiä siitä, että se sisältää monia itsestäänselvyyksiä. Se ei myöskään ota kantaa siihen, kuinka sääntöjä tulisi soveltaa esimerkiksi koneoppimissovelluksien kanssa.
Työssä kehitettiin ohjelmistopalveluun konekielisten tiliotteiden lataamiseen liittyvät tietokantarakenteet, rajapinnat ja käyttöliittymä. Tiliotteen lataamisen lisäksi toteutettiin näkymä, jossa asiakas voi tarkastella lataamaansa aineistoa tarkemmin.
Palvelinpäässä käytettiin Node.js-tekniikkaa, ja asiakaskäyttöliittymän komponentteja kehitettiin käyttämällä React.js- ja Next.js-ohjelmistokehyksiä, joiden päällä käytettiin TypeScript-laajennusta. Lisäksi käytössä oli Redux-tilanhallintakirjasto ja komponentit tyyliteltiin Sass CSS -esiprosessoinnin avulla. Käytössä oli myös monia apukirjastoja, joista tärkeimpiä olivat Tsoa, Sql-ts, Io-ts ja Zapatos.
Työn tuloksena sovelluspalvelussa voidaan ladata käyttäjän laitteelta selainpohjaisen asiakaskäyttöliittymän kautta palvelimelle konekielisiä tiliotteita, joiden tilitapahtumat tallennetaan tietokantaan. Näitä tapahtumia voidaan tarkastella ja lisätä kuitteja ja tositteita palveluun, jolloin palvelu koettaa koneoppimismallien avulla yhdistää kuitit tai tositteet tilitapahtumiin.
Noudattamalla Beyond the Twelve Factor App -menetelmäoppia voidaan rakentaa käyttöasteen mukaan skaalautuvia, itsenäisiä, helposti tuotantoon vietäviä mikropalveluja, joista muodostuu pilvinatiivi sovelluspalvelukokonaisuus.
Tämä menetelmäoppi esittelee 15 sääntöä, joita noudattamalla voidaan rakentaa pilvinatiiveja sovelluksia minkä tahansa toimittajan pilviympäristöön. Se päivittää vanhemman The 12 Factor App -menetelmäopin sääntöjä kolmella uudella säännöllä, joista tärkein on rajapintalähtöinen ohjelmistosuunnittelu. Menetelmäoppi on saanut kritiikkiä siitä, että se sisältää monia itsestäänselvyyksiä. Se ei myöskään ota kantaa siihen, kuinka sääntöjä tulisi soveltaa esimerkiksi koneoppimissovelluksien kanssa.
Työssä kehitettiin ohjelmistopalveluun konekielisten tiliotteiden lataamiseen liittyvät tietokantarakenteet, rajapinnat ja käyttöliittymä. Tiliotteen lataamisen lisäksi toteutettiin näkymä, jossa asiakas voi tarkastella lataamaansa aineistoa tarkemmin.
Palvelinpäässä käytettiin Node.js-tekniikkaa, ja asiakaskäyttöliittymän komponentteja kehitettiin käyttämällä React.js- ja Next.js-ohjelmistokehyksiä, joiden päällä käytettiin TypeScript-laajennusta. Lisäksi käytössä oli Redux-tilanhallintakirjasto ja komponentit tyyliteltiin Sass CSS -esiprosessoinnin avulla. Käytössä oli myös monia apukirjastoja, joista tärkeimpiä olivat Tsoa, Sql-ts, Io-ts ja Zapatos.
Työn tuloksena sovelluspalvelussa voidaan ladata käyttäjän laitteelta selainpohjaisen asiakaskäyttöliittymän kautta palvelimelle konekielisiä tiliotteita, joiden tilitapahtumat tallennetaan tietokantaan. Näitä tapahtumia voidaan tarkastella ja lisätä kuitteja ja tositteita palveluun, jolloin palvelu koettaa koneoppimismallien avulla yhdistää kuitit tai tositteet tilitapahtumiin.
Noudattamalla Beyond the Twelve Factor App -menetelmäoppia voidaan rakentaa käyttöasteen mukaan skaalautuvia, itsenäisiä, helposti tuotantoon vietäviä mikropalveluja, joista muodostuu pilvinatiivi sovelluspalvelukokonaisuus.