Web-sovelluksen toteuttaminen palvelimettomalla arkkitehtuurilla
Niemi, Iiro (2021)
Niemi, Iiro
2021
All rights reserved. This publication is copyrighted. You may download, display and print it for Your own personal use. Commercial use is prohibited.
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021052711911
https://urn.fi/URN:NBN:fi:amk-2021052711911
Tiivistelmä
Pilvipalvelujen kehityksen ja käytön kasvun myötä palvelumallit ja ohjelmistoarkkitehtuurit ovat muuttuneet johtaen uuden tyyppisiin ohjelmistokehityksen tapoihin ja haasteisiin. Palveluntarjoajat ovat alkaneet tarjota palveluja, joissa käyttäjän ei tarvitse ottaa vastuuta infrastruktuurin ja palvelinten hallinnoinnista. Käyttäjälle näkyvän korkeamman abstraktiotason myötä on alettu puhua palvelimettomasta laskennasta (engl. serverless computing), jossa sovellukset muodostuvat enemmän ulkoisista sovelluspalveluista (BaaS, engl. backend as a service) ja palvelinpuolen koodin suorittamisesta väliaikaisissa komponenteissa, kuten konteissa ja funktiopalveluissa (FaaS, engl. funcktion as a service). Samalla arkkitehtuureissa on siirrytty tapahtumapohjaisiin mikropalveluihin.
Tämän opinnäytetyön tavoitteena on kehittää palvelimettomalla arkkitehtuurilla toteutettava web-sovellus, joka auttaa toimeksiantajayritystä projektien suunnittelussa. Samalla tavoitteena on myös perehtyä teoreettisella ja konseptuaalisella tasolla palvelimettomiin pilvipalveluihin ja niitä hyödyntäviin arkkitehtuurimalleihin.
Opinnäytetyön ensimmäisessä osassa taustoitetaan palvelimettomaan paradigmaan johtaneita tekijöitä teknologioiden, palvelumallien ja arkkitehtuurien osalta. Samalla esitellään toiminnallisessa osiossa käytettävän Google Cloudin palvelimetonta tarjoomaa.
Toisessa osassa käsitellään toteutettavan sovelluksen kehityksen elinkaaren vaiheita määrittelystä suunnitteluun, kehitykseen ja testaukseen. Arkkitehtuurin ja toteutuksen osalta päädytään käyttämään laajasti Googlen Firebase-alustan palveluita.
Lopussa esitetään johtopäätöksiä ja kehitysehdotuksia. Pilvipalveluiden käyttö tulee kasvamaan voimakkaasti tulevaisuudessa sekä teknologiat kehittyvät vauhdilla. Palvelimettomat teknologiat soveltuvat vielä kapeaan segmenttiin sovellustyypeistä, joten konttipohjaiset ratkaisut säilyvät varteenotettavana vaihtoehtona rinnalla.
Toteutetun sovelluksen kaltaiselle pienelle ohjelmistoprojektille palvelimeton arkkitehtuuri ja Firebase-alusta sopi erinomaisesti. Laajemman sovelluksen kohdalla pitäisi kartoittaa uusimmat vaihtoehdot, koska uusia palveluita julkaistaan jatkuvasti ja ne useimmiten parantavat kehitystä tai ratkaisevat jonkun aiemman rajoitteen.
Tämän opinnäytetyön tavoitteena on kehittää palvelimettomalla arkkitehtuurilla toteutettava web-sovellus, joka auttaa toimeksiantajayritystä projektien suunnittelussa. Samalla tavoitteena on myös perehtyä teoreettisella ja konseptuaalisella tasolla palvelimettomiin pilvipalveluihin ja niitä hyödyntäviin arkkitehtuurimalleihin.
Opinnäytetyön ensimmäisessä osassa taustoitetaan palvelimettomaan paradigmaan johtaneita tekijöitä teknologioiden, palvelumallien ja arkkitehtuurien osalta. Samalla esitellään toiminnallisessa osiossa käytettävän Google Cloudin palvelimetonta tarjoomaa.
Toisessa osassa käsitellään toteutettavan sovelluksen kehityksen elinkaaren vaiheita määrittelystä suunnitteluun, kehitykseen ja testaukseen. Arkkitehtuurin ja toteutuksen osalta päädytään käyttämään laajasti Googlen Firebase-alustan palveluita.
Lopussa esitetään johtopäätöksiä ja kehitysehdotuksia. Pilvipalveluiden käyttö tulee kasvamaan voimakkaasti tulevaisuudessa sekä teknologiat kehittyvät vauhdilla. Palvelimettomat teknologiat soveltuvat vielä kapeaan segmenttiin sovellustyypeistä, joten konttipohjaiset ratkaisut säilyvät varteenotettavana vaihtoehtona rinnalla.
Toteutetun sovelluksen kaltaiselle pienelle ohjelmistoprojektille palvelimeton arkkitehtuuri ja Firebase-alusta sopi erinomaisesti. Laajemman sovelluksen kohdalla pitäisi kartoittaa uusimmat vaihtoehdot, koska uusia palveluita julkaistaan jatkuvasti ja ne useimmiten parantavat kehitystä tai ratkaisevat jonkun aiemman rajoitteen.