Een diepere kijk op hoe Drupal de 4 MACH principes toepast

Blog
Gepost op
Drupal en MACH

Microservices

Is Drupal monolithisch of bij nader inzien eigenlijk toch niet?

API-first

Heb je echt voor alles een API nodig? En hoe zit het met Drupal en API's?

Cloud-native

Drupal is niet Cloud-native. Maar er zijn genoeg tools om je te helpen Drupal in de cloud te draaien.

Headless

Headless of niet, is niet de vraag. Het gaat erom hoe je headless toepast. Drupal heeft een goed evenwicht.

Microservices

Als we een stap terug zetten en naar de modulaire architectuur van Drupal kijken, zien we dat Drupal core inderdaad veel dingen doet en als monolithisch kan worden beschouwd. Drupal's core wordt echter steeds kleiner, waardoor meer en meer core modules naar contrib modules verschuiven. In Drupal 11 zal deze trend nog versnellen.

Hoewel core nog steeds veel doet, is het deze onderlinge afhankelijkheid van data, gebruikers en content die het mogelijk maakt om de meer ambitieuze multi-talen, landen, markten, kanalen, rollen, sites te bouwen... met meerdere integraties voor meerdere persona ervaringen. Aan de andere kant zijn er genoeg voorbeelden van DIY microservice hel, waar klanten externen moeten inhuren om al deze microservices te onderhouden, release management te doen, DevOps, en kennis te onderhouden van alle afzonderlijke services. Er worden veel risico's geïntroduceerd omwille van de snelheid. Dat is niet voor elke organisatie acceptabel. Monolieten worden vaak een grote bal slijk genoemd, microservice kunnen gemakkelijk een grote gedistribueerde bal slijk worden.

Een standaard in Drupal voor de interactie tussen modules en core zorgt voor stabiliteit en stelt de 1 miljoen leden tellende Drupal community in staat het 45k modules tellende ecosysteem van functionaliteit te onderhouden. Dus een beetje packaging en het creëren van waardevolle afhankelijkheden out of the box heeft veel waarde. Als klant geeft de mogelijkheid om je project naar een andere integrator te verplaatsen je ook veel vrijheid. Voor ontwikkelaars, wetende dat er standaarden zijn die het framework brengt, stelt het hen in staat om gemakkelijk projecten over te nemen, en dus minder nood aan helden die de dag redden. Deze herbruikbaarheid is de basis van contribution. Het is ook de basis van industrialisatie in een agency: in staat zijn om alle projecten op dezelfde manier te implementeren zorgt voor maximale onderhoudbaarheid.

De overgang van Drupal op automatische updates is een goede zaak. Het onderhoud van Drupal is ook nog nooit zo eenvoudig geweest. Ja, er is een zekere onderhoudskost aan Drupal en er is een niveau van complexiteit en afhankelijkheid aanwezig. Aan de andere kant is dit nodig om ambitieuze digitale ervaringen te bouwen en al die no-code/low-code kracht aan de sitebouwer te geven met behoud van de vrijheid van de ontwikkelaar.

Tenslotte is Drupal gebaseerd op Symfony, wat de mogelijkheid geeft om aangepaste onderdelen in de applicatie te ontwikkelen door bestaande code te overschrijven. Dit verhoogt de flexibiliteit waar nodig.

Ik geloof dat Drupal een goed evenwicht vindt tussen microservice en monoliet. Core brengt waarde in de zin dat er veel keuzes zijn gemaakt door 20 jaar evolutie. Microservice zijn of niet is niet de vraag. Het is hoe je het balanceert en er waarde mee creëert, dat is de vraag.

API-first

Drupal stelt de meest relevante gegevens beschikbaar via zijn API's. Kan het nog beter? Ja, er is zeker ruimte voor verbetering, maar heeft men voor alles een API nodig? Nee. Het juiste evenwicht vinden tussen geen API's vs. voor alles een API hebben is beter. API's waren relevant en ik geloof dat Drupal dit vrij goed doet. API-first zijn is niet het verkoopargument. Waarde halen uit API's wel. Drupal is perfect in staat om elk stukje inhoud of data te leveren via zijn API's om een geweldige klantenervaring te bieden over verschillende kanalen heen.

Cloud-native

Drupal is niet cloud-native, maar bedrijven als aacquia.com, pantheon.io, platform.sh en dropsolid.io helpen je om Drupal in de cloud te draaien. Drupal ondersteunt evenementen zoals de Olympische Spelen, wat betekent dat het behoorlijk schaalbaar is. Is cloud-native ook hier een verkoopargument? Nee, het gaat erom hoe je waarde uit de cloud haalt. Gebruik de cloud waar nodig. Omdat Drupal open is, kun je Drupal ook op je eigen locatie draaien als je datasoevereiniteit wilt garanderen. Bedrijven als amazee.io en dropsolid.io helpen je daarbij.

Laat delen van je stack in de cloud lopen of gebruik cloud services waar dat zinvol is. De cloud kan je ook vastzetten en je kosten uit de hand doen lopen. Door een gevoel van openheid te behouden en je stack te kunnen verplaatsen, houd je een gezonde druk op cloudleveranciers en serviceproviders om de kosten onder controle te houden.

Ook hier geldt: to cloud or not to cloud is niet de vraag. Gebruik het waar het waarde voor u creëert, terwijl u uw soevereiniteit behoudt.

Headless

Is headless op zichzelf een verkoopargument? Nee. De mogelijkheid om inhoud multichannel aan te bieden om de klantervaring over verschillende kanalen te verbeteren, creëert een meer interactieve ervaring voor bijvoorbeeld wizards en search.

Met JSONAPI, GraphQL en native ondersteuning voor aangepaste REST-eindpunten levert Drupal het Hybrid Headless-model. Het kan aan je behoeften voldoen als het gaat om connectiviteit en een flexibel leveringsmodel. Met meer dan 45.000 Drupal-modules integreer je met alle back-endsystemen die je nodig hebt om je bedrijf in beweging te houden. Of je nu een service van buitenaf wilt gebruiken, interactie wilt hebben met een externe service, of gebruik wilt maken van gegevens binnen ons platform voor digitale ervaringen, een krachtig Hybrid Decoupled-model zorgt ervoor dat er geen grenzen zijn aan wat je kunt bereiken.

Waar kan Drupal verbeteren? Door zijn krachtige site-bouw systeem te verbinden met JavaScript front-ends out of the box. Bijvoorbeeld, het verbinden van layout-builder met front-ends out of the box. Er zijn interessante bijdragen om meer JavaScript out of the box te leveren. Next.js voor Drupal maakt het bijvoorbeeld mogelijk om componenten van Drupal out of the box te bouwen. Hier is een demo. Er is ook deze bijdrage over hoe je statische blog sites kunt bouwen met Drupal.

Headless of niet headless is niet de vraag. Het gaat erom hoe je headless gaat. Opnieuw vindt Drupal een goed evenwicht.