Service mesh -teknologian hyödyntäminen mikropalvelujen tietoturvan ja vikasietoisuuden hallinnassa
Mielonen, Antti (2024)
Mielonen, Antti
2024
Tietotekniikan DI-ohjelma - Master's Programme in Information Technology
Informaatioteknologian ja viestinnän tiedekunta - Faculty of Information Technology and Communication Sciences
This publication is copyrighted. Only for Your own personal use. Commercial use is prohibited.
Hyväksymispäivämäärä
2024-04-16
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:tuni-202404093390
https://urn.fi/URN:NBN:fi:tuni-202404093390
Tiivistelmä
Service mesh -teknologiasta on tullut keskeinen infrastruktuurikomponentti mikropalveluarkkitehtuurin mukaisissa järjestelmissä. Kasvua on edistänyt erityisesti pilvipalvelujen yleistyminen. Tässä diplomityössä tarkastellaan service mesh -teknologian roolia ja sen kykyä parantaa mikropalvelujen tietoturvaa ja vikasietoisuutta.
Tutkimuskysymys, kuinka service mesh -teknologia parantaa hajautettujen mikropalveluarkkitehtuurien tietoturvaa ja vikasietoisuutta, ohjaa tarkastelua em. teknisiin ominaisuuksiin. Mikropalveluympäristönä tässä työssä käytetään avoimen lähdekoodin Kubernetes ympäristöä ja service meshinä avoimen lähdekoodin Istiota.
Työ koostuu kahdesta osasta. Ensimmäinen osa on teknologiakatsaus, jossa perehdytään mikropalveluarkkitehtuuriin ja sen tietoturvaan ja vikasietoisuuteen. Toisessa osassa suunnittelen, toteutan ja analysoin tutkimusaiheeseen liittyvän koejärjestelyn kautta asetettujen vaatimusten täyttymistä Istio service meshin avulla.
Mikropalveluarkkitehtuuri on lähestymistapa, jossa hyödynnetään pieniä ohjelmistokomponentteja. Komponentit hoitavat yksittäisiä liiketoimintaprosessin osia. Palvelut toteutetaan API-rajapintojen kautta, jolloin niiden käyttäminen on ketterää ja skaalautuvaa. Koska ohjelmistokomponentit ovat pieniä, niin haasteeksi voi tulla järjestelmän monimutkaisuus. Liiketoimintalogiikan lisäksi ohjelmistokehittäjien pitää ottaa huomioon komponentin tietoliikenne-, tietoturva- ja lokitusvaatimukset.
Service mesh on suunniteltu ratkaisemaan monimutkaisten mikropalveluarkkitehtuurien hallintaan ja ylläpitoon liittyviä haasteita. Service mesh tuo komponenttien rinnalle oman välityspalvelimen. Tämä välityspalvelin hoitaa kaiken liiketoimintalogiikkaan kuulumattoman, helpottaen ohjelmistokehittäjien työkuormaa. Service meshin avulla voidaan hallita mikropalvelujen välistä tietoliikennettä tarkasti ja turvallisesti salattuna.
Koejärjestelyn avulla pyrin skenaario kerrallaan parantamaan testiympäristön vaatimusten mukaisuutta Istio service meshiä käyttäen. Vaatimukset on koottu Katakri 2020 -auditointikriteeristöstä.
Service mesh parantaa hajautettujen mikropalveluarkkitehtuurien tietoturvaa ja vikasietoisuutta. Se tarjoaa hyödyllisiä ominaisuuksia, joita Kubernetes ei sisällä. Näitä ovat erityisesti palveluiden välinen tietoliikenteen salaus, autentikointi ja auktorisointi. Myös tietoliikenteen monitorointiin ja lokitukseen on omat rajapinnat. Näiden avulla voidaan toteuttaa tietoturvallinen mikropalveluympäristö.
Myös vikasietoisuuden hallintaan on omat työkalut. Kubernetes tarjoaa jo itsessään hyvät ominaisuudet mm. replikoinnin, mutta service meshin tietoliikenteen hallinnan ja seurannan avulla voidaan toteuttaa erityisesti uusien palveluiden hallitumpia käyttöönottoja. Tämä vähentää tuotantoympäristössä päivityksistä aiheutuvia vikatilanteita.
Service mesh ja Istio tuotteena on erittäin suositeltava otettavaksi käyttöön mikropalveluympäristöissä. Osaamistarve joka konfigurointiin ja ylläpitoon tarvitaan, voidaan hyödyntää heti kaikissa järjestelmässä olevissa ohjelmistokomponenteissa. Tämä helpottaa ohjelmistokehittäjien työkuormaa ja vapauttaa resursseja liiketoimintalogiikan tuottamiseen.
Tutkimuskysymys, kuinka service mesh -teknologia parantaa hajautettujen mikropalveluarkkitehtuurien tietoturvaa ja vikasietoisuutta, ohjaa tarkastelua em. teknisiin ominaisuuksiin. Mikropalveluympäristönä tässä työssä käytetään avoimen lähdekoodin Kubernetes ympäristöä ja service meshinä avoimen lähdekoodin Istiota.
Työ koostuu kahdesta osasta. Ensimmäinen osa on teknologiakatsaus, jossa perehdytään mikropalveluarkkitehtuuriin ja sen tietoturvaan ja vikasietoisuuteen. Toisessa osassa suunnittelen, toteutan ja analysoin tutkimusaiheeseen liittyvän koejärjestelyn kautta asetettujen vaatimusten täyttymistä Istio service meshin avulla.
Mikropalveluarkkitehtuuri on lähestymistapa, jossa hyödynnetään pieniä ohjelmistokomponentteja. Komponentit hoitavat yksittäisiä liiketoimintaprosessin osia. Palvelut toteutetaan API-rajapintojen kautta, jolloin niiden käyttäminen on ketterää ja skaalautuvaa. Koska ohjelmistokomponentit ovat pieniä, niin haasteeksi voi tulla järjestelmän monimutkaisuus. Liiketoimintalogiikan lisäksi ohjelmistokehittäjien pitää ottaa huomioon komponentin tietoliikenne-, tietoturva- ja lokitusvaatimukset.
Service mesh on suunniteltu ratkaisemaan monimutkaisten mikropalveluarkkitehtuurien hallintaan ja ylläpitoon liittyviä haasteita. Service mesh tuo komponenttien rinnalle oman välityspalvelimen. Tämä välityspalvelin hoitaa kaiken liiketoimintalogiikkaan kuulumattoman, helpottaen ohjelmistokehittäjien työkuormaa. Service meshin avulla voidaan hallita mikropalvelujen välistä tietoliikennettä tarkasti ja turvallisesti salattuna.
Koejärjestelyn avulla pyrin skenaario kerrallaan parantamaan testiympäristön vaatimusten mukaisuutta Istio service meshiä käyttäen. Vaatimukset on koottu Katakri 2020 -auditointikriteeristöstä.
Service mesh parantaa hajautettujen mikropalveluarkkitehtuurien tietoturvaa ja vikasietoisuutta. Se tarjoaa hyödyllisiä ominaisuuksia, joita Kubernetes ei sisällä. Näitä ovat erityisesti palveluiden välinen tietoliikenteen salaus, autentikointi ja auktorisointi. Myös tietoliikenteen monitorointiin ja lokitukseen on omat rajapinnat. Näiden avulla voidaan toteuttaa tietoturvallinen mikropalveluympäristö.
Myös vikasietoisuuden hallintaan on omat työkalut. Kubernetes tarjoaa jo itsessään hyvät ominaisuudet mm. replikoinnin, mutta service meshin tietoliikenteen hallinnan ja seurannan avulla voidaan toteuttaa erityisesti uusien palveluiden hallitumpia käyttöönottoja. Tämä vähentää tuotantoympäristössä päivityksistä aiheutuvia vikatilanteita.
Service mesh ja Istio tuotteena on erittäin suositeltava otettavaksi käyttöön mikropalveluympäristöissä. Osaamistarve joka konfigurointiin ja ylläpitoon tarvitaan, voidaan hyödyntää heti kaikissa järjestelmässä olevissa ohjelmistokomponenteissa. Tämä helpottaa ohjelmistokehittäjien työkuormaa ja vapauttaa resursseja liiketoimintalogiikan tuottamiseen.