Next level commerce, Monolieten, Headless, Service Oriented Architectures

Next Level Commerce: Headless Architecture en SOA

Next Level Commerce: Headless Architecture en SOA

Next Level Commerce: Headless Architecture en SOA

Next Level Commerce: Headless Architecture en SOA

Auteur

Jamie Maria Schouren

Medeoprichter & CCO

Categorie
Educatief

Publicatiedatum

9 januari 2020

Inleiding

Headless Architecture - Het is januari 2020. Een nieuw decennium en een digitaal tijdperk waarin eCommerce een hoge vlucht neemt. Online klanten zijn nog nooit zo veeleisend geweest. We willen alles nu! Het is een tijd van hoge consumentenvraag, waarin elk moment en elke ervaring een commerciële kans is. Elke interactie moet shoppable zijn. Bedrijfsmodellen moeten evolueren en zich snel aanpassen.

Nieuwe ideeën, nieuwe kansen, nieuwe markten en nieuwe verkooppunten volgen elkaar snel op, en als bedrijf moet u ervoor zorgen dat u bijblijft. Als u wilt concurreren in deze steeds veranderende, snelle markt, is er maar één optie: uw software moet uitbreidbaar, onderhoudbaar, betrouwbaar, schaalbaar en flexibel zijn.

Welkom in de wereld van Modulaire Software, de wereld van Service-Oriented Architectures.

Sinds 2017 waait er een nieuwe wind door de wereld van eCommerce software. Een wind die de woorden Headless en Progressive Web Apps met zich meedraagt. 2019 was het jaar dat we allemaal, inclusief grote ondernemingen als Magento en BigCommerce, deze termen volledig omarmden. 2020 wordt het jaar dat we nog verder evolueren: naar volledige Service-Oriented Architectures. Maar wat zijn dat precies? Wat betekent het echt? En wat zal de impact zijn op uw bedrijf?

Progressive Web Apps, of kortweg PWA, zijn webapplicaties die gewone webpagina's of websites zijn, maar met mogelijkheden van native mobiele applicaties. Het type applicatie probeert de functies die de meeste moderne browsers bieden te combineren met de voordelen van een mobiele ervaring. Het is een set specifieke functies die een ervaring nabootsen, gebouwd met specifieke moderne webtechnologieën zoals service workers. Een PWA is je front-end, het is een ervaring, een reeks technische vereisten. In geen geval is een PWA een framework, een javascript-taal of een software-architectuur (een meer gedetailleerde lezing over PWA vindt u hier).

Als we het hebben over software architectuur, hebben we het over de structuur waarin dit soort systemen leven, inclusief PWA's. We hebben het dan over Monolithic, Headless, en nog verder, Service-Oriented Architecture.

"Het erkennen van de behoefte is de primaire voorwaarde voor ontwerp." - Charles Eames

Inleiding

Headless Architecture - Het is januari 2020. Een nieuw decennium en een digitaal tijdperk waarin eCommerce een hoge vlucht neemt. Online klanten zijn nog nooit zo veeleisend geweest. We willen alles nu! Het is een tijd van hoge consumentenvraag, waarin elk moment en elke ervaring een commerciële kans is. Elke interactie moet shoppable zijn. Bedrijfsmodellen moeten evolueren en zich snel aanpassen.

Nieuwe ideeën, nieuwe kansen, nieuwe markten en nieuwe verkooppunten volgen elkaar snel op, en als bedrijf moet u ervoor zorgen dat u bijblijft. Als u wilt concurreren in deze steeds veranderende, snelle markt, is er maar één optie: uw software moet uitbreidbaar, onderhoudbaar, betrouwbaar, schaalbaar en flexibel zijn.

Welkom in de wereld van Modulaire Software, de wereld van Service-Oriented Architectures.

Sinds 2017 waait er een nieuwe wind door de wereld van eCommerce software. Een wind die de woorden Headless en Progressive Web Apps met zich meedraagt. 2019 was het jaar dat we allemaal, inclusief grote ondernemingen als Magento en BigCommerce, deze termen volledig omarmden. 2020 wordt het jaar dat we nog verder evolueren: naar volledige Service-Oriented Architectures. Maar wat zijn dat precies? Wat betekent het echt? En wat zal de impact zijn op uw bedrijf?

Progressive Web Apps, of kortweg PWA, zijn webapplicaties die gewone webpagina's of websites zijn, maar met mogelijkheden van native mobiele applicaties. Het type applicatie probeert de functies die de meeste moderne browsers bieden te combineren met de voordelen van een mobiele ervaring. Het is een set specifieke functies die een ervaring nabootsen, gebouwd met specifieke moderne webtechnologieën zoals service workers. Een PWA is je front-end, het is een ervaring, een reeks technische vereisten. In geen geval is een PWA een framework, een javascript-taal of een software-architectuur (een meer gedetailleerde lezing over PWA vindt u hier).

Als we het hebben over software architectuur, hebben we het over de structuur waarin dit soort systemen leven, inclusief PWA's. We hebben het dan over Monolithic, Headless, en nog verder, Service-Oriented Architecture.

"Het erkennen van de behoefte is de primaire voorwaarde voor ontwerp." - Charles Eames

Inleiding

Headless Architecture - Het is januari 2020. Een nieuw decennium en een digitaal tijdperk waarin eCommerce een hoge vlucht neemt. Online klanten zijn nog nooit zo veeleisend geweest. We willen alles nu! Het is een tijd van hoge consumentenvraag, waarin elk moment en elke ervaring een commerciële kans is. Elke interactie moet shoppable zijn. Bedrijfsmodellen moeten evolueren en zich snel aanpassen.

Nieuwe ideeën, nieuwe kansen, nieuwe markten en nieuwe verkooppunten volgen elkaar snel op, en als bedrijf moet u ervoor zorgen dat u bijblijft. Als u wilt concurreren in deze steeds veranderende, snelle markt, is er maar één optie: uw software moet uitbreidbaar, onderhoudbaar, betrouwbaar, schaalbaar en flexibel zijn.

Welkom in de wereld van Modulaire Software, de wereld van Service-Oriented Architectures.

Sinds 2017 waait er een nieuwe wind door de wereld van eCommerce software. Een wind die de woorden Headless en Progressive Web Apps met zich meedraagt. 2019 was het jaar dat we allemaal, inclusief grote ondernemingen als Magento en BigCommerce, deze termen volledig omarmden. 2020 wordt het jaar dat we nog verder evolueren: naar volledige Service-Oriented Architectures. Maar wat zijn dat precies? Wat betekent het echt? En wat zal de impact zijn op uw bedrijf?

Progressive Web Apps, of kortweg PWA, zijn webapplicaties die gewone webpagina's of websites zijn, maar met mogelijkheden van native mobiele applicaties. Het type applicatie probeert de functies die de meeste moderne browsers bieden te combineren met de voordelen van een mobiele ervaring. Het is een set specifieke functies die een ervaring nabootsen, gebouwd met specifieke moderne webtechnologieën zoals service workers. Een PWA is je front-end, het is een ervaring, een reeks technische vereisten. In geen geval is een PWA een framework, een javascript-taal of een software-architectuur (een meer gedetailleerde lezing over PWA vindt u hier).

Als we het hebben over software architectuur, hebben we het over de structuur waarin dit soort systemen leven, inclusief PWA's. We hebben het dan over Monolithic, Headless, en nog verder, Service-Oriented Architecture.

"Het erkennen van de behoefte is de primaire voorwaarde voor ontwerp." - Charles Eames

Oud en goud: Monolithische Architectuur

Bij de traditionele monolithische architectuur in e-commerce is alles strak gekoppeld: de UI-laag, de gegevenslaag, de processen. Alles is diep met elkaar verweven, sterk afhankelijk van en zelfs van invloed op alle andere processen. Een goed voorbeeld van een monolithische architectuur is Magento (Adobe). In deze architectuur is alles strak gekoppeld en draait alles in één applicatie, met een gelaagd applicatieontwerp.

In een gelaagd ontwerp vinden we verschillende soorten componenten: Presentatie (uw front-end), Business Logic, en Database Logic. In veel gevallen kan ook de Application Integration worden gevonden die integreert met andere diensten via messaging of REST API, enz.

Hoewel de monoliet een modulaire architectuur kan hebben met verschillende componenten, wordt de toepassing verpakt en ingezet als één geheel. Dit heeft vele voordelen, want het is relatief eenvoudig te ontwikkelen en te implementeren. Monolieten zijn eenvoudig te testen en eenvoudig te schalen met verschillende tools.

Schema van een monolithische architectuur

Wanneer geen monoliet gebruiken?

Maar zodra je begint te groeien, loop je al snel tegen problemen aan met een monoliet. Een eenvoudige aanpak heeft een sterke beperking op omvang en complexiteit.

Monolieten zijn moeilijk uit te breiden en te onderhouden. Wanneer uw toepassing complex wordt, wordt het moeilijk te begrijpen hoe componenten aan elkaar gekoppeld zijn en hoe ze elkaar beïnvloeden. Dit betekent dat snelle (en veilige) wijzigingen bijna onmogelijk zijn. Elke wijziging vereist het uitrollen van de hele applicatie en leidt tot uitgebreide handmatige tests omdat de impact niet kan worden gegarandeerd. Bugs kunnen 'uit het niets' verschijnen, wat veel middelen kost om te vinden en op te lossen.

Monolieten zijn niet flexibel. Een monoliet heeft door zijn ontwerp een barrière om nieuwe technologieën toe te passen. Elke verandering in het framework of de taal zal de hele applicatie beïnvloeden. Een uiterst riskant, duur en tijdrovend proces.

Monolieten zijn niet betrouwbaar. Omdat processen in een monoliet sterk van elkaar afhankelijk zijn. Een bug in een module kan mogelijk je hele systeem platleggen. Vaak is het niet eens een bug die een applicatie platlegt, maar een eenvoudig proces dat te veel resources in beslag neemt. Bijvoorbeeld een Front-End die uitvalt wanneer iemand besluit alle historische klantgegevens uit het CMS-systeem te exporteren.

Onlangs heeft Magento een update gemaakt om het volgende probleem op te lossen, wat perfect aantoont hoe de afhankelijkheid in een monoliet uw bedrijfsproces kan beïnvloeden:

"Wanneer een Admin-gebruiker, met de per website beperkte rolomvang, bewerkingen uitvoert in het Admin-paneel (waaronder inloggen, producten opslaan, enzovoort), bouwt Magento de opgeslagen cache opnieuw op. Het herbouwen van de cache heeft een negatieve invloed op de prestaties en kan leiden tot een uitval van de site, vooral tijdens zakelijke en/of drukke uren."

Er zijn manieren om een monoliet te optimaliseren, maar zodra uw winkel complexer wordt of u nieuwe veranderingen wilt doorvoeren, loopt u weer tegen problemen aan. Op zich zouden sommige processen geoptimaliseerd kunnen worden. Een voorbeeld is de Front-End (ervaring). Deze kan worden geoptimaliseerd door gebruik te maken van technologieën als caching en/of service workers waardoor het technisch gezien een Progressive Web App wordt. Deze Progressive Web App leeft dan nog steeds binnen de monolithische architectuur.

Oud en goud: Monolithische Architectuur

Bij de traditionele monolithische architectuur in e-commerce is alles strak gekoppeld: de UI-laag, de gegevenslaag, de processen. Alles is diep met elkaar verweven, sterk afhankelijk van en zelfs van invloed op alle andere processen. Een goed voorbeeld van een monolithische architectuur is Magento (Adobe). In deze architectuur is alles strak gekoppeld en draait alles in één applicatie, met een gelaagd applicatieontwerp.

In een gelaagd ontwerp vinden we verschillende soorten componenten: Presentatie (uw front-end), Business Logic, en Database Logic. In veel gevallen kan ook de Application Integration worden gevonden die integreert met andere diensten via messaging of REST API, enz.

Hoewel de monoliet een modulaire architectuur kan hebben met verschillende componenten, wordt de toepassing verpakt en ingezet als één geheel. Dit heeft vele voordelen, want het is relatief eenvoudig te ontwikkelen en te implementeren. Monolieten zijn eenvoudig te testen en eenvoudig te schalen met verschillende tools.

Schema van een monolithische architectuur

Wanneer geen monoliet gebruiken?

Maar zodra je begint te groeien, loop je al snel tegen problemen aan met een monoliet. Een eenvoudige aanpak heeft een sterke beperking op omvang en complexiteit.

Monolieten zijn moeilijk uit te breiden en te onderhouden. Wanneer uw toepassing complex wordt, wordt het moeilijk te begrijpen hoe componenten aan elkaar gekoppeld zijn en hoe ze elkaar beïnvloeden. Dit betekent dat snelle (en veilige) wijzigingen bijna onmogelijk zijn. Elke wijziging vereist het uitrollen van de hele applicatie en leidt tot uitgebreide handmatige tests omdat de impact niet kan worden gegarandeerd. Bugs kunnen 'uit het niets' verschijnen, wat veel middelen kost om te vinden en op te lossen.

Monolieten zijn niet flexibel. Een monoliet heeft door zijn ontwerp een barrière om nieuwe technologieën toe te passen. Elke verandering in het framework of de taal zal de hele applicatie beïnvloeden. Een uiterst riskant, duur en tijdrovend proces.

Monolieten zijn niet betrouwbaar. Omdat processen in een monoliet sterk van elkaar afhankelijk zijn. Een bug in een module kan mogelijk je hele systeem platleggen. Vaak is het niet eens een bug die een applicatie platlegt, maar een eenvoudig proces dat te veel resources in beslag neemt. Bijvoorbeeld een Front-End die uitvalt wanneer iemand besluit alle historische klantgegevens uit het CMS-systeem te exporteren.

Onlangs heeft Magento een update gemaakt om het volgende probleem op te lossen, wat perfect aantoont hoe de afhankelijkheid in een monoliet uw bedrijfsproces kan beïnvloeden:

"Wanneer een Admin-gebruiker, met de per website beperkte rolomvang, bewerkingen uitvoert in het Admin-paneel (waaronder inloggen, producten opslaan, enzovoort), bouwt Magento de opgeslagen cache opnieuw op. Het herbouwen van de cache heeft een negatieve invloed op de prestaties en kan leiden tot een uitval van de site, vooral tijdens zakelijke en/of drukke uren."

Er zijn manieren om een monoliet te optimaliseren, maar zodra uw winkel complexer wordt of u nieuwe veranderingen wilt doorvoeren, loopt u weer tegen problemen aan. Op zich zouden sommige processen geoptimaliseerd kunnen worden. Een voorbeeld is de Front-End (ervaring). Deze kan worden geoptimaliseerd door gebruik te maken van technologieën als caching en/of service workers waardoor het technisch gezien een Progressive Web App wordt. Deze Progressive Web App leeft dan nog steeds binnen de monolithische architectuur.

Ga Headless met een decoupled architectuur

In een veel modernere architectuur, een Headless Architecture, is de Front-End losgekoppeld van de Back-End en wordt via API's verbinding gemaakt. Dit betekent dat de Front-End een op zichzelf staande applicatie is die volledig los van de Back-End(s) kan draaien en geserveerd kan worden. Je zou de Front-End zelfs via een CDN kunnen bedienen. Dit heeft enorme voordelen voor de schaalbaarheid en het gemak waarmee moderne tools en technologieën kunnen worden toegepast.

Het concept van Headless werd in 2018 alom populair. Het is echter niet nieuw en staat al langer bekend als een ontkoppelde architectuur.

Een headless website verwijst naar een situatie waarin er een traditioneel "back-end" systeem is dat bedrijven kunnen gebruiken om inhoud, producten, enz. te onderhouden via een admin-interface. Vervolgens wordt deze inhoud gegenereerd voor de site en is deze toegankelijk via een web-service API, meestal op een RESTful manier. Tegenwoordig kan dit ook met GraphQL. De presentatielaag (de Front-End) wordt geleverd door een (Javascript) applicatie, die de output van deze API rendert in HTML. Het is een stand-alone applicatie die op een aparte instance kan draaien en zelfs een Progressive Web App kan zijn als aan de juiste eisen wordt voldaan. Standaard hoeft een Headless opstelling echter niet per se een Progressive Web App te zijn. De sleutel hier is de ontkoppeling van de Front-End. De Front-End zelf is niet langer afhankelijk van of sterk verweven met de Back-End.

Schema van een headless architectuur

Waarom zou je Hoofdloos moeten gaan?

In een Headless Architecture is de Front-End (of Front-Ends, want er kunnen meerdere Front-Ends zijn die één Back-End gebruiken) volledig ontkoppeld van de Back-End. Technisch betekent dit dat Front-End ontwikkelaars de Front-End onafhankelijk van de Back-End ontwikkelaars kunnen bouwen. In tegenstelling tot monolithische architecturen waar de Front-End ontwikkelaars over het algemeen moeten wachten tot de Back-End ontwikkelaars 'klaar' zijn voordat zij aan de slag kunnen. De time-to-market, complexiteit van teams en iteraties worden drastisch verkort.

Niet alleen versnelt u de tijd die nodig is om nieuwe functies en ontwerpen te implementeren, Headless gaan geeft u (als het goed wordt gedaan, uiteraard) enorme prestatievoordelen. De Front-End hoeft zich alleen te richten op waar hij goed in is: het leveren van een applicatie in een browser en kan daardoor veel responsiever zijn. Wanneer technieken als "single page application", service workers en/of caching worden ingevoerd, zal de performance drastisch verbeteren, en onafhankelijk zijn van elk proces dat in het back-end draait.

Nadeel van een architectuur zonder hoofd

Dit heeft echter één groot nadeel: de Front-End heeft nog steeds gegevens nodig die 'ergens' vandaan moeten komen. Als de API traag is of als de Back-End niet snel genoeg reageert, kan de Front-End technisch gezien wel verschijnen, maar met ontbrekende inhoud en gegevens.

Als de Front-End op de juiste manier is gebouwd en ontworpen, bijvoorbeeld als een "single page application", kunnen gebruikers de applicatie toch als snel ervaren, ook al ontbreken de gegevens. Er zijn veel technieken om een goede gebruikerservaring te behouden als de back-end traag is, zoals caching en lui laden. Zelfs als de back-end totaal niet reageert, is het mogelijk dit op een vriendelijke manier aan de gebruiker mee te delen.

Gegevens in een Headless Architecture

Dus waar komen de gegevens precies vandaan? Nou, dat kan elk systeem zijn. Dat kan Magento zijn, WordPress, BigCommerce, Shopify, of wat de webwinkelier ook kiest om mee te werken. Zelfs wanneer een Back-End platform wordt gekozen, kan een webwinkelier met het juiste gebruik van Headless Architecture besluiten het Back-End systeem op elk moment te migreren zonder dat dit gevolgen heeft voor de Front-End.

Het belangrijkste voordeel van een echte Headless Architecture is flexibiliteit. De front-end kan integreren met elke gegevensbron en kan worden gebouwd met behulp van een moderne tech stack die niet wordt beïnvloed door Back-End processen. Ze kunnen gemakkelijk worden geschaald, en natuurlijk kan het een Progressive Web App zijn.

Een goed voorbeeld van headless architectuur is BigCommerce. BigCommerce kan draaien als een monolithische architectuur, met een gekoppelde Front-End, maar omdat zij 90% van de gegevens van hun platform via API blootstellen, biedt het out-of-the-box headless commerce.

Een eenvoudige manier om aan de slag te gaan met BigCommerce in een Headless architectuur is om BigCommerce te gebruiken in combinatie met Deity PWA Storefront, een PWA voor e-commerce. De twee bedrijven zijn een samenwerking aange gaan om een naadloze winkelervaring te bieden met een supersnelle en zeer flexibele Front-End van Deity , terwijl alle content en gegevens worden geleverd door BigCommerce.

Een schema van een headless setup met Deity en BigCommerce

Ga Headless met een decoupled architectuur

In een veel modernere architectuur, een Headless Architecture, is de Front-End losgekoppeld van de Back-End en wordt via API's verbinding gemaakt. Dit betekent dat de Front-End een op zichzelf staande applicatie is die volledig los van de Back-End(s) kan draaien en geserveerd kan worden. Je zou de Front-End zelfs via een CDN kunnen bedienen. Dit heeft enorme voordelen voor de schaalbaarheid en het gemak waarmee moderne tools en technologieën kunnen worden toegepast.

Het concept van Headless werd in 2018 alom populair. Het is echter niet nieuw en staat al langer bekend als een ontkoppelde architectuur.

Een headless website verwijst naar een situatie waarin er een traditioneel "back-end" systeem is dat bedrijven kunnen gebruiken om inhoud, producten, enz. te onderhouden via een admin-interface. Vervolgens wordt deze inhoud gegenereerd voor de site en is deze toegankelijk via een web-service API, meestal op een RESTful manier. Tegenwoordig kan dit ook met GraphQL. De presentatielaag (de Front-End) wordt geleverd door een (Javascript) applicatie, die de output van deze API rendert in HTML. Het is een stand-alone applicatie die op een aparte instance kan draaien en zelfs een Progressive Web App kan zijn als aan de juiste eisen wordt voldaan. Standaard hoeft een Headless opstelling echter niet per se een Progressive Web App te zijn. De sleutel hier is de ontkoppeling van de Front-End. De Front-End zelf is niet langer afhankelijk van of sterk verweven met de Back-End.

Schema van een headless architectuur

Waarom zou je Hoofdloos moeten gaan?

In een Headless Architecture is de Front-End (of Front-Ends, want er kunnen meerdere Front-Ends zijn die één Back-End gebruiken) volledig ontkoppeld van de Back-End. Technisch betekent dit dat Front-End ontwikkelaars de Front-End onafhankelijk van de Back-End ontwikkelaars kunnen bouwen. In tegenstelling tot monolithische architecturen waar de Front-End ontwikkelaars over het algemeen moeten wachten tot de Back-End ontwikkelaars 'klaar' zijn voordat zij aan de slag kunnen. De time-to-market, complexiteit van teams en iteraties worden drastisch verkort.

Niet alleen versnelt u de tijd die nodig is om nieuwe functies en ontwerpen te implementeren, Headless gaan geeft u (als het goed wordt gedaan, uiteraard) enorme prestatievoordelen. De Front-End hoeft zich alleen te richten op waar hij goed in is: het leveren van een applicatie in een browser en kan daardoor veel responsiever zijn. Wanneer technieken als "single page application", service workers en/of caching worden ingevoerd, zal de performance drastisch verbeteren, en onafhankelijk zijn van elk proces dat in het back-end draait.

Nadeel van een architectuur zonder hoofd

Dit heeft echter één groot nadeel: de Front-End heeft nog steeds gegevens nodig die 'ergens' vandaan moeten komen. Als de API traag is of als de Back-End niet snel genoeg reageert, kan de Front-End technisch gezien wel verschijnen, maar met ontbrekende inhoud en gegevens.

Als de Front-End op de juiste manier is gebouwd en ontworpen, bijvoorbeeld als een "single page application", kunnen gebruikers de applicatie toch als snel ervaren, ook al ontbreken de gegevens. Er zijn veel technieken om een goede gebruikerservaring te behouden als de back-end traag is, zoals caching en lui laden. Zelfs als de back-end totaal niet reageert, is het mogelijk dit op een vriendelijke manier aan de gebruiker mee te delen.

Gegevens in een Headless Architecture

Dus waar komen de gegevens precies vandaan? Nou, dat kan elk systeem zijn. Dat kan Magento zijn, WordPress, BigCommerce, Shopify, of wat de webwinkelier ook kiest om mee te werken. Zelfs wanneer een Back-End platform wordt gekozen, kan een webwinkelier met het juiste gebruik van Headless Architecture besluiten het Back-End systeem op elk moment te migreren zonder dat dit gevolgen heeft voor de Front-End.

Het belangrijkste voordeel van een echte Headless Architecture is flexibiliteit. De front-end kan integreren met elke gegevensbron en kan worden gebouwd met behulp van een moderne tech stack die niet wordt beïnvloed door Back-End processen. Ze kunnen gemakkelijk worden geschaald, en natuurlijk kan het een Progressive Web App zijn.

Een goed voorbeeld van headless architectuur is BigCommerce. BigCommerce kan draaien als een monolithische architectuur, met een gekoppelde Front-End, maar omdat zij 90% van de gegevens van hun platform via API blootstellen, biedt het out-of-the-box headless commerce.

Een eenvoudige manier om aan de slag te gaan met BigCommerce in een Headless architectuur is om BigCommerce te gebruiken in combinatie met Deity PWA Storefront, een PWA voor e-commerce. De twee bedrijven zijn een samenwerking aange gaan om een naadloze winkelervaring te bieden met een supersnelle en zeer flexibele Front-End van Deity , terwijl alle content en gegevens worden geleverd door BigCommerce.

Een schema van een headless setup met Deity en BigCommerce

Het volgende niveau: Servicegerichte architecturen

Nu weten we hoe een Headless Architecture uw Front-End flexibeler, schaalbaarder en gemakkelijker te onderhouden maakt. Wat als we ditzelfde principe toepassen op Back-End systemen?

Wat als we Back-End processen definiëren als afzonderlijke diensten, bijvoorbeeld orderbeheer, voorraadbeheer, assortimentsbeheer, logistieke diensten, betalingsdiensten, en meer - en ze allemaal ontkoppeld van elkaar bouwen? In dit geval bouwen we een gedecentraliseerd systeem... een servicegerichte architectuur. Een dergelijke architectuur brengt flexibiliteit, uitbreidbaarheid, schaalbaarheid en betrouwbaarheid voor zowel Front-End als Back-End processen - de ingrediënten die nodig zijn om een robuust, maar lichtgewicht bedrijfssysteem te bouwen dat klaar is om elk bedrijf te versnellen.

Schema van een servicegeoriënteerde architectuur

Dienstgerichte architecturen en middleware

De Service-Oriented Architecture heeft een aanzienlijke invloed op de relatie tussen de verschillende systemen en de database. In plaats van één databaseschema te delen met andere diensten, heeft elke dienst zijn eigen databaseschema. Het hebben van een databaseschema per dienst is essentieel als je optimaal wilt profiteren, omdat het zorgt voor losse koppeling. Bovendien kan een dienst een type database gebruiken dat het beste past bij zijn behoeften (ook wel polyglot persistence architecture genoemd).

Dus hoe werkt dat? Met al deze systemen apart en gedecentraliseerd, waar wisselen we dan gegevens uit? En hoe zorgen we ervoor dat de gegevens schoon zijn, dat er geen dubbele gegevens bestaan en dat de gegevens slechts "één bron van waarheid" kennen?

We zouden allemaal aparte API's per dienst kunnen bouwen en in elke dienst bijhouden waar de gegevens naartoe moeten (en wat het werkelijke punt van de gegevens is). Maar met veel gegevensstromen, complexe individuele diensten en snelgroeiende bedrijven die snel functionaliteiten willen uitbreiden, zou dit rommelig en zeer complex kunnen worden.

Daarom gebruiken we in een echte Service-Oriented Architecture een Middleware. Deze (slimme) Middleware verbindt alle punten tussen de systemen en diensten. Hij regelt waar de gegevens vandaan komen, waar ze naartoe moeten, en waar de echte bron van de gegevens is. Processen die we in Middleware kunnen vinden zijn authenticatie handlers en messaging systemen.

In een traditionele SOA zouden we een Service Orchestrator en ETL-tool (Extract, Transform, Load) gebruiken om onze gegevens toegankelijk, zinvol en bruikbaar te maken voor verschillende datasystemen. In modernere technologiestacks kunnen we hiervoor GraphQL met een API gebruiken.

Voordelen van servicegeoriënteerde architecturen

Het bouwen van een dergelijke architectuur geeft u de (Front-End) voordelen van een Headless Architecture en brengt dezelfde schaalbaarheid, flexibiliteit, uitbreidbaarheid, prestaties, enz. naar de Back-End processen. Men zou kunnen zeggen dat een "Headless Architecture" een "lichte" of "vroege" versie is van een Service-Oriented Architecture.

Een servicegerichte architectuur pakt het probleem van de complexiteit van monolieten aan door de monoliet te ontleden in een reeks beheersbare diensten. Deze zijn veel sneller te ontwikkelen, veel gemakkelijker te begrijpen, veel gemakkelijker te onderhouden, en veel flexibeler. U kunt gemakkelijker en veel sneller aanpassen, uitbreiden en doen wat uw bedrijf nodig heeft.

Aangezien elke dienst een op zichzelf staande applicatie is, kan hij als zodanig worden ontwikkeld, onderhouden en ingezet. Dit maakt onafhankelijke (externe) teams, continue inzet, probleemloze uitbreidbaarheid en onbeperkte schaalbaarheid per dienst mogelijk.

De invoering van nieuwe technologieën verloopt veel sneller, en ontwikkelaars kunnen voor elke dienst de juiste technologie kiezen en zijn niet gebonden aan de (legacy) technologie die bij het begin van het project werd gekozen.

Als laatste, maar zeker niet de minste. Het is het vermelden waard dat er, specifiek voor eCommerce, veel diensten op de markt zijn die bepaalde taken perfect uitvoeren. We kennen allemaal diensten als Algolia voor search, PayPal voor betalingen, Akaneo voor het beheer van productinformatie, WordPress voor content, enz. Met zoveel geweldige tools die er zijn, zou het zonde zijn (en onnodig complex) om elke dienst zelf opnieuw te bouwen. In een Service-Oriented Architecture kunt u elke bestaande dienst koppelen aan uw Middleware en zo de beste set tools voor uw bedrijf samenstellen, en uw landschap aanvullen met op maat gemaakte diensten waar dat nodig is.

Door het gebruik van Middleware en een Service-Oriented Architecture krijgt u volledige vrijheid in wat u gebruikt, hoe u uw bedrijf opbouwt, en wat u daarna wilt doen. Geen enkele keuze zal u jarenlang binden of enorm veel tijd kosten. Uw bedrijf wordt flexibel, schaalbaar en kan zich net zo snel aanpassen als de markt verandert.

Het volgende niveau: Servicegerichte architecturen

Nu weten we hoe een Headless Architecture uw Front-End flexibeler, schaalbaarder en gemakkelijker te onderhouden maakt. Wat als we ditzelfde principe toepassen op Back-End systemen?

Wat als we Back-End processen definiëren als afzonderlijke diensten, bijvoorbeeld orderbeheer, voorraadbeheer, assortimentsbeheer, logistieke diensten, betalingsdiensten, en meer - en ze allemaal ontkoppeld van elkaar bouwen? In dit geval bouwen we een gedecentraliseerd systeem... een servicegerichte architectuur. Een dergelijke architectuur brengt flexibiliteit, uitbreidbaarheid, schaalbaarheid en betrouwbaarheid voor zowel Front-End als Back-End processen - de ingrediënten die nodig zijn om een robuust, maar lichtgewicht bedrijfssysteem te bouwen dat klaar is om elk bedrijf te versnellen.

Schema van een servicegeoriënteerde architectuur

Dienstgerichte architecturen en middleware

De Service-Oriented Architecture heeft een aanzienlijke invloed op de relatie tussen de verschillende systemen en de database. In plaats van één databaseschema te delen met andere diensten, heeft elke dienst zijn eigen databaseschema. Het hebben van een databaseschema per dienst is essentieel als je optimaal wilt profiteren, omdat het zorgt voor losse koppeling. Bovendien kan een dienst een type database gebruiken dat het beste past bij zijn behoeften (ook wel polyglot persistence architecture genoemd).

Dus hoe werkt dat? Met al deze systemen apart en gedecentraliseerd, waar wisselen we dan gegevens uit? En hoe zorgen we ervoor dat de gegevens schoon zijn, dat er geen dubbele gegevens bestaan en dat de gegevens slechts "één bron van waarheid" kennen?

We zouden allemaal aparte API's per dienst kunnen bouwen en in elke dienst bijhouden waar de gegevens naartoe moeten (en wat het werkelijke punt van de gegevens is). Maar met veel gegevensstromen, complexe individuele diensten en snelgroeiende bedrijven die snel functionaliteiten willen uitbreiden, zou dit rommelig en zeer complex kunnen worden.

Daarom gebruiken we in een echte Service-Oriented Architecture een Middleware. Deze (slimme) Middleware verbindt alle punten tussen de systemen en diensten. Hij regelt waar de gegevens vandaan komen, waar ze naartoe moeten, en waar de echte bron van de gegevens is. Processen die we in Middleware kunnen vinden zijn authenticatie handlers en messaging systemen.

In een traditionele SOA zouden we een Service Orchestrator en ETL-tool (Extract, Transform, Load) gebruiken om onze gegevens toegankelijk, zinvol en bruikbaar te maken voor verschillende datasystemen. In modernere technologiestacks kunnen we hiervoor GraphQL met een API gebruiken.

Voordelen van servicegeoriënteerde architecturen

Het bouwen van een dergelijke architectuur geeft u de (Front-End) voordelen van een Headless Architecture en brengt dezelfde schaalbaarheid, flexibiliteit, uitbreidbaarheid, prestaties, enz. naar de Back-End processen. Men zou kunnen zeggen dat een "Headless Architecture" een "lichte" of "vroege" versie is van een Service-Oriented Architecture.

Een servicegerichte architectuur pakt het probleem van de complexiteit van monolieten aan door de monoliet te ontleden in een reeks beheersbare diensten. Deze zijn veel sneller te ontwikkelen, veel gemakkelijker te begrijpen, veel gemakkelijker te onderhouden, en veel flexibeler. U kunt gemakkelijker en veel sneller aanpassen, uitbreiden en doen wat uw bedrijf nodig heeft.

Aangezien elke dienst een op zichzelf staande applicatie is, kan hij als zodanig worden ontwikkeld, onderhouden en ingezet. Dit maakt onafhankelijke (externe) teams, continue inzet, probleemloze uitbreidbaarheid en onbeperkte schaalbaarheid per dienst mogelijk.

De invoering van nieuwe technologieën verloopt veel sneller, en ontwikkelaars kunnen voor elke dienst de juiste technologie kiezen en zijn niet gebonden aan de (legacy) technologie die bij het begin van het project werd gekozen.

Als laatste, maar zeker niet de minste. Het is het vermelden waard dat er, specifiek voor eCommerce, veel diensten op de markt zijn die bepaalde taken perfect uitvoeren. We kennen allemaal diensten als Algolia voor search, PayPal voor betalingen, Akaneo voor het beheer van productinformatie, WordPress voor content, enz. Met zoveel geweldige tools die er zijn, zou het zonde zijn (en onnodig complex) om elke dienst zelf opnieuw te bouwen. In een Service-Oriented Architecture kunt u elke bestaande dienst koppelen aan uw Middleware en zo de beste set tools voor uw bedrijf samenstellen, en uw landschap aanvullen met op maat gemaakte diensten waar dat nodig is.

Door het gebruik van Middleware en een Service-Oriented Architecture krijgt u volledige vrijheid in wat u gebruikt, hoe u uw bedrijf opbouwt, en wat u daarna wilt doen. Geen enkele keuze zal u jarenlang binden of enorm veel tijd kosten. Uw bedrijf wordt flexibel, schaalbaar en kan zich net zo snel aanpassen als de markt verandert.

Deity

Als u dit vanaf nul zou moeten opbouwen, zou het zeer complex zijn. Het goede nieuws is dat u niet vanaf nul hoeft te beginnen, u hoeft zich zelfs niet druk te maken over deployment processen.

Deity is een softwarebedrijf dat gespecialiseerd is in op Service-Oriented Architecture gebaseerde toepassingen voor e-commerce. We kunnen je voorzien van de basis (en complexere stappen) voor deze architecturen, of je nu volledig voor SOA wilt gaan of de eerste stap wilt zetten en Headless wilt gaan. Onze software kan zelfs je huidige winkel en systemen verbinden met hun Middleware, waardoor de eerste stappen worden gezet om je systeem te ontkoppelen. Zonder desinvesteringen in je huidige systeem geeft Deity je systeem vervolgens onbeperkte flexibiliteit, uitbreidbaarheid, schaalbaarheid en de kracht om binnen de kortste keren te groeien.

Deity

Als u dit vanaf nul zou moeten opbouwen, zou het zeer complex zijn. Het goede nieuws is dat u niet vanaf nul hoeft te beginnen, u hoeft zich zelfs niet druk te maken over deployment processen.

Deity is een softwarebedrijf dat gespecialiseerd is in op Service-Oriented Architecture gebaseerde toepassingen voor e-commerce. We kunnen je voorzien van de basis (en complexere stappen) voor deze architecturen, of je nu volledig voor SOA wilt gaan of de eerste stap wilt zetten en Headless wilt gaan. Onze software kan zelfs je huidige winkel en systemen verbinden met hun Middleware, waardoor de eerste stappen worden gezet om je systeem te ontkoppelen. Zonder desinvesteringen in je huidige systeem geeft Deity je systeem vervolgens onbeperkte flexibiliteit, uitbreidbaarheid, schaalbaarheid en de kracht om binnen de kortste keren te groeien.

Conclusie

Aangezien de wereld van de e-commerce steeds veeleisender en complexer wordt en exponentieel groeit, is het heel verstandig om (opnieuw) na te denken over de basis. Wat is mijn winkel, wat heb ik nodig, welk systeem wil ik gebruiken, of welk systeem wordt al gebruikt, wat zijn de doelen, en waar sta ik over 5 jaar?

In tegenstelling tot wat sommige bedrijven de afgelopen 2 jaar hebben beweerd, zal het gebruik van nieuwe technologie zoals PWA niet op magische wijze al uw problemen oplossen, u enorme prestatiewinsten geven of onbeperkte schaalbaarheid mogelijk maken. Deze technieken moeten zorgvuldig worden gebruikt in combinatie met de juiste architectuur om de basis te vormen van uw toekomstige succes.

Hoewel de eerste opzet misschien wat ingewikkelder is en een steilere leercurve heeft, krijgt u uiteindelijk een minder complex, veel flexibeler en logischer systeem. U zult niet tegen problemen aanlopen zodra uw bedrijf begint te groeien. U krijgt de tijd om u te concentreren op het bouwen van geweldige ervaringen en functionaliteit, in plaats van het onderhouden van complexe code.

En dat is waar het bij next-level ecommerce om zou moeten gaan. Onze inspanningen en energie richten op waar we goed in zijn, op het leveren van de beste, meest innovatieve ervaring aan onze klanten, hen keer op keer verrassen door snel nieuwe functies te implementeren terwijl we de concurrentie met sprongen voor blijven.

Conclusie

Aangezien de wereld van de e-commerce steeds veeleisender en complexer wordt en exponentieel groeit, is het heel verstandig om (opnieuw) na te denken over de basis. Wat is mijn winkel, wat heb ik nodig, welk systeem wil ik gebruiken, of welk systeem wordt al gebruikt, wat zijn de doelen, en waar sta ik over 5 jaar?

In tegenstelling tot wat sommige bedrijven de afgelopen 2 jaar hebben beweerd, zal het gebruik van nieuwe technologie zoals PWA niet op magische wijze al uw problemen oplossen, u enorme prestatiewinsten geven of onbeperkte schaalbaarheid mogelijk maken. Deze technieken moeten zorgvuldig worden gebruikt in combinatie met de juiste architectuur om de basis te vormen van uw toekomstige succes.

Hoewel de eerste opzet misschien wat ingewikkelder is en een steilere leercurve heeft, krijgt u uiteindelijk een minder complex, veel flexibeler en logischer systeem. U zult niet tegen problemen aanlopen zodra uw bedrijf begint te groeien. U krijgt de tijd om u te concentreren op het bouwen van geweldige ervaringen en functionaliteit, in plaats van het onderhouden van complexe code.

En dat is waar het bij next-level ecommerce om zou moeten gaan. Onze inspanningen en energie richten op waar we goed in zijn, op het leveren van de beste, meest innovatieve ervaring aan onze klanten, hen keer op keer verrassen door snel nieuwe functies te implementeren terwijl we de concurrentie met sprongen voor blijven.

Vertrouwd door

  • achtergrondkleur

    Adam Watt

    Hoofd Engineering
    Jimmy Brings

    De composable architectuur heeft zijn vruchten al afgeworpen, we hebben al wijzigingen aangebracht in een aantal interne microservices en hoefden de release niet uit te voeren naar een van de front-end componenten of iets te veranderen in de codebase. Het schept echt vertrouwen en lost de problemen op die we in het verleden hadden, wat geweldig is!

  • achtergrondkleur

    Rouven Weßling

    Dir. Technologiepartnerschappen
    Contentful

    De integratie tussen Deity en Contentful opent de mogelijkheid om snel en veilig verbinding te maken met elke e-commerce service. We zijn enthousiast over de samenwerking om onze klanten te helpen de sprong te maken van legacysystemen naar een composable commerce architectuur.

  • achtergrondkleur

    Martijn Phijffer

    Zakelijk Development Man.
    PostNL

    In de afgelopen maanden heb ik Deity ontdekt als een zeer vakkundig bedrijf dat onze complexe online uitdagingen snel heeft aangepakt. Hun composable commerce engine is echt indrukwekkend. Ik raad ze ten zeerste aan voor elke

    online behoeften.

  • achtergrondkleur

    Ivo Bronsveld

    Hoofd Integraties

    commercetools

    Deity opent de wereld van composable commerce voor commercetools-handelaren door een krachtige set bouwstenen te bieden. Deity is een oplossing om in de gaten te houden, ze zijn een van de volgende grote dingen in de handel.

  • achtergrondkleur

    Sergiu Tabaran

    Algemeen directeur
    Absolute Web

    DeityDankzij de innovatieve oplossing kunnen onze webwinkeliers veel sneller headless gaan werken dan met meerdere lagen van aangepaste development, een enorme sprong voorwaarts!

  • achtergrondkleur

    Adam Watt

    Hoofd Engineering
    Jimmy Brings

    De composable architectuur heeft zijn vruchten al afgeworpen, we hebben al wijzigingen aangebracht in een aantal interne microservices en hoefden de release niet uit te voeren naar een van de front-end componenten of iets te veranderen in de codebase. Het schept echt vertrouwen en lost de problemen op die we in het verleden hadden, wat geweldig is!

  • achtergrondkleur

    Rouven Weßling

    Dir. Technologiepartnerschappen
    Contentful

    De integratie tussen Deity en Contentful opent de mogelijkheid om snel en veilig verbinding te maken met elke e-commerce service. We zijn enthousiast over de samenwerking om onze klanten te helpen de sprong te maken van legacysystemen naar een composable commerce architectuur.

  • achtergrondkleur

    Martijn Phijffer

    Zakelijk Development Man.
    PostNL

    In de afgelopen maanden heb ik Deity ontdekt als een zeer vakkundig bedrijf dat onze complexe online uitdagingen snel heeft aangepakt. Hun composable commerce engine is echt indrukwekkend. Ik raad ze ten zeerste aan voor elke

    online behoeften.

  • achtergrondkleur

    Ivo Bronsveld

    Hoofd Integraties

    commercetools

    Deity opent de wereld van composable commerce voor commercetools-handelaren door een krachtige set bouwstenen te bieden. Deity is een oplossing om in de gaten te houden, ze zijn een van de volgende grote dingen in de handel.

  • achtergrondkleur

    Sergiu Tabaran

    Algemeen directeur
    Absolute Web

    DeityDankzij de innovatieve oplossing kunnen onze webwinkeliers veel sneller headless gaan werken dan met meerdere lagen van aangepaste development, een enorme sprong voorwaarts!

  • achtergrondkleur

    Adam Watt

    Hoofd Engineering
    Jimmy Brings

    De composable architectuur heeft zijn vruchten al afgeworpen, we hebben al wijzigingen aangebracht in een aantal interne microservices en hoefden de release niet uit te voeren naar een van de front-end componenten of iets te veranderen in de codebase. Het schept echt vertrouwen en lost de problemen op die we in het verleden hadden, wat geweldig is!

  • achtergrondkleur

    Rouven Weßling

    Dir. Technologiepartnerschappen
    Contentful

    De integratie tussen Deity en Contentful opent de mogelijkheid om snel en veilig verbinding te maken met elke e-commerce service. We zijn enthousiast over de samenwerking om onze klanten te helpen de sprong te maken van legacysystemen naar een composable commerce architectuur.

  • achtergrondkleur

    Martijn Phijffer

    Zakelijk Development Man.
    PostNL

    In de afgelopen maanden heb ik Deity ontdekt als een zeer vakkundig bedrijf dat onze complexe online uitdagingen snel heeft aangepakt. Hun composable commerce engine is echt indrukwekkend. Ik raad ze ten zeerste aan voor elke

    online behoeften.

  • achtergrondkleur

    Ivo Bronsveld

    Hoofd Integraties

    commercetools

    Deity opent de wereld van composable commerce voor commercetools-handelaren door een krachtige set bouwstenen te bieden. Deity is een oplossing om in de gaten te houden, ze zijn een van de volgende grote dingen in de handel.

  • achtergrondkleur

    Sergiu Tabaran

    Algemeen directeur
    Absolute Web

    DeityDankzij de innovatieve oplossing kunnen onze webwinkeliers veel sneller headless gaan werken dan met meerdere lagen van aangepaste development, een enorme sprong voorwaarts!

Ontdek hoe je je bedrijf kunt opwaarderen.

Ontdek hoe je je bedrijf kunt opwaarderen.

Ontdek hoe je je bedrijf kunt opwaarderen.

Neem contact op
We zijn benieuwd
naar uw ambities.

Laten we uitzoeken hoe we samen uw bedrijf naar de toekomst kunnen brengen.

Jamie Maria Schouren

Jamie Maria Schouren Medeoprichter

Neem contact op
We zijn benieuwd
naar uw ambities.

Laten we uitzoeken hoe we samen uw bedrijf naar de toekomst kunnen brengen.

Jamie Maria Schouren

Jamie Maria Schouren Medeoprichter

Neem contact op
We zijn benieuwd
naar uw ambities.

Laten we uitzoeken hoe we samen uw bedrijf naar de toekomst kunnen brengen.

Jamie Maria Schouren

Jamie Maria Schouren Medeoprichter