„Sprout Social“ iš esmės yra duomenimis pagrįsta įmonė. „Sprout“ kasdien apdoroja milijardus pranešimų iš kelių socialinių tinklų. Dėl šios priežasties „Sprout“ inžinieriai susiduria su unikaliu iššūkiu – kaip išsaugoti ir atnaujinti kelias to paties pranešimo versijas (t. y. retweet’us, komentarus ir pan.), kurios į mūsų platformą patenka labai dideliu kiekiu.



Kadangi saugome kelias pranešimų versijas, „Sprout“ inžinieriams pavesta kelis kartus per dieną „atkurti pasaulį“ – tai esminis procesas, kurio metu reikia kartoti visą duomenų rinkinį, kad kiekviena socialinio pranešimo dalis būtų sujungta į vieną „tiesos šaltinį“.




ką reiškia 713

Pavyzdžiui, stebėti vieno Twitter įrašo mygtukus, komentarus ir retweets. Istoriškai mes pasitikėjome savarankiškai valdomomis „Hadoop“ grupėmis, kad išlaikytume ir dirbtume su tokiu dideliu duomenų kiekiu. Kiekviena „Hadoop“ klasteris būtų atsakinga už skirtingas „Sprout“ platformos dalis – praktika, kuria remiasi „Sprout“ inžinierių komanda, valdydama didelius duomenų projektus.

„Sprout“ didelių duomenų metodo raktai

Mūsų Hadoop ekosistema priklausė nuo Apache Hbase, keičiamo dydžio ir paskirstytos NoSQL duomenų bazės. Hbase yra labai svarbus mūsų požiūriui į didelių duomenų apdorojimą, nes jos gebėjimas ne tik greitai nuskaityti visus duomenų rinkinius, bet ir atlikti greitas, atsitiktines, vieno įrašo paieškas.

„Hbase“ taip pat leidžia mums masiškai įkelti duomenis ir atnaujinti atsitiktinius duomenis, kad galėtume lengviau tvarkyti pranešimus, gaunamus netvarkingai arba su daliniais atnaujinimais, ir kitus iššūkius, susijusius su socialinės žiniasklaidos duomenimis. Tačiau savarankiškai valdomos „Hadoop“ grupės užkrauna mūsų infrastruktūros inžinieriams dideles veiklos sąnaudas, įskaitant rankinį atkūrimo valdymą, klasterių išplėtimą ir mazgų valdymą.


1212 reikšmė

Siekdamos sutrumpinti šių sistemų valdymą naudojant šimtus terabaitų duomenų, „Sprout“ infrastruktūros ir plėtros komandos susibūrė, kad surastų geresnį sprendimą nei savarankiškai valdomų „Hadoop“ grupių valdymas. Mūsų tikslai buvo:

  • Leiskite „Sprout“ inžinieriams geriau kurti, valdyti ir valdyti didelius duomenų rinkinius
  • Sumažinkite inžinierių laiko investicijas rankiniam sistemos valdymui ir priežiūrai
  • Sumažinkite nereikalingas išlaidas dėl perteklinio aprūpinimo dėl grupės plėtros
  • Pateikite geresnius atkūrimo būdus ir patikimumą

Vertindami dabartinės didžiųjų duomenų sistemos alternatyvas, stengėmės rasti sprendimą, kuris būtų lengvai integruotas su dabartiniu apdorojimu ir modeliais ir palengvintų eksploatacinį triūsą, susijusį su klasterio valdymu rankiniu būdu.



Naujų duomenų šablonų alternatyvų įvertinimas

Vienas iš sprendimų, kurį svarstė mūsų komandos, buvo duomenų saugyklos. Duomenų saugyklos veikia kaip centralizuota duomenų analizės ir agregavimo saugykla, tačiau labiau primena tradicines reliacines duomenų bazes, palyginti su Hbase. Jų duomenys yra struktūrizuoti, filtruojami ir turi griežtą duomenų modelį (t. y. turi vieną eilutę vienam objektui).

Mūsų naudojimo atveju saugoti ir apdoroti socialinius pranešimus, kuriuose yra daug pranešimų versijų, esančių greta, duomenų saugyklos turėjo neveiksmingą modelį, atitinkantį mūsų poreikius. Negalėjome efektyviai pritaikyti esamo modelio duomenų saugykloms, o našumas buvo daug lėtesnis, nei tikėjomės. Norint iš naujo suformatuoti duomenis, kad jie prisitaikytų prie duomenų saugyklos modelio, reikės didelių pridėtinių išlaidų, kad būtų galima pertvarkyti turimą laiko juostą.


888 kinų reikšmė

