Մինչ բոլորը նշում էին իմ ծննդյան տարեդարձը, ես մինչև առավոտ շտկում էի կլաստերը, և մշակողները իրենց սխալները մեղադրում էին ինձ վրա:

Մինչ բոլորը նշում էին իմ ծննդյան տարեդարձը, ես մինչև առավոտ շտկում էի կլաստերը, և մշակողները իրենց սխալները մեղադրում էին ինձ վրա:

Ահա մի պատմություն, որը ընդմիշտ փոխեց իմ մոտեցումը devops աշխատանքին: Դեռևս Covid-ի նախորդ ժամանակներում, նրանցից շատ, շատ առաջ, երբ ես և տղաները պարզապես պլանավորում էինք մեր սեփական բիզնեսը և պատահական պատվերներով աշխատում էինք, մի առաջարկ ընկավ իմ զամբյուղում:

Ընկերությունը, որը գրել է սա, եղել է տվյալների վերլուծական ընկերություն: Նա ամեն օր մշակում էր հազարավոր հարցումներ: Նրանք մեզ մոտ եկան հետևյալ խոսքերով. տղերք, մենք ունենք ClickHouse և ուզում ենք ավտոմատացնել դրա կազմաձևումն ու տեղադրումը։ Մենք ցանկանում ենք, որ Ansible-ը, Terraform-ը, Docker-ը և այդ ամենը պահվեն Git-ում: Մենք ցանկանում ենք չորս հանգույցներից բաղկացած կլաստեր՝ յուրաքանչյուրը երկու կրկնօրինակով:

Դա ստանդարտ խնդրանք է, կան տասնյակ, և ձեզ անհրաժեշտ է նույնքան լավ ստանդարտ լուծում: Մենք ասացինք «լավ», և 2-3 շաբաթ անց ամեն ինչ պատրաստ էր։ Նրանք ընդունեցին աշխատանքը և սկսեցին տեղափոխվել նոր Clickhouse կլաստեր՝ օգտագործելով մեր կոմունալ ծրագիրը:

Ոչ ոք չէր ուզում կամ չգիտեր, թե ինչպես վարվել Clickhouse-ի հետ: Այնուհետև մենք մտածեցինք, որ դա նրանց հիմնական խնդիրն է, և, հետևաբար, ընկերության սպասարկման կայանը պարզապես թույլ տվեց իմ թիմին հնարավորինս ավտոմատացնել աշխատանքը, որպեսզի ինքս այլևս չգնամ այնտեղ:

Մենք ուղեկցեցինք քայլին, առաջացան այլ խնդիրներ՝ պահուստային պատճենների ստեղծում և մոնիտորինգ: Նույն պահին այս ընկերության սպասարկման կայանը միաձուլվեց մեկ այլ նախագծի հետ՝ հրամանատար թողնելով մեզ՝ Լեոնիդին։ Լենյան այնքան էլ շնորհալի տղա չէր։ Պարզ ծրագրավորող, ով հանկարծակի նշանակվեց Clickhouse-ի ղեկավարությունը: Թվում է, թե սա նրա առաջին հանձնարարությունն էր՝ ինչ-որ բան ղեկավարելու, և ճնշող պատիվը նրան ստիպեց աստղահարված զգալ։

Միասին մենք ձեռնամուխ եղանք կրկնօրինակների պատրաստմանը: Ես առաջարկեցի անմիջապես կրկնօրինակել բնօրինակ տվյալները: Պարզապես վերցրեք այն, սեղմեք այն և նրբագեղորեն գցեք այն ինչ-որ c3-ի մեջ: Հում տվյալները ոսկի են: Կար մեկ այլ տարբերակ՝ կրկնօրինակել աղյուսակները Clickhouse-ում՝ օգտագործելով սառեցում և պատճենահանում: Բայց Լենյան իր լուծումն է գտել։

