Bloomberg krÄtuves atbalsta komanda paļaujas uz atvÄrtÄ koda un SDS
TL; DR: Bloomberg Storage Engineering komanda izveidoja mÄkoÅkrÄtuvi iekÅ”Äjai lietoÅ”anai, kas netraucÄ infrastruktÅ«rai un var izturÄt lielo tirdzniecÄ«bas nepastÄvÄ«bas slodzi pandÄmijas laikÄ.
MetjÅ« Leonards, stÄstot par savu darbu kÄ tehniskÄ menedžeris Bloomberg Storage Engineering komandÄ, bieži lieto vÄrdus āizaicinoÅ”sā un ājautriā. IzaicinÄjumi rodas no plaÅ”Ä krÄtuves apjoma, sÄkot no jaunÄkajiem NVMe balstÄ«tiem SAN masÄ«viem un beidzot ar atvÄrtÄ pirmkoda programmatÅ«ras definÄtu krÄtuvi pakalpojumÄ DevOps. Å eit sÄkas ājautrÄ«baā (skatiet manu HabrÄ iemiesojumu, apm. tulkotÄjs).
Leonards un viÅa 25 kolÄÄ£u komanda pÄrrauga vairÄk nekÄ 100 petabaitu ietilpÄ«bu un iekÅ”Äjo mÄkoni 6000 inženieriem, kas izstrÄdÄ lietojumprogrammas Bloomberg Terminal, tehnoloÄ£ijai, kas padarÄ«ja Maiklu Blumbergu par miljardieri. Komanda projektÄ, veido un uztur Bloomberg Engineering uzglabÄÅ”anas sistÄmas.
TÄpat kÄ pÄrÄjÄ IT profesijÄ, arÄ« 2020. gads Storage Engineering komandas locekļiem bija neparasts gads, jo COVID-19 lika viÅiem strÄdÄt attÄlinÄti. Leonards sacÄ«ja, ka pandÄmija ir sociÄli ietekmÄjusi viÅa āsavienoto komanduā, jo tika novÄrsta saskarsme aci pret aci, taÄu darbinieki ļoti Ätri pielÄgojÄs darbam no mÄjÄm ar klÄpjdatoriem un videokonferencÄm.
PÄrsteidzoÅ”i, es gribu teikt, ka tas nepasliktinÄja situÄciju. Bija Ä«ss adaptÄcijas periods ā ne visi bija gatavi strÄdÄt no mÄjÄm. PÄc nedÄļas vai divÄm visi to saprata. MÄs varÄjÄm atrast veidus, kÄ sevi aizÅemt, iegÄdÄties un uzlabot aprÄ«kojumu, kÄ arÄ« palielinÄt izmaksas, lai Å”ajos laikos atbalstÄ«tu uzÅÄmumu. Mums bija jÄkļūst radoÅ”iem, bet mÄs necietÄm
LielÄkais izaicinÄjums, iespÄjams, bija pirms COVID-19 maksimuma. To izraisÄ«ja nestabilÄ tirgus tirdzniecÄ«ba, ko izraisÄ«ja bažas par pandÄmijas ietekmi uz pasaules ekonomiku. Datu apjoms, kas ieplÅ«st Bloomberg terminÄļos no pasaules kapitÄla tirgiem, gandrÄ«z dubultojÄs, marta beigÄs dažÄs dienÄs sasniedzot 240 miljardus informÄcijas. Å is ir nopietns uzglabÄÅ”anas sistÄmu pÄrbaudÄ«jums.
Ja vienÄ dienÄ uzreiz dubultojat uzglabÄÅ”anas prasÄ«bas, tas rada interesantas problÄmas. MÄs spÄjÄm to pÄrvarÄt un nodroÅ”inÄt, ka lietojumprogrammu izstrÄdes komandÄm tiek nodroÅ”inÄta vajadzÄ«gÄ telpa un veiktspÄja. LielÄkÄ daļa no tÄ ir saistÄ«ta ar to, kÄ mÄs domÄjam par uzglabÄÅ”anas sistÄmÄm. Å odien mÄs neko neradÄm. MÄs nesakÄm: "MÄs izmantojam ABC, tÄpÄc mÄs veidosim ABC infrastruktÅ«ru." MÄs kopÄ ar savÄm komandÄm veicam to, ko saucam par "datu budžeta plÄnoÅ”anu", lai prognozÄtu lietojumu, analizÄtu lietojuma un veiktspÄjas tendences, kÄ arÄ« aplÅ«kojam droŔību. Å Äda veida plÄnoÅ”ana, domÄÅ”ana un metodiskÄ uzticamÄ«bas pÄrbaude ļauj mums veikt krasas darbÄ«bas pret pÄrspriegumiem, nesvÄ«stot. Protams, es biju nervozs, bet es jutos Ärti, atrodoties savÄ vietÄ.
Leonards nesen detalizÄti runÄja ar SearchStorage par krÄtuves pÄrvaldÄ«bu uz datiem balstÄ«tiem uzÅÄmumiem. ViÅÅ” apsprieda, kas bÅ«tu nepiecieÅ”ams, lai piedÄvÄtu privÄtu mÄkoÅu krÄtuves risinÄjumu ar iespÄju nodroÅ”inÄt AWS funkcijas saviem lietotÄjiem, vienlaikus saglabÄjot visus datus Bloomberg datu centros.
Ja pandÄmijas vairs nav, kÄdas grÅ«tÄ«bas Bloomberg inženieriem ir ar krÄtuves pÄrvaldÄ«bu?
Mums ir daudz vajadzÄ«bu, mÄs vienkÄrÅ”i esam saplosÄ«ti dažÄdos virzienos. TÄpÄc mums ir jÄnodroÅ”ina daudz dažÄdu produktu veidu dažÄdos SLA lÄ«meÅos, lai palÄ«dzÄtu mÅ«su lietojumprogrammu izstrÄdÄtÄjiem koncentrÄties uz saviem uzdevumiem, nevis uztraukties par paÅ”u krÄtuvi.
Un kÄdu stratÄÄ£iju jÅ«s tam sekojat?
Daļa no tÄ, ko mÄs cenÅ”amies darÄ«t, ir uzlabot krÄtuves veiktspÄju. PadomÄjiet par AWS modeli, kurÄ ienÄk izstrÄdes inženieris, nospiež pogu un pÄc tam āclickā maÄ£iski iegÅ«st pareizo krÄtuves veidu, lai atrisinÄtu savu problÄmu.
KÄ izskatÄs jÅ«su krÄtuves infrastruktÅ«ra?
TÄ kÄ mums ir ļoti daudzveidÄ«ga ekosistÄma un daudz dažÄdu izstrÄdÄtÄju, mÄs nevaram piedÄvÄt vienu produktu. Mums ir objektu, failu un bloku krÄtuve. Tie ir dažÄdi produkti, un mÄs piedÄvÄjam dažÄda veida tehnoloÄ£ijas to piegÄdei. Blokam mÄs izmantojam SAN. Mums ir arÄ« SDS, kas nodroÅ”ina vÄl vienu bloku uzglabÄÅ”anas iespÄju ar atŔķirÄ«gÄm veiktspÄjas prasÄ«bÄm. Failiem mÄs izmantojam NFS. SDS tiek izmantots arÄ« objektu glabÄÅ”anai. Bloku un objektu daļas veido iekÅ”Äju privÄtu mÄkoni skaitļoÅ”anai un glabÄÅ”anai.
Pareizi. DažÄm izstrÄdes komandÄm ir atļauja izmantot publiskos mÄkoÅus. TaÄu mÅ«su biznesa rakstura dÄļ mÄs dodam priekÅ”roku lielÄkai kontrolei pÄr lietÄm, kas atstÄj mÅ«su sienas. TÄtad, jÄ, mums ir savi mÄkoÅi, kas ir mÅ«su kontrolÄ. Å is ir aprÄ«kojums, kas atrodas mÅ«su pÄrvaldÄ«bÄ esoÅ”ajÄ datu centrÄ.
Savos datu centros mÄs dodam priekÅ”roku vairÄku piegÄdÄtÄju stratÄÄ£ijai. Tie ir lieli piegÄdÄtÄji, bet mÄs nepateiksim, kas tieÅ”i (tÄ ir Bloomberg politika neatbalstÄ«t nevienu piegÄdÄtÄju, apm. tulkotÄjs).
Vai privÄtÄ mÄkoÅa izveidei izmantojat hiperkonverÄ£Ätu infrastruktÅ«ru?
NÄ. MÄs Bloomberg izvÄlamies virzienu, kurÄ mÄs nevirzÄmies uz hiperkonverÄ£enci. MÄs cenÅ”amies atsaistÄ«t aprÄÄ·inus no krÄtuves, lai varÄtu tos mÄrogot neatkarÄ«gi. Virziens, kurÄ mÄs virzÄmies, it Ä«paÅ”i ar mÅ«su mÄkoni, ir tas, lai mÄs varÄtu noŔķirt Ŕīs divas vienÄ«bas. Un tas viss tÄpÄc, ka dažas lietas mÅ«su valstÄ« prasa intensÄ«vus aprÄÄ·inus, bet citas prasa glabÄÅ”anu. Ja tos mÄrogosit vienmÄrÄ«gi, jÅ«s zaudÄsit resursus neatkarÄ«gi no naudas vai vietas datu centros vai iegÄdÄjoties jaudu, kas jums nav nepiecieÅ”ama. TÄpÄc mums patÄ«k, ka starp abÄm entÄ«tijÄm ir kopÄja saskarne, taÄu tÄs ir pilnÄ«gi atŔķirÄ«gas sistÄmas un pÄrvalda dažÄdas komandas.
KÄdi ŔķÄrŔļi jÄpÄrvar, lai izveidotu privÄtu mÄkoni?
MÄroga problÄma. TÄpat kÄ lielÄkajÄ daÄ¼Ä lietu, velns slÄpjas detaļÄs. Ja domÄjat par to, kÄ Å”Ä«s lietas darbojas, kÄ padarÄ«t tÄs izturÄ«gas, kÄ tikt galÄ ar darbÄ«bas slodzi, kÄ sazinÄties ar fizisko lÄ«dzekļu komandÄm, lietas kļūst nedaudz interesantas. IzaicinÄjums ir atrast veidu, kÄ padarÄ«t visu par mÄrogojamu un atbalstÄmu produktu, ko mÅ«su lietojumprogrammu izstrÄdÄtÄji vÄlÄtos izmantot, lai varÄtu bagÄtinÄt funkciju kopu, vienlaikus saglabÄjot vismodernÄko publiskÄ mÄkoÅa darbÄ«bu. Un arÄ« to visu apvienot, lai tas turpinÄtu darboties. TÄ ir mÅ«su galvenÄ problÄma ā mÄs strÄdÄjam visÄs biznesa jomÄs, cenÅ”oties apmierinÄt visas vajadzÄ«bas, bet neignorÄjot citas vajadzÄ«bas.
Vai, jÅ«suprÄt, jums ir vajadzÄ«gas jaunÄkÄs AWS un citos publiskos mÄkoÅos pieejamÄs funkcijas?
Pats jautrÄkais fakts par S3 ir tas, ka dzÄ«ves lÄ«menis nepÄrtraukti mainÄs, arvien tiek pievienotas jaunas funkcijas. TÄ ir kÄ jauna rotaļlieta. Ja kÄds jaunÄ laidienÄ redz jaunu funkciju, viÅÅ” to vÄlas. Ne visas AWS funkcijas ir piemÄrojamas mÅ«su vidÄ, tÄpÄc ir svarÄ«gi un interesanti uzzinÄt, kas palÄ«dzÄs izstrÄdÄtÄjiem un kÄ to iegÅ«t iekÅ”Äji.
KÄdu uzglabÄÅ”anas aprÄ«kojumu jÅ«s izmantojat?
MÄs izmantojam jaunÄko aprÄ«kojumu. MÅ«su iekÅ”Äjais mÄkonis ir pilnÄ«bÄ balstÄ«ts uz NVMe Flash, kas padara Ŕīs sistÄmas ļoti jaudÄ«gas. Tas nedaudz atvieglo mÅ«su dzÄ«vi, un tÄ ir arÄ« jauka funkcija mÅ«su izstrÄdÄtÄjiem, jo āāviÅiem nav jÄuztraucas par krÄtuves veiktspÄju.
Kam jÅ«s izmantojat objektu glabÄÅ”anu?
Mums ir 6000 izstrÄdÄtÄju, kas strÄdÄ pie infrastruktÅ«ras, viÅus nevieno neviens lietoÅ”anas gadÄ«jums. JebkurÅ” variants, ko varat iedomÄties, mums, iespÄjams, ir objektu krÄtuvÄ. Dažas komandas to izmanto aukstÄ arhÄ«va glabÄÅ”anai, dažas datu pÄrsÅ«tÄ«Å”anai un citas, kas to izmanto darÄ«jumu lietojumprogrammÄm. Visiem Å”iem lietoÅ”anas gadÄ«jumiem ir nepiecieÅ”ami dažÄdi SLA lÄ«meÅi, tÄpÄc, kÄ redzat, mums ir dažÄdi trafika veidi un dažÄdas vajadzÄ«bas dažÄdiem mÅ«su infrastruktÅ«ras lietotÄjiem. Å is nav viendabÄ«gs lietoÅ”anas gadÄ«jums, kas darbojas virs jebkuras mÅ«su krÄtuves, kas acÄ«mredzami padara lietas sarežģītÄkas.
Cik lielu lomu jums spÄlÄ Kubernetes un konteineri, un kÄ tas ietekmÄ uzglabÄÅ”anu?
MÄs veicinÄm krÄtuves produktivitÄti, lai radÄ«tu mÄkoÅa sajÅ«tu, kaut kÄ pakalpojuma sajÅ«tu, kur izstrÄdÄtÄjiem ir poga, kas ļauj paÄtrinÄt savu darbu un noÅemt infrastruktÅ«ru.
Redaktora n.b.: 15. gada 2020. oktobris bÅ«s gatavs Ceph video kurss. JÅ«s apgÅ«sit Ceph tÄ«kla uzglabÄÅ”anas tehnoloÄ£iju, ko izmantot savos projektos, lai uzlabotu kļūdu toleranci.
Mums ir trÄ«s komandas, pirmÄ ir krÄtuves API komanda. ViÅi nodroÅ”ina programmatisku piekļuvi, galapunktus un iepriekÅ” noteiktas darbplÅ«smas Bloomberg lietotÅu izstrÄdes klientiem. Å Ä« ir pilnas kaudzes tÄ«mekļa izstrÄdÄtÄju komanda, kas izmanto node.js, python, atvÄrtÄ pirmkoda tehnoloÄ£ijas, piemÄram, Apache Airflow, tÄpÄc viÅi pÄta konteinerizÄciju un virtualizÄciju.
Mums ir arÄ« divas tehniskÄs komandas, kas faktiski pÄrvieto bitus un baitus. Tie ir tieÅ”Äk saistÄ«ti ar aprÄ«kojumu. Mums ir daudz aprÄ«kojuma, un Ŕīs komandas neizmanto virtualizÄciju un konteinerus.
MÄs cenÅ”amies sekot lÄ«dzi nozarÄ notiekoÅ”ajam, pÄtot Kubernetes CSI draiverus, kÄ arÄ« cieÅ”i sadarbojamies ar komandu, kas ievieÅ” Kubernetes uzÅÄmumÄ Bloomberg, lai novÄrtÄtu, vai mÄs varam panÄkt, lai Kubernetes krÄtuve darbotos konsekventi ar mÅ«su rÄ«cÄ«bÄ esoÅ”ajÄm tehnoloÄ£ijÄm. tas darbojas. MÄs izmantojam SDS, lai atbalstÄ«tu Kubernetes, kas ir savienotas ar pastÄvÄ«gu krÄtuvi. MÄs esam veiksmÄ«gi izstrÄdÄjuÅ”i Å”o tehnoloÄ£iju, un starp abÄm komandÄm turpinÄs diskusijas par to, kÄ padarÄ«t to pieejamu visiem pÄrÄjiem Bloomberg. MÄs esam parÄdÄ«juÅ”i, ka tas ir pilnÄ«gi iespÄjams.
KÄdu citu atvÄrtÄ pirmkoda programmatÅ«ru jÅ«s izmantojat, jo Ä«paÅ”i uzglabÄÅ”anai?
MÄs izmantojam Apache Airflow, HAProxy, lai ierobežotu lietojumprogrammu trafiku. MÄs izmantojam arÄ« Ceph, SDS platformu. Izmantojot to, jums var bÅ«t viena komandu sistÄma, bet klientiem tiek nodroÅ”inÄtas vairÄkas saskarnes. Viena no virtualizÄcijas platformÄm darbojas OpenStack - mÄs cieÅ”i sadarbojamies ar Å”o komandu. Mums ir atvÄrtÄ pirmkoda virtualizÄcijas platforma, kas glabÄÅ”anai izmanto atvÄrtÄ koda SDS platformu. Tas ir smieklÄ«gi.
KÄdas uzglabÄÅ”anas tehnoloÄ£ijas jÅ«s apsverat nÄkamajiem diviem lÄ«dz trim gadiem?
MÄs vienmÄr pÄtÄm citas lieliskas jaunas lietas, kas notiek uzglabÄÅ”anas nozarÄ. TÄ ir daļa no mÅ«su darba, nevis āÅ”eit ir jÅ«su SAN, pÄrvaldiet Å”eit, un Å”eit ir jÅ«su NFS, pÄrvaldiet turā. MÄs cenÅ”amies sazinÄties ar saviem klientiem, t.i. mÅ«su lietojumprogrammu izstrÄdÄtÄji. MÄs strÄdÄjam kopÄ, lai saprastu, kÄdas problÄmas viÅi cenÅ”as atrisinÄt un kÄ tas ietekmÄs mÅ«su ÄrÄjos Bloomberg klientus ā bankas un citus, kas izmanto mÅ«su programmatÅ«ru. Un tad mÄs atgriežamies datu glabÄÅ”anas pasaulÄ, lai atrastu iespÄjas, kas palÄ«dzÄtu sasniegt savu mÄrÄ·i. KÄ mÄs varam palÄ«dzÄt viÅiem atrast pareizo uzglabÄÅ”anas tehnoloÄ£iju, kas atbilst viÅu SLA vai tam, ko viÅi cenÅ”as darÄ«t? TÄ kÄ mums ir tik daudz inženieru, kas dara forÅ”as lietas, tas nekad nekļūst garlaicÄ«gi.
PaÅ”laik mÄs meklÄjam veidus, kÄ uzlabot SDS veiktspÄju, kas varÄtu darboties vispÄrÄjas nozÄ«mes serveros. TÄpÄc mÄs strÄdÄjam pie NVMe, izmantojot TCP, Ŕī ir ļoti interesanta un forÅ”a iniciatÄ«va, viena no daudzajÄm. StrÄdÄjam arÄ« ar nozares galvenajiem cilvÄkiem un dažiem esoÅ”ajiem piegÄdÄtÄjiem, lai noskaidrotu, ko viÅi piedÄvÄ un kÄds bÅ«s reÄlais sniegums, vai varam sÄkt to izmantot ražoÅ”anÄ uzÅÄmumÄ. Tas paver jaunus apvÄrÅ”Åus, kas iepriekÅ” nebija pieejami.
Neliela palīdzība P.S.
P.S. Ja drÄ«kst, tad atgÄdinÄÅ”u, ka bÅ«s 28.-30.septembris intensÄ«vÄ Kubernetes bÄze, tiem, kas nezina Kubernetes, bet vÄlas ar to iepazÄ«ties un sÄkt ar to strÄdÄt.