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

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

Ево приче која је заувек променила мој приступ девопс раду. Још у време пре Цовид-а, много, много пре њих, када смо момци и ја само планирали сопствени посао и бавили се слободним радњама по насумичним поруџбинама, једна понуда је пала у моја колица.

Компанија која је ово написала била је компанија за анализу података. Дневно је обрађивала хиљаде захтева. Дошли су до нас са речима: момци, имамо ЦлицкХоусе и желимо да аутоматизујемо његову конфигурацију и инсталацију. Желимо Ансибле, Терраформ, Доцкер и да све то буде ускладиштено у Гиту. Желимо кластер од четири чвора са по две реплике.

То је стандардни захтев, има их на десетине и потребно вам је једнако добро стандардно решење. Рекли смо „ок“, и после 2-3 недеље све је било спремно. Прихватили су посао и почели да се селе у нови Цлицкхоусе кластер користећи наш услужни програм.

Нико није желео нити знао како да петља са Цлицкхоусе-ом. Тада смо помислили да је то њихов главни проблем и зато је сервис компаније једноставно дао зелено светло мом тиму да аутоматизује посао што је више могуће, како више не бих ишла тамо.

Испратили смо селидбу, искрсли су други задаци – постављање резервних копија и праћење. У истом тренутку, сервис ове компаније спојио се са другим пројектом, остављајући нам једног нашег - Леонида - као командира. Лења није био баш надарен момак. Једноставан програмер који је изненада стављен на чело Цлицкхоусе-а. Чини се да је ово био његов први задатак да управља нечим, а огромна част га је натерала да се осећа као звезда.

Заједно смо кренули у прављење резервних копија. Предложио сам да одмах направите резервну копију оригиналних података. Само узми, закопчај и елегантно баци у неки ц3. Сирови подаци су злато. Постојала је још једна опција - направити резервну копију самих табела у Цлицкхоусе-у, користећи замрзавање и копирање. Али Лења је смислио своје решење.

Он је најавио да нам је потребан други Цлицкхоусе кластер. И од сада ћемо писати податке у два кластера - главни и резервни. Кажем му, Лења, то неће бити резервна, већ активна реплика. А ако подаци почну да се губе у производњи, исто ће се десити и на вашој резервној копији.

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

Пратили смо стање кластера и наплаћивали само рад администратора. Чиста Цлицкхоусе администрација без уласка у податке. Кластер је био доступан, дискови су били у реду, чворови су били у реду.

Нисмо знали да смо ову наредбу добили због страшног неспоразума у ​​њиховом тиму

Менаџер је био незадовољан што је Цлицкхоусе спор и што су подаци понекад изгубљени. Својој сервисној станици је поставио задатак да то открије. Схватио је то најбоље што је могао и закључио да само треба да аутоматизујемо Цлицкхоусе - то је све. Али како је убрзо постало јасно, тим девопова им уопште није био потребан.

Испоставило се да је све ово веома, веома болно. А највредније је било то што је то било на мој рођендан.

У петак увече. Направио сам резервацију у свом омиљеном винском бару и позвао другаре.

Скоро пред одлазак добијамо задатак да направимо алтер, завршимо га, све је ок. Промена је прошла, кликхоусе потврђено. Већ идемо у локал, а пишу нам да нема довољно података. Рачунали смо да је све изгледа довољно. И отишли ​​су да славе.

У ресторану је било бучно у петак. Наручивши пиће и храну, завалили смо се на софе. Све ово време, моја опуштеност је полако била преплављена порукама. Написали су нешто о недостатку података. Мислио сам – јутро је мудрије од вечери. Посебно данас.

Ближе једанаест су почели да зову. Био је то шеф компаније... „Вероватно је одлучио да ми честита“, помислио сам врло оклевајући и подигао слушалицу.

И чуо сам нешто попут: „Зезнуо си наше податке! Плаћам те, али ништа не ради! Били сте одговорни за резервне копије, а нисте урадили ништа! Хајде да то поправимо!" - само још грубље.

- Знаш шта, одјеби! Данас ми је рођендан, а сада ћу пити, а не бавити се вашим јунским домаћим производима од срања и штапа!

То је оно што нисам рекао. Уместо тога, извадио сам лаптоп и кренуо на посао.

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

Дечаци и ја смо смислили како да ручно зауставимо снимање и све проверимо. Заправо смо се уверили да неки од података нису написани.

Престали смо да снимамо и пребројали смо догађаје који су тамо били по дану. Учитали су више података, од којих само трећина није забележена. Три крхотине са по 2 реплике. Убаците 100.000 редова - 33.000 се не евидентира.

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

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

Момци и ја смо били просто одушевљени када смо схватили да трећина свих података не само да није забележена, већ је изгубљена! Испоставило се да је ред у компанији био следећи: након убацивања подаци су неопозиво избрисани, догађаји су протраћени у серијама. Замишљао сам како ће Сергеј све ово претворити у изгубљене рубље.

