S3 objektu uzglabÄÅ”anas komanda Mail.ru mÄkoÅkrÄtuve iztulkojis rakstu par to, kÄdi kritÄriji ir svarÄ«gi, izvÄloties objektu krÄtuvi. TÄlÄk teksts ir no autora viedokļa.
RunÄjot par objektu glabÄÅ”anu, cilvÄki parasti domÄ tikai par vienu lietu: cenu par TB/GB. Protams, Ŕī metrika ir svarÄ«ga, taÄu tÄ padara pieeju vienpusÄju un pielÄ«dzina objektu glabÄÅ”anu arhÄ«va glabÄÅ”anas rÄ«kam. TurklÄt Ŕī pieeja samazina objektu uzglabÄÅ”anas nozÄ«mi uzÅÄmuma tehnoloÄ£iju steksÄ.
IzvÄloties objektu uzglabÄÅ”anu, jums jÄpievÄrÅ” uzmanÄ«ba piecÄm Ä«paŔībÄm:
veiktspÄja;
mÄrogojamÄ«ba;
saderīgs ar S3;
reakcija uz neveiksmÄm;
integritÄte.
Å ie pieci raksturlielumi ir jauni objektu uzglabÄÅ”anas rÄdÄ«tÄji, kÄ arÄ« izmaksas. ApskatÄ«sim tos visus.
ŠŃŠ¾ŠøŠ·Š²Š¾Š“ŠøŃŠµŠ»ŃŠ½Š¾ŃŃŃ
TradicionÄlajiem objektu veikaliem trÅ«kst veiktspÄjas. Pakalpojumu sniedzÄji to pastÄvÄ«gi upurÄja, tiecoties pÄc zemÄm cenÄm. TomÄr ar mÅ«sdienu priekÅ”metu glabÄÅ”anu lietas ir atŔķirÄ«gas.
DažÄdas uzglabÄÅ”anas sistÄmas tuvojas Hadoop Ätrumam vai pat pÄrsniedz to. MÅ«sdienu prasÄ«bas lasÄ«Å”anas un rakstÄ«Å”anas Ätrumam: no 10 GB/s cietajiem diskiem, lÄ«dz 35 GB/s NVMe.
Å Ä« caurlaidspÄja ir pietiekama Spark, Presto, Tensorflow, Teradata, Vertica, Splunk un citÄm modernÄm skaitļoÅ”anas sistÄmÄm analÄ«tikas kaudzÄ. Fakts, ka MPP datu bÄzes tiek konfigurÄtas objektu glabÄÅ”anai, liecina, ka tÄ arvien vairÄk tiek izmantota kÄ primÄrÄ krÄtuve.
Ja jÅ«su krÄtuves sistÄma nenodroÅ”ina nepiecieÅ”amo Ätrumu, jÅ«s nevarat izmantot datus un iegÅ«t no tiem vÄrtÄ«bu. Pat ja izgÅ«stat datus no objektu krÄtuves atmiÅas apstrÄdes struktÅ«rÄ, jums joprojÄm bÅ«s nepiecieÅ”ams joslas platums, lai pÄrsÅ«tÄ«tu datus uz atmiÅu un no tÄs. Mantoto objektu veikalos ar to nepietiek.
Tas ir galvenais: jaunÄ veiktspÄjas metrika ir caurlaidspÄja, nevis latentums. Tas ir nepiecieÅ”ams liela mÄroga datiem un ir mÅ«sdienu datu infrastruktÅ«ras norma.
Lai gan etaloni ir labs veids, kÄ noteikt veiktspÄju, to nevar precÄ«zi izmÄrÄ«t pirms lietojumprogrammas palaiÅ”anas vidÄ. Tikai pÄc tam jÅ«s varat pateikt, kur tieÅ”i ir saÅ”aurinÄjums: programmatÅ«rÄ, diskos, tÄ«klÄ vai skaitļoÅ”anas lÄ«menÄ«.
MÄrogojamÄ«ba
MÄrogojamÄ«ba attiecas uz petabaitu skaitu, kas ietilpst vienÄ nosaukumvietÄ. PÄrdevÄji apgalvo, ka ir viegli mÄrogojams, taÄu viÅi nesaka, ka, palielinoties mÄrogam, masÄ«vas monolÄ«tÄs sistÄmas kļūst trauslas, sarežģītas, nestabilas un dÄrgas.
JaunÄ mÄrogojamÄ«bas metrika ir to nosaukumvietu vai klientu skaits, kurus varat apkalpot. Metrika ir iegÅ«ta tieÅ”i no hiperskaleriem, kur krÄtuves bloki ir mazi, taÄu to apjoms var sasniegt miljardiem vienÄ«bu. KopumÄ Å”Ä« ir mÄkoÅa metrika.
Ja veidojoÅ”ie bloki ir mazi, tos ir vieglÄk optimizÄt droŔībai, piekļuves kontrolei, politikas pÄrvaldÄ«bai, dzÄ«ves cikla pÄrvaldÄ«bai un netraucÄjoÅ”iem atjauninÄjumiem. Un galu galÄ nodroÅ”inÄt produktivitÄti. Äkas bloka izmÄrs ir atkarÄ«gs no bojÄjuma reÄ£iona vadÄmÄ«bas, kas ir veids, kÄ tiek veidotas ļoti elastÄ«gas sistÄmas.
DaudzkÄrtÄjai nomai ir daudz Ä«paŔību. Lai gan dimensija runÄ par to, kÄ organizÄcijas nodroÅ”ina piekļuvi datiem un lietojumprogrammÄm, tÄ attiecas arÄ« uz paÅ”Äm lietojumprogrammÄm un loÄ£iku, kÄ tÄs izolÄt viena no otras.
ÄŖsÄ laikÄ klientu skaits var pieaugt no vairÄkiem simtiem lÄ«dz vairÄkiem miljoniem.
Klienti ir pilnÄ«bÄ izolÄti viens no otra. Tas ļauj tiem darbinÄt dažÄdas vienas un tÄs paÅ”as programmatÅ«ras versijas un uzglabÄt objektus ar atŔķirÄ«gu konfigurÄciju, atļaujÄm, lÄ«dzekļiem, droŔības un uzturÄÅ”anas lÄ«meÅiem. Tas ir nepiecieÅ”ams, mÄrogojot jaunus serverus, atjauninÄjumus un Ä£eogrÄfiskÄs vietas.
KrÄtuve ir elastÄ«gi mÄrogojama, resursi tiek nodroÅ”inÄti pÄc pieprasÄ«juma.
Katru darbÄ«bu kontrolÄ API, un tÄ ir automatizÄta bez cilvÄka iejaukÅ”anÄs.
ProgrammatÅ«ru var mitinÄt konteineros un izmantot standarta orÄ·estrÄÅ”anas sistÄmas, piemÄram, Kubernetes.
Saderīgs ar S3
Amazon S3 API ir de facto standarts objektu uzglabÄÅ”anai. Katrs objektu uzglabÄÅ”anas programmatÅ«ras pÄrdevÄjs apgalvo, ka ir saderÄ«gs ar to. SaderÄ«ba ar S3 ir binÄra: vai nu tÄ ir pilnÄ«bÄ ieviesta, vai nav.
PraksÄ ir simtiem vai tÅ«kstoÅ”iem malu scenÄriju, kad, izmantojot objektu krÄtuvi, kaut kas noiet greizi. ÄŖpaÅ”i no patentÄtas programmatÅ«ras un pakalpojumu sniedzÄjiem. TÄs galvenie lietoÅ”anas gadÄ«jumi ir tieÅ”Ä arhivÄÅ”ana vai dublÄÅ”ana, tÄpÄc ir maz iemeslu izsaukt API, lietoÅ”anas gadÄ«jumi ir viendabÄ«gi.
AtvÄrtÄ pirmkoda programmatÅ«rai ir ievÄrojamas priekÅ”rocÄ«bas. Tas aptver lielÄko daļu malas scenÄriju, Åemot vÄrÄ lietojumprogrammu, operÄtÄjsistÄmu un aparatÅ«ras arhitektÅ«ru lielumu un dažÄdÄ«bu.
Tas viss ir svarÄ«gi aplikÄciju izstrÄdÄtÄjiem, tÄpÄc ir vÄrts lietojumprogrammu testÄt pie krÄtuves nodroÅ”inÄtÄjiem. AtvÄrtais avots atvieglo procesu ā ir vieglÄk saprast, kura platforma ir piemÄrota jÅ«su lietojumprogrammai. Pakalpojumu sniedzÄju var izmantot kÄ vienu ieejas punktu krÄtuvÄ, kas nozÄ«mÄ, ka tas atbildÄ«s jÅ«su vajadzÄ«bÄm.
AtvÄrtÄ koda nozÄ«mÄ: lietojumprogrammas nav piesaistÄ«tas piegÄdÄtÄjam un ir pÄrredzamÄkas. Tas nodroÅ”ina ilgu pielietojuma dzÄ«ves ciklu.
Un vÄl dažas piezÄ«mes par atvÄrto avotu un S3.
Ja izmantojat lielo datu lietojumprogrammu, S3 SELECT par lielumu uzlabo veiktspÄju un efektivitÄti. Tas tiek darÄ«ts, izmantojot SQL, lai no krÄtuves izgÅ«tu tikai nepiecieÅ”amos objektus.
Galvenais ir atbalsts segmentu paziÅojumiem. Grupas paziÅojumi atvieglo skaitļoÅ”anu bez serveriem, kas ir svarÄ«ga jebkuras mikropakalpojumu arhitektÅ«ras sastÄvdaļa, kas tiek piegÄdÄta kÄ pakalpojums. TÄ kÄ objektu krÄtuve faktiski ir mÄkoÅkrÄtuve, Ŕī iespÄja kļūst kritiska, ja objektu krÄtuvi izmanto mÄkoÅa lietojumprogrammas.
Visbeidzot, S3 ievieÅ”anai ir jÄatbalsta Amazon S3 servera puses Å”ifrÄÅ”anas API: SSE-C, SSE-S3, SSE-KMS. VÄl labÄk, S3 atbalsta aizsardzÄ«bu pret viltojumiem, kas ir patiesi droÅ”a.
Reakcija uz neveiksmÄm
Metrika, kas, iespÄjams, bieži tiek ignorÄta, ir tas, kÄ sistÄma apstrÄdÄ kļūmes. Kļūmes rodas dažÄdu iemeslu dÄļ, un objektu glabÄÅ”anai tÄs visas ir jÄrisina.
PiemÄram, ir viens kļūmes punkts, un tÄ metrika ir nulle.
DiemžÄl daudzas objektu uzglabÄÅ”anas sistÄmas izmanto Ä«paÅ”us mezglus, kas ir jÄiespÄjo, lai klasteris darbotos pareizi. Tie ietver nosaukumu mezglus vai metadatu serverus ā tas rada vienu atteices punktu.
Pat tad, ja ir vairÄki neveiksmju punkti, vissvarÄ«gÄkÄ ir spÄja izturÄt katastrofÄlas neveiksmes. Diski neizdodas, serveri neizdodas. Galvenais ir izveidot programmatÅ«ru, kas paredzÄta kļūmei kÄ normÄlam stÄvoklim. Ja disks vai mezgls neizdodas, Å”Äda programmatÅ«ra turpinÄs darboties bez izmaiÅÄm.
IebÅ«vÄtÄ aizsardzÄ«ba pret datu dzÄÅ”anu un datu pasliktinÄÅ”anos nodroÅ”ina, ka varat zaudÄt tik daudz disku vai mezglu, cik jums ir paritÄtes bloki ā parasti pusi no diskiem. Tikai tad programmatÅ«ra nevarÄs atgriezt datus.
Kļūme tiek reti pÄrbaudÄ«ta zem slodzes, taÄu Å”Äda pÄrbaude ir nepiecieÅ”ama. ImitÄjot slodzes atteici, tiks parÄdÄ«tas kopÄjÄs izmaksas, kas raduÅ”Äs pÄc atteices.
Konsekvence
100% konsekvences rÄdÄ«tÄju sauc arÄ« par stingru konsekvenci. Konsekvence ir jebkuras uzglabÄÅ”anas sistÄmas galvenÄ sastÄvdaļa, taÄu spÄcÄ«ga konsekvence ir reti sastopama. PiemÄram, Amazon S3 ListObject nav stingri konsekvents, tas ir konsekvents tikai beigÄs.
Ko nozÄ«mÄ stingra konsekvence? VisÄm darbÄ«bÄm pÄc apstiprinÄtas PUT darbÄ«bas ir jÄnotiek tÄlÄk norÄdÄ«tajam.
AtjauninÄtÄ vÄrtÄ«ba ir redzama, lasot no jebkura mezgla.
AtjauninÄjums ir aizsargÄts pret mezgla atteices dublÄÅ”anu.
Tas nozÄ«mÄ, ka ieraksta vidÅ« izraujot kontaktdakÅ”u, nekas netiks zaudÄts. SistÄma nekad neatgriež bojÄtus vai novecojuÅ”us datus. Å Ä« ir augsta latiÅa, kas ir svarÄ«ga daudzos scenÄrijos, sÄkot no darÄ«jumu lietojumprogrammÄm lÄ«dz dublÄÅ”anai un atkopÅ”anai.
SecinÄjums
Tie ir jauni objektu krÄtuves rÄdÄ«tÄji, kas atspoguļo lietoÅ”anas modeļus mÅ«sdienu organizÄcijÄs, kur veiktspÄja, konsekvence, mÄrogojamÄ«ba, kļūdu domÄni un S3 savietojamÄ«ba ir mÄkoÅa lietojumprogrammu un lielo datu analÄ«zes pamatelementi. Es iesaku izmantot Å”o sarakstu papildus cenai, veidojot modernas datu skursteÅus.