Beeldverwerking met AWS Spot fleet

Beeldverwerking en OCR kost veel CPU tijd. Dat is geen probleem maar wat als er elke dag tot duizenden beelden verwerkt moeten worden in verschillende beeldformaten? En er dan ook nog OCR/tekstherkenning op toegepast moet worden?

We ontworpen een cloud architectuur die virtueel onbeperkte parallelle verwerkingscapaciteit levert.


“Omdat we voor CPU per seconde betalen, maakt het niet uit of we 10 cpu's inzetten, of 100 cpu'svoor een sneller resultaat - de kosten blijven hetzelfde.”

De basisapplicatie

We hebben eerst een applicatie opgezet als microservice, die alleen de CPU intensieve taken uitvoert:

  • omzetten van beelden naar verschillende formaten en afmetingen, zoals progressive jpeg en webp
  • het omzetten van pdf's naar afbeeldingen van de afzonderlijke pagina's
  • toepassen van OCR/tekstherkenning op deze beelden met een op neurale netwerken gebaseerde herkenningscomponent

Er kunnen duizenden opdrachten verstuurd worden die in een verwerkingswachtrij geplaatst worden. Als de opdracht verwerkt is, komt het resultaat in een resultaten lijst terecht en kan deze opgehaald worden.


De architectuur

Binnen Amazon Web Services hebben we een architectuur opgezet die servers inschakelt naar behoefte. Als er veel opdrachten in de wachtrij staan, worden automatisch servers toegevoegd. Als er na een tijd zo weinig opdrachten over zijn dat servers niets te doen hebben, worden er servers uitgeschakeld.


“We kunnen aan erg goedkope capaciteit in de cloud komen door gebruik te maken van ongebruikte capaciteit”

Bij grote cloud providers zoals Amazon en Google is er veel overcapaciteit - CPU en geheugen dat voor korte tijd ongebruikt is. Deze capaciteit kan zeer voordelig ingekocht worden voor korte periodes. Dit levert kostenbesparingen op van 70-80%.

Omdat het systeem is opgezet als microservice met 'wachtrijen' en queues kan deze hier zeer goed gebruik van maken.


“Door fault tolerance maakt het niet uit welke servers de beelden verwerken. We kunnen overal goedkope servers inschakelen als we willen.”

Het systeem als geheel is fault tolerant. Als een verwerking faalt, wordt deze automatisch door een andere machine opgepakt. Deze aanpak is nodig om efficiënt op- en neer te kunnen schalen.

Een bijkomend voordeel hiervan is dat er zelfs zeer goedkope servers ingezet kunnen worden buiten Amazon. Als deze uitvallen is er niets aan de hand en nemen servers bij Amazon het over.



Geo algoritme

Voor een complex probleem hebben we een geo algoritme ontwikkeld.

Sailing away

Craft CMS website verhuisd naar een LightSail server - performance boost!

Docker is terug

We gebruiken docker weer in onze development workflow.

In eigen beheer

Met hosting in eigen beheer kunnen we snellere sites leveren met een hogere pagespeed ranking.

Interne website Vrijescholen

Nieuwe CraftCMS website vorige week live voor de Vereniging van Vrijescholen

Nieuwe migratie naar AWS Cloud

Een migratie naar een automatisch schalende infrastructuur. Opzetten van een deployment pipeline.