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.



Laatste nieuws

Nieuwe migratie naar AWS Cloud

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

Whitelabel

Met enige trots hebben we de laatste tijd gewerkt aan het tot whitelabel maken van een applicatie.

Symfony 4 upgrade

We hebben een project compleet gerefactored van Symfony 3.x naar de laatste 4.x versie

AWS S3 CDN

We hebben twee migraties lopen naar AWS S3 om CDN's op te zetten.

Nieuw leven voor een Craft 2 plugin

We hebben een oude craft 2 plugin aangepast om 'jobs' opnieuw te proberen.

CharlyCares Pagespeed

Hogere Pagespeed/Lighthouse score voor de Charly Cares website.

USMarkets.nl naar Craft CMS

Eind februari was het zover: de grote site USMarkets.nl draait nu op Craft CMS 3.

vrijescholen.nl live

Op woensdag 6 februari hebben we de nieuwe website voor de vereniging van Vrijescholen live gezet. We gebruikten Craft CMS om Wordpress te vervangen.

Handheld Cloud

Een cloud server in de hand. Deze mini worker server kan meedraaien in de media verwerkende productie straat.

Beeldverwerking met AWS Spot fleet

Beeld en OCR verwerking met onbeperkte CPU capaciteit. We ontworpen een systeem met onbeperkte verwerkingskracht.

Snap Service

We hebben een snap service uitgebracht om verdwijnende berichten te maken. Kijk op https://snap.24hoursmedia.com/

Kostenberekening AWS

We hebben een kostenberekening gemaakt voor een klant om hun API bij AWS te laten draaien. De klant verwacht een snelle maar onbekende groei.

Craft Comments Work plugin

Onze CraftCMS plugin 'Comments Work' is nu beschikbaar in de Craft Plugin store. Laat user comments achter op uw content in Craft CMS.

API Stresstest

Vandaag hebben we een API Stresstest uitgevoerd. Voor de test gebruikten we opnames van het gebruik van een app.

AVG/GPDR consent manager

Voor de AVG/GPDR ontwikkelden we een opt-in consent manager voor een project. Deze is voorzien van een api, zodat uit verschillende bronnen ingestemd kan worden.