Medioiden käsittely mikropalvelupohjaisessa arkkitehtuurissa
Paappanen, Antti (2026)
Paappanen, Antti
2026
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2026051913675
https://urn.fi/URN:NBN:fi:amk-2026051913675
Tiivistelmä
Ohjelmistojärjestelmien monimutkaisuuden lisääntyessä ja käyttäjämäärien kasvaessa mikropalveluarkkitehtuuri on vakiintunut IT-alalla suosituksi ratkaisuksi skaalautuvien järjestelmien rakentamiseen. Opinnäytetyön tavoitteena oli suunnitella ja toteuttaa toimeksiantajalle Mediapankki-mikropalvelu mediatiedostojen keskitettyyn hallintaan. Jamix Oy:lle syntyi tarve uudelle mikropalvelun luomiselle käyttöliittymäteknologian uudistamisen yhteydessä. Aiemmin medialogiikka oli sijainnut käyttöliittymäkerroksessa ja se oli tarve siirtää osaksi järjestelmän laajempaa mikropalveluarkkitehtuuria. Opinnäytetyön tavoitteena oli vähentää teknistä velkaa ja luoda yhtenäinen rajapinta medioiden tallennukseen, käsittelyyn ja jakeluun. Menetelmänä käytettiin tutkimuksellista kehittämistoimintaa, jossa teoriatietoa sovellettiin käytännön ohjelmistokehitykseen. Mikropalvelun toteutuksessa hyödynnettiin .NET-ohjelmistokehystä ja C#-kieltä ja mediatiedostojen tallennuspaikkana käytettiin Azure Blob Storage -pilvipalvelua. Medioiden metatiedot tallennettiin SQL Server -tietokantaan, joka oli abstrahoitu Entity Framework Core -kirjaston avulla. Median teknisessä käsittelyssä, kuten kuvien pakkaamisessa ja pikkukuvien generoinnissa, hyödynnettiin FFmpeg-ohjelmistokirjastoja. Työn tuloksena syntyi toiminnallinen mikropalvelu, joka mahdollisti medioiden hallinnan erillisen REST-rajapinnan kautta. Mikropalvelu myös ylläpiti medioiden yhtenäisyyttä muissakin järjestelmän mikropalveluissa, jotka hyödyntävät medioita. Medioiden yhtenäisyyden ylläpitämisessä hyödynnettiin Dapr-ajonaikaympäristön pub/sub-mekanismia, jonka avulla toteutettiin tapahtumavetoinen viestintä muiden mikropalveluiden välille. Näitä menetelmiä käyttäen oli mahdollista varmistaa medioiden lopullinen johdonmukaisuus järjestelmässä. Paikallista kehitystä varten konfiguroitiin myös Azurite-emulaattori. Mediapankin toteutus mahdollisti järjestelmän medioiden käsittelylogiikan keskittämisen, jolla onnistuttiin parantamaan järjestelmän ylläpidettävyyttä. Erillisen mikropalvelun avulla mediatiedostojen käsittely onnistuttiin eristämään muiden mikropalveluiden vastuilta. Kehitetty ratkaisu tarjoaa pohjan jatkokehitykselle, kuten mahdollisuuden hallinnoida medioita suoraan.
