Mis tahes skaleeritava hajutatud platvormi käitamine nõuab pühendumist töökindlusele, et klientidel oleks see, mida nad vajavad, kui nad seda vajavad. Sõltuvused võivad olla üsna keerulised, eriti nii suure platvormi puhul nagu Roblox. Usaldusväärsete teenuste loomine tähendab, et sõltumata sõltuvuste keerukusest ja olekust ei katke ühtki teenust (st. saadaval), töötab vigadeta (st kõrge kvaliteet) ja ilma vigadeta (st veataluvus).
Miks usaldusväärsus on oluline?
Meie konto identiteedi meeskond on pühendunud suurema töökindluse saavutamisele, kuna meie loodud vastavusteenused on platvormi põhikomponendid. Nõuetele mittevastamisel võivad olla rasked tagajärjed. Robloxi loomuliku toimimise blokeerimise hind on väga kõrge, kuna pärast riket ja nõrgenenud kasutuskogemust taastumiseks on vaja täiendavaid ressursse.
Tüüpiline lähenemine usaldusväärsusele keskendub peamiselt kättesaadavusele, kuid mõnel juhul on terminid segatud ja väärkasutatud. Enamik saadavuse mõõtmisi hindab lihtsalt seda, kas teenused on valmis ja töötavad, samas kui sellised aspektid nagu partitsioonitaluvus ja järjepidevus unustatakse mõnikord või mõistetakse valesti.
Kooskõlas CAP teoreemiga saab iga hajutatud süsteem tagada ainult kaks neist kolmest aspektist, seega ohverdavad meie vastavusteenused teatud järjepidevuse, et olla väga kättesaadavad ja partitsioonitaluvus. Sellest hoolimata ohverdasid meie teenused vähe ja leidsid mehhanismid hea kooskõla saavutamiseks allpool kirjeldatud mõistlike arhitektuuriliste muudatustega.
Protsess suurema töökindluse saavutamiseks on iteratiivne, tiheda mõõtmise ja pideva tööga, et vältida, leida, avastada ja parandada defekte enne vahejuhtumite tekkimist. Meie meeskond tuvastas tugeva väärtuse järgmistes tegevustes:
- Õige mõõtmine – Looge täielik jälgitavus selle ümber, kuidas kvaliteeti klientidele pakutakse ja kuidas sõltuvused tagavad meile kvaliteedi.
- Proaktiivne ootus – Tehke selliseid toiminguid nagu arhitektuuriülevaatused ja sõltuvusriskide hindamine.
- Seadke parandus prioriteediks – Pöörake suuremat tähelepanu teenuse juhtumite aruannete lahendamisele ja meie teenusega seotud sõltuvustele.
Suurema töökindluse loomine nõuab kvaliteedikultuuri. Meie meeskond investeeris juba jõudluspõhisesse arendusse ja teab, et protsessi edu sõltub selle kasutuselevõtust. Meeskond võttis selle protsessi täielikult kasutusele ja rakendas tavasid standardina. Järgmine diagramm toob esile protsessi komponendid:
Õige mõõtmise jõud
Enne mõõdikutesse süvenemist tuleb teha kiire selgitus teenindustaseme mõõtmiste kohta.
- SLO (Service Level Objective) on usaldusväärsuse eesmärk, mida meie meeskond sihib (st 99.999%).
- SLI (Service Level Indicator) on saavutatud töökindlus teatud ajaraamis (st mullu veebruaris 99.975%).
- SLA (teenusetaseme leping) on usaldusväärsus, mida meie tarbijad teatud aja jooksul (st 99.99% nädalas) tarnivad ja mida meie tarbijad eeldavad.
SLI peaks kajastama saadavust (käsitlemata või puuduvaid vastuseid pole), tõrketaluvust (teenusevigu pole) ja saavutatud kvaliteeti (ootamatuid vigu pole). Seetõttu määratlesime oma SLI kui edukate vastuste edukuse suhte võrreldes teenusele saadetud taotluste koguarvuga. Edukad vastused on need päringud, mis saadeti õigeaegselt ja vormis, st ei ühenduvus, teenindus või ootamatud vead.
See SLI ehk edukuse suhe kogutakse tarbijate (st klientide) vaatepunktist. Eesmärk on mõõta meie tarbijatele pakutavat tegelikku täielikku kogemust, et oleksime kindlad, et SLA-d on täidetud. Selle tegemata jätmine tekitaks vale usaldusväärsuse tunde, mis eirab kõiki infrastruktuuriga seotud probleeme meie klientidega ühenduse loomisel. Sarnaselt tarbija SLI-ga kogume võimalike riskide jälgimiseks sõltuvuse SLI-d. Praktikas peaksid kõik sõltuvuse SLA-d ühtima teenuse SLA-ga ja nendega on otsene sõltuvus. Ühe ebaõnnestumine tähendab kõigi ebaõnnestumist. Jälgime ja esitame ka teenuse enda (st serveri) mõõdikuid, kuid see ei ole praktiline kõrge töökindluse allikas.
Lisaks SLI-dele kogub iga järg kvaliteedimõõdikuid, millest teatab meie CI töövoog. See tava aitab tugevalt jõustada kvaliteedipiiranguid (st koodi katvust) ja esitada muid olulisi mõõdikuid, nagu kodeerimisstandardi järgimine ja staatiline koodianalüüs. Seda teemat käsitleti varem ühes teises artiklis, Jõudlusest lähtuvate mikroteenuste loomine. Usaldusväärsusest rääkides lisandub hoolas kvaliteedi järgimine, sest mida rohkem investeerime suurepäraste punktisummade saavutamisse, seda kindlamad oleme, et süsteem ebasoodsates oludes üles ei vea.
Meie meeskonnal on kaks armatuurlauda. Üks pakub kogu nähtavuse nii tarbijate SLI-le kui ka sõltuvuste SLI-le. Teine näitab kõiki kvaliteedinäitajaid. Töötame selle nimel, et liita kõik üheks armatuurlauaks, nii et kõik meile olulised aspektid oleksid konsolideeritud ja valmis teavitamiseks mis tahes aja jooksul.
Ettenägema ebaõnnestumist
Doing Arhitektuuriülevaated on usaldusväärsuse oluline osa. Esiteks teeme kindlaks, kas on olemas koondamine ja kas teenusel on vahendeid sõltuvuste vähenemise korral ellujäämiseks. Peale tüüpiliste replikatsiooniideede rakendas enamik meie teenuseid täiustatud kahe vahemälu hüdratatsioonitehnikaid, kahekordseid taastestrateegiaid (nt tõrkeotsingu kohalikud järjekorrad) või andmekao strateegiaid (nt tehingutugi). Need teemad on piisavalt ulatuslikud, et õigustada uut ajaveebi sissekannet, kuid lõppkokkuvõttes on parim soovitus rakendada ideid, mis arvestavad katastroofistsenaariumitega ja minimeerivad mis tahes tulemuslikkust.
Teine oluline aspekt, mida tuleks ette näha, on kõik, mis võiks ühenduvust parandada. See tähendab, et tuleb olla agressiivne klientide madala latentsusaja suhtes ja valmistada neid ette väga suureks liikluseks, kasutades vahemälu juhtimise tehnikaid, külgkorve ja toimivaid poliitikaid ajalõppude, kaitselülitite ja korduskatsete jaoks. Need tavad kehtivad kõigi HTTP- ja gRPC-klientide, sealhulgas vahemälude, kaupluste, järjekordade ja üksteisest sõltuvate klientide kohta. See tähendab ka teenuste tervislike signaalide parandamist ja mõistmist, et tervisekontrollid mängivad olulist rolli kogu konteinerite orkestreerimisel. Enamik meie teenuseid annab tervisekontrolli tagasiside osana paremaid signaale halvenemise kohta ja kontrollib enne tervislike signaalide saatmist kõigi kriitiliste komponentide toimimist.
Teenuste jaotamine kriitilisteks ja mittekriitilisteks osadeks on osutunud kasulikuks, et keskenduda kõige olulisematele funktsioonidele. Varem olid meil samas teenuses ainult administraatoritele mõeldud lõpp-punktid ja kuigi neid sageli ei kasutatud, mõjutasid need üldist latentsusmõõdikut. Nende enda teenusesse viimine mõjutas kõiki mõõdikuid positiivses suunas.
Sõltuvusriski hindamine on oluline vahend sõltuvustega seotud võimalike probleemide tuvastamiseks. See tähendab, et tuvastame madala SLI-ga sõltuvused ja küsime SLA joondust. Need sõltuvused vajavad integreerimisetappide ajal erilist tähelepanu, nii et pühendame lisaaega, et võrrelda ja testida, kas uued sõltuvused on meie plaanide jaoks piisavalt küpsed. Üks hea näide on Roblox Storage-as-a-Service'i varajane kasutuselevõtt. Selle teenusega integreerimine nõudis tulemuste ja tagasiside edastamiseks veapiletite esitamist ja perioodilisi sünkroonimiskoosolekuid. Kogu see töö kasutab "usaldusväärsuse" silti, et saaksime kiiresti tuvastada selle allika ja prioriteedid. Iseloomustus toimus sageli, kuni olime veendunud, et uus sõltuvus on meie jaoks valmis. See lisatöö aitas viia sõltuvuse nõutavale usaldusväärsuse tasemele, mida ootame ühise eesmärgi nimel tegutsedes.
Tooge struktuur kaosesse
Intsidentide esinemine pole kunagi soovitav. Kuid kui need juhtuvad, on usaldusväärsem teabe kogumiseks ja õppimiseks kasulikku teavet. Meie meeskonnal on meeskonna vahejuhtumiaruanne, mis koostatakse tavapärasest ettevõtteülesest aruandest kõrgemale ja kaugemale, seega keskendume kõikidele juhtumitele, olenemata nende mõju ulatusest. Me kutsume välja algpõhjuse ja seame prioriteediks kõik tööd selle leevendamiseks tulevikus. Selle aruande osana kutsume teisi meeskondi üles parandama esmatähtsalt sõltuvusjuhtumeid, võtma asjakohaseid lahendusi, vaatama tagasi ja otsima mustreid, mis võivad meie kohta kehtida.
Meeskond toodab a Igakuine töökindlusaruanne teenuse kohta mis hõlmab kõiki siin selgitatud SLI-sid, kõiki usaldusväärsuse tõttu avatud pileteid ja kõiki teenusega seotud võimalikke intsidente. Oleme nende aruannete koostamisega nii harjunud, et järgmine loomulik samm on nende väljavõte automatiseerida. Selle perioodilise tegevuse tegemine on oluline ja see tuletab meelde, et töökindlust jälgitakse ja meie arendamisel arvestatakse pidevalt.
Meie mõõteriistad sisaldavad kohandatud mõõdikuid ja täiustatud hoiatusi, et saaksime teadaolevate ja eeldatavate probleemide ilmnemisel võimalikult kiiresti välja otsida. Kõik hoiatused, sealhulgas valepositiivsed, vaadatakse üle igal nädalal. Siinkohal on oluline kogu dokumentatsiooni lihvimine, et meie tarbijad teaksid, mida oodata hoiatuste käivitumisel ja vigade ilmnemisel, ning seejärel teavad kõik, mida teha (nt käsiraamatuid ja integreerimisjuhiseid joondatakse ja uuendatakse sageli).
lõppkokkuvõttes kvaliteedi omaksvõtt meie kultuuris on kõige kriitilisem ja määravam tegur kõrgema usaldusväärsuse saavutamisel. Võime jälgida, kuidas need meie igapäevatöös rakendatavad tavad end juba ära kannavad. Meie meeskond on kinnisideeks usaldusväärsusest ja see on meie kõige olulisem saavutus. Oleme suurendanud teadlikkust võimalike defektide mõjust ja nende ilmnemise ajast. Teenused, mis neid tavasid rakendasid, on järjepidevalt jõudnud oma SLO- ja SLA-lepinguteni. Usaldusväärsuse aruanded, mis aitavad meil jälgida kogu meie tehtud tööd, annavad tunnistust meie meeskonna tehtud tööst ja on hindamatuks õppetunniks teiste meeskondade teavitamisel ja mõjutamisel. Nii puudutab usaldusväärsuse kultuur kõiki meie platvormi komponente.
Tee suurema usaldusväärsuse poole ei ole lihtne, kuid see on vajalik, kui soovite luua usaldusväärse platvormi, mis kujutab uuesti ette, kuidas inimesed kokku saavad.
Alberto on Robloxi konto identiteedi meeskonna peamine tarkvarainsener. Ta on olnud mängutööstuses pikka aega, omades krediite paljudel AAA-mängude pealkirjadel ja sotsiaalmeedia platvormidel, keskendudes tugevalt skaleeritavatele arhitektuuridele. Nüüd aitab ta parimaid arendustavasid rakendades Robloxil jõuda kasvu ja küpsuseni.
Postitus Suuremahulise platvormi töökindlus ilmus esmalt Robloxi ajaveeb.
- "
- a
- MEIST
- konto
- Saavutada
- saavutada
- tegevus
- tegevus
- lisamine
- Täiendavad lisad
- Vastuvõtmine
- ebasoodne
- Kokkulepe
- Materjal: BPA ja flataatide vaba plastik
- juba
- analüüs
- Teine
- ennetada
- rakendatud
- kehtima
- Rakendades
- lähenemine
- arhitektuuri-
- ümber
- artikkel
- seotud
- tähelepanu
- automatiseerima
- kättesaadavus
- saadaval
- teadlikkus
- sest
- enne
- on
- alla
- võrrelda
- BEST
- Peale
- Blogi
- tooma
- Bug
- ehitama
- helistama
- mis
- juhtudel
- Põhjus
- Kontroll
- kliendid
- kood
- Kodeerimine
- koguma
- Tulema
- endale
- kohustus
- toime pandud
- ühine
- edastama
- võrreldes
- Vastavus
- komponendid
- Tingimused
- usaldus
- kindel
- Võta meiega ühendust
- Side
- Arvestama
- pidevalt
- tarbija
- Tarbijad
- Konteiner
- tuum
- võiks
- looma
- loodud
- Autorid
- kriitiline
- kultuur
- tava
- Kliendid
- armatuurlaud
- andmed
- sügavam
- esitatud
- edastamine
- annab
- nõudmisi
- sõltub
- Määrama
- & Tarkvaraarendus
- otsene
- katastroof
- jagatud
- alla
- ajendatud
- ajal
- Varajane
- Lõpuks-lõpuni
- insener
- eriti
- igaüks
- kõik
- näide
- suurepärane
- ootama
- oodatav
- kogemus
- ulatuslik
- ebaedu
- tagasiside
- esimene
- Määrama
- Keskenduma
- keskendub
- keskendumine
- järgima
- Järel
- vorm
- avastatud
- Alates
- täis
- funktsionaalne
- funktsionaalsus
- põhiline
- tulevik
- mäng
- Gates
- teeniva
- eesmärk
- hea
- Kasv
- garantii
- suunised
- juhtuda
- juhtus
- Tervis
- aitama
- aidates
- aitab
- siin
- Suur
- rohkem
- rõhutab
- kõrgelt
- Kuidas
- HTTPS
- ideid
- identifitseerima
- Identity
- mõju
- rakendada
- rakendatud
- oluline
- parandama
- paranenud
- Paranemist
- Teistes
- hõlmab
- Kaasa arvatud
- kasvanud
- tööstus
- mõju
- info
- Infrastruktuur
- integratsioon
- Kavatsus
- investeerimine
- IT
- ise
- Teadma
- teatud
- Õppida
- Tase
- vähe
- kohalik
- Pikk
- Vaata
- tegema
- sobitamine
- Oluline
- küps
- tähtaeg
- tähendus
- tähendusrikas
- vahendid
- mõõtma
- Meedia
- kohtumised
- Meetrika
- segatud
- rohkem
- kõige
- liikuv
- Natural
- vajalik
- Sellegipoolest
- töötama
- töö
- Korraldus
- et
- Muu
- üldine
- enda
- osa
- Inimesed
- jõudlus
- tükki
- plaanid
- inimesele
- Platvormid
- mängima
- Punkt
- Vaatepunkt
- Poliitika
- positiivne
- võimalik
- potentsiaal
- võim
- tava
- esitada
- Peamine
- prioriteet
- probleeme
- protsess
- kvaliteet
- Kiire
- kiiresti
- jõudma
- mõistlik
- Taastuma
- taastumine
- kajastama
- kohta
- usaldusväärne
- aru
- Aruanded
- Taotlusi
- nõutav
- Vahendid
- Arvustused
- Oht
- tee
- Roblox
- Roll
- juur
- jooksmine
- sama
- skaalautuvia
- Skaala
- tunne
- teenus
- Teenused
- sarnane
- alates
- ühekordne
- So
- sotsiaalmeedia
- Sotsiaalse meedia
- sotsiaalse meedia platvormidel
- tarkvara
- Tarkvara insener
- mõned
- eriline
- seisma
- standard
- olek
- kauplustes
- strateegiad
- tugev
- edu
- edukas
- toetama
- süsteem
- rääkimine
- meeskond
- tehnikat
- tingimused
- test
- .
- seetõttu
- kolm
- piletid
- aeg
- ajakava
- kokku
- sallivus
- tööriist
- teema
- Teemasid
- jälgida
- liiklus
- mõistmine
- us
- väärtus
- kontrollima
- vaade
- nähtavus
- nädal
- M
- kas
- kuigi
- ilma
- Töö
- töö
- oleks