See the engineering behind real-time personalization at Tripadvisor’s massive (and rapidly growing) scale Tripadvisor eseye evalye sa a yon fwa ou angaje ak sit la, Lè sa a, ofri ou plis ak plis enfòmasyon ki enpòtan sou chak klike - nan yon kesyon nan milisekond. Sa a pèsonalizasyon se sipòte pa modèl ML avanse ki ap travay sou done ki estoke sou ScyllaDB kouri sou AWS. Nan atik sa a, Dean Poulin (Tripadvisor Done Engineering Lead nan ekip la Sèvis AI ak Pwodwi) bay yon gade nan ki jan yo sipòte sa a pèsonalizasyon. Dean pataje yon tès nan defi teknik ki gen rapò ak livrezon nan pèsonalizasyon tan reyèl nan masiv (ak rapidman kwasans) nan TripAdvisor. Li se ki baze sou a AWS re:Invent pale ki anba a: Oriyanse Pre-Trip Nan wout yo nan Dean ... Kòmanse nan 2000, Tripadvisor te vin yon lidè mondyal nan vwayaj ak otèlite, ede dè santèn de milyon de vwayajè planifye vwayaj yo pafè yo. Tripadvisor gen plis pase $ 1,8 milya dola nan revni ak se yon konpayi anbake sou bourse a NASDAQ. Jodi a, nou gen yon ekip talentè de plis pase 2,800 anplwaye ki pèmèt inovasyon, ak platfòm nou an sèvi ak 400 milyon vizitè inik chak mwa - yon nimewo ki ap kontinye ogmante. Nan nenpòt jou, sistèm nou an trete plis pase 2 milya dola demann soti nan 25 a 50 milyon itilizatè. Tout klike ou fè sou Tripadvisor se trete nan tan reyèl. Pandan sa a, nou sèvi ak modèl aprantisaj machin yo bay rekòmandasyon pèsonèl - fè ou pi pre nan vwayaj la pafè. Nan kè a nan motè a pèsonalizasyon sa a se ScyllaDB ki kouri sou AWS. Sa a pèmèt nou bay milisekond latans nan yon nivo ke kèk òganizasyon rive. Nan piki trafik la, nou koute sou . 425K operations per second on ScyllaDB with P99 latencies for reads and writes around 1-3 milliseconds Mwen pral pataje ki jan Tripadvisor ap sèvi ak pouvwa a nan ScyllaDB, AWS, ak reyèl tan machin aprantisaj bay rekòmandasyon pèsonalize pou chak itilizatè. Nou pral eksplore ki jan nou ede vwayajè jwenn tout bagay ki bezwen yo planifye vwayaj la pafè yo: si li se dekouvri bijou kache, atraksyon yo dwe wè, eksperyans inoubliable, oswa pi bon kote yo rete ak manje. Sa a [aptik] se sou enjenyè ki anba a sa a - ki jan nou bay senpleman, kontni ki enpòtan nan itilizatè yo nan tan reyèl, ede yo jwenn egzakteman sa yo ke yo ap chèche kòm byen vit ke posib. Pèsonèl planifikasyon vwayaj Imagine ou planifye yon vwayaj. Yon fwa ou ateris sou sit entènèt la TripAdvisor, Tripadvisor deja konnen si ou se yon foodie, yon avanturiste, oswa yon lover plaj - epi ou wè rekòmandasyon spot-on ki sanble pèsonèl pou enterè ou yo. Kouman sa a rive nan milisekond? Kòm ou navige atravè Tripadvisor, nou kòmanse pèsonalize sa ou wè lè l sèvi avèk modèl Machine Learning ki konvèti pousantaj ki baze sou aktivite navigasyon aktyèl ou ak anvan. Nou rekòmande otèl ak eksperyans ke nou panse ou ta ka enterese nan. Nou sortire otèl ki baze sou preferans pèsonèl ou. Nou rekòmande pwen popilè nan atraksyon ki tou pre otèl la ou ap gade. Sa yo tout ajiste dapre preferans pèsonèl ou ak aktivite navigasyon anvan ou. Modèl Tripadvisor nan Sèvi Arkitektur Tripadvisor kouri sou dè santèn de microservices endividyèlman skalab nan Kubernetes on-prem ak nan Amazon EKS. Pwogram sèvis modèl ML nou an se ekspoze nan youn nan microservices sa yo. Sèvis Gateway sa a ekstrè plis pase 100 modèl ML soti nan Sèvis Kliyan - ki pèmèt nou kouri A / B tès yo jwenn modèl yo pi byen lè l sèvi avèk platfòm eksperyans nou an. Modèl ML yo prensipalman devlope pa syantis done nou yo ak enjenyè machin aprantisaj lè l sèvi avèk Jupyter Notebooks sou Kubeflow. Yo jere ak fòmasyon lè l sèvi avèk ML Flow, epi nou deplase yo sou Seldon Core nan Kubernetes. Nou an Custom Feature Store bay karakteristik pou modèl ML nou an, pèmèt yo fè prediksyon egzak. Custom karakteristik magazen Feature Store prensipalman sèvi ak Karakteristik itilizatè ak Karakteristik estatik. Karakteristik estatik yo estoke nan Redis paske yo pa chanje trè souvan. Nou kouri pipelines done chak jou yo chaje done soti nan depo done offline nou an nan magazen karaktè nou an kòm Karakteristik estatik. Karakteristik itilizatè yo bay nan tan reyèl atravè yon platfòm rele Platfòm Vizitè. Nou egzekite demann dinamik CQL kont ScyllaDB, ak . we do not need a caching layer because ScyllaDB is so fast Feature Store nou an sèvi ak jiska 5 milyon karakteristik estatik pou chak sekondè ak yon demi-milyon karakteristik itilizatè pou chak sekondè. Ki sa ki se yon ML karakteristik? Karakteristik yo se varyab envantè nan modèl ML yo ki itilize yo fè yon prediksyon. Gen Karakteristik estatik ak Karakteristik itilizatè. Yon kèk egzanp nan Karakteristik Statik se rekonpans ki te genyen nan yon restoran oswa fasilite ki ofri pa yon otèl (tankou Wi-Fi gratis, bèt kay amizman oswa sant fòmasyon). Karakteristik itilizatè yo kolekte nan tan reyèl lè itilizatè yo navige nan sit la. Nou sove yo nan ScyllaDB pou nou ka resevwa kesyon pi vit. Gen kèk egzanp nan karakteristik itilizatè yo se otèl yo wè nan 30 minit ki sot pase a, restoran yo wè nan 24 èdtan ki sot pase a, oswa revize soumèt nan 30 jou ki sot pase a. Teknoloji Pouvwa Platfòm Vizitè ScyllaDB se kè a nan Platfòm Vizitè a. Nou itilize microservices Spring Boot ki baze sou Java yo ekspoze platfòm la nan kliyan nou yo. Sa a se deplase sou AWS ECS Fargate. Nou kouri Apache Spark sou Kubernetes pou travay retansyon done chak jou nou an, travay offline nou an pou sou entènèt. Lè sa a, nou itilize travay sa yo pou chaje done soti nan depo done offline nou an nan ScyllaDB pou yo disponib sou sit la viv. Nou itilize Amazon Kinesis tou pou pwosesis evènman kontwole itilizatè. Platfòm Vizitè Done Flow Grafik sa a montre ki jan done flux atravè platfòm nou an nan kat etap: pwodwi, absorbe, òganize, aktive. Done yo pwodwi pa sit entènèt nou an ak aplikasyon mobil nou an. Gen kèk nan done sa yo gen ladan graf la itilizatè atravè aparèy nou an, evènman Tracking konpòtman (tankou vèsyon paj ak klike) ak evènman streaming ki ale atravè Kinesis. Epitou, segman audiences se chaje nan platfòm nou an. Microservices nan Platfòm Vizitè yo itilize pou absorbe ak òganize done sa a. Done nan ScyllaDB a estoke nan de keyspaces: Vizitè Core keyspace, ki gen graf la Identite Vizitè keyspace metrik Vizitè, ki gen faktè ak metrik (tou bagay ki moun te fè lè yo navige sou sit la) Nou itilize pwosesis ETL chak jou pou kenbe ak netwaye done yo nan platfòm la. Nou pwodwi Done Pwodwi, stamped chak jou, nan depo done offline nou an - kote yo disponib pou lòt entegre ak lòt tiyo done yo itilize nan pwosesis yo. Isit la se yon gade nan Platfòm Vizitè pa nimewo yo: Poukisa gen de baz done? Database nou an sou entènèt se konsantre sou trafik sit entènèt la nan tan reyèl, viv. ScyllaDB ranpli rol sa a pa bay latans trè ba ak pèfòmans segondè. Nou itilize TTLs kout-terms yo anpeche done yo nan databas la sou entènèt nan kwasans san limit, ak travay retansyon done nou an asire ke nou sèlman kenbe done aktivite itilizatè pou vizitè reyèl. Tripadvisor.com resevwa yon anpil nan trafik bot, epi nou pa vle magazen done yo ak eseye pèsonalize bots - se konsa nou retire ak netwaye tout done sa yo. magazen done offline nou an retire done istorik ki itilize pou rapòte, kreye lòt pwodwi done, ak fòmasyon modèl ML nou an. Nou pa vle pwosesis done offline gwo-scale ki afekte pèfòmans nan sit liv nou an, se konsa nou gen de baz done separe ki itilize pou de objektif diferan. Platfòm Vizitè Microservices Nou itilize 5 microservices pou Platfòm Vizitè: Vizitè Core administre grafik la identite itilizatè ant aparèy ki baze sou cookies ak ID aparèy. Vizitè Metrik se motè rechèch nou an, ki bay nou kapasite pou ekspoze faktè ak metrik pou vizitè espesifik. Nou itilize yon lang domèn espesifik rele lang rechèch vizitè, oswa VQL. Sa a egzanp VQL pèmèt ou wè dènye faktè klike komès nan twa èdtan ki sot pase. Visitor Publisher ak Visitor Saver sove chemen ekri, ekri done nan platfòm la. Anplis de sa, nou sove done nan ScyllaDB, nou sove done nan depo done offline. Sa a se fè ak Amazon Kinesis. Visitor Composite senplike piblisite done nan travay pwosesis batch. Li abstrahi Visitor Saver ak Visitor Core yo identifye vizitè yo ak pibliye faktè ak metrik nan yon sèl apèl API. Roundtrip Microservice latèz Grafik sa a illustre ki jan latences microservice nou yo rete estab nan tan. Mwayen latans se sèlman 2.5 milisekond, ak P999 nou an se anba 12.5 milisekond. Sa a se pèfòmans enpòtan, espesyalman konsidere ke nou trete plis pase 1 milya dola demann chak jou. Kliyan microservices nou yo gen kondisyon latans estrikti. 95% nan apèl yo dwe ranpli nan 12 milisekond oswa mwens. Si yo ale sou sa, Lè sa a, nou pral jwenn paged epi nou ta dwe aprann ki sa ki afekte latans yo. ScyllaDB latèz Isit la se yon moman nan pèfòmans ScyllaDB nan twa jou. Nan piki, ScyllaDB ap travay ak 340,000 operasyon pou chak segonn (ki gen ladan ekri ak li ak retire) ak CPU a se fluctuating nan sèlman 21%. Sa a se gwo-scale nan aksyon! ScyllaDB livrezon microsecond ekri ak milisecond li pou nou. Sa a nivo nan pèfòmans byen vit se eksakteman poukisa nou chwazi ScyllaDB. Partitioning done nan ScyllaDB imaj sa a montre ki jan nou partition done nan ScyllaDB. Vizitè metrik keyspace a gen de tab: Fakte ak Raw Metrics. kle a prensipal la sou tab la Fakte se Vizitè GUID, Tip Fakte, ak Te kreye nan dat. kle a kompozite nan partisyon se Vizitè GUID ak Tip Fakte. kle a kouvèti se Te kreye nan dat, ki pèmèt nou sòt done yo nan partisyon pa dat. Kolon nan atribit yo gen yon objè JSON reprezante evènman an ki te rive. Gen kèk egzanp Fakte se Terms Search, View paj, ak Rezèvasyon. Nou itilize ScyllaDB a nivo kompresyon estrateji paske: Li se optimisé pou ranpli kesyon Li trete segondè cardinality trè byen Li se pi bon pou travay-gwo-li, epi nou gen sou 2-3X plis li pase ekri Poukisa nan ScyllaDB? Solisyon nou an te orijinèlman bati lè l sèvi avèk Cassandra on-prem. Men, lè anbalaj la ogmante, pèfòmans operasyonèl la menm jan an. Li te mande pou sipò operasyon dedye pou nou jere amelyorasyon baz baz baz, backups, elatriye Epitou, solisyon nou an mande pou latans trè ba pou eleman kle. Sistèm jesyon itilizatè nou an dwe identifye itilizatè a nan 30 milisekond - ak pou pèsonalizasyon an pi bon, nou mande pou platfòm Event Tracking nou an reponn nan 40 milisekond. Li enpòtan ke solisyon nou an pa bloke rendan paj la se konsa SLA nou yo trè ba. Avèk Cassandra, nou te gen enpak sou pèfòmans la soti nan koleksyon sak. Sa a te sitou afekte latans Nou te kouri yon Proof of Concept ak ScyllaDB epi nou te jwenn pase a se anpil pi bon pase Cassandra ak chaj la operasyonèl te elimine. ScyllaDB te bay nou yon baz baz done livrezon trè vit ak latèz ki pi ba posib. Nou te vle yon opsyon konplètman jere, se konsa nou te migre soti nan Cassandra nan ScyllaDB Cloud, apre yon estrateji doub ekri. Sa a pèmèt nou migre ak zèb pa tan rete pandan y ap travay ak 40,000 operasyon oswa demann pou chak sekondè. Pandan sa a, nou te migre soti nan ScyllaDB Cloud nan ScyllaDB "Bring Your Own Account" modèl la, kote ou ka gen ScyllaDB ekip deplwaye baz baz ScyllaDB nan kont AWS pwòp ou. Sa a te bay nou pi bon pèfòmans ak pi bon pwoteksyon done. Diagram sa a montre ki jan deplwaman BYOA nan ScyllaDB sanble. Nan sant la nan dyagram la, ou ka wè yon gwoup 6-nod ScyllaDB ki kouri sou EC2. Epi Lè sa a, gen de lòt instans EC2. ScyllaDB Monitor bay nou Grafana tablo kòm byen ke metrik Prometheus. ScyllaDB Manager sove otomatik enfrastrikti tankou aktivasyon backups ak reparasyon. Avèk deplwaman sa a, ScyllaDB ta ka ko-lokalize trè tou pre microservices nou yo bay nou latans menm pi ba, osi byen ke anpil pi wo pase ak pèfòmans. Nan konklizyon, mwen espere ke ou gen kounye a yon konpreyansyon pi bon nan aritèktrik nou an, teknoloji yo ki pèmèt platfòm la, ak ki jan ScyllaDB jwe yon wòl kritik nan pèmèt nou fè fas a Tripadvisor a eksepsyonèlman gwo. Tout bagay sou Cynthia Dunlop Cynthia se Senior Direktè Content Strategy nan ScyllaDB. Li te ekri sou devlopman lojisyèl ak enjenyè bon jan kalite pou plis pase 20 ane.