De grootste kennisbank van het HBO

Inspiratie op jouw vakgebied

Vrij toegankelijk

Terug naar zoekresultatenDeel deze publicatie

Moneybird Storage integreren in Active Storage

Open access

Moneybird Storage integreren in Active Storage

Open access

Samenvatting

Moneybird beheert meer dan 400 miljoen bestanden in een microservice genaamd Moneybird Storage (MBS). Omdat MBS geen gebruik maakt van frameworks maar door Moneybird is ontwikkeld voor de eigen use case, valt de gehele onderhoudslast op het development team. Het Rails framework waarop de meeste code in Moneybird is gebaseerd bevat tegenwoordig de Active Storage module waarmee het opslaan van bestanden versimpeld kan worden. De doelstelling van dit afstudeerproject is in kaart brengen hoe Active Storage ingezet kan worden om de onderhoudslast te verminderen.
Een onderzoek is uitgevoerd om de volgende deelvraag te beantwoorden: “Op welke high-performance en veilige manier kan Active Storage ingezet worden bij Money- bird om de onderhoudslast van Moneybird Storage te verminderen?”. De functio- naliteit, veiligheid en architectuur zijn kwalitatief onderzocht met onder andere literatuur studie, expert interviews en domain modelling. De prestaties en schaal- baarheid zijn kwantitatief onderzocht met scripts die de runtimes meten in verschil- lende situaties. De invloed van bestandsgrootte, bestandstype en sandboxing op de runtime van bestandstransformaties is onderzocht.
Uit het onderzoek is gebleken dat de functionaliteit voor een vervanger van MBS hetzelfde moet zijn als de huidige functionaliteit. Dit betekent dat het bestanden moet kunnen opslaan en een aantal bestandstransformaties moet kunnen uitvoeren waaronder veranderen van grootte, omzetten naar een ander bestandsformaat en het strippen van EXIF-data van afbeeldingen. De veiligheidsrisico’s van bestands- uploads zijn onderzocht en er is vastgesteld dat in Active Storage voor de meest gangbare aanvallen standaard mitigations zijn ingebouwd. Moneybird stelt als eis dat operaties op externe bestanden altijd in een sandbox uitgevoerd worden; een functionaliteit die Active Storage standaard niet heeft. Isolatie op de host machine is niet mogelijk door de limitaties van software in een container. Hierdoor is het noodzakelijk om sandboxing te doen door middel van een losse container.
De performance van afbeelding libraries is getest en daaruit is gebleken dat de runtime van de library het overgrote deel is van de runtime van operaties op afbeel- dingen. Het gebruik van VIPS in plaats van ImageMagick geeft veel prestatiewinst, vooral wanneer de bestanden groeien in bestandsgrootte. Het draaien van transfor- maties in een sandbox kost extra runtime vanwege de limitatie in netwerksnelheid. De beste architectuur voor een MBS vervanger wordt voorgeschreven door conven- tie binnen Moneybird en het Rails framework. Gebruik van een sandbox is mogelijk door custom analyzers en transformers te implementeren.
Concluderend kan Active Storage het beste ingezet worden als nieuwe microservice met custom analyzers en transformers voor sandboxing in een sandbox met moderne libraries. Een PoC en demo integratie met de Moneybird app is ontwikkeld om dit te bewijzen en werkt in development omgeving, maar is nog niet klaar voor productie. Aanbevolen wordt dat wanneer MBRS (de enige andere service die gebruik maakt van MBS) uitgefaseerd wordt ook te kijken naar het rechtstreeks integreren van Active Storage in de Moneybird applicatie. Daarnaast is dit onderzoek gericht op Active Storage waardoor andere totaaloplossingen niet zijn onderzocht. In een vervolgonderzoek is het waardevol hier ook naar te kijken.



Toon meer
OrganisatieSaxion
OpleidingHBO-ICT
Datum2023-04-01
TypeBachelor
TaalNederlands

Op de HBO Kennisbank vind je publicaties van 26 hogescholen

De grootste kennisbank van het HBO

Inspiratie op jouw vakgebied

Vrij toegankelijk