Waarom een Drupal website?
Drupal, het CMS voor MKB en groot bedrijf. Geschikt voor informatieve content gedreven omgevingen en zeker ook voor de ontwikkeling van uitgebreide en geavanceerde systemen. Maar waarom zou je voor Drupal kiezen, wat maakt Drupal zoveel beter dan andere systemen en waarom kiest Atom voor het ontwikkelen met Drupal?
Eind 2022 is Drupal 10 uitgekomen. Drupal 10 is als het ware een opgeschoonde versie van Drupal 9. Drupal 10 is de laatste minor release (update) van Drupal 9 en heeft dezelfde functionaliteit. In dit artikel leggen we uit waarom het Drupal CMS een goede keuze is en wat de voordelen van Drupal 10 zijn ten opzichte van eerdere Drupal versies en andere systemen.
Kies je voor een Drupal 10 website? Kies voor Atom, een meervoudig prijswinnende ontwikkelaar van hoogstaande Drupal websites en applicaties.
Wij ontwikkelen hoogstaande Drupal omgevingen zoals
corporate websites, portals, apps, intranetten, mijn omgevingen en koppelingen.
Open Source CMS
Drupal is een open source content management systeem (CMS), dit betekent dat de broncode (sources) publiekelijk, vrij en kosteloos beschikbaar is om te kopiëren, gebruiken en aan te passen. Er zijn geen licentiekosten of auteursrechten aan verbonden. De open source software wordt (door)ontwikkeld en uitgebreid door de community, bestaande uit leveranciers, professionals en enthousiastelingen.
Drupal heeft een grote community en daarmee veel updates en uitbreidingen. Nu denk je wellicht, ‘ja, maar dat is toch ook zo bij andere open source CMS systemen, wat maakt Drupal daarin dan zo uniek?’
Bij Drupal zijn naast het CMS ook de modules & plugins onder de open source licentie beschikbaar. Dat is wat Drupal zo uniek maakt. De meeste CMS systemen, zoals bijvoorbeeld Wordpress, hebben veel betaalde extensies. Met Drupal kunnen updates en uitbreidingen, net als Drupal core, gratis gebruikt worden; dat reduceert de ontwikkelkosten aanzienlijk. Deze modules worden gecentraliseerd beheerd, waarbij wordt toegezien op code kwaliteit en veiligheid. Lees hierover meer onder het kopje ‘veiligheid’.
Met de bestaande modules van Drupal is heel veel mogelijk, maar heb je meer specifieke wensen en eisen, waaraan niet kan worden voldaan met de standaard functionaliteit, dan is dat voor een professionele Drupal specialist, zoals Atom, geen enkel probleem. Middels maatwerk, zowel qua uiterlijk als functionaliteit, zetten wij het Drupal systeem volledig naar onze hand om het aan te laten sluiten bij de behoefte van je organisatie/bedrijf.
Schaalbaarheid van Drupal
Drupal biedt direct na installatie veel basis functionaliteit en is uitbreidbaar met duizenden modules en plugins, beschikbaar vanuit de Drupal community. Drupal heeft een zeer sterk en flexibel rollen- en rechten systeem en workflow mogelijkheden, waarmee een complexe informatie architectuur omgezet kan worden in een goed beheersbare en gestructureerde flexibele content en procesflow omgeving.
Een krachtig content management systeem(CMS) is slechts het begin, want de mogelijkheden binnen Drupal zijn eindeloos. Vanaf Drupal 8, en dus ook Drupal 10, bevat de core multisite en meertaligheid en is het mogelijk meerdere (meertalige)websites te beheren binnen één omgeving. Landen, afdelingen, (sub)merken en campagnes kunnen binnen die omgeving los van elkaar opereren.
Op basis van de nieuwe architectuur sinds Drupal 8 is het mogelijk om nu met Druapl 10 nog sneller uitgebreide en geavanceerde projecten en omgevingen te realiseren, zoals corporate websites, portals, intranetten, mijn omgevingen, koppelingen en andere integraties.
>> meer over Drupal ontwikkeling
Overbelasting? Dat is geen zorg met Drupal. Drupal is voorbereid en in te richten op grote bezoekersaantallen en hoge piekbelasting. De omgeving zal probleemloos blijven presteren. Dat bewijzen de meerdere high traffic websites en omgevingen in de portfolio van Atom. Een goed voorbeeld is de op Drupal draaiende website https://www.telegraaf.nl/ van de Telegraaf Media Groep waaraan Atom mee ontwikkelde, of andere omgevingen die gedurende campagne periodes te maken hebben met flinke piekbelasting, zoals voor Total Nederland, Alzheimer Nederland, Mytaxflow en War Child.
Technische nieuwe basis
Vanaf Drupal 8 is de technische basis van Drupal nog steviger door deze op Symfony te baseren. De nieuwste versie biedt een pakket aan functionaliteiten waarmee een eindeloze variëteit aan geavanceerde, hoogstaande oplossingen kunnen worden gecreëerd. Drupal 10 draait weer op een nieuwere versie van Symfony dan Drupal 9.
Een aantal veel gebruikte Drupal modules zijn naar de core van Drupal verhuisd, zoals o.a. een WYSIWYG editor en de views en media module. Dit resulteert in een nog betere ondersteuning en doorontwikkeling van deze populaire functionaliteiten in Drupal.
Het hook systeem en het verouderde procedureel programmeren werd vervangen door populaire technologieën en objectgeoriënteerde methodologieën. Er wordt gebruik gemaakt van Symfony-componenten zoals TWIG, de flexibele, snelle en veilige template-engine voor PHP. Nog onervaren Drupal front-end developers ontwikkelen hiermee direct gemakkelijker mee op een Drupal project. Configuraties vonden hun weg van de database naar het eenvoudig te gebruiken en mens leesbare YAML.
Een van de voordelen is dat middels upgrade-paden het nu en in de toekomst eenvoudiger zal zijn om bijvoorbeeld van Drupal 9 naar Drupal 10 en nieuwere versies over te gaan. Van Drupal 7 over naar een latere versie betekent in alle gevallen een volledige herbouw van het systeem.
Lees meer over de migratie en overgang van Drupal 7 naar Drupal 10 .
Veiligheid (Drupal vs. Wordpress)
Als gesproken wordt over CMS systemen dan worden bij Drupal direct de begrippen veiligheid, openheid/transparantie en regelmatige updates genoemd. Het is inderdaad een van de onderdelen waarop Drupal, door haar totaal andere aanpak, hoog scoort en voor wordt geroemd. Mede hierdoor is Drupal de keuze van grote bedrijven en overheden. Maar eigenlijk zou elke organisatie veiligheid belangrijk moeten vinden en hiervoor de betrouwbaarheid van Drupal moeten verkiezen boven elk ander CMS, zoals bijvoorbeeld Wordpress, Joomla of Typo3.
Naast dat Drupal vanuit de architectuur een sterke basis voor een veilig systeem neerzet is het vooral haar aanpak die het verschil maakt. Voorbeelden daarvan zijn: gebruikers toegang controle(Rollen en rechten), Database encryptie, patching en beperking van Denial of Service-aanvallen (DoS)
Drupal heeft haar distributie van modules gecentraliseerd. Een Drupal security team van ruim 30 developers rapporteren, schrijven richtlijnen voor veilige code, onderhouden, ondersteunen en zien toe op de Security advisory process and permissions policy. Wanneer er een mogelijk veiligheidsrisico is geconstateerd wordt deze aan het security team gemeld. Samen met de module ontwikkelaar wordt tot een oplossing gekomen, waarna publiekelijk het risico, tegelijk met de oplossing, wordt gecommuniceerd. Deze open en transparante aanpak, waarbij bij voorbaat al veel beveiligingsproblemen volledig voorkomen worden door de sterke coderingsstandaarden en het strikte proces voor het beoordelen van community-codes van Drupal, is wat dit systeem zo veilig maakt ten opzichte van andere CMS systemen; waar veiligheidslekken soms niet eens aan het licht komen. Bij andere CMS systemen zoals Wordpress, Typo3 en Joomla, zonder zo'n aanpak, worden in sommige gevallen onveilige modules nog jaren gebruikt zonder dat het lek gedicht wordt.
Drupal is uniek door zijn controle op processen vanuit de community, ofwel software van derden. Puur kijkend naar de core is Drupal misschien vergelijkbaar met andere systemen, maar het zijn juist de plugins en modules van derden die andere systemen zo kwetsbaar en onveilig maken.
Atom hanteert voor het schrijven van veilige en goede code de volgende standaarden:
- Drupal Coding Standards
- DrupalPractice Coding Standards
- PHPstan Level 9
Bij het bouwen van een website heb je de keuze om een van de vele bestaande CMS-pakketten (Drupal, Wordpress, Joomla, Typo3 etc) te gebruiken, een eigen CMS te (laten) ontwikkelen, een Cloud dienst te gebruiken of een website zonder CMS te bouwen. Drupal als basis is vaak de beste optie, omdat de basis CMS-functionaliteit (zoals het rollen- en rechten systeem en content beheer) duizenden uren ontwikkeling achter de rug heeft, waaronder jarenlang testen van gebruikers, bugfixing en optimaliseren van de beveiliging.
Drupal rollen en rechten
Veiligheid van een CMS valt of staat voor een groot deel met de architectuur, de processen en omgang met externe code van derden. Zoals in het hoofdstuk ‘Veiligheid (Drupal vs. Wordpress)’ te lezen, heeft Drupal dit beter voor elkaar dan welk ander CMS ook.
Een andere belangrijk item hierin is de inrichting en configuratie van zo'n systeem. Wie is geauthenticeerd(toegang) en vervolgens welke autorisatie(mogelijkheden) heeft iemand binnen het systeem. Drupal heeft een geweldig rollen- en rechten systeem om dat te beheren. Dat zorgt voor veiligheid en biedt de mogelijkheid om op een eenvoudige manier, middels configuratie en de ‘out of the box’ functionaliteit van Drupal, een uitgebreid en complex werkproces digitaal in te richten en te beheren.
Een goed ingericht rollen- en rechten systeem zorgt ervoor dat gebruikers niet méér kunnen doen dan bedoeld binnen hun rol. Bij veel datalekken en hacks, niet alleen in Drupal maar in alle CMS systemen, is het vaak de gebruiker waardoor het fout gaat en waardoor onrechtmatig toegang wordt verkregen. Hier zijn gelukkig diverse oplossingen voor, zoals de Drupal module Password Policy, waarmee regels zijn in te stellen waar bijvoorbeeld een wachtwoord aan moet voldoen(cijfers, nummers, hoofdletters, etc.) voordat Drupal deze accepteert. Ook kan ingesteld worden op welke momenten een wachtwoord verloopt.
De veiligheid van Drupal kan nog verder worden uitgebreid met bijvoorbeeld Two-factor authenticatie, waarbij je bijvoorbeeld inloggen op Drupal mobiel moet bevestigen.
Organisaties met een groot IT-landschap, dus naast een website of applicatie in Drupal nog veel andere omgevingen, doen er verstandig aan om authenticatie en eventueel autorisatie via een Identity en Single sign-on (SSO) provider te laten verlopen, zodat authenticatie en (deels) autorisatie centraal beheert kan worden. Zo kan bijvoorbeeld bij het uit dienst treden van een werknemer toegang worden ontzegt tot alle applicaties, zonder dat dit handmatig per applicatie nagelopen dient te worden.
Drupal workflow
Als bedrijf is en wordt het steeds belangrijker om de bedrijfsprocessen zo (kostentechnisch) efficiënt mogelijk in te richten door te digitaliseren en automatiseren. En zeker wanneer er gebruikers zoals klanten, partners of leveranciers betrokken zijn wil je dat het overzichtelijk en gebruiksvriendelijk werkt. Onder andere wil je dat een gebruiker niet meer kan en ziet dan voor zijn of haar rol noodzakelijk is. Drupal onderscheidt zich op dat vlak met haar sterke rollen- en rechten systeem al van de concurrentie maar gaat nog een stap verder met een Drupal workflow module van Drupal 10.
Vanaf Drupal 8 en dus ook in Drupal 10 is de Drupal workflow module naar Drupal core verhuisd. Dit resulteert in een nog betere ondersteuning en verdere ontwikkeling van deze module die in veel standaard functionaliteit voorziet, nodig bij het digitaliseren en automatiseren van processen. Dit maakt dat Drupal nu ‘Out of the box’ nog beter geschikt en voorbereid is voor de ontwikkeling van mijn omgevingen, intranetten, extranetten en andere proces gedreven omgevingen.
Met de Drupal workflow module en standaard geleverde content beheer workflow kan eenvoudig en snel een geavanceerd en uitgebreide content workflow worden opgezet; waarbij nieuwe items bijvoorbeeld eerst worden gecontroleerd, gescheduled voor publicatie in de toekomst en na bepaalde tijd automatisch worden gearchiveerd. Met deze keuze, zeker gecombineerd met de Drupal Layout Module, en daarmee het toegenomen gemak van content beheer, heeft Drupal als CMS weer een flinke stap gemaakt en haar rol als enterprise CMS voor grote contentrijke omgevingen verstevigd.
Snelheid van Drupal
Volgens Google verlaat de meerderheid van de sitebezoekers een website als een pagina meer dan 3 seconden nodig heeft om te laden. Atom ontwikkelt naast (corporate) websites vooral ook webapplicaties, intranet/extranet, portals en klantomgevingen. Onze ervaring is dat dergelijke omgevingen vaak zowel visueel als qua gebruikersgemak achterlopen, minder aandacht krijgen op dat gebied, dan de commerciële website. Je zou kunnen beweren dat snelheid daar wellicht minder van belang is, omdat de gebruikers vaak al klant of werknemer zijn. Toch moet ook daar de impact van een systeem dat snel en eenvoudig in gebruik is, op het plezier van efficiency en nauwkeurigheid van werken, niet worden onderschat..
Drupal is direct ‘out of the box’ voorzien van geavanceerde functionaliteit om goed te presteren, ook onder grote druk. Zo is het core caching and aggregatie systeem van Drupal enorm krachtig. Wanneer iemand een pagina op een website bezoekt gaat de server berekeningen maken en gegevens ophalen om die pagina, bestaande uit verschillende onderdelen, volledig te tonen. Daarbij moet je denken aan de navigatie, footer, bepaalde blokken en andere pagina elementen. Het opbouwen van een pagina is bij een website datgene wat het meeste tijd kost, niet het versturen of als gebruiker downloaden van de pagina zelf.
Wanneer caching wordt gebruikt dan wordt het resultaat van die berekeningen opgeslagen op een sneller medium, bijvoorbeeld het geheugen van de server, zodat deze bij een volgend bezoek een eerder berekend statisch component of gehele pagina zeer snel kan tonen.
Drupal 10 heeft Drupal Bigpipe caching in de core, hetzelfde mechanisme als bijvoorbeeld Facebook gebruikt voor caching. Waar normaal gesproken de pagina pas naar de bezoeker verzonden wordt als deze volledig gebouwd is, worden met Bigpipe caching eerst de statische onderdelen gestuurd die de gebruiker op dat moment kan zien, zoals de header, menu en een eerste stuk content; de rest van de pagina, dynamische data en verdere invulling worden later gestuurd. Daardoor is het mogelijk om, voor het gevoel van de gebruiker, een website waarvoor 3-4 seconden nodig zijn, al binnen een halve seconde (0,5 sec) volledig op het scherm te tonen, terwijl ongemerkt de rest van de pagina wordt opgebouwd en getoond. Het resultaat: is een enorm snelle gebruikerservaring.
Een typische website of applicatie gebouwd met Drupal of ander systeem heeft veel CSS en Javascript(JS) bestanden. Het samenvoegen van die bestanden noemen we aggregatie en zorgt ervoor dat het aantal verzoeken aan de server om bestanden (HTTP requests) flink gereduceerd kan worden, wat de snelheid van de website flink te goede komt. Voor een goede werking en uitstekend resultaat is een juiste configuratie van zowel caching als aggregatie van groot belang.
Gemak van content beheer in Drupal
Met de komst van Drupal 8, 9 en nu 10 heeft Drupal als platform een flinke stap gemaakt. Als het gaat om het beheren van content hebben content marketeers en redacteuren in Drupal een betrouwbare partner en ware vriend gevonden. Direct bij installatie(out of the box) beschikt Drupal over geweldige en behulpzame functionaliteit, verdere uitbreiding en aanpassing naar wens is mogelijk middels configuratie en extra modules. Maar laten we het vooral hebben over de standaard functionaliteit van Drupal.
Drupal 10 heeft nu in core ingebouwd een WYSIWYG (what-you-see-is-what-you-get) content editor; gekozen is voor de al in Drupal 7 enorm populaire CKEditor. Door als Drupal een keuze te maken voor een WYSIWYG content editor, kan vanuit de community meer ondersteuning en doorontwikkeling worden verwacht om deze functionaliteit nog beter te maken.
Hoewel een WYSIWYG editor prima is voor het opmaken van eenvoudige informatieve pagina’s, is het geen fijne manier om complexe contentrijke pagina’s, zoals landingspagina’s, samen te stellen. Je wilt o.a. functionaliteiten als standaard blokken en templates kunnen toevoegen; zodat je de vrijheid van eigen indeling en content hebt, maar ook kunt vertrouwen op de consistente doorvoer van de huisstijl bij het zelf schikken en toevoegen van functionaliteiten en koppelingen die Drupal biedt.
In Drupal 7 zijn daar in de vorm van modules verschillende oplossingen voor. Door de ontzettend snelle ontwikkeling die daarmee in Drupal 7 is doorgemaakt kunnen we nu van die kennis profiteren en heeft Drupal ervoor gekozen om vanaf Drupal 7 een van die oplossingen ‘layout builder’ te omarmen en in core te implementeren en te ondersteunen. Hiermee kan visuele consistentie en de kracht van relaties, rechten, overzichten en vele andere technische zaken, gecombineerd worden met de vrijheid van indeling en content. Content beheer in layout builder werkt via een eenvoudige en prettige interface met onder de motorkap de kracht van Drupal.
Mobile first
Mobiele websites en responsive web, ofwel responsive websites, kwamen zo’n 10 jaar geleden, bij het uitkomen van Drupal 7, pas net kijken, maar maakten vanaf 2011 een flinke opmars, waarna in 2018 het omslagpunt kwam met meer browserverkeer via mobiel ten opzichte van desktop. Als je nu een Drupal website laat bouwen, dan wil je die dus vanuit de gedachte dat mobiel het belangrijkst voor je doelgroep is en daarna desktop, ofwel een mobile first approach. Drupal 8 en Drupal 10 is vanuit deze gedachte ontwikkeld. Drupal 10 heeft een goed werkend responsive interface, admin en beheerpaneel en geweldige responsive thema's, tabellen en afbeeldingen.
Headless decoupled
Headless is het scheiden van de back-end, de opslag van content, en front-end, de presentatielaag. Het Drupal CMS wordt dan opgezet als content repository/opslag en kan middels RESTful API’s worden bevraagd. Via een headless opzet kan op die manier content worden gedistribueerd naar verschillende kanalen, zowel web als non-web; denk aan IoT oplossingen, apps, wearables, VR, narrowcasting en meer.
Er zijn drie manieren waarop je een Drupal website kan opzetten: traditioneel, headless en decoupled. Wat Drupal zo krachtig maakt is de out-of-the-box ondersteuning die het biedt voor elk van deze drie architectuur keuzes. Drupal limiteert je niet tot een gekoppelde(coupled/traditioneel) aanpak, maar ook niet tot een ontkoppelde(headless/decoupled).
>> meer over headless & decoupled
Zoekmachine optimalisatie(SEO) van Drupal
Een snelle Drupal website en goede gebruikerservaring op verschillende schermen en formaten is niet alleen voor bezoekers van de website belangrijk, maar ook voor Google. Vanaf Drupal 8 en dus ook in Drupal 10, de nieuwste versie van Drupal, zit je met de mobile first aanpak en tools voor een snelle Drupal website alvast goed. Daarnaast is Drupal middels beschikbare modules in de community nog verder uit te breiden om zoekmachine optimalisatie(SEO) activiteiten en resultaten te monitoren, denk bijvoorbeeld aan Yoast SEO.
Onderdeel van Drupal core is de RDF module, wat staat voor Resource Description Framework, waarmee het mogelijk is om content op de Drupal website van metadata te voorzien die andere applicaties helpt de relatie(s) en attributen te begrijpen. Minimaal voor zoekmachine optimalisatie hierbij is natuurlijk de bekende Meta title en Description die worden gebruikt voor de weergave in zoekmachine Google.
Drupal heeft daarnaast een mooi systeem voor het genereren van de URL’s voor pagina’s op basis van zelf te bepalen patronen, bijvoorbeeld op basis van de pagina titel.
Toegankelijkheid van Drupal
Het internet toegankelijk maken voor iedereen; Drupal heeft zich dit ten doel gesteld en maakt de belofte waar dat alle functies in Drupal core voldoen aan de richtlijnen van het World Wide Web Consortium (W3C): WCAG 2.0 en ATAG 2.0. Drupal is daarmee direct ‘out-of-the-box’ goed voorbereid op het ontwikkelen van toegankelijke websites.
Sinds 1 juli 2018 is het voor Nederlandse overheidsinstanties verplicht dat websites en mobiele apps voldoen aan de toegankelijkheidseisen. Er moet worden voldaan aan de toegankelijkheidsnorm WCAG 2.1, niveau A + AA.
De overheid is het dus verplicht te voldoen aan de toegankelijkheidseisen, maar het zou mooi zijn als alle websites voor iedereen toegankelijk zijn. Ieder mens heeft immers het recht deel te nemen aan de maatschappij en websites, apps en het internet zijn belangrijke media, onlosmakelijk verbonden met onze manier van leven. Wanneer websites en apps niet of slecht toegankelijk zijn voor mensen met een beperking dan worden zij buitengesloten. Daarom hebben al veel bedrijven, als onderdeel van Maatschappelijk Verantwoord Ondernemen, als doel gesteld om te voldoen aan de webrichtlijnen WCAG.
Een belangrijk deel om te voldoen aan WCAG 2.1, niveau A + AA richtlijnen is al afgevangen met de keuze voor Drupal, dat standaard voorziet in toegankelijkheid op niveau WCAG 2.0. Dit is al een flinke besparing in te maken kosten en Atom heeft daarnaast de benodigde kennis en ervaring om het uit te breiden naar WCAG 2.1.
Meertaligheid
In Drupal 7 waren voor een meertalige Drupal website nog diverse extra modules nodig, maar in Drupal 10 is meertaligheid onderdeel van Drupal core. Met de opname van meertaligheid in de core van Drupal is de integratie met Drupal functionaliteit verbeterd en in zijn geheel een stuk gebruiksvriendelijker en eenvoudiger geworden. Onder andere de taaldetectie en het schakelen tussen verschillende talen is verbeterd. Alle entiteiten in Drupal en alle interface onderdelen zijn standaard en eenvoudig te vertalen.
Drupal multisite and domains
Content beheren en distribueren vanaf een locatie kan natuurlijk middels een headless/decoupled opzet, maar dat maakt het nog geen multisite omgeving. Bij een multisite omgeving weet Drupal precies welke content bij welke omgeving of domein hoort. Het sterke rollen- en rechten systeem van Drupal helpt bij het inregelen van welke gebruiker toegang heeft tot het maken, beheren en verwijderen van content op welke omgeving.
Wanneer je veel omgevingen nodig hebt die kopieën van elkaar zijn, erg aan elkaar gerelateerd zijn of gebruik maken van dezelfde functionaliteit, dan kies je voor een Drupal multisite. In plaats van code te kopiëren, en die ook los te moeten onderhouden, maken de omgevingen gebruik van dezelfde code en wordt de scheiding op databaseniveau/rollen en rechten niveau aangebracht.
Toekomstbestendigheid - The last big migration
Drupal 8 en 9 hebben haar end of life al bereikt en Drupal 7 zal stoppen per januari 2025. Dat wil zeggen dat er geen security updates en andere releases meer uitkomen. De overstap van Drupal 9 naar 10 wordt redelijk eenvoudig, zeker wanneer de leverancier, zoals Atom dat doet, hier tijdens de ontwikkeling rekening mee houdt.
Update: End of life Drupal 7 nu 1 januari 2025.
Met de nieuwe architectuur van Drupal 10 zal het ook eenvoudiger zijn om naar volgende versies te upgraden. Van Drupal 7 naar een nieuwe versie betreft nog echt een volledige herbouw van het systeem; dit zal in de toekomst niet meer zo zijn. De overgang van Drupal 7 naar een nieuwe versie zoals Drupal 10 wordt daarom ook wel the last big migration genoemd.
Nu voor Drupal 10 kiezen is een keuze voor een oplossing die minimaal 5 tot 10 jaar mee gaat.
>> Lees migratie Drupal 7 naar Drupal 10
>> Lees in 5 stappen over op Drupal 10