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

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.

React Native up-to-date

We hebben een lange tijd niet meer beheerde React Native applicatie weer volledig up-to-date gebracht met recente packages. De applicatie is nu weer stabiel.

In-app video recording

Binnen React Native ontwikkelen we op dit moment een demo/proof of concept om video's op te kunnen nemen. Zo kan een video dialoog worden gestart.

ElasticSearch in de cloud

ElasticSearch draaien we nu voor een klant bij Amazon Webservices. Hierdoor kunnen we vrijwel onbeperkt schalen wanneer nodig.

CraftCms 3

Craft CMS 3 is bijna uit. Wij zijn al projecten gestart in Craft3, en hebben een selectie van bruikbare plugins gemaakt.

App-Api project afgerond

De API voor een nieuwe app is af! Met Symfony bouwden we een API rondom een bestaande database en applicatie.

Serverloze cloud-architectuur

Voor een API project hebben we een volledig serverloze cloud-architectuur ontworpen. Er zijn nauwelijks vaste kosten.

Sockets voor streaming en real time data

Vorige maand hebben we socket technologie ingezet om real time data naar apps en websites te streamen. Hiervoor gebruiken we NginX.