S3 օբյեկտների պահպանման հրաման Mail.ru Ամպային պահեստավորում թարգմանել է հոդված այն մասին, թե ինչ չափանիշներ են կարևոր օբյեկտների պահեստավորման ընտրության ժամանակ: Ստորև ներկայացնում ենք տեքստը հեղինակի տեսանկյունից.
Երբ խոսքը վերաբերում է օբյեկտների պահպանմանը, մարդիկ սովորաբար մտածում են միայն մեկ բանի մասին՝ մեկ TB/GB-ի գինը: Իհարկե, այս չափանիշը կարևոր է, բայց այն մոտեցումը դարձնում է միակողմանի և հավասարեցնում է օբյեկտների պահպանումը արխիվային պահպանման գործիքի հետ: Բացի այդ, այս մոտեցումը նվազեցնում է օբյեկտների պահպանման կարևորությունը ձեռնարկության տեխնոլոգիաների փաթեթի համար:
Օբյեկտների պահեստ ընտրելիս պետք է ուշադրություն դարձնել հինգ բնութագրերի.
կատարումը
մասշտաբայնություն;
S3 համատեղելի;
արձագանք ձախողումներին;
ամբողջականություն։
Այս հինգ բնութագրիչները նոր չափումներ են օբյեկտների պահպանման համար՝ ծախսերի հետ մեկտեղ: Եկեք նայենք նրանց բոլորին:
Արտադրողականություն
Ավանդական օբյեկտների խանութները արդյունավետության պակաս ունեն: Ծառայություններ մատուցողները անընդհատ զոհաբերում էին այն՝ ցածր գներով: Այնուամենայնիվ, ժամանակակից օբյեկտների պահպանման դեպքում ամեն ինչ այլ է:
Տարբեր պահեստավորման համակարգեր մոտենում կամ նույնիսկ գերազանցում են Hadoop-ի արագությունը: Ժամանակակից պահանջներ կարդալու և գրելու արագության համար՝ կոշտ սկավառակների համար 10 ԳԲ/վրկ, NVMe-ի համար՝ մինչև 35 ԳԲ/վ:
Այս թողունակությունը բավարար է Spark-ի, Presto-ի, Tensorflow-ի, Teradata-ի, Vertica-ի, Splunk-ի և վերլուծական փաթեթի այլ ժամանակակից հաշվողական շրջանակների համար: Այն փաստը, որ MPP տվյալների բազաները կազմաձևվում են օբյեկտների պահպանման համար, ցույց է տալիս, որ այն ավելի ու ավելի է օգտագործվում որպես առաջնային պահեստ:
Եթե ձեր պահեստավորման համակարգը չի ապահովում ձեզ անհրաժեշտ արագությունը, դուք չեք կարող օգտագործել տվյալները և դրանցից արժեք հանել: Նույնիսկ եթե դուք տվյալները վերցնում եք օբյեկտի պահեստից հիշողության մեջ մշակող կառուցվածքի մեջ, ձեզ դեռ պետք է թողունակություն՝ տվյալները հիշողություն և հիշողություն փոխանցելու համար: Ժառանգական օբյեկտների խանութներում դա բավարար չէ:
Սա հիմնական կետն է. կատարողականի նոր չափանիշը թողունակությունն է, այլ ոչ թե ուշացումը: Այն պահանջվում է մասշտաբով տվյալների համար և նորմ է տվյալների ժամանակակից ենթակառուցվածքում:
Թեև հենանիշերը կատարողականությունը որոշելու լավ միջոց են, այն չի կարող ճշգրիտ չափվել նախքան հավելվածը շրջակա միջավայրում գործարկելը: Միայն դրանից հետո կարող եք ասել, թե կոնկրետ որտեղ է գտնվում խցանումը` ծրագրային ապահովման, սկավառակների, ցանցի կամ հաշվողական մակարդակում:
Մասշտաբայնություն
Scalability-ը վերաբերում է petabytes-ի քանակին, որոնք տեղավորվում են մեկ անվանատարածքում: Այն, ինչ պնդում են վաճառողները, հեշտ մասշտաբայնությունն է, այն, ինչ նրանք չեն ասում, այն է, որ դրանց մասշտաբով, զանգվածային միաձույլ համակարգերը դառնում են փխրուն, բարդ, անկայուն և թանկ:
Ընդարձակելիության նոր չափանիշը անվանատարածքների կամ հաճախորդների քանակն է, որոնց կարող եք սպասարկել: Չափանիշը վերցված է անմիջապես հիպերսանդղակներից, որտեղ պահեստավորման կառուցման բլոկները փոքր են, բայց մասշտաբով՝ մինչև միլիարդավոր միավորներ: Ընդհանուր առմամբ, սա ամպի չափիչ է:
Երբ շինարարական բլոկները փոքր են, դրանք ավելի հեշտ է օպտիմալացնել անվտանգության, մուտքի վերահսկման, քաղաքականության կառավարման, կյանքի ցիկլի կառավարման և չխանգարող թարմացումների համար: Եվ, ի վերջո, ապահովել արտադրողականությունը: Շինարարական բլոկի չափը խափանումների շրջանի կառավարելիության ֆունկցիան է, որն այսպես են կառուցվում բարձր ճկուն համակարգերը:
Բազմավարձակալությունն ունի բազմաթիվ առանձնահատկություններ. Թեև չափումը խոսում է այն մասին, թե ինչպես են կազմակերպությունները ապահովում տվյալների և հավելվածների հասանելիություն, այն նաև վերաբերում է հենց հավելվածներին և դրանք միմյանցից մեկուսացնելու տրամաբանությանը:
Բազմակի հաճախորդի նկատմամբ ժամանակակից մոտեցման առանձնահատկությունները.
Կարճ ժամանակում հաճախորդների թիվը կարող է աճել մի քանի հարյուրից մինչև մի քանի միլիոն:
Հաճախորդները լիովին մեկուսացված են միմյանցից: Սա թույլ է տալիս նրանց գործարկել միևնույն ծրագրաշարի տարբեր տարբերակները և պահել տարբեր կոնֆիգուրացիաներով, թույլտվություններով, առանձնահատկություններով, անվտանգության և սպասարկման մակարդակներով օբյեկտներ: Սա անհրաժեշտ է նոր սերվերների, թարմացումների և աշխարհագրական տարածքների մասշտաբով:
Պահեստը առաձգական է, ռեսուրսները տրամադրվում են ըստ պահանջի:
Յուրաքանչյուր գործողություն վերահսկվում է API-ի կողմից և ավտոմատացված է առանց մարդու միջամտության:
Ծրագրային ապահովումը կարող է տեղակայվել բեռնարկղերում և օգտագործել ստանդարտ նվագախմբային համակարգեր, ինչպիսին է Kubernetes-ը:
S3 համատեղելի
Amazon S3 API-ն օբյեկտների պահպանման դե ֆակտո ստանդարտն է: Օբյեկտների պահպանման ծրագրերի յուրաքանչյուր վաճառող պնդում է, որ համատեղելի է դրա հետ: S3-ի հետ համատեղելիությունը երկուական է. կա՛մ այն ամբողջությամբ ներդրված է, կա՛մ՝ ոչ:
Գործնականում կան հարյուրավոր կամ հազարավոր եզրային սցենարներ, որտեղ ինչ-որ բան սխալ է տեղի ունենում օբյեկտների պահեստավորում օգտագործելիս: Հատկապես սեփականության ծրագրային ապահովման և ծառայությունների մատակարարներից: Դրա հիմնական օգտագործման դեպքերը ուղղակի արխիվացումն է կամ կրկնօրինակումը, ուստի API կանչելու համար քիչ պատճառներ կան, օգտագործման դեպքերը միատարր են:
Բաց կոդով ծրագրակազմն ունի զգալի առավելություններ. Այն ընդգրկում է ծայրամասային սցենարների մեծ մասը՝ հաշվի առնելով հավելվածների, օպերացիոն համակարգերի և ապարատային ճարտարապետության չափն ու բազմազանությունը:
Այս ամենը կարևոր է հավելվածների մշակողների համար, ուստի արժե հավելվածը փորձարկել պահեստավորման մատակարարների հետ: Բաց կոդով գործընթացը հեշտացնում է. ավելի հեշտ է հասկանալ, թե որ հարթակն է հարմար ձեր հավելվածի համար: Մատակարարը կարող է օգտագործվել որպես պահեստի մուտքի մեկ կետ, ինչը նշանակում է, որ այն կբավարարի ձեր կարիքները:
Բաց կոդով նշանակում է՝ հավելվածները կապված չեն վաճառողի հետ և ավելի թափանցիկ են: Սա ապահովում է կիրառման երկար կյանքի ցիկլը:
Եվ ևս մի քանի նշում բաց կոդով և S3-ի մասին։
Եթե դուք օգտագործում եք մեծ տվյալների հավելված, S3 SELECT-ը մեծության կարգով բարելավում է կատարողականությունը և արդյունավետությունը: Դա անում է SQL-ի միջոցով՝ պահեստից վերցնելու միայն ձեզ անհրաժեշտ օբյեկտները:
Հիմնական կետը դույլային ծանուցումների աջակցությունն է: Դույլի ծանուցումները հեշտացնում են առանց սերվերի հաշվարկը, որը ցանկացած միկրոծառայության ճարտարապետության կարևոր բաղադրիչ է, որը մատուցվում է որպես ծառայություն: Հաշվի առնելով, որ օբյեկտների պահեստավորումն արդյունավետորեն ամպային պահեստավորում է, այս հնարավորությունը դառնում է կարևոր, երբ օբյեկտների պահեստավորումն օգտագործվում է ամպի վրա հիմնված հավելվածների կողմից:
Վերջապես, S3-ի իրականացումը պետք է աջակցի Amazon S3 սերվերի կողմից գաղտնագրման API-ներին՝ SSE-C, SSE-S3, SSE-KMS: Նույնիսկ ավելի լավ, S3-ն աջակցում է խափանումների պաշտպանությանը, որն իսկապես ապահով է:
Արձագանք ձախողումների
Չափանիշը, որը հավանաբար հաճախ անտեսվում է, այն է, թե ինչպես է համակարգը վերաբերվում ձախողումներին: Խափանումները տեղի են ունենում տարբեր պատճառներով, և օբյեկտների պահեստավորումը պետք է կարգավորի դրանք բոլորը:
Օրինակ, կա ձախողման մեկ կետ, դրա չափանիշը զրո է:
Ցավոք, օբյեկտների պահպանման շատ համակարգեր օգտագործում են հատուկ հանգույցներ, որոնք պետք է միացված լինեն, որպեսզի կլաստերը ճիշտ աշխատի: Դրանք ներառում են անունների հանգույցներ կամ մետատվյալների սերվերներ. սա ստեղծում է ձախողման մեկ կետ:
Նույնիսկ այնտեղ, որտեղ կան ձախողման բազմաթիվ կետեր, աղետալի ձախողմանը դիմակայելու ունակությունը առաջնային է: Սկավառակները ձախողվում են, սերվերները ձախողվում են: Հիմնական բանը ծրագրաշարի ստեղծումն է, որը նախատեսված է ձախողումը նորմալ վիճակի համար: Եթե սկավառակը կամ հանգույցը ձախողվի, նման ծրագրաշարը կշարունակի աշխատել առանց փոփոխությունների:
Ներկառուցված պաշտպանությունը տվյալների ջնջումից և տվյալների դեգրադացիայից երաշխավորում է, որ դուք կարող եք կորցնել այնքան սկավառակներ կամ հանգույցներ, որքան ունեք հավասարաչափ բլոկներ, սովորաբար սկավառակների կեսը: Միայն դրանից հետո ծրագրաշարը չի կարողանա վերադարձնել տվյալները:
Խափանումը հազվադեպ է փորձարկվում ծանրաբեռնվածության տակ, սակայն նման փորձարկում է պահանջվում: Բեռի ձախողման մոդելավորումը ցույց կտա խափանումից հետո կատարված ընդհանուր ծախսերը:
Հետևողականություն
100% հետևողականության միավորը կոչվում է նաև խիստ հետևողականություն: Հետևողականությունը ցանկացած պահեստավորման համակարգի հիմնական բաղադրիչն է, բայց ամուր հետևողականությունը հազվադեպ է: Օրինակ, Amazon S3 ListObject-ը խիստ հետևողական չէ, այն հետևողական է միայն վերջում:
Ի՞նչ է նշանակում խիստ հետևողականություն: Հաստատված PUT գործողությանը հաջորդող բոլոր գործողությունների համար պետք է կատարվեն հետևյալը.
Թարմացված արժեքը տեսանելի է ցանկացած հանգույցից կարդալիս:
Թարմացումը պաշտպանված է հանգույցի ձախողման ավելորդությունից:
Սա նշանակում է, որ եթե ձայնագրության մեջտեղում վարդակից քաշեք, ոչինչ չի կորչի: Համակարգը երբեք չի վերադարձնում կոռումպացված կամ հնացած տվյալները: Սա բարձր նշաձող է, որը կարևոր է բազմաթիվ սցենարներում՝ գործարքային հավելվածներից մինչև կրկնօրինակում և վերականգնում:
Ամփոփում
Սրանք օբյեկտների պահպանման նոր չափումներ են, որոնք արտացոլում են օգտագործման օրինաչափությունները այսօրվա կազմակերպություններում, որտեղ կատարողականությունը, հետևողականությունը, մասշտաբայնությունը, սխալների տիրույթները և S3 համատեղելիությունը ամպային հավելվածների և մեծ տվյալների վերլուծության կառուցման բլոկներն են: Ես խորհուրդ եմ տալիս օգտագործել այս ցուցակը, բացի գնից, ժամանակակից տվյալների կույտեր կառուցելիս: