Додека сите го славеа мојот роденден, јас го поправав кластерот до утрото - а програмерите ја обвинија мене за нивните грешки

Додека сите го славеа мојот роденден, јас го поправав кластерот до утрото - а програмерите ја обвинија мене за нивните грешки

Еве една приказна која засекогаш го промени мојот пристап кон deops работата. Назад во времето пред Ковид, многу, многу пред нив, кога момците и јас само планиравме сопствен бизнис и хонорарциравме по случајни нарачки, една понуда падна во мојата кошничка.

Компанијата што го напиша ова беше компанија за анализа на податоци. Таа обработуваше илјадници барања дневно. Тие дојдоа кај нас со зборовите: момци, имаме ClickHouse и сакаме да ја автоматизираме неговата конфигурација и инсталација. Сакаме Ansible, Terraform, Docker и сето тоа да се складира во Git. Сакаме кластер од четири јазли со по две реплики.

Тоа е стандардно барање, има десетици од нив и ви треба подеднакво добро стандардно решение. Рековме „ок“, и по 2-3 недели сè беше подготвено. Тие ја прифатија работата и почнаа да се преселуваат во нов кластер на Clickhouse користејќи ја нашата алатка.

Никој не сакаше и не знаеше како да се чепка со Clickhouse. Тогаш помисливме дека тоа е нивниот главен проблем, и затоа сервисната станица на компанијата едноставно му даде зелено светло на мојот тим да ја автоматизира работата колку што е можно повеќе, за да не одам повторно таму.

Го придружувавме потегот, се појавија други задачи - поставување резервни копии и следење. Во истиот момент, сервисната станица на оваа компанија се спои со уште еден проект, оставајќи ни еден од нашите - Леонид - како командант. Лења не беше многу надарен тип. Едноставен програмер кој одеднаш беше поставен на чело на Clickhouse. Се чини дека ова му беше прва задача да управува со нешто, а огромната чест го натера да се чувствува шокиран.

Заедно започнавме да правиме резервни копии. Предложив веднаш да направите резервна копија на оригиналните податоци. Само земете го, затворете го и елегантно фрлете го во некој c3. Необработените податоци се злато. Имаше уште една опција - да се направи резервна копија на самите табели во Clickhouse, користејќи замрзнување и копирање. Но, Лења излезе со свое решение.

Тој најави дека ни треба втор Кликхаус кластер. И отсега ќе пишуваме податоци во два кластери - главниот и резервниот. Му велам, Лења, тоа нема да биде резервна копија, туку активна реплика. И ако податоците почнат да се губат во производството, истото ќе се случи и на вашата резервна копија.

Но, Лења силно го фати воланот и одби да ги слуша моите аргументи. Долго разговаравме со него во муабетот, но немаше што да правиме - Лења беше задолжена за проектот, ние бевме само ангажирани деца од улица.

Ја следевме состојбата на кластерот и наплатувавме само за работата на администраторите. Чиста администрација на Clickhouse без навлегување во податоците. Кластерот беше достапен, дисковите беа во ред, јазлите беа во ред.

Не знаевме дека оваа наредба ја добивме поради страшно недоразбирање во нивниот тим

Менаџерот не бил задоволен што Кликхаус е бавен, а податоците понекогаш се губат. На својата сервисна станица му постави задача да го открие тоа. Тој го сфати тоа најдобро што може и заклучи дека само треба да го автоматизираме Clickhouse - тоа е сè. Но, како што набрзо стана јасно, воопшто не им требаше тим од девопови.

Сето ова се покажа како многу, многу болно. И најнавредливо беше што беше на мојот роденден.

петок навечер. Резервирав во мојот омилен вински бар и ги поканив домашните.

Скоро пред заминување добиваме задача да направиме алтер, го завршуваме, се е ок. Алтер помина, clickhouse потврди. Веќе одиме во кафеана, и ни пишуваат дека нема доволно податоци. Пресметавме дека се чини дека е доволно. И заминаа да слават.

Ресторанот беше бучен во петок. Откако нарачавме пијалоци и храна, лежевме на софите. За сето тоа време, моето лабаво полека беше преплавено со пораки. Тие напишаа нешто за недостаток на податоци. Мислев - утрото е помудро од вечерта. Особено денес.

Поблиску до единаесет почнаа да се јавуваат. Тоа беше шефот на компанијата... „Веројатно решив да ми честитам“, си помислив многу колебливо и го зедов телефонот.

И слушнав нешто како: „Ни ги заебавте податоците! Ти плаќам, но ништо не функционира! Вие бевте одговорни за резервните копии и не направивте ништо! Ајде да го поправиме!“ - само уште погруби.

- Знаеш што, тргни се! Денес ми е роденден, а сега ќе пијам, а не да се занимавам со твоите јунски домашни производи од глупости и стапчиња!

Тоа е она што не го кажав. Наместо тоа, го извадив лаптопот и се фатив за работа.

Не, бомбардирав, бомбардирав како пекол! Во разговорот истури каустични „Ти реков“ - затоа што резервната копија, која воопшто не беше резервна копија, - се разбира, не спаси ништо.

Момчињата и јас сфативме како рачно да го прекинеме снимањето и да провериме сè. Ние всушност се уверивме дека некои од податоците не се напишани.

Престанавме да снимаме и го броевме бројот на настани што беа таму дневно. Прикачиле повеќе податоци, од кои само една третина не е евидентирана. Три парчиња со по 2 реплики. Вметнувате 100.000 редови - 33.000 не се евидентирани.

Настана целосна конфузија. Сите си велеа да се заебаваат по ред: Лења отиде таму прво, а потоа јас и основачот на компанијата. Само сервисната станица што се приклучи се обиде да ги пренасочи нашите повици и преписки кон изнаоѓање решение за проблемот.

Никој не разбра што навистина се случува

Момците и јас едноставно бевме воодушевени кога сфативме дека една третина од сите податоци не само што не се снимени, туку и се изгубени! Се испостави дека нарачката во компанијата била следна: по вметнувањето, податоците биле неотповикливо избришани, настаните се трошеле во серии. Замислив како Сергеј сето ова ќе го претвори во изгубени рубли.

И мојот роденден беше фрлен во ѓубре. Седнавме на шанкот и генериравме идеи, обидувајќи се да ја решиме загатката што ни беше фрлена. Причината за падот на Кликхаус не беше очигледна. Можеби е мрежата, можеби се поставките на Линукс. Да, што сакаш, имало доволно хипотези.

Не ја дадов заклетвата на инвеститорот, но беше нечесно да ги напуштам момците од другата страна на линијата - дури и ако нè обвинуваат за сè. Бев 99% сигурен дека проблемот не лежи во нашите одлуки, а не во нашата страна. Шансата од 1% дека сме зафркнале гореше од нервоза. Но, без разлика на која страна беше неволјата, таа мораше да се поправи. Напуштањето на клиентите, без разлика кои се тие, со толку страшно истекување на податоци е премногу сурово.

Работевме на масата во ресторанот до три часот наутро. Додадовме настани, вметнете изберете и тргнавме да ги пополниме празнините. Кога ќе ги заебеш податоците, вака го правиш тоа: ги земаш просечните податоци за претходните денови и ги вметнуваш во заебаните.

После три часот наутро, со другар ми отидовме кај мене дома и нарачавме пиво од маркетот за алкохол. Седев со лаптоп и проблеми со Clickhouse, другарка ми кажуваше нешто. Како резултат на тоа, по еден час тој беше навреден што работев и не пијам пиво со него, и замина. Класик - Бев пријател на Девопс.

До 6 часот наутро, повторно ја креирав табелата и податоците почнаа да се преплавуваат. Се работеше без никакви загуби.

Тогаш беше тешко. Сите меѓусебно се обвинуваа за загубата на податоците. Да се ​​случеше нов баг, сигурен сум дека ќе имаше престрелка

Во овие борби, конечно почнавме да разбираме - компанијата мислеше дека ние сме момците кои работат со податоци и ја следат структурата на табелите. Ги помешаа админите со дилерите. И дојдоа да не прашаат нешто поразлично од админите.

Нивната главна жалба е - по ѓаволите, вие бевте одговорни за резервните копии и не ги направивте правилно, продолживте да ги трошите податоците. И сето тоа со душеци за премотување.

Сакав правда. Ја ископав кореспонденцијата и прикачив слики од екранот на сите, каде Леонид со сета сила ги принудува да направат резервна копија што е направена. Нивната сервисна станица застана на наша страна по мојот телефонски повик. Подоцна Лења ја призна својата вина.

Шефот на компанијата, напротив, не сакаше да го обвинува сопствениот народ. Снимките од екранот и зборовите немаа никакво влијание врз него. Тој веруваше дека бидејќи сме експерти овде, мораме да ги убедиме сите и да инсистираме на нашата одлука. Очигледно, нашата задача беше да ја научиме Лења и, згора на тоа, да го заобиколиме, кој беше назначен за менаџер на проектот, да дојде до главната работа и лично да му ги истуриме сите наши сомнежи за концептот на резервни копии.

Муабетот течеше со омраза, скриена и нескриена агресија. Не знаев што да правам. Сè е дојдено во застој. И тогаш ме советуваа најлесниот начин - да напишам лична порака до менаџерот и да договорам средба со него. Васија, луѓето во реалниот живот не се толку брзи како што се во разговор. Шефот ми одговори на пораката: дојди, нема прашање.

Тоа беше најстрашната средба во мојата кариера. Мојот сојузник од клиентот - КНИ - не можеше да најде време. Отидов на состанок со шефот и Лена.

Одново и одново го повторував нашиот можен дијалог во мојата глава. Успеав да стигнам многу рано, половина час однапред. Почнав да се нервирам, испушив 10 цигари, разбрав, тоа е тоа - се заебавам сам. Нема да можам да ги убедам. И влезе во лифтот.

Додека станувал толку силно удрил во запалката што ја скршил.

Како резултат на тоа, Лења не беше на состанокот. А со газдата супер муабет за се! Сергеј ми кажа за неговата болка. Тој не сакаше да го „автоматизира Clickhouse“ - тој сакаше „да направи прашањата да функционираат“.

Не видов коза, туку добар човек, загрижен за својот бизнис, нурнат во работата 24/7. Четот често нè привлекува негативци, никаквеци и глупави луѓе. Но, во животот тоа се луѓе исто како тебе.

На Сергеј не му требаа неколку девопови за изнајмување. Проблемот што го имаа се покажа дека е многу поголем.

Реков дека можам да ги решам неговите проблеми - тоа е само сосема друга работа и имам пријател кој работи за тоа. Да знаевме од почеток дека ова е договор за нив, ќе избегневме многу. Доцна е, но сфативме дека проблемот лежи во лошото управување со податоците, а не во инфраструктурата.

Се ракувавме, два ипол пати ни ја покачија платата, но под услов да си ја земам апсолутно целата збрка со нивните податоци и Кликхаус за себе. Во лифтот, комуницирав со истиот DI човек Макс и го поврзав на работа. Беше неопходно да се забие целиот кластер.

Во усвоениот проект имаше многу ѓубре. Почнувајќи од споменатата „резервна копија“. Се испостави дека истиот тој „резервен“ кластер не бил изолиран. Тие тестираа сè на него, понекогаш дури и ставајќи го во производство.

Нашите домашни програмери создадоа свој сопствен вметнувач на податоци. Тој работеше вака: ги спакуваше датотеките, ја стартуваше скриптата и ги спои податоците во табела. Но, главниот проблем беше што беше прифатена огромна количина на податоци за едно едноставно барање. Барањето се придружуваше на податоците секоја секунда. Сите за доброто на еден број - износот на ден.

Домашните програмери погрешно ја користеле алатката за аналитика. Отишле во графана и ја напишале својата кралска молба. Прикачуваше податоци за 2 недели. Се испостави дека е прекрасен графикон. Но, во реалноста, барањето податоци беше на секои 10 секунди. Сето ова се натрупуваше во ред бидејќи Clickhouse едноставно не ја извади обработката. Тука се криеше главната причина. Во Графана ништо не функционираше, барањата стоеја во редица и постојано пристигнуваа стари, неважни податоци.

Го реконфигуриравме кластерот, повторно го сменивме вметнувањето. Домашните програмери го преработија својот „инсертер“ и тој почна правилно да ги споделува податоците.

Макс изврши целосна ревизија на инфраструктурата. Тој го претстави планот за транзиција кон полноправна заднина. Но, ова не и одговараше на компанијата. Тие очекуваа магична тајна од Макс која ќе им овозможи да работат на старомоден начин, но само ефикасно. Лења сè уште беше задолжена за проектот, а тој ништо не научи. Од сето понудено тој повторно ја избра својата алтернатива. Како и секогаш, ова беше најселективна... храбра одлука. Лења веруваше дека неговата компанија има посебен пат. Трнливи и полни со санта мраз.

Всушност, тука се разделивме - направивме се што можевме.

Полни со знаење и мудрост од оваа историја, отворивме сопствен бизнис и формиравме неколку принципи за себе. Никогаш нема да почнеме да работиме сега на ист начин како тогаш.

По овој проект ни се придружи и диџеј Макс, а ние се уште работиме одлично заедно. Случајот Clickhouse ме научи како да спроведам целосна и темелна ревизија на инфраструктурата пред да започнам со работа. Разбираме како функционира сè и дури потоа ги прифаќаме задачите. И ако порано веднаш брзавме да ја одржуваме инфраструктурата, сега прво правиме еднократен проект, кој ни помага да разбереме како да ја доведеме во работна состојба.

И да, избегнуваме проекти со гадна инфраструктура. Макар и за многу пари, макар и од пријателство. Неисплатливо е да се водат болни проекти. Сфаќањето на ова ни помогна да растеме. Или еднократен проект за средување на инфраструктурата и потоа договор за одржување, или само летаме. Минатата друга санта мраз.

PS Значи, ако имате прашања за вашата инфраструктура, слободно оставете барање.

Имаме 2 бесплатни ревизии месечно, можеби вашиот проект ќе биде еден од нив.

Извор: www.habr.com

Додадете коментар