Techniek en architectuur

Middleware laten bouwen

Middleware klinkt ingewikkeld, maar het is gewoon een tussenlaag. Nu praat je voorraadsysteem rechtstreeks met je webshop, je webshop met je boekhouding en die weer met je magazijn. Met een tussenlaag praat elk systeem alleen nog met het midden, en het midden regelt de rest.

Wat is middleware?

Het verschil is simpel rekenwerk. Vijf systemen die elkaar allemaal rechtstreeks kennen, leveren twintig koppelingen op. Vervang je er een, dan mag je er vier herbouwen. Met een tussenlaag heb je er vijf, en raakt zo'n vervanging er precies eentje.

Voor je klanten verandert er dus niets als je middleware laat bouwen. Voor jou verandert er rust. Je kunt een pakket vervangen, van leverancier wisselen of een verkoopkanaal toevoegen zonder dat de rest van je systemen dwars gaat liggen.

Wat een tussenlaag je oplevert

Middleware is saai werk, en dat is precies de bedoeling. Dit levert het je op zodra je meer dan een paar koppelingen hebt draaien.

Een systeem vervangen zonder dominosteentjes: Stap je over op een ander voorraadpakket of een andere webshop, dan pas je een koppeling aan in plaats van vier. Dat is het verschil tussen weken en maanden. En vaak tussen wel of niet durven.

Bij een storing raakt er niets kwijt: Ligt een systeem er even uit, dan blijven de berichten netjes in de rij staan en gaan ze door zodra het weer draait. Nu is dat vaak een order die niemand mist tot de klant erover belt.

Storingen zie je op een plek: Meldingen, fouten en nieuwe pogingen komen samen in de tussenlaag. Je ziet in een scherm dat er vannacht negen berichten zijn blijven hangen, in plaats van dat je het in vijf systemen bij elkaar zoekt.

Een nieuw kanaal is zo aangesloten: Een marktplaats, een app of een tweede webshop erbij is een stekker in het midden, en geen nieuwe reeks koppelingen naar alles. De tweede en de derde kosten daardoor een fractie van de eerste.

Voor wie is dit

Bij twee systemen heb je geen tussenlaag nodig. Vanaf een stuk of vijf koppelingen verdient middleware zich terug:

  • Je koppelingen zijn stuk voor stuk door een andere partij gebouwd
  • Je durft een pakket niet te vervangen omdat er vier koppelingen aan hangen
  • Je merkt pas dat een koppeling stilstaat als een klant erover belt
  • Je wil een verkoopkanaal erbij en hoort dat dat een heel nieuw project is
  • Er is een collega die als enige weet hoe het allemaal aan elkaar hangt

Wat je krijgt

  • Een plek waar staat wat waarheen gaat, gegeven voor gegeven
  • Een wachtrij die vanzelf opnieuw probeert, zodat een systeem dat even weg is niets kwijtraakt
  • Meldingen op een plek, met een seintje bij jou voordat je klant iets merkt
  • Een testomgeving waarin je een wijziging kunt proberen zonder je echte werk te raken
  • Per bericht een spoor: wanneer het binnenkwam, wat ermee gebeurde en wat eruit ging
  • Uitleg op papier, zodat een andere partij het ook kan overnemen

Hoe we het bouwen

Tekenen wat er nu is. We beginnen bij de koppelingen die er al liggen en tekenen ze uit, inclusief de stappen die iemand met de hand doet. Dat plaatje is meestal het eerste moment dat iemand het geheel ziet. En er rolt bijna altijd een koppeling uit die al jaren niemand meer gebruikt.

Een voor een verhuizen. Daarna gaat er een koppeling naar de tussenlaag, en die draait een tijdje naast de oude. Pas als de aantallen aan beide kanten gelijk zijn, gaat de oude eruit. Zo staat er nooit alles tegelijk op het spel.

De bewaking aanzetten. Als alles verhuisd is, zetten we de bewaking aan: een grens per stroom, een melding bij stilstand en een overzicht per dag. Vanaf dat moment weet jij van een storing voordat je klant je belt.

Wat kost middleware?

Middleware met de eerste twee koppelingen erop is het beginpunt. Elke koppeling daarna kost een fractie daarvan, afhankelijk van hoe makkelijk het systeem aan de andere kant zich laat aansluiten.

Die andere kant bepaalt de prijs bijna helemaal. Een pakket met een goede API, een vaste manier waarop twee systemen gegevens uitwisselen, is een week werk. Een pakket dat alleen 's nachts een bestand neerzet is drie weken, plus een paar aannames die je eerst wil testen.

