Барлығы менің туған күнімді тойлап жатқанда, мен таңға дейін кластерді жөндедім - әзірлеушілер өз қателіктерін мені кінәлады.

Барлығы менің туған күнімді тойлап жатқанда, мен таңға дейін кластерді жөндедім - әзірлеушілер өз қателіктерін мені кінәлады.

Міне, менің devops жұмысына деген көзқарасымды түбегейлі өзгерткен оқиға. Ковидке дейінгі уақытта, олардан көп бұрын, жігіттер мен біз өз бизнесімізді жоспарлап, кездейсоқ тапсырыстар бойынша фриланспен айналысқан кезде, менің арбама бір ұсыныс түсті.

Мұны жазған компания деректерді талдау компаниясы болды. Ол күн сайын мыңдаған өтініштерді өңдеді. Олар бізге мына сөздермен келді: балалар, бізде ClickHouse бар және біз оның конфигурациясын және орнатуын автоматтандырғымыз келеді. Біз Ansible, Terraform, Docker және оның барлығының Git-те сақталуын қалаймыз. Біз әрқайсысы екі репликасы бар төрт түйіннен тұратын кластерді қалаймыз.

Бұл стандартты сұраныс, олардың ондаған түрі бар және сізге бірдей жақсы стандартты шешім қажет. «Жарайды» дедік, 2-3 аптадан кейін бәрі дайын болды. Олар жұмысты қабылдап, утилитаны пайдаланып жаңа Clickhouse кластеріне көшуді бастады.

Ешкім Clickhouse-мен қалай айналысуды қаламайды немесе білмеді. Содан кейін біз бұл олардың басты проблемасы деп ойладық, сондықтан компанияның техникалық қызмет көрсету станциясы менің командама жұмысты мүмкіндігінше автоматтандыруға рұқсат берді, сондықтан ол жерге енді ешқашан бармас үшін.

Біз көшуді сүйемелдедік, басқа міндеттер туындады - сақтық көшірмелерді орнату және бақылау. Дәл осы сәтте осы компанияның техникалық қызмет көрсету станциясы басқа жобамен біріктіріліп, бізді өзіміздің біріміз Леонидті командир етіп қалдырды. Леня аса дарынды жігіт емес еді. Кенеттен Clickhouse-ға жауапты болған қарапайым әзірлеуші. Бұл оның бірдеңені басқарудағы алғашқы тапсырмасы болған сияқты және үлкен құрмет оны жұлдызды сезіндірді.

Біз бірге сақтық көшірме жасауды бастадық. Мен бірден бастапқы деректердің сақтық көшірмесін жасауды ұсындым. Тек оны алыңыз, сыдырыңыз және оны бірнеше c3 ішіне әдемі түрде тастаңыз. Шикі деректер алтын. Басқа нұсқа болды - мұздату және көшіру арқылы Clickhouse-да кестелердің сақтық көшірмесін жасау. Бірақ Леня өз шешімін тапты.

Ол бізге екінші Clickhouse кластері қажет екенін хабарлады. Ал бұдан былай деректерді екі кластерге – негізгі және резервтік көшірмеге жазатын боламыз. Мен оған айтамын, Леня, бұл резервтік көшірме емес, белсенді көшірме болады. Егер деректер өндірісте жоғала бастаса, сақтық көшірмеде де солай болады.

Бірақ Леня рульді мықтап ұстап алып, менің дәлелдерімді тыңдаудан бас тартты. Біз онымен чатта ұзақ сөйлестік, бірақ істейтін ештеңе жоқ - жобаны Леня басқарды, біз көшедегі жалдамалы балалар едік.

Біз кластердің жағдайын бақылап, тек әкімшілер жұмысы үшін ғана ақы алдық. Деректерге кірместен таза Clickhouse әкімшілігі. Кластер қол жетімді болды, дискілер жақсы болды, түйіндер жақсы болды.

Біз бұл бұйрықты олардың ұжымындағы қорқынышты түсінбеушіліктен алғанымызды білмедік

Менеджер Clickhouse бағдарламасының баяу жұмыс істейтініне және деректердің кейде жоғалып кететініне наразы болды. Ол өзінің техникалық қызмет көрсету станциясына оны анықтау міндетін қойды. Ол мұны мүмкіндігінше түсінді және бізге Clickhouse-ды автоматтандыру керек деген қорытындыға келді - бәрі осы. Бірақ көп ұзамай белгілі болғандай, оларға devops командасы мүлдем қажет емес.

Мұның бәрі өте ауыр болды. Ең ренжіткені менің туған күнім болды.

Жұма кеші. Мен сүйікті шарап барында тапсырыс жасап, үйдегілерді шақырдым.

Шығар алдында дерлік біз альтер жасау тапсырмасын аламыз, біз оны аяқтаймыз, бәрі жақсы. Өзгерту өтті, кликхана расталды. Біз қазірдің өзінде барға барамыз, олар бізге деректер жеткіліксіз деп жазады. Біз есептеп көрдік, бәрі жеткілікті сияқты. Ал олар тойлауға кетті.

Жұма күні мейрамхана шулы болды. Сусындар мен тамаққа тапсырыс беріп, диванға жайғастық. Осы уақыт бойы менің әлсірегендігім баяу хабарламаларға толы болды. Олар деректердің жетіспеушілігі туралы бірдеңе жазды. Мен ойладым - таң кешке қарағанда дана. Әсіресе бүгін.

Он бірге таяп қалғанда олар қоңырау шала бастады. Серіктестік басшысы екен... «Мені құттықтаймын деп шешкен шығар», – деп қатты екілене ойладым да, телефонды көтердім.

Мен мынаны естідім: «Сіз біздің деректерімізді бұздыңыз! Мен сізге төлеймін, бірақ ештеңе істемейді! Сіз сақтық көшірмеге жауапты болдыңыз және сіз ештеңе жасамадыңыз! Түзетейік!» - тіпті дөрекі ғана.

- Білесің бе, кет! Бүгін менің туған күнім, енді мен ішемін, ал маусым айындағы үй өнімдерімен айналыспаймын!

Мен мұны айтпадым. Оның орнына ноутбугымды алып, жұмысқа кірістім.

Жоқ, мен бомбаладым, мен тозақ сияқты бомбаладым! Ол чатқа каустикті «мен айттым» деп құйып жіберді - өйткені резервтік көшірме мүлдем сақтық емес, - әрине, ештеңені сақтамады.

Балалар мен мен жазбаны қолмен қалай тоқтатуға болатынын және барлығын қалай тексеру керектігін түсіндік. Біз кейбір деректердің жазылмағанына көз жеткіздік.

Біз жазуды тоқтатып, күніне болған оқиғалардың санын санадық. Олар көбірек деректерді жүктеп салды, оның үштен бірі ғана жазылмады. Әрқайсысы 2 репликасы бар үш үзінді. 100.000 33.000 жолды енгізесіз - XNUMX XNUMX жазылмаған.

Толық шатасу болды. Барлығы бір-біріне кезек-кезек «жоқ» деді: алдымен Леня, одан кейін мен және компанияның негізін қалаушы барды. Тек қосылған қызмет көрсету станциясы ғана біздің айғайлаған қоңырауларымыз бен хат-хабарларымызды мәселенің шешімін табуға бағыттауға тырысты.

Шын мәнінде не болып жатқанын ешкім түсінбеді

Барлық деректердің үштен бір бөлігі жазылмай, жоғалып кеткенін білгенде, жігіттер мен мен жай таң қалдық! Компаниядағы тәртіп келесідей болғаны белгілі болды: кірістіргеннен кейін деректер қайтарымсыз жойылды, оқиғалар топтамамен ысырап болды. Мен Сергейдің мұның бәрін жоғалтқан рубльге қалай айырбастайтынын елестеттім.

Менің туған күнімді де қоқыс жәшігіне тастады. Біз барда отырдық және бізге лақтырылған басқатырғышты шешуге тырысып, идеялар тудырдық. Кликхаустың құлауының себебі анық болмады. Мүмкін бұл желі, мүмкін Linux параметрлері. Иә, не қаласаңыз да, гипотезалар жеткілікті болды.

Мен әзірлеушінің антын қабылдаған жоқпын, бірақ жолдың екінші жағындағы жігіттерді тастап кету адал емес болды - тіпті олар бізді бәріне кінәлаған болса да. Мәселе өз тарапымызда емес, біздің шешімдерімізде емес екеніне 99% сенімді болдым. Бізді бұзған 1% ықтималдық уайымға толы болды. Бірақ қай жағынан келеңсіздік болса да, оны түзету керек еді. Клиенттерді, кім болса да, деректердің осындай қорқынышты ағып кетуімен қалдыру тым қатыгездік.

Біз мейрамхана үстелінде түнгі үшке дейін жұмыс істедік. Оқиғаларды қостық, таңдауды енгіздік және бос орындарды толтыруға кеттік. Деректерді бұрмалаған кезде, сіз мұны осылай жасайсыз: сіз алдыңғы күндердің орташа деректерін алып, оларды бұрмаланған күндерге енгізесіз.

Түнгі сағат үштен кейін досым екеуміз үйіме барып, спирттік базардан сыраға тапсырыс бердік. Мен ноутбукпен және Clickhouse проблемаларымен отырдым, досым маған бірдеңе айтып берді. Нәтижесінде бір сағаттан кейін ол менің онымен сыра ішпей жұмыс істеп жүргеніме ренжіп, кетіп қалды. Классикалық - мен Девопстың досы болдым.

Таңертеңгі сағат 6-да мен кестені қайта жасадым, деректер тасқындай бастады. Барлығы еш шығынсыз жұмыс істеді.

Содан қиын болды. Деректердің жоғалуы үшін барлығы бірін-бірі айыптады. Егер жаңа қате орын алса, атыс болатынына сенімдімін

Бұл төбелестерде біз ақыры түсіне бастадық - компания бізді деректермен жұмыс істейтін және кестелердің құрылымын бақылайтын жігіттер деп ойлады. Олар әкімшілерді дилерлермен шатастырды. Ал олар бізден админдерден басқа нәрсе сұрауға келді.

Олардың басты шағымы мынада: сіз сақтық көшірмеге жауапты болдыңыз және оларды дұрыс жасамадыңыз, деректерді ысырап ете бердіңіз. Мұның бәрі оралатын төсеніштермен.

Мен әділдікті қаладым. Мен хат-хабарларды қазып алдым және барлығының скриншоттарын қостым, онда Леонид бар күшімен оларды сақтық көшірме жасауға мәжбүр етеді. Мен телефон соққаннан кейін олардың қызмет көрсету станциясы біздің тарапты алды. Кейін Леня өз кінәсін мойындады.

Серіктестік басшысы, керісінше, өз адамдарын кінәлағысы келмеді. Скриншоттар мен сөздер оған әсер етпеді. Біз бұл жерде сарапшы болғандықтан, барлығын сендіріп, өз шешімімізді талап етуіміз керек деп есептеді. Біздің міндетіміз Леняны үйрету және оның үстіне жоба менеджері болып тағайындалған оны айналып өтіп, басты нәрсеге жету және оған сақтық көшірме тұжырымдамасына қатысты барлық күмәнімізді төгу болды.

Чат өшпенділікпен, жасырын және жасырын агрессиямен болды. Мен не істерімді білмедім. Бәрі тоқтап қалды. Содан кейін олар маған ең оңай жолды - менеджерге жеке хабарлама жазуды және онымен кездесуді ұйымдастыруды ұсынды. Вася, шынайы өмірдегі адамдар чатта жылдам емес. Менің хабарыма бастық жауап берді: келіңіз, сұрақ жоқ.

Бұл менің мансабымдағы ең қорқынышты кездесу болды. Клиенттен менің одақтасым - СТО - уақыт таба алмады. Мен бастықпен және Ленамен кездесуге бардым.

Мен қайта-қайта менің ойымда мүмкін диалогымызды қайталадым. Мен өте ерте, жарты сағат бұрын келдім. Мен қобалжи бастадым, мен 10 темекі тарттым, түсіндім, мен жалғыз қалдым. Мен оларды сендіре алмаймын. Ал ол лифтке кірді.

Орнынан тұрып келе жатып, оттықты қатты соққаны сонша, оны сындырды.

Нәтижесінде Леня жиналыста болмады. Ал біз бастықпен барлығы туралы керемет әңгімелестік! Сергей маған оның ауырғанын айтты. Ол «Кликхаусты автоматтандырғысы» келмеді - ол «сұраулардың жұмыс істеуін» қалады.

Мен ешкіні көрмедім, бірақ жақсы жігіт, өз бизнесіне алаңдап, тәулік бойы жұмыс істейді. Чат бізді жиі зұлымдарды, арамзаларды және ақымақ адамдарды тартады. Бірақ бұл өмірде сіз сияқты адамдар.

Сергейге жалдау үшін бірнеше девоп қажет емес еді. Олардың проблемасы әлдеқайда үлкен болып шықты.

Мен оның мәселелерін шеше алатынымды айттым - бұл мүлдем басқа жұмыс, менде жұмыс істейтін досым бар. Бұл олар үшін мәміле екенін әу бастан білген болсақ, көп нәрседен аулақ болар едік. Кеш болды, бірақ мәселе инфрақұрылымда емес, деректердің нашар басқаруында екенін түсіндік.

Біз қол алыстық, олар біздің жалақымызды екі жарым есе көтерді, бірақ мен олардың деректерімен және Clickhouse-дағы барлық шатасуды өзім үшін алу шартымен. Лифтте мен сол DI жігіті Макспен сөйлесіп, оны жұмысқа қостым. Бүкіл кластерді күректеу қажет болды.

Қабылданған жобада қоқыс көп болды. Аталмыш «сақтық көшірмеден» бастап. Дәл осы «резервтік» кластер оқшауланбаған болып шықты. Олар мұның бәрін сынап көрді, кейде тіпті өндіріске енгізді.

Біздің ішкі әзірлеушілеріміз өздерінің жеке деректерді енгізу құралын жасады. Ол осылай жұмыс істеді: файлдарды топтастыру, сценарийді іске қосу және деректерді кестеге біріктіру. Бірақ басты мәселе бір қарапайым сұраныс үшін деректердің үлкен көлемін қабылдауында болды. Сұрау секунд сайын деректерге қосылды. Барлығы бір нөмір үшін - бір күндік сома.

Ішкі әзірлеушілер талдау құралын қате пайдаланды. Олар графанаға барып, патша өтінішін жазды. Ол деректерді 2 апта бойы жүктеп салды. Бұл әдемі график болып шықты. Бірақ шын мәнінде, деректер сұрауы әрбір 10 секунд сайын болды. Мұның бәрі кезекке жиналды, өйткені Clickhouse өңдеуді орындамады. Мұнда басты себеп жасырылды. Графанада ештеңе жұмыс істемеді, сұраныстар кезекте тұрды және ескі, маңызды емес деректер үнемі келіп тұрды.

Біз кластерді қайта конфигурацияладық, кірістіруді қайта жасадық. Ішкі әзірлеушілер өздерінің «қондырғышын» қайта жазды және ол деректерді дұрыс бөлуді бастады.

Макс толық инфрақұрылымдық аудит жүргізді. Ол толыққанды бэкендке көшу жоспарын баяндады. Бірақ бұл компанияға ұнамады. Олар Макстан ескі әдіспен жұмыс істеуге мүмкіндік беретін сиқырлы құпияны күтті, бірақ тек тиімді. Леня әлі де жобаны басқарды және ол ештеңе үйренбеді. Ұсынылғандардың ішінен ол қайтадан өзінің балама нұсқасын таңдады. Әдеттегідей бұл ең таңдаулы... батыл шешім болды. Леня оның компаниясының ерекше жолы бар деп есептеді. Тікенекті және айсбергтерге толы.

Шындығында, біз қоштасқан жеріміз - біз қолдан келгенді жасадық.

Осы тарихтан білім мен даналыққа толы біз өз ісімізді ашып, өзімізге бірнеше ұстанымдар қалыптастырдық. Біз ешқашан жұмысты сол кездегідей бастамаймыз.

Осы жобадан кейін DJ Max бізге қосылды және біз әлі де бірге тамаша жұмыс істейміз. Clickhouse оқиғасы маған жұмысты бастамас бұрын толық және мұқият инфрақұрылымдық аудитті қалай жүргізу керектігін үйретті. Біз бәрі қалай жұмыс істейтінін түсінеміз, содан кейін ғана тапсырмаларды қабылдаймыз. Ал егер бұрын біз бірден инфрақұрылымды жөндеуге асығатын болсақ, қазір біз алдымен оны жұмыс жағдайына келтіруді түсінуге көмектесетін бір реттік жобаны жасаймыз.

Иә, біз инфрақұрылымы нашар жобалардан аулақ боламыз. Көп ақшаға болса да, достықтан болса да. Ауру жобаларды жүргізу тиімсіз. Мұны түсіну бізге өсуге көмектесті. Инфрақұрылымды ретке келтіру үшін бір реттік жоба, содан кейін техникалық қызмет көрсету туралы келісім-шарт, немесе біз жай ғана ұшып өтеміз. Басқа айсбергтен өтті.

PS Егер сіздің инфрақұрылымыңызға қатысты сұрақтарыңыз болса, өтініш қалдыруға болады.

Бізде айына 2 тегін аудит бар, мүмкін сіздің жобаңыз солардың бірі болуы мүмкін.

Ақпарат көзі: www.habr.com

пікір қалдыру