Jamstack: wat en waarom?
In een notendop: Jamstack technologie maakt het mogelijk om websites te bouwen die uitstekende prestaties leveren.
De term JAMstack is oorspronkelijk bedacht door Matt Biilman en is een afkorting voor het gebruik van Javascript, API's en Markdown als technologiestack. Tegenwoordig worden de hoofdletters in JAMstack vaak weggelaten en verwijst de term Jamstack naar een software-architectuurstijl voor webapplicaties.
Jamstack is een nieuwe manier om websites en apps te bouwen die betere prestaties, hogere beveiliging, lagere schaalbaarheidskosten en een betere ontwikkelaarservaring bieden"
Jamstack.org
De belangrijkste kenmerken van een Jamstack-architectuur zijn:
- voortreffelijke prestaties
- goedkoop en makkelijk te schalen
- betere beveiliging
- uitstekende ontwikkelaarservaring
In de volgende secties zoomen we in op elk kenmerk.
Voortreffelijke prestaties
Om te begrijpen waarom Jamstack voortreffelijke prestaties levert, vergelijken we het met een traditionele webarchitectuur.
Traditioneel voert de webbrowser of client een verzoek uit aan de webserver om een webpagina te laden. Op dit verzoek haalt de Web Server de gevraagde content voor de webpagina uit het Content Management Systeem (CMS). En als laatste stap zoekt het CMS de benodigde gegevens op in zijn database. Zoals je kunt zien, omvat elke stap een on-demand pull-gebaseerd verzoek en natuurlijk heeft elk (netwerk)verzoek tijd nodig om te voltooien.
Laten we nu eens kijken naar de Jamstack-aanpak. Opnieuw doet de client een verzoek om een webpagina te laden, maar deze keer neemt hij contact op met een Content Delivery Network (CDN). Op verzoek stuurt het CDN de gevraagde webpagina direct naar de client. Het CDN hoeft de pagina niet te genereren omdat de pagina is gegenereerd en gepusht tijdens het bouwen van het Headless CMS naar het CDN.
Het pushen van webpagina's tijdens het bouwen in plaats van het ophalen van inhoud tijdens runtime maakt het leveren van voortreffelijke prestaties mogelijk.
Goedkoop en makkelijk te schalen
Jamstack bedient webpagina's van een CDN. Een CDN is een geografisch gedistribueerd netwerk van servers dat is gebouwd voor prestaties en hoge beschikbaarheid. Omdat een CDN geografisch gedistribueerd is, worden webpagina's bediend vanaf de dichtstbijzijnde server naar de client. Door een CDN te gebruiken, profiteer je van de prestaties van een gedistribueerd netwerk in plaats van zelf te schalen, zoals bij een traditionele oplossing het geval is.
Omdat Jamstack de pagina's één keer opbouwt en vervolgens kant-en-klare pagina's vanaf een CDN aanbiedt, is de benodigde rekenkracht veel minder in vergelijking met een traditionele benadering waarbij pagina's on-demand worden berekend. Hierdoor is je website goedkoop op te schalen.
Betere beveiliging
Omdat op Jamstack gebaseerde websites tijdens de bouw worden gegeneerd wordt het mogelijke aanvalsoppervlak kleiner. Dit komt omdat een CDN alleen voorgebouwde statische pagina's aanbiedt en er geen CMS-server draait waar je de beveiliging voor moet regelen.
Er zijn natuurlijk dynamische aspecten op je website die runtime API's vereisen. Voor deze API's heb je twee opties: (1) gebruik een op SaaS gebaseerde service of (2) bouw je eigen API.
Door een op SaaS gebaseerde service te gebruiken, maakt u gebruik van de domein expertise van een leverancier en wordt de complexiteit van de beveiliging door de leverancier afgehandeld. Hoewel er een zeer groot SaaS-landschap is, is er waarschijnlijk ook een domeinspecifieke- of integratie-code die je zelf moet schrijven. De hoeveelheid code die moet worden geschreven, is echter veel minder in vergelijking met de traditionele oplossing waarbij je het CMS uitbreidt. Door slechts een klein aantal aangepaste API's te schrijven, worden je beveiligingsrisico's aanzienlijk verminderd.
Uitstekende ontwikkelaarservaring
Door de front-end los te koppelen van het CMS, zijn ontwikkelaars vrij in hun technologiekeuze. Dit in tegenstelling tot een traditionele aanpak waarbij het CMS dicteert welke front-end technologie moet worden gebruikt. Door het enorme en levendige op Javascript gebaseerde toollandschap te gebruiken, krijgen ontwikkelaars een boost in productiviteit en ontwikkelaarservaring. Het stelt front-end ontwikkelaars in staat om de nieuwste tooling te gebruiken, zoals bv. NextJS, en Javascript te gebruiken in de hele front-end toolchain.
Javascript is de programmeertaal die het mogelijk maakt om op Jamstack gebaseerde oplossingen te bouwen.
Gerelateerde terminologie
Jamstack wordt sterk geassocieerd met andere termen zoals Headless-technologie, microservice gebaseerde architectuur, het genereren van statische websites, Content Delivery Network (CDN), Application Delivery Network (ADN) en de API Economy. Er zijn veel termen om te leren als je er nieuw bent met Jamstack.
Lees onze artikelen over e-commerce en Jamstack en personalisatie met Jamstack om te leren hoe al deze aspecten worden gecombineerd.
Meer weten over Jamstack?
Enkele goede websites die Jamstack beschrijven zijn:
- https://jamstack.org - de originele Jamstack-promotiewebsite van Netlify
- https://jamstack.email - mailinglijst met samengestelde Jamstack-inhoud
Geïnteresseerd in een één-op-één discussie of onze Jamstack-gebaseerde e-commerce demo zien? Gebruik ons contactformulier of stuur ons een e-mail: info@unplatform.io.