Contact: Jamilla Woltman - jamilla.woltman@profit4cloud.nl
Opdracht
Het eenvoudig kunnen uploaden van foto's een core feature van veel soorten applicaties: van het verzamelen van foto's van een conferentie of interne activiteit tot het laten insturen van inzendingen voor een opdracht, er zijn talloze use cases te bedenken voor zo'n tool, en het bedrijf verwacht deze dan ook te integreren in meerdere doeleinden. Er zijn vanuit verschillende teams binnen het bedrijf veel functionele wensen verzameld voor deze foto manager, maar de core functionaliteit bestaat uit:
- Het kunnen uploaden van foto's
- Het weergeven van geuploade foto's met watermerk
Het bedrijf waarvoor je deze opdracht doet schrijft al hun applicaties in Java, en wil deze tool kunnen deployen op AWS (Amazon Webservices) om zo zelf minimaal onderhoud te hebben aan de applicatie. Er is echter nog een belangrijke requirement: de tool moet nagenoeg niets kosten wanneer het niet gebruikt wordt, maar automatisch meeschalen wanneer we voor een korte activiteit plotseling heel veel traffic hebben. Op basis van deze requirements is er een selectie gemaakt voor het gebruik van serverless AWS diensten, zoals AWS Lambda als runtime, AWS S3 voor storage en DynamoDB als database.
Ze hebben in het verleden slechte ervaringen gehad met het draaien van Java op AWS Lambda: omdat lambda pas een applicatie start wanneer er een request binnen komt, zit je met de opstarttijd van de applicatie bij een eerste request, wat in het verleden zo meerdere seconden kan zijn geweest. Gelukkig is er een nieuwe technologie beschikbaar waarmee ze hopen dit soort applicaties heel schaalbaar te draaien: het compileren van Java naar native code met behulp van GraalVM. Daarom willen ze dat deze tool hierin geschreven wordt.
Wanneer we deze basis werkend hebben op de gewenste technologie, is er nog een hele lijst ideeen verzameld die als "nice to have" bestempeld zijn! Denk aan het automatisch controleren of foto's wel gepast zijn of laten detecteren van gezichten en andere objecten, image editing functionaliteit als het roteren, bijsnijden of aanpassen van de kleur van foto's, het automatisch genereren van een collage van het evenement - maar wat we hiervan eventueel nog oppakken laten we graag afhangen van de kennis en interesses van het team dat deze opdracht oppakt!
Technische Constraints/ Wensen
- AWS (Lambda, S3, DynamoDB),
- GraalVM Native Compilation (Micronaut of Quarkus framework)