Мој рођендан је такође бачен у смеће. Седели смо за шанком и генерисали идеје, покушавајући да решимо загонетку која нам је била бачена. Разлог Кликхаусовог пада није био очигледан. Можда је у питању мрежа, можда Линук подешавања. Да, шта год хоћете, било је довољно хипотеза.

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

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

После три сата ујутру, пријатељ и ја смо отишли ​​код мене и наручили пиво са пијаце алкохола. Седео сам са лаптопом и Цлицкхоусе проблемима, пријатељ ми је нешто говорио. Као резултат тога, после сат времена био је увређен што радим и не пијем пиво са њим и отишао. Класика - био сам Девопсов пријатељ.

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

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

У овим тучама коначно смо почели да схватамо – компанија је мислила да смо ми момци који раде са подацима и прате структуру табела. Побркали су администраторе са дилерима. И дошли су да нас питају нешто другачије од админа.

Њихова главна примедба је - шта дођавола, ви сте били одговорни за резервне копије и нисте их урадили како треба, наставили сте да трошите податке. И све то са простиркама за премотавање.

Хтео сам правду. Ископао сам преписку и приложио све снимке екрана, где их Леонид свом снагом тера да направе резервну копију која је направљена. Њихова сервисна станица је стала на нашу страну након мог телефонског позива. Касније је Лења признао кривицу.

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

Разговор је цурио од мржње, скривене и нескривене агресије. Нисам знао шта да радим. Све је стало. А онда су ми саветовали најлакши начин - да напишем личну поруку менаџеру и договорим састанак са њим. Васја, људи у стварном животу нису тако брзи као у ћаскању. Шеф ми је на поруку одговорио: дођи, нема питања.

Био је то најстрашнији састанак у мојој каријери. Мој савезник од клијента - СТО - није могао да нађе времена. Отишао сам на састанак са шефом и Леном.

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

Док је устајао, толико је снажно ударио упаљач да га је разбио.

Као резултат тога, Лења није био на састанку. И одлично смо разговарали о свему са шефом! Сергеј ми је причао о свом болу. Није желео да "аутоматизује Цлицкхоусе" - желео је да "учини да упити функционишу".

Нисам видео козу, али доброг момка, забринут за своја посла, уроњен у посао 24/7. Ћаскање нас често привлачи негативце, ниткове и глупе људе. Али у животу су то људи попут вас.

Сергеју није било потребно неколико девопова за изнајмљивање. Испоставило се да је проблем који су имали много већи.

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

Руковали смо се, они су нам подигли плату два и по пута, али под условом да ја преузмем апсолутно целу збрку са њиховим подацима и Цлицкхоусе за себе. У лифту сам комуницирао са тим истим ДИ типом Максом и повезао га са послом. Требало је лопатама оборити цео грозд.

У усвојеном пројекту било је много смећа. Почевши од поменуте „резервне копије“. Испоставило се да овај исти „резервни“ кластер није изолован. Све су тестирали на њему, понекад чак и пустили у производњу.

Наши интерни програмери су креирали сопствени уметач података. Радио је овако: скупио је датотеке, покренуо скрипту и спојио податке у табелу. Али главни проблем је био што је огромна количина података прихваћена за један једноставан захтев. Захтев је спајао податке сваке секунде. Све ради једног броја - износа по дану.

Ин-хоусе програмери су погрешно користили алатку за анализу. Отишли ​​су у графана и написали своју царску молбу. Уплоадовао је податке 2 недеље. Испоставило се да је то прелеп графикон. Али у стварности, захтев за подацима је био сваких 10 секунди. Све се ово гомилало у реду јер Цлицкхоусе једноставно није узео обраду. Ту се крио главни разлог. У Графани ништа није функционисало, захтеви су стајали у реду, а стално су стизали стари, небитни подаци.

Поново смо конфигурисали кластер, променили уметање. Интерни програмери су преписали свој „инсертер“ и он је почео да правилно дели податке.

Макс је извршио комплетну ревизију инфраструктуре. Изнео је план за прелазак на пуноправни бацкенд. Али ово није одговарало компанији. Од Макса су очекивали магичну тајну која ће им омогућити да раде на старински начин, али само ефикасно. Лења је и даље био задужен за пројекат и ништа није научио. Од свега понуђеног, опет је изабрао своју алтернативу. Као и увек, ово је била најселективнија... смела одлука. Лења је веровао да његово друштво има посебан пут. Трновит и пун санти леда.

У ствари, ту смо се растали - урадили смо шта смо могли.

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

Ди-џеј Макс нам се придружио након овог пројекта и још увек одлично сарађујемо. Случај Цлицкхоусе ме је научио како да извршим потпуну и темељну ревизију инфраструктуре пре почетка рада. Разумемо како све функционише и тек онда прихватамо задатке. И ако смо раније одмах журили да одржавамо инфраструктуру, сада прво радимо једнократни пројекат, који нам помаже да схватимо како да је доведемо у радно стање.

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

ПС Дакле, ако имате питања о својој инфраструктури, слободно оставите захтев.

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

Извор: ввв.хабр.цом

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