Sovelluskehitys micro frontend -arkkitehtuurilla
Saarimaa, Arttu (2021)
Saarimaa, Arttu
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-2021101118537
https://urn.fi/URN:NBN:fi:amk-2021101118537
Tiivistelmä
Insinöörityössä oli tarkoituksena muuttaa asiakasyrityksen olemassa oleva sovellus käyttämään micro frontend -sovellusarkkitehtuuria sekä tuoda uusia micro frontend -toimintoja sovellukseen. Sovellusarkkitehtuuri valittiin sovelluksen kehityksessä työskentelevien tiimien nopean vaihtumisen vuoksi. Vanha monoliittinen arkkitehtuuri vei lyhyen kehitysjakson omaavilta tiimeiltä aikaa, sillä tiimien oli opiskeltava koko sovelluksen toiminta, ennen kuin se pääsi sovelluskehitysvaiheeseen.
Tavoitteena oli suunnitella sovellukselle uusi rakenne uutta sovellusarkkitehtuuria käyttäen ja muuttaa sovellus suunniteltuun muotoon. Sovelluksen uudelleenrakentamisen jälkeen sovellukseen lisättäisiin testinä uusia toimintoja micro frontendeinä, joita vanhassa sovelluksessa ei ollut.
Uuden sovellusarkkitehtuurin toteuttamiseen käytettiin Webpackin Module Federationia, jonka implementointi oli konversion alkuvaiheissa hyvin yksinkertaista vähäisestä dokumentaatiosta huolimatta. Konversion edetessä Redux-toimintojen implementointiin dokumentaation vähyys jarrutti sovelluksen kehitystä huomattavasti.
Uusien toimintojen lisäys sovellukseen ei onnistunut, koska toimintoja tekevien tiimien aika ei riittänyt tuottamaan lisäyskelpoisia toimintoja ennen määräaikaa. Uusien toimintojen sijaan sovelluksen rinnalle kehitettiin uusi sovellus toimimaan admin-sovelluksena vanhalle sovellukselle.
Työn lopputuloksena saatiin aikaan micro frontend -arkkitehtuuria käyttävä monoliittisesta sovelluksesta konvertoitu progressiivinen verkkosovellus.
Sovelluskehityksen ohessa monien vanhan sovelluksen toimintojen suorituskykyä parannettiin koodia refaktoroimalla, ja uuden admin-sovelluksen pohja kehitettiin uutta sovellusarkkitehtuuria käyttäen.
Tavoitteena oli suunnitella sovellukselle uusi rakenne uutta sovellusarkkitehtuuria käyttäen ja muuttaa sovellus suunniteltuun muotoon. Sovelluksen uudelleenrakentamisen jälkeen sovellukseen lisättäisiin testinä uusia toimintoja micro frontendeinä, joita vanhassa sovelluksessa ei ollut.
Uuden sovellusarkkitehtuurin toteuttamiseen käytettiin Webpackin Module Federationia, jonka implementointi oli konversion alkuvaiheissa hyvin yksinkertaista vähäisestä dokumentaatiosta huolimatta. Konversion edetessä Redux-toimintojen implementointiin dokumentaation vähyys jarrutti sovelluksen kehitystä huomattavasti.
Uusien toimintojen lisäys sovellukseen ei onnistunut, koska toimintoja tekevien tiimien aika ei riittänyt tuottamaan lisäyskelpoisia toimintoja ennen määräaikaa. Uusien toimintojen sijaan sovelluksen rinnalle kehitettiin uusi sovellus toimimaan admin-sovelluksena vanhalle sovellukselle.
Työn lopputuloksena saatiin aikaan micro frontend -arkkitehtuuria käyttävä monoliittisesta sovelluksesta konvertoitu progressiivinen verkkosovellus.
Sovelluskehityksen ohessa monien vanhan sovelluksen toimintojen suorituskykyä parannettiin koodia refaktoroimalla, ja uuden admin-sovelluksen pohja kehitettiin uutta sovellusarkkitehtuuria käyttäen.