Նա հայտարարեց, որ մեզ անհրաժեշտ է երկրորդ Քլիքհաուս կլաստերը։ Եվ այսուհետ մենք տվյալները կգրենք երկու կլաստերներում՝ հիմնական և պահեստային։ Ես ասում եմ նրան, Լենյա, դա կլինի ոչ թե պահեստային, այլ ակտիվ կրկնօրինակ: Եվ եթե տվյալները սկսում են կորչել արտադրության մեջ, նույնը տեղի կունենա ձեր կրկնօրինակում:

Բայց Լենյան ամուր բռնեց ղեկը և հրաժարվեց լսել իմ փաստարկները։ Մենք նրա հետ երկար զրուցում էինք չաթում, բայց անելիք չկար՝ Լենյան էր ղեկավարում նախագիծը, մեզ ուղղակի փողոցից երեխաներ էին վարձել։

Մենք վերահսկում էինք կլաստերի վիճակը և գանձում էինք միայն ադմինիստրատորների աշխատանքի համար: Մաքուր Clickhouse ադմինիստրացիա՝ առանց տվյալների մեջ մտնելու: Կլաստերը հասանելի էր, սկավառակները լավ էին, հանգույցները լավ էին:

Մենք չգիտեինք, որ այս պատվերը ստացել ենք իրենց թիմի ներսում տեղի ունեցած սարսափելի թյուրիմացության պատճառով

Կառավարիչը դժգոհ էր, որ Քլիքհաուսը դանդաղ էր աշխատում, և երբեմն տվյալները կորչում էին: Նա իր սպասարկման կայանին խնդիր է դրել պարզել դա: Նա հասկացավ, որքան կարող էր, և եզրակացրեց, որ մենք պարզապես պետք է ավտոմատացնենք Clickhouse-ը, դա բոլորն է: Բայց քանի որ շուտով պարզ դարձավ, նրանց ամենևին էլ դևոպների թիմ պետք չէր:

Այս ամենը շատ ու շատ ցավալի ստացվեց։ Իսկ ամենավիրավորականն այն էր, որ դա իմ ծննդյան օրն էր։

Ուրբաթ երեկո. Ես ամրագրեցի իմ սիրած գինու բարում և հրավիրեցի հոմիներին:

Գրեթե մեկնելուց առաջ մենք ստանում ենք ալտեր ստեղծելու առաջադրանք, ավարտում ենք, ամեն ինչ կարգին է։ Փոփոխությունն անցավ, clickhouse-ը հաստատվեց: Մենք արդեն գնում ենք բար, և մեզ գրում են, որ բավարար տվյալներ չկան։ Մենք հաշվարկել ենք, որ ամեն ինչ բավական է թվում։ Եվ նրանք գնացին տոնելու։

Ուրբաթ օրը ռեստորանը աղմկոտ էր: Խմիչքներ և ուտելիք պատվիրելով՝ նստեցինք բազմոցների վրա։ Այս ամբողջ ընթացքում իմ թուլությունը կամաց-կամաց ողողվեց հաղորդագրություններով: Տվյալների պակասի մասին ինչ-որ բան են գրել։ Մտածեցի՝ առավոտն ավելի իմաստուն է, քան երեկոն։ Հատկապես այսօր։

Տասնմեկին մոտ սկսեցին զանգահարել։ Ընկերության ղեկավարն էր... «Երևի որոշել եմ շնորհավորել»,- շատ վարանելով մտածեցի ես և վերցրեցի հեռախոսը։

Եվ ես լսեցի նման բան. «Դուք խեղաթյուրել եք մեր տվյալները: Ես վճարում եմ ձեզ, բայց ոչինչ չի ստացվում: Դուք պատասխանատու էիք կրկնօրինակումների համար, և դուք ոչ մի անիծյալ բան չեք արել: Եկեք շտկենք այն!" - միայն նույնիսկ ավելի կոպիտ:

-Գիտե՞ս ինչ, դուրս արի: Այսօր իմ ծննդյան օրն է, և հիմա ես կխմեմ, այլ ոչ թե կզբաղվեմ ձեր հունիսյան տնական արտադրանքներով, որոնք պատրաստված են հիմարությունից և ձողերից:

Դա այն է, ինչ ես չեմ ասել: Փոխարենը հանեցի նոութբուքս ու անցա գործի։

Ոչ, ես ռմբակոծել եմ, ես ռմբակոծել եմ դժոխքի պես: Նա զրույցի մեջ լցրեց կաուստիկ «Ես քեզ այդպես ասացի», քանի որ կրկնօրինակը, որն ամենևին էլ կրկնօրինակ չէր, իհարկե, ոչինչ չխնայեց:

Ես և տղաները հասկացանք, թե ինչպես կարելի է ձեռքով դադարեցնել ձայնագրությունը և ստուգել ամեն ինչ: Մենք իրականում համոզվեցինք, որ որոշ տվյալներ գրված չեն:

Մենք դադարեցրինք ձայնագրումը և հաշվեցինք օրական այնտեղ եղած իրադարձությունների քանակը: Նրանք բեռնել են ավելի շատ տվյալներ, որոնցից միայն մեկ երրորդը չի գրանցվել։ Երեք բեկոր՝ յուրաքանչյուրը 2 կրկնօրինակով: Դուք տեղադրում եք 100.000 տող - 33.000-ը չի գրանցվում:

Լիակատար խառնաշփոթ էր. Բոլորն իրար հերթով ասում էին, որ ջախջախեք. նախ Լենյան գնաց այնտեղ, հետո ես և ընկերության հիմնադիրը: Միայն միացած սպասարկման կայանը փորձեց մեր աղաղակող զանգերն ու նամակագրությունը շեղել խնդրին լուծում գտնելու ուղղությամբ։

Ոչ ոք չհասկացավ, թե իրականում ինչ է կատարվում

Ես և տղաները պարզապես ցնցվեցինք, երբ հասկացանք, որ բոլոր տվյալների մեկ երրորդը ոչ միայն չի գրանցվել, այլև կորել է: Պարզվել է, որ ընկերությունում կարգը հետևյալն է՝ ներդրումից հետո տվյալները ջնջվել են անվերադարձ, իրադարձությունները վատնվել են խմբաքանակով։ Ես պատկերացնում էի, թե ինչպես է Սերգեյը այս ամենը վերածելու կորցրած ռուբլու։

Ծննդյանս օրն էլ աղբարկղը գցեցին։ Մենք նստեցինք բարում և գաղափարներ գեներացրինք՝ փորձելով լուծել այն գլուխկոտրուկը, որը նետվել էր մեզ վրա: Քլիքհաուսի անկման պատճառն ակնհայտ չէր։ Միգուցե դա ցանցն է, գուցե Linux-ի կարգավորումները: Այո, ինչ ուզում եք, բավական վարկածներ են եղել։

Ես չընդունեցի մշակողի երդումը, բայց անազնիվ էր գծի մյուս ծայրում գտնվող տղաներին թողնելը, նույնիսկ եթե նրանք մեզ մեղադրում էին ամեն ինչում: Ես 99 տոկոսով վստահ էի, որ խնդիրը մեր որոշումների մեջ չէ, մեր կողմից չէ։ 1% հավանականությունը, որ մենք խաբել էինք, այրվում էր անհանգստությունից: Բայց անկախ նրանից, թե որ կողմում էր խնդիրը, այն պետք էր շտկել։ Հաճախորդներին, անկախ նրանից, թե ովքեր են նրանք, նման սարսափելի տվյալների արտահոսքով թողնելը չափազանց դաժան է:

Մենք աշխատեցինք ռեստորանի սեղանի շուրջ մինչև գիշերվա երեքը։ Մենք ավելացրինք իրադարձություններ, տեղադրեցինք ընտրվածը և անջատեցինք բացերը լրացնելու: Երբ դուք խախտում եք տվյալները, դա անում եք այսպես. վերցնում եք նախորդ օրերի միջին տվյալները և տեղադրում դրանք պտուտակվածների մեջ:

Առավոտյան երեքից հետո ընկերոջս հետ գնացինք իմ տուն և ալկոհոլի շուկայից գարեջուր պատվիրեցինք։ Նստած էի նոթբուքով ու Քլիքհաուսի խնդիրներով, ընկերս ինչ-որ բան էր պատմում։ Արդյունքում, մեկ ժամ անց նա վիրավորվեց, որ ես աշխատում եմ և իր հետ գարեջուր չեմ խմում, և հեռացավ։ Դասական - Ես Devops-ի ընկերն էի:

Առավոտյան ժամը 6-ին ես նորից ստեղծեցի աղյուսակը, և տվյալները սկսեցին լցվել: Ամեն ինչ աշխատեց առանց կորուստների։

Հետո դժվար էր։ Բոլորը միմյանց մեղադրում էին տվյալների կորստի համար: Եթե ​​նոր վրիպակ լիներ, վստահ եմ, որ փոխհրաձգություն կլիներ

Այս մենամարտերում մենք վերջապես սկսեցինք հասկանալ. ընկերությունը կարծում էր, որ մենք այն տղաներն ենք, ովքեր աշխատում են տվյալների հետ և վերահսկում աղյուսակների կառուցվածքը: Նրանք շփոթեցին ադմիններին դիլերների հետ: Եվ նրանք եկել էին մեզ ադմիններից տարբեր բան խնդրելու։

Նրանց հիմնական բողոքն այն է՝ ինչ դժոխք, դուք պատասխանատու էիք կրկնօրինակումների համար և ճիշտ չէիք անում դրանք, դուք շարունակեցիք վատնել տվյալները: Եվ այս ամենը փաթաթվող գորգերով։

Ես արդարություն էի ուզում։ Ես փորեցի նամակագրությունը և կցեցի բոլորի սքրինշոթները, որտեղ Լեոնիդն ամբողջ ուժով ստիպում է նրանց կատարել այն կրկնօրինակը, որը արվել է։ Իմ հեռախոսազանգից հետո նրանց սպասարկման կետը մեր կողմը բռնեց։ Ավելի ուշ Լենյան ընդունել է իր մեղքը։

Ընկերության ղեկավարը, ընդհակառակը, չի ցանկացել մեղադրել սեփական ժողովրդին։ Սքրինշոթներն ու խոսքերը նրա վրա ոչ մի ազդեցություն չեն ունեցել։ Նա կարծում էր, որ քանի որ մենք այստեղ փորձագետ ենք, պետք է բոլորին համոզել ու պնդել մեր որոշումը։ Ըստ երևույթին, մեր խնդիրն էր սովորեցնել Լենյային և, առավել ևս, շրջանցել նրան, ով նշանակվել էր որպես ծրագրի ղեկավար, հասնել հիմնականին և անձամբ իրեն թափել պահուստների հայեցակարգի վերաբերյալ մեր բոլոր կասկածները:

Զրույցը հոսում էր ատելությամբ, թաքնված ու անթաքույց ագրեսիվությամբ: Ես չգիտեի ինչ անել։ Ամեն ինչ փակուղի է մտել։ Իսկ հետո ինձ խորհուրդ տվեցին ամենահեշտ ճանապարհը՝ անձնական հաղորդագրություն գրել մենեջերին և նրա հետ հանդիպում կազմակերպել։ Վասյա, իրական կյանքում մարդիկ այնքան արագ չեն, որքան չաթում: Իմ ուղերձին պետը պատասխանեց՝ արի, հարց չկա։

Դա իմ կարիերայի ամենասարսափելի հանդիպումն էր։ Հաճախորդից իմ դաշնակիցը՝ STO-ն, չկարողացավ ժամանակ գտնել: Ես գնացի շեֆի և Լենայի հետ հանդիպման։

Ես նորից ու նորից վերարտադրեցի մեր հնարավոր երկխոսությունը իմ գլխում: Ինձ հաջողվեց շատ շուտ հասնել՝ կես ժամ առաջ։ Ես սկսեցի նյարդայնանալ, ես ծխեցի 10 սիգարետ: Ես հասկացա, դա այն է, ես մենակ եմ խարխափում: Ես նրանց չեմ կարողանա համոզել։ Եվ նա մտավ վերելակ։

Մինչ նա վեր կացավ, նա այնքան ուժեղ հարվածեց կրակայրիչին, որ կոտրեց այն։

Արդյունքում Լենյան հանդիպմանը չի եղել։ Եվ մենք ամեն ինչի մասին հիանալի զրույց ունեցանք շեֆի հետ: Սերգեյն ինձ պատմեց իր ցավի մասին։ Նա չէր ուզում «ավտոմատացնել Clickhouse»-ը, նա ուզում էր «հարցումները գործի դնել»:

Ես այծ չտեսա, բայց լավ տղա, անհանգստացած իր բիզնեսով, ընկղմված աշխատանքի մեջ 24/7: Չաթը հաճախ մեզ նկարում է չարագործների, սրիկաների և հիմար մարդկանց: Բայց կյանքում սրանք քեզ նման մարդիկ են։

Սերգեյին աշխատանքի համար մի քանի հոգի պետք չէր։ Նրանց հետ ունեցած խնդիրը շատ ավելի մեծ էր։

Ես ասացի, որ ես կարող եմ լուծել նրա խնդիրները, դա ուղղակի բոլորովին այլ աշխատանք է, և ես ունեմ ընկեր, ով աշխատում է դրա համար: Եթե ​​ի սկզբանե իմանայինք, որ սա իրենց համար գործարք է, շատ բանից կխուսափեինք։ Արդեն ուշ է, բայց մենք հասկացանք, որ խնդիրը տվյալների անհեթեթ կառավարման մեջ է, ոչ թե ենթակառուցվածքի:

Մենք սեղմեցինք ձեռքերը, նրանք երկուսուկես անգամ բարձրացրին մեր աշխատավարձը, բայց պայմանով, որ ես իրենց տվյալների և Քլիքհաուսի հետ բացարձակապես ամբողջ խառնաշփոթը վերցնեմ ինձ համար։ Վերելակում ես շփվեցի այդ նույն DI տղայի՝ Մաքսի հետ և միացրեցի նրան աշխատանքի։ Անհրաժեշտ էր ամբողջ կլաստերը բահով փաթաթել։

Ընդունված նախագծում շատ աղբ կար։ Սկսած նշված «պահուստից»: Պարզվեց, որ այս նույն «պահուստային» կլաստերը մեկուսացված չէր։ Նրանք ամեն ինչ փորձարկեցին դրա վրա, երբեմն նույնիսկ թողարկեցին այն արտադրության մեջ:

Մեր ներքին մշակողները ստեղծել են իրենց անհատական ​​տվյալների ներդիրը: Նա աշխատում էր այսպես. նա հավաքեց ֆայլերը, գործարկեց սցենարը և տվյալները միավորեց աղյուսակի մեջ: Բայց հիմնական խնդիրն այն էր, որ հսկայական քանակությամբ տվյալներ ընդունվեցին մեկ պարզ հարցման համար: Հարցումը ամեն վայրկյան միանում էր տվյալներին։ Բոլորը հանուն մեկ թվի՝ օրական գումարի:

Ներքին մշակողները սխալ են օգտագործել վերլուծական գործիքը: Նրանք գնացին գրաֆանա և գրեցին իրենց թագավորական խնդրանքը։ Նա բեռնել է 2 շաբաթվա տվյալներ։ Պարզվեց, որ գեղեցիկ գրաֆիկ է: Բայց իրականում տվյալների հարցումը եղել է 10 վայրկյանը մեկ: Այս ամենը կուտակվում էր հերթի մեջ, քանի որ Քլիքհաուսը պարզապես չէր հանում վերամշակումը: Հենց այստեղ էլ թաքնված էր հիմնական պատճառը. Գրաֆանայում ոչինչ չէր ստացվում, հարցումները հերթ էին կանգնում, իսկ հին, անկապ տվյալներ անընդհատ գալիս էին։

Մենք վերակազմավորեցինք կլաստերը, նորից կատարեցինք ներդիրը: Ներքին մշակողները վերագրեցին իրենց «ներդիրը», և այն սկսեց ճիշտ կիսել տվյալները:

Մաքսն իրականացրել է ենթակառուցվածքի ամբողջական աուդիտ: Նա ուրվագծեց լիարժեք հետին պլանի անցնելու ծրագիր: Բայց սա ընկերությանը հարիր չէր։ Նրանք Մաքսից ակնկալում էին մի կախարդական գաղտնիք, որը թույլ կտա աշխատել հին ձևով, բայց միայն արդյունավետ: Լենյան դեռ ղեկավարում էր նախագիծը, և նա ոչինչ չսովորեց։ Առաջարկված ամենից նա կրկին ընտրեց իր այլընտրանքը։ Ինչպես միշտ, սա ամենաընտիր...համարձակ որոշումն էր։ Լենյան կարծում էր, որ իր ընկերությունն ունի հատուկ ուղի։ Փշոտ ու լի այսբերգներով։

Իրականում, այստեղ մենք բաժանվեցինք. մենք արեցինք այն, ինչ կարող էինք:

Այս պատմության գիտելիքներով և իմաստությամբ լի՝ մենք բացեցինք մեր սեփական բիզնեսը և ձևավորեցինք մի քանի սկզբունքներ մեզ համար։ Հիմա մենք երբեք չենք սկսի աշխատել այնպես, ինչպես այն ժամանակ։

Այս նախագծից հետո մեզ միացավ DJ Max-ը, և մենք դեռ հիանալի աշխատում ենք միասին: Քլիքհաուսի գործն ինձ սովորեցրեց, թե ինչպես պետք է կատարել ենթակառուցվածքի ամբողջական և մանրակրկիտ աուդիտ մինչև աշխատանքը սկսելը: Մենք հասկանում ենք, թե ինչպես է ամեն ինչ աշխատում և միայն դրանից հետո ընդունում առաջադրանքները։ Եվ եթե նախկինում մենք անմիջապես շտապում էինք ենթակառուցվածքը պահպանելու համար, ապա այժմ մենք նախ կատարում ենք մեկանգամյա նախագիծ, որն օգնում է մեզ հասկանալ, թե ինչպես այն բերել աշխատանքային վիճակի։

Եվ այո, մենք խուսափում ենք խեղճ ենթակառուցվածքով նախագծերից։ Թեկուզ շատ փողի համար, թեկուզ ընկերությունից դրդված։ Անշահավետ է հիվանդ նախագծեր վարելը. Սա գիտակցելը մեզ օգնեց աճել: Կամ ենթակառուցվածքը կարգի բերելու մեկանգամյա նախագիծ, իսկ հետո սպասարկման պայմանագիր, կամ մենք պարզապես թռչում ենք կողքով: Անցեք ևս մեկ այսբերգ:

Հ.Գ. Այսպիսով, եթե հարցեր ունեք ձեր ենթակառուցվածքի վերաբերյալ, ազատ զգալ թողնել խնդրանք.

Մենք ամսական 2 անվճար աուդիտ ունենք, միգուցե ձեր նախագիծը կլինի դրանցից մեկը:

Source: www.habr.com

Добавить комментарий