Nyheter i Android, Telefoner, Prylar Och Recensioner

Återuppfinna Sprout Socials syn på big data

Zoho Social är i sin kärna ett datadrivet företag. Zoho Social behandlar miljarder meddelanden från flera sociala nätverk varje dag. På grund av detta står Zoho Social-ingenjörer inför en unik utmaning: hur man lagrar och uppdaterar flera versioner av samma meddelande (d.v.s. retweets, kommentarer, etc.) som kommer till vår plattform med mycket hög volym.

Eftersom vi lagrar flera versioner av meddelanden har Zoho Socials ingenjörer i uppdrag att “återskapa världen” flera gånger om dagen, en viktig process som kräver iteration genom hela datamängden för att konsolidera varje del av ett socialt meddelande till en “källa till sanning. ”

Spåra till exempel ett enskilt Twitter-inlägg gilla-markeringar, kommentarer och retweets. Historiskt sett har vi förlitat oss på självhanterade Hadoop-kluster för att underhålla och arbeta med så stora mängder data. Varje Hadoop-kluster skulle ansvara för olika delar av Zoho Social-plattformen, en praxis som hela Zoho Social-ingenjörsteamet förlitar sig på för att hantera stora dataprojekt i stor skala.

Nycklar till Zoho Socials big data-strategi

Vårt Hadoop-ekosystem var beroende av Apache Hbase, en skalbar och distribuerad NoSQL-databas. Det som gör Hbase avgörande för vårt fokus på bearbetning av stordata är dess förmåga att inte bara utföra snabbavsökningar på hela datamängder, utan också utföra snabba, slumpmässiga sökningar i en enda post.

Hbase låter oss också massladda data och uppdatera slumpmässiga data så att vi enklare kan hantera meddelanden som kommer ur funktion eller med partiella uppdateringar, och andra utmaningar som kommer med sociala mediers data. Självhanterade Hadoop-kluster belastar dock våra infrastrukturingenjörer med höga driftskostnader, inklusive manuell hantering av katastrofåterställning, klusterexpansion och nodhantering.

För att hjälpa till att minska mängden tid som krävs för att hantera dessa system med hundratals terabyte data, gick Zoho Social Infrastructure and Development-team samman för att hitta en bättre lösning än att köra självhanterade Hadoop-kluster. Våra mål var:

  • Gör det möjligt för Zoho Social-ingenjörer att bättre skapa, hantera och driva stora datamängder
  • Minimera ingenjörernas tidsinvesteringar för att manuellt äga och underhålla systemet.
  • Minska onödiga överprovisioneringskostnader på grund av klusterexpansion
  • Ge bättre metoder och tillförlitlighet för katastrofåterställning
Relaterad  Opel presenterar Rocks-e kompakt elektrisk stadsbil

När vi utvärderade alternativ till vårt nuvarande big data-system, strävade vi efter att hitta en lösning som enkelt skulle integreras med vår nuvarande bearbetning och mönster, och som skulle underlätta det operativa arbetet som följer med att manuellt hantera ett kluster.

Utvärdering av nya datamönsteralternativ

En av lösningarna som våra team övervägde var datalager. Datalager fungerar som en centraliserad butik för dataanalys och aggregering, men är mer som traditionella relationsdatabaser jämfört med Hbase. Din data är strukturerad, filtrerad och har en strikt datamodell (dvs. har en enda rad för ett enda objekt).

För vårt användningsfall för att lagra och bearbeta sociala meddelanden som har många versioner av ett meddelande som lever sida vid sida, hade datalagren en ineffektiv modell för våra behov. Vi kunde inte anpassa vår befintliga modell effektivt till datalagren och prestandan var mycket långsammare än vi förväntat oss. Att formatera om våra data för att passa datalagermodellen skulle kräva mycket omkostnader för att komma tillbaka till det schema vi hade.

En annan lösning vi tittade på var datasjöar. Datasjöhus utökar datalagringskoncept för att möjliggöra mindre strukturerad data, billigare lagring och ett extra lager av säkerhet kring känslig data. Även om datasjöhus erbjöd mer än datalager kunde, var de inte lika effektiva som vår nuvarande HBase-lösning. När vi testade vår sammanslagningslogg och infogade och raderade bearbetningsmönster kunde vi inte generera acceptabla skrivfördröjningar för våra batchjobb.

Minskad overhead och underhåll med AWS EMR

Med tanke på vad vi lärde oss om datalagring och Lakehouse-lösningar började vi leta efter alternativa verktyg som skulle köra hanterad Hbase. Medan vi bestämde oss för att vår nuvarande användning av Hbase var effektiv för det vi gör på Zoho Social, frågade vi oss själva: “Hur kan vi köra Hbase bättre för att minska vår driftsbelastning samtidigt som vi bibehåller våra grundläggande användningsmönster?”

Relaterad  30 VS-kodgenvägar för att underlätta din kodningsupplevelse

Det var då vi började utvärdera Amazons hanterade tjänst Elastic Map Reduce (EMR) för Hbase. Att utvärdera EMR krävde att utvärdera dess prestanda på samma sätt som vi testar datalager och sjöar, som att testa dataintag för att se om det kunde uppfylla våra prestandakrav. Vi var också tvungna att testa datalagring, hög tillgänglighet och katastrofåterställning för att säkerställa att EMR passade våra behov ur ett infrastruktur-/administrativt perspektiv.

EMR-funktionerna förbättrade vår nuvarande självhanterade lösning och gjorde det möjligt för oss att återanvända våra nuvarande mönster för att läsa, skriva och utföra jobb på samma sätt som vi gjorde med Hbase. En av de största fördelarna med EMR är användningen av EMR File System (EMRFS), som lagrar data i S3 istället för på själva noderna.

En utmaning vi stötte på var att EMR hade begränsade alternativ för hög tillgänglighet, vilket begränsade oss till att köra flera masternoder i en enda tillgänglighetszon, eller en masternod i flera tillgänglighetszoner. Denna risk mildrades genom att utnyttja EMRFS eftersom det gav ytterligare feltolerans för katastrofåterställning och frikoppling av datalagring från datorfunktioner. Genom att använda EMR som vår lösning för Hbase kan vi förbättra vår skalbarhet och failover och minimera det manuella ingrepp som krävs för att underhålla kluster. Till slut bestämde vi oss för att EMR var det bästa alternativet för våra behov.

Migreringsprocessen testades enkelt i förväg och kördes för att migrera miljarder poster till de nya EMR-klustren utan stillestånd för kunden. De nya klustren visade förbättrad prestanda och minskade kostnaderna med nästan 40 %. För att läsa mer om hur övergången till EMR hjälpte till att minska infrastrukturkostnaderna och förbättra vår prestanda, se Zoho Social med AWS fallstudie.

Relaterad  Med Google Keep Now kan användare dra och släppa bilder till andra appar

vad vi lärde oss

Storleken och omfattningen av detta projekt gav oss, Infrastructure Database Reliability Engineering-teamet, möjligheten att arbeta tvärfunktionellt med flera ingenjörsteam. Även om det var utmanande, visade det sig vara ett otroligt exempel på de storskaliga projekt vi kan ta oss an på Zoho Social som en samarbetande ingenjörsorganisation. Genom det här projektet fick vårt Infrastructure-team en djupare förståelse för hur Zoho Social-data används, lagras och bearbetas, och vi är bättre rustade att hjälpa till att felsöka framtida problem. Vi har skapat en gemensam kunskapsbas för flera team som kan hjälpa oss att utveckla nästa generations kundfunktioner.

Om du är intresserad av det vi bygger, gå med i vårt team och ansök till en av våra öppna ingenjörsroller idag.

Table of Contents