Alexandre Peinot

Undersökning av mikrotjänstarkitekturer för bildanalys i kontinuerligt utvecklingssammanhang

Sammanfattning

I det nuvarande sammanhanget med big data behandlas en ökande mängd data varje dag i världen. För att hantera denna ständigt växande arbetsbelastning introducerades mikrotjänstarkitekturer under 2010-talet. Dessa stora skalbara arkitekturer hjälper till att optimera programmens prestanda. Detta behov av optimering av resursanvändning är avgörande i bildanalysdomänen där ostrukturerade data som bilder och video behöver intensiv användning av GPU och CPU.

Denna avhandling studerar befintliga mikrotjänstmönster för att föreslå en implementering av mikrotjänstarkitektur i ett bildbehandlingssammanhang. Experimenten är inriktade på intern kommunikation mellan tjänster, samordning av tjänster och skalning av arkitekturen. För att utvärdera dessa parametrar har tre olika arkitekturer baserat på meddelandekö (RabbitMQ) för intern kommunikation utformats. De realisera alla samma process, men de skiljer sig åt i samordningen av containeriserade tjänster inom arkitekturen och i tjänstens storlek. Vissa tröskelbaserade automatiskskalning baserat på prestandamått för meddelandekö har också testats.

Jämförelsen mellan de tre arkitekturerna baserat på experimentella resultat visar den betydande effekten av tjänsten granularitet på prestanda för en mikrotjänstarkitektur. Att använda små tjänster kan faktiskt öka begärans svarstid om den tid som krävs för att behandla begäran i en tjänst är försumbar jämfört med de omkostnader som orsakas av kommunikation. När det gäller automatisk skalning förbättrar båda testade prestandamått prestandan för de testade arkitekturerna. Men ingen av dem är en perfekt lösning och de båda presenterar för-och nackdelar. Lärdomarna från denna studie kan vara användbara när man implementerar en mikrotjänstarkitektur, men ytterligare experiment skulle behövas för att fastställa en optimal lösning som kan användas i en produktionsmiljö.