Daarnaast lopen hosting en beheer door, inclusief de bewaking. Een tussenlaag die niemand in de gaten houdt is een tussenlaag waar je niets aan hebt.

Waarom Mediavisie Web

We bouwen middleware zelf en niet op een pakket waar je per bericht of per koppeling afrekent. Zo'n rekening loopt juist op wanneer het goed met je gaat, en dat is een raar moment om meer te gaan betalen.

Systemen koppelen sinds 2008 levert kennis op die in geen enkele handleiding staat: welk pakket zijn datums een uur verschoven teruggeeft, welke koppeling er stilletjes mee ophoudt na duizend regels. Dat weten we voordat we beginnen.

De broncode is van jou en de opzet is expres saai: gewone techniek, leesbare code, tests die zichzelf uitvoeren bij elke oplevering. Een tussenlaag moet je over vijf jaar nog kunnen uitleggen aan iemand die hier vandaag nog niet werkt.

Waar je op moet letten

Een tussenlaag is zelf ook een systeem, en dus ook onderhoud. Bij twee koppelingen is dat de moeite niet waard, tenzij je zeker weet dat er meer aankomen. En eerlijk is eerlijk: je systemen worden er niet eenvoudiger van, wel overzichtelijker. Het aantal koppelingen daalt flink, het aantal systemen stijgt met een. Twijfel je of middleware bij jou uitkan? Leg het ons een keer voor, dan rekenen we het samen na.

De techniek eronder

Alle techniek

Waar we het mee bouwen.

  • Omgeving

    Docker

    Iedereen werkt in dezelfde omgeving, en die omgeving lijkt op productie. Scheelt de klassieke verrassing bij livegang.

  • Server

    Nginx

    De webserver ervoor. Doet het uitserveren van bestanden en de cache voordat PHP eraan te pas komt.

  • Netwerk

    Cloudflare

    Ervoor als schild en als versneller. Vangt aanvallen af en levert bestanden vanaf een punt bij je bezoeker in de buurt.

  • Database

    PostgreSQL

    Voor applicaties met eigen gegevens. Sterk in relaties, en het houdt zich aan wat je afspreekt over je data.

  • Cache

    Redis

    Houdt vast wat net is uitgerekend. Scheelt bij portalen en webshops het meeste wachten.

  • Server

    Ubuntu

    De basis onder onze servers. Lange ondersteuning, dus je hoeft niet elk jaar mee met een grote sprong.

  • Uitrollen

    GitHub Actions

    Bouwt, test en zet live bij elke wijziging. Faalt een test, dan gaat er niets naar productie.

Werkwijze

Hoe we het aanpakken.

Van het eerste gesprek tot doorbouwen na livegang. Vier fases, en je weet bij elke fase wat er af is en wat er nog komt.

  1. 1 tot 2 weken

    Uitzoeken

    Wat er moet komen en wat er al ligt

    We brengen in kaart welke systemen mee moeten, wie het straks beheert en waar het vorige traject op vastliep. Daar komen de uitzonderingen boven water die later de planning bepalen.

    Lees verder over Uitzoeken
  2. Eén week

    Afbakenen

    Van wensenlijst naar een plan met een prijs

    We knippen het werk in stukken die los opgeleverd kunnen worden, en zetten er een prijs en een volgorde op. Daarbij spreken we af wat er in de eerste versie zit en wat later komt.

    Lees verder over Afbakenen
  3. 6 tot 12 weken

    Ontwerpen en bouwen

    Eerst de schermen, dan de techniek eronder

    Je kijkt vanaf de eerste week mee op een testomgeving. We leveren in rondes op, te beginnen met het deel dat het meeste werk uit handen neemt, zodat je stuurt op wat je ziet.

    Lees verder over Ontwerpen en bouwen
  4. Doorlopend

    Doorbouwen

    Na livegang begint het pas

    Updates, bewaking en nieuwe functies, met een vast aanspreekpunt dat je project kent. We meten wat er gebruikt wordt, en dat bepaalt waar we het volgende kwartaal aan werken.

    Lees verder over Doorbouwen

Wij werken onder andere voor

Aan de slag

Iets te bouwen?

Vertel wat er moet komen. We denken mee over techniek, haalbaarheid en wat het kost, ook als het plan nog niet rond is.

Een project bespreken
Ontdek jouw mediavisie