Microservices Architecture in Open Retail Interface for Public Transport Tickets
Sulander, Santtu (2018)
Sulander, Santtu
Jyväskylän ammattikorkeakoulu
2018
All rights reserved
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2018121822246
https://urn.fi/URN:NBN:fi:amk-2018121822246
Tiivistelmä
Helsingin seudun liikenne (HSL) tilasi toteutettavaksi avoimen lipunmyyntirajapinnan, jonka kautta se voisi myydä julkisen liikenteen lippujaan. Tehtävänanto oli luoda ja julkaista kyseinen rajapinta, toteuttaa sen taustalla oleva järjestelmä sekä pystyttää infrastruktuuri kyseisen järjestelmän ajamiseen tuotantoympäristössä. Työn tavoitteena oli rakentaa skaalautuva ja modulaarinen järjestelmä, joka toteuttaisi kaikki lipunmyyntirajapinnan vaatimat ominaisuudet.
Järjestelmä suunniteltiin ja toteutettiin käyttäen mikropalveluajattelua. Suunnittelu-prosessissa hyödynnettiin ohjelmistosuunnittelumalli Domain Driven Designia kartoittamaan suunniteltavien mikropalveluiden vastuualueet ja rajat. Järjestelmä toteutettiin kokonaisuudessaan Microsoftin tarjoaman PaaS-ratkaisun Azuren päälle käyttäen sen tarjoamia ohjelmistokomponentteja.
Kaikki projektissa kirjoitettu koodi on ECMAScript 2017 -määritelmän mukaista Ja-vaScriptia, ja mikropalvelut toteutettiin serverless-teknologiaan perustuvilla Azure Functions -instansseilla. Azure Cosmos DB -dokumenttitietokantapalvelu otettiin käyttöön palvelemaan järjestelmän kaikkia tietokantatarpeita. Suuriksi kasvavia tietokannan kokoelmia sirpaloitiin CRUD-operaatioiden optimoimiseksi.
Avoin lipunmyyntirajapinta julkaistiin REST-rajapintana Azuren yhdyskäytäväpalvelu API Managementia käyttäen. Yhdyskäytävä konfiguroitiin tarkistamaan sisään tulevien pyyntöjen valtuutuksia sekä välittämään pyyntöjä abstrahoimilleen, allaan oleville mikro-palveluille. Työn tuloksena oli avoin REST-lipunmyyntirajapinta, jonka tarjoaa mikropalveluista koostuva järjestelmä hyvin skaalautuvalla alustalla.
Järjestelmä suunniteltiin ja toteutettiin käyttäen mikropalveluajattelua. Suunnittelu-prosessissa hyödynnettiin ohjelmistosuunnittelumalli Domain Driven Designia kartoittamaan suunniteltavien mikropalveluiden vastuualueet ja rajat. Järjestelmä toteutettiin kokonaisuudessaan Microsoftin tarjoaman PaaS-ratkaisun Azuren päälle käyttäen sen tarjoamia ohjelmistokomponentteja.
Kaikki projektissa kirjoitettu koodi on ECMAScript 2017 -määritelmän mukaista Ja-vaScriptia, ja mikropalvelut toteutettiin serverless-teknologiaan perustuvilla Azure Functions -instansseilla. Azure Cosmos DB -dokumenttitietokantapalvelu otettiin käyttöön palvelemaan järjestelmän kaikkia tietokantatarpeita. Suuriksi kasvavia tietokannan kokoelmia sirpaloitiin CRUD-operaatioiden optimoimiseksi.
Avoin lipunmyyntirajapinta julkaistiin REST-rajapintana Azuren yhdyskäytäväpalvelu API Managementia käyttäen. Yhdyskäytävä konfiguroitiin tarkistamaan sisään tulevien pyyntöjen valtuutuksia sekä välittämään pyyntöjä abstrahoimilleen, allaan oleville mikro-palveluille. Työn tuloksena oli avoin REST-lipunmyyntirajapinta, jonka tarjoaa mikropalveluista koostuva järjestelmä hyvin skaalautuvalla alustalla.