Kitas sprendimas, kurį išnagrinėjome, buvo duomenų ežerai. Duomenų bazės išplečia duomenų saugyklos koncepcijas, kad būtų galima naudoti mažiau struktūrizuotus duomenis, pigiau saugoti ir suteikti papildomą saugumo sluoksnį jautriems duomenims. Nors duomenų saugyklos siūlė daugiau nei galėjo duomenų saugyklos, jos nebuvo tokios veiksmingos kaip dabartinis Hbase sprendimas. Išbandę sujungimo įrašą ir įterpimo bei ištrynimo apdorojimo šablonus, negalėjome sugeneruoti priimtinų paketinių užduočių rašymo delsų.



Sumažinkite pridėtines ir priežiūros išlaidas naudojant AWS EMR

Atsižvelgdami į tai, ką sužinojome apie duomenų saugyklą ir ežerų namų sprendimus, pradėjome ieškoti alternatyvių įrankių, kuriuose veikia valdoma Hbase. Nors nusprendėme, kad dabartinis „Hbase“ naudojimas yra veiksmingas tai, ką darome „Sprout“, paklausėme savęs: „Kaip galėtume geriau paleisti Hbase, kad sumažintume savo veiklos naštą, išlaikant pagrindinius naudojimo būdus?

Tada pradėjome vertinti „Amazon“ valdomą „Elastinio žemėlapio mažinimo“ (EMR) paslaugą, skirtą „Hbase“. Norint įvertinti EMR, reikėjo įvertinti jo našumą taip pat, kaip išbandėme duomenų saugyklas ir ežerus, pvz., tikrinome duomenų gavimą, kad sužinotume, ar jis gali atitikti mūsų našumo reikalavimus. Taip pat turėjome išbandyti duomenų saugojimą, aukštą pasiekiamumą ir atkūrimą po nelaimingų atsitikimų, kad įsitikintume, jog EMR atitinka mūsų poreikius infrastruktūros / administraciniu požiūriu.

EMR funkcijos pagerino mūsų dabartinį savarankiškai valdomą sprendimą ir leido pakartotinai naudoti dabartinius skaitymo, rašymo ir darbų vykdymo modelius taip pat, kaip darėme su Hbase. Vienas didžiausių EMR pranašumų yra EMR failų sistemos (EMRFS), kuri saugo duomenis S3, o ne pačiuose mazguose, naudojimas.

Iššūkis, kurį nustatėme, buvo tai, kad EMR turėjo ribotas aukšto pasiekiamumo parinktis, dėl kurių galėjome paleisti kelis pagrindinius mazgus vienoje pasiekiamumo zonoje arba vieną pagrindinį mazgą keliose pasiekiamumo zonose. Ši rizika buvo sumažinta panaudojus EMRFS, nes tai suteikė papildomą atsparumą gedimams atkuriant nelaimės ir duomenų saugyklos atsiejimą nuo skaičiavimo funkcijų. Naudodami EMR kaip savo Hbase sprendimą, galime pagerinti savo mastelį ir trikčių atkūrimą bei sumažinti rankinio įsikišimo, reikalingo klasterių priežiūrai, poreikį. Galiausiai nusprendėme, kad EMR geriausiai atitinka mūsų poreikius.


ką daro 222

Perkėlimo procesas buvo lengvai išbandytas iš anksto ir atliktas siekiant perkelti milijardus įrašų į naujas EMR grupes be jokių klientų prastovų. Nauji klasteriai pagerino našumą ir sumažino sąnaudas beveik 40%. Jei norite sužinoti daugiau apie tai, kaip perėjimas prie EMR padėjo sumažinti infrastruktūros išlaidas ir pagerinti našumą, žr „Sprout Social“ atvejo tyrimas su AWS.

Ką išmokome

Šio projekto dydis ir apimtis suteikė mums, infrastruktūros duomenų bazės patikimumo inžinerijos komandai, galimybę dirbti kryžmiškai su keliomis inžinierių komandomis. Nors tai buvo sudėtinga, tai pasirodė esąs neįtikėtinas didelio masto projektų, kuriuos galime įgyvendinti Sprout kaip bendradarbiaujanti inžinierių organizacija, pavyzdys. Vykdydama šį projektą mūsų infrastruktūros komanda įgijo gilesnį supratimą apie tai, kaip naudojami, saugomi ir apdorojami „Sprout“ duomenys, todėl esame labiau pasirengę padėti išspręsti būsimas problemas. Sukūrėme bendrą žinių bazę keliose komandose, kuri gali padėti mums sukurti naujos kartos klientų funkcijas.

Jei jus domina tai, ką mes statome, prisijunk prie mūsų komandos ir kandidatuok vienam iš mūsų atvirų inžinieriaus vaidmenų šiandien.

Dalykitės Su Savo Draugais: