Momentinė nuotrauka
Organizacija
„Momento“ talpyklos infrastruktūra debesų programoms yra sudėtinga ir atima daug laiko. Tradiciniai talpyklos sprendimai reikalauja daug pastangų replikuojant, perjungimo valdymui, atsarginėms kopijoms, atkūrimui ir gyvavimo ciklo valdymui naujinant ir diegiant. Ši veiklos našta nukreipia išteklius nuo pagrindinės verslo veiklos ir funkcijų kūrimo.
Sprendimas
„Momento“ teikia talpyklos be serverio sprendimą, kuriame naudojami „Ampere“ pagrįsti „Google Tau T2A“ egzemplioriai, kurie automatizuoja išteklių valdymą ir optimizavimą, todėl kūrėjai gali integruoti greitą ir patikimą talpyklą, nesijaudindami dėl pagrindinės infrastruktūros. Remiantis „Apache Pelikan“ atvirojo kodo projektu, „Momento“ talpykla be serverio pašalina rankinio aprūpinimo ir eksploatacinių užduočių poreikį, o tai siūlo patikimą API, kad rezultatai būtų sklandūs.
Pagrindinės savybės
- Architektūra be serverių: nėra serverių, kuriuos būtų galima valdyti, konfigūruoti ar prižiūrėti.
- Nulinė konfigūracija: nuolatinis infrastruktūros optimizavimas be rankinio įsikišimo.
- Didelis našumas: išlaikomas paslaugų lygio tikslas – 2 ms talpyklos užklausų pirmyn ir atgal laikas P99.9, užtikrinant mažą uodegos delsą.
- Mastelio keitimas: Naudojami kelių gijų saugojimo mazgai ir šerdies prisegimas, kad būtų galima efektyviai valdyti dideles apkrovas.
- Papildomos paslaugos: išplėstas produktų rinkinys apima viešųjų pranešimų magistrales.
Techninės naujovės
Konteksto perjungimo optimizavimas: sumažintas našumas prisegiant gijas prie konkrečių branduolių ir skiriant branduolius tinklo įvesties/išvesties tinklui, o tai leidžia atlikti daugiau nei milijoną operacijų per sekundę 16 branduolių egzemplioriuje.
Poveikis
„Momento“ talpyklos be serverio paslauga, kurią teikia „Ampere“ pagrįsta „Google Tau T2A“, pagreitina kūrėjo patirtį, sumažina veiklos naštą ir sukuria ekonomišką, didelio našumo sistemą šiuolaikinėms debesų programoms.
Fonas: kas ir kas yra „Momento“?
„Momento“ yra įkūrėjų Khawaja Shams ir Daniela Miao idėja. Jie keletą metų dirbo kartu AWS kaip „DynamoDB“ komandos dalis, prieš pradėdami „Momento“ 2021 m. pabaigoje. Įmonės pagrindinis principas yra tas, kad įprastai naudojama programų infrastruktūra turėtų būti paprastesnė nei šiandien.
Dėl didelės AWS objektų talpyklos patirties „Momento“ komanda apsisprendė savo pradinio produkto talpykloje. Nuo to laiko jie išplėtė savo produktų rinkinį, įtraukdami tokias paslaugas kaip pub-sub pranešimų autobusai. „Momento“ talpykla be serverio, pagrįsta „Apache Pelikan“ atvirojo kodo projektu, suteikia klientams galimybę automatizuoti išteklių valdymo ir optimizavimo darbus, susijusius su raktinės vertės talpyklos paleidimu patiems.
Visos debesies programos tam tikra forma naudoja talpyklą. Talpykla yra mažos delsos dažniausiai prašomų objektų saugykla, kuri sumažina dažniausiai naudojamų paslaugų aptarnavimo laiką. Pavyzdžiui, svetainės pagrindinis puslapis, vaizdai ar CSS failai, kurie pateikiami kaip populiarių tinklalapių dalis, arba populiariausios prekės internetinėje parduotuvėje gali būti saugomos talpykloje, kad būtų užtikrintas greitesnis įkėlimo laikas, kai žmonės jų prašo.
Talpyklos naudojimas apėmė tokius dalykus kaip replikacija, perjungimas, kai sugenda pirminis mazgas, atsarginės kopijos ir atkūrimas po gedimų, ir naujinimų bei diegimų gyvavimo ciklo valdymas. Visi šie dalykai reikalauja pastangų, reikalauja žinių ir patirties bei atima laiko nuo to, ką norite daryti.
Kaip įmonė, „Momento“ laiko savo pareigą išlaisvinti savo klientus nuo šio darbo, suteikdama patikimą API, kurią galite naudoti savo programose, kad galėtumėte sutelkti dėmesį į verslo vertę kuriančių funkcijų teikimą. „Momento“ komandos požiūriu, „parūpinimas“ neturėtų būti žodis talpyklos naudotojų žodyne – galutinis tikslas yra turėti greitą ir patikimą talpyklą, kai jos prireiks, ir pasirūpinti visais valdymo klausimais. tau.
Diegimas: lengvas perkėlimas į Ampere procesorių
Iš pradžių „Momento“ sprendimas įdiegti talpyklos be serverio sprendimą „Ampere“ maitinamuose „Google T2A“ egzemplioriuose buvo motyvuotas kainos ir našumo pranašumais bei efektyvumu.
Sukurtos nuo pat pradžių, Ampere pagrįstos Tau T2A VM užtikrina nuspėjamą aukštą našumą ir linijinį mastelio keitimą, leidžiantį greitai įdiegti išplėstines programas ir viršyti esamų x86 VM našumą daugiau nei 30%.
Tačiau per neseniai duotą interviu Daniela Miao, „Momento“ įkūrėja ir CTO, taip pat atkreipė dėmesį į lankstumą, suteiktą „Ampere“ priėmimui, nes tai nebuvo „viskas arba nieko“ pasiūlymas: „tai nėra vienpusės durys. […] galite paleisti mišriu režimu, jei norite užtikrinti, kad jūsų programa būtų nešiojama ir lanksti, galite paleisti kai kurias iš jų [your application] „Arm64“ ir kai kurie „x86“
Be to, perkėlimas į Ampere CPU vyko daug sklandžiau, nei komanda iš pradžių tikėjosi.
„Perkeliamumas į „Ampere“ pagrindu veikiančius Tau T2A egzempliorius buvo tikrai nuostabus – mums nereikėjo daug daryti, ir tai tiesiog veikė“
Peržiūrėkite visą vaizdo interviu, kad sužinotumėte daugiau iš Danielos, nes ji aptaria, ką veikia „Momento“, kas rūpi jų klientams, kaip darbas su „Ampere“ padėjo jiems suteikti realią vertę klientams, taip pat kai kuriuos optimizavimus ir konfigūracijos pakeitimus, kuriuos jie atliko. maksimalus jų Ampere egzempliorių našumas.
Rezultatai: kaip „Ampere“ padeda „Momento“ pristatyti geresnį produktą
„Momento“ atidžiai stebi uodegos delsą – jų pagrindinė metrika yra P99.9 atsako laikas – tai reiškia, kad per tą laiką klientui grįžta 99,9 % visų talpyklos skambučių. Jų tikslas yra išlaikyti 2 ms paslaugų lygio tikslą talpyklos užklausoms P99.9.
Kodėl taip rūpi uodegos delsa? Įkeliant vieną tinklalapį, pavyzdžiui, talpykloje, užkulisiuose gali būti sugeneruota šimtai API užklausų, kurios savo ruožtu gali generuoti šimtus talpyklos užklausų, o jei pablogėja P99 atsako laikas, tai gali turėti įtakos beveik visiems naudotojams. . Todėl P99.9 gali būti tikslesnis matas, kaip vidutinis vartotojas naudojasi paslauga.
„Markas Brookeris, kurį religingai sekame čia, Momento, turi puikų tinklaraščio įrašą, kuriame vizualizuojamas jūsų uodegos delsos poveikis jūsų vartotojams“, – sako Daniela Miao, CTO. „Daugelio labai sėkmingų programų ir įmonių atveju tikriausiai 1 % jūsų užklausų paveiks beveik kiekvieną jūsų vartotoją. […] Mes tikrai orientuojamės į delsą, skirtą P three devynerių (P99,9) savo klientams.
Konteksto perjungimo optimizavimas
Vykdydama optimizavimo procesą, „Momento“ nustatė, kad dėl tam tikrų branduolių konteksto įjungimo padidėja našumas. Konteksto perjungimas įvyksta, kai procesorius nustoja vykdyti vieną užduotį, kad atliktų kitą, ir tai gali sukelti:
- Sistemos pertraukimai: branduolys pertraukia vartotojo programas, kad galėtų atlikti tokias užduotis kaip tinklo srauto apdorojimas.
- Procesoriaus ginčas: esant didelei apkrovai procesai konkuruoja dėl riboto skaičiavimo laiko, todėl kartais užduotys „keičiamos“.
„Momento“ giliai pasinerdama į šią temą paaiškina, kad konteksto perjungimas yra brangus, nes procesorius praranda produktyvumą išsaugodamas vienos užduoties būseną ir įkeldamas kitą. Tai panašu į tai, kaip žmonės patiria produktyvumo praradimą, kai juos pertraukia telefono skambutis ar susitikimas dirbdami su projektu. Užduotims pakeisti reikia laiko, o vėliau – papildomo laiko, kad susikauptumėte ir vėl taptumėte produktyvūs.
Sumažinus konteksto perjungimą, „Momento“ padidino procesoriaus efektyvumą ir bendrą sistemos našumą.
Darbo su „Momento“ pradžia
„Momento“ daugiausia dėmesio skiria našumui, ypač vėlavimui, ir rankiniu būdu kuruoja visus kliento SDK „GitHub“, kad išvengtų versijų neatitikimo problemų.
- Registracija: Apsilankykite „Momento“ svetainė užsiregistruoti.
- Pasirinkite SDK: pasirinkite rankomis kuruojamą SDK pageidaujamai programavimo kalbai.
- Sukurkite talpyklą: naudokite paprastą konsolės sąsają, kad sukurtumėte naują talpyklą.
- Saugoti / gauti duomenis: naudokite rinkinį ir gaukite SDK funkcijas, kad saugotumėte ir gautumėte objektus iš talpyklos.
„Momento“ architektūra
„Momento“ architektūra atskiria API šliuzo funkcijas nuo duomenų gijų saugojimo mazguose. API šliuzas nukreipia užklausas į optimalų saugyklos mazgą, o kiekvienas saugyklos mazgas turi kelias darbuotojų gijas talpyklos operacijoms tvarkyti.
- Mastelio keitimas: 16 branduolių T2A-standard-16 VM veikia du Pelikan egzemplioriai su 6 gijomis.
- Šerdies prisegimas: gijos prisegamos prie konkrečių branduolių, kad padidėjus apkrovai netrukdytų kitos programos.
- Tinklo I/O optimizavimas: Keturios RX/TX (gavimo/perdavimo) eilės prisegtos prie tam skirtų branduolių, kad būtų išvengta konteksto perjungimų, kuriuos sukelia branduolio pertraukimai. Nors galima turėti daugiau branduolių proceso tinklo I/O, jie nustatė, kad su keturiomis eilių poromis jie galėjo valdyti savo Momento talpyklą esant 95 % apkrovai, o tinklo pralaidumas netaptų kliūtimi.
Papildomi ištekliai
Norėdami sužinoti daugiau apie „Momento“ patirtį su „Tau T2A“ egzemplioriais
maitinami Ampere CPU, patikrinkite “Turbokompresorius Pelikan Cache įjungtas
„Google Cloud“ naujausios „Arm“ pagrindu sukurtos T2A VM“.
Norėdami rasti daugiau informacijos apie kodo optimizavimą Ampere CPU,
patikrinkite mūsų derinimo vadovai esančiame „Ampere“ kūrėjų centras. Jūs galite
Taip pat prisiregistravę gaukite naujienų ir nuorodų į daugiau tokio puikaus turinio
į mūsų mėnesinį kūrėjų naujienlaiškis.
Galiausiai, jei turite klausimų ar komentarų apie šį atvejo tyrimą, ten pat
yra visa „Ampere“ vartotojų ir gerbėjų bendruomenė, pasiruošusi atsakyti
„Ampere“ kūrėjų bendruomenė. Ir būtinai užsiprenumeruokite mūsų
YouTube kanalas kad ateityje būtų daugiau kūrėjams skirto turinio.