Zo gaat Zalando om met technische uitdaging productaanbeveling

Geen reacties
Tags: ,
Posted 29 Jul 2016 in nieuws

De productaanbevelingen zijn bijzonder belangrijk voor de conversie van een webwinkel of e-mailmarketing. Bij Zalando is een speciaal team opgericht dat zich bezighoudt met het aanbevelingsmechanisme en de benodigde techniek. Wat zijn de uitdagingen van dit team?

Zeker met zo’n grote collectie als Zalando heeft, zijn relevante aanbevelingen cruciaal. Hiervoor combineert het bedrijf onder meer aankoopgegevens en content – zoals de nieuwste producten. De wekelijkse nieuwsbrief toont naast meer generiek nieuws een selectie gepersonaliseerde productaanbevelingen. Welke vier tot tien producten worden getoond, wordt pas bepaald zodra iemand zijn e-mail voor de eerste keer opent. Gaat de e-mail de deur uit dan is er alleen zogenaamde placeholder content – dummy tekst en beeld – ingevoegd. Pas bij het lezen van de e-mail wordt vastgesteld welke URL’s geschikt zijn voor desbetreffende klant.

5e51b53d84c20de1a6a92a314e989b2df945e000_newsletter-aws-1

En dat brengt nogal een uitdaging met zich mee, schrijft Vjekoslav Osmann in een artikel. Omdat de verzoeken simultaan op de server worden afgevuurd, is er een kans dat er twee dezelfde aanbevelingen worden gedaan in één e-mail. Een duplicate productaanbeveling is voor Zalando volstrekt onacceptabel, zegt Osmann. Om dit uit te sluiten is een oplossing ontwikkeld die de eerste ‘aanvraag’ cachet. Bij alle andere aanvragen wordt rekening gehouden met dit geheugen.

Onderdeel van de uitdaging is de zogenaamde ‘load balancer’ die wordt ingezet. Die zorgt ervoor dat alle dataverzoeken van e-mailclients – dus ook die voor de aanbevelingen – worden verdeeld over de diverse servers. Zo kan het echter gebeuren dat ‘serverA’ de eerste aanbeveling doet en ‘serverB’ de tweede. Maar: in dat geval wordt er geen rekening gehouden met de genoemde cache. Osmann beschrijft voor dit probleem twee oplossingen. De één is toepasbaar als er sprake is van eigen hardware in een datacenter, de andere bij gebruik van Elastic Load Balancing van Amazon Web Services (AWS).

In het datacenter

Binnen enkele milliseconde passeren alle verzoekjes de load balancer. Het enige wat die verzoeken om een productaanbeveling van elkaar onderscheidt is de ‘positie’ in de e-mail. Alle andere parameters zijn gelijk. Voor de technici onder de lezers: Zalando koos ervoor de load balancer te laten draaien op de zevende OSI laag en een ‘header waarde’ te extraheren uit het HTTP-bericht. Het voordeel is dat alleen nog een simpele cache op de server nodig is.

Bij Amazon Web Services

Omdat het bedrijf ook gebruikmaakt van clouddiensten van Amazon Web Services keek Osmann of AWS een zelfde oplossing biedt. De Elastic Load Balancer biedt die deels, maar niets leverde het gewenste resultaat op. Om de verzoeken geforceerd samen te binden en richting dezelfde server te sturen, kan wel de optie ‘Load Balancer Generated Cookie Stickiness’ worden geactiveerd. De load balancer maakt een cookie aan en stuurt deze gelijktijdig met ieder verzoek mee. Zo weet de load balancer dat het verzoek van dezelfde e-mailclient afkomstig is. Een prima oplossing voor gebruikers van een webgebaseerde e-mailclient, zoals Gmail.

Voor alle andere situaties maakt Zalando nu gebruik van het HSETNX commando van Redis, een open source oplossing. De load balancer is vrij om het verzoek bij een willekeurige server af te leveren. De betreffende server die de aanbeveling moet doen neemt contact op met Redis en bepaalt wie de lijst van aanbevelingen samenstelt. Onderstaande diagram geeft dit goed weer.

4e9ee81dc693a66e5929dd73e70e057b520d7a82_newsletter-aws-7



Lees het volledige bericht op Emerce »


Add Your Comment