
Бул жерде менин devops ишине болгон мамилемди биротоло өзгөрткөн окуя. Ковидге чейинки мезгилде, алардан көп убакыт мурун, жигиттер экөөбүз жеке бизнесибизди пландаштырып, туш келди заказдар боюнча фрилансерлик кылып жүргөндө, менин арабама бир сунуш түштү.
Муну жазган компания маалымат аналитикалык компаниясы болгон. Ал күн сайын миңдеген өтүнүчтөрдү иштеп чыкты. Алар бизге мындай сөздөр менен келишти: балдар, бизде ClickHouse бар жана биз анын конфигурациясын жана орнотуусун автоматташтырууну каалайбыз. Биз Ansible, Terraform, Docker жана анын бардыгы Гитте сакталышын каалайбыз. Биз ар бири эки репликасы бар төрт түйүндөрдүн кластерин каалайбыз.
Бул стандарттуу өтүнүч, алардын ондогону бар жана сизге бирдей жакшы стандарттуу чечим керек. “Макул” дедик, 2-3 жумадан кийин баары даяр болду. Алар жумушту кабыл алып, биздин утилитаны колдонуп жаңы Clickhouse кластерине көчүп башташты.
Clickhouse менен кантип иштешүүнү эч ким каалаган эмес же билген эмес. Анан биз бул алардын негизги көйгөйү деп ойлогонбуз, ошондуктан компаниянын техникалык тейлөө станциясы менин командама ишти мүмкүн болушунча автоматташтырууга уруксат берди, мен дагы ал жакка барбайм.
Биз көчүүнү коштоп жүрдүк, башка милдеттер пайда болду - резервдик көчүрмөлөрдү орнотуу жана мониторинг. Ошол эле учурда бул компаниянын техникалык тейлөө станциясы башка долбоор менен биригип, бизди өзүбүздүн бирөөбүз - Леонид - командир кылып калтырды. Леня анча таланттуу жигит эмес болчу. Күтүлбөгөн жерден Clickhouse үчүн жооптуу болгон жөнөкөй иштеп чыгуучу. Бул анын бир нерсени башкаруудагы биринчи тапшырмасы болду окшойт, анын чоң сыймыгы аны жылдыздуу сезди.
Биз чогуу камдык көчүрмөлөрдү түзүүгө кириштик. Мен дароо баштапкы маалыматтардын камдык көчүрмөсүн алууну сунуштадым. Жөн эле алып, аны сыдырмалап, жарашыктуу түрдө c3 форматына ыргытыңыз. Чийки маалыматтар алтын болуп саналат. Дагы бир вариант бар болчу - тоңдурууну жана көчүрүүнү колдонуп, Clickhouse-да таблицалардын камдык көчүрмөсүн сактоо. Бирок Леня езунун чечими менен чыкты.
Ал бизге экинчи Clickhouse кластери керектигин жарыялады. Мындан ары биз маалыматтарды эки кластерге жазабыз - негизги жана резервдик. Мен ага айтам, Леня, бул резервдик эмес, активдүү реплика болот. Эгерде маалыматтар өндүрүштө жоголо баштаса, камдык көчүрмөңүздө да ушундай болот.
Бирок Леня рулду бекем кармап, менин аргументтериме кулак салбай койду. Биз аны менен чатта көпкө сүйлөштүк, бирок кыла турган эч нерсе жок - долбоордун башында Леня болчу, көчөдөн жалданган балдар эле.
Биз кластердин абалына мониторинг жүргүзүп, администраторлордун иши үчүн гана акы алганбыз. Маалыматтарга кирбестен таза Clickhouse администрациясы. Кластер бар болчу, дисктер жакшы, түйүндөр жакшы болчу.
Биз бул буйрукту алардын командасынын ичиндеги коркунучтуу түшүнбөстүктөрдөн улам алганыбызды билген эмеспиз
Менеджер Clickhouse жай иштегенине нааразы болгон жана кээде маалыматтар жоголуп кеткен. Ал өзүнүн техникалык тейлөө станциясына аны аныктоо милдетин койду. Ал муну мүмкүн болушунча түшүндү жана бизге Clickhouseну автоматташтыруу керек деген тыянакка келди - ушунча. Бирок көп өтпөй белгилүү болгондой, аларга devops командасы такыр керек эмес.
Мунун баары абдан, абдан азаптуу болуп чыкты. Анан эң таарынганы менин туулган күнүм болду.
Жума кечинде. Мен сүйүктүү шарап барында орун ээлеп, үйлөрдү чакырдым.
Кетээрдин алдында дээрлик биз алтерь түзүү тапшырмасын алабыз, аны бүтүрөбүз, баары жакшы. Өзгөртүү өттү, Clickhouse тастыкталды. Биз ансыз деле барга бара жатабыз, алар бизге маалымат жетишсиз деп жазып жатышат. Биз эсептеп көрдүк, баары жетиштүү окшойт. Анан майрамдоо үчүн кетишти.
Ресторан жума күнү ызы-чуу болду. Суусундуктарга жана тамак-ашка заказ берип, дивандарга отурдук. Бул убакыттын ичинде менин шалаакылыгым акырындык менен кабарларга толуп кетти. Алар маалыматтын жетишсиздиги жөнүндө бир нерсе жазышкан. Мен ойлодум - таң кечке караганда акылдуу. Айрыкча бүгүн.
Он бирге жакындаганда алар чала башташты. Ишкананын жетекчиси экен... «Куттуктайын деп чечкендир» деп абдан экилене ойлонуп, телефонду алдым.
Анан мен мындайды уктум: "Сиз биздин маалыматтарды бузуп койдуңуз! Мен сага төлөйм, бирок эч нерсе иштебейт! Сиз камдык көчүрмөлөр үчүн жооптуу болгонсуз, жана сиз эч нерсе кылган жоксуз! Келгиле, оңдойлу!" - ого бетер орой.
- Билесиңби, кет! Бүгүн менин туулган күнүм, эми мен ичем, ал эми сенин июнь айындагы үй өнүмдөрүн боктон жана таяктардан жасабайм!
Муну мен айткан эмесмин. Тескерисинче, ноутбукумду алып, жумушка кирдим.
Жок, мен бомбаладым, тозоктой бомбаладым! Ал чатта каустикти "мен сага айттым" деп куюп салды - анткени резервдик көчүрмө эч нерсе эмес, - албетте, эч нерсе сактаган жок.
Балдар экөөбүз кантип жаздырууну кол менен токтотуп, баарын текшерип көрүштү. Биз, чынында, кээ бир маалыматтар жазылган эмес экенине ынандык.
Жазууну токтотуп, бир күндө болгон окуялардын санын санадык. Алар көбүрөөк маалыматтарды жүктөгөн, анын үчтөн бири гана жазылган эмес. Ар биринде 2 репликасы бар үч сынык. Сиз 100.000 33.000 сап киргизесиз - XNUMX XNUMX жазылган эмес.
Толук баш аламандык болду. Бардыгы бири-бирине кезек-кезеги менен кеткиле деп айтышты: биринчи Леня, андан кийин мен жана компаниянын негиздөөчүсү бардым. Кошулган тейлөө станциясы гана биздин кыйкырык-чакырыктарды, кат алышууларыбызды маселенин чечүү жолун табууга бурганга аракет кылды.
Чынында эмне болуп жатканын эч ким түшүнгөн жок
Бардык маалыматтардын үчтөн бир бөлүгү жазылбай эле, жоголуп кеткенин түшүнгөндө, балдар жана мен жөн эле учуп кеттик! Компанияда тартип мындай экени белгилүү болду: киргизилгенден кийин маалыматтар кайра кайтарылгыс түрдө жок кылынган, окуялар партиялар менен текке кеткен. Мен Сергей ушунун баарын кантип жоголгон рублга айландырарын элестеттим.
Менин туулган күнүмдү да таштандыга ыргытышты. Биз барда отуруп, идеяларды жаратып, бизге ыргытылган табышмакты чечүүгө аракет кылдык. Clickhouse кулашынын себеби ачык-айкын болгон эмес. Балким, бул тармак, балким, бул Linux жөндөөлөрү. Ооба, эмнени кааласаң, гипотезалар жетиштүү.
Мен иштеп чыгуучунун антын алган жокмун, бирок линиянын аркы четиндеги балдардан баш тартуу абийирсиздик болду - алар бардыгы үчүн бизди күнөөлөшсө да. Маселе биз тарапта эмес, биздин чечимдерибизде эмес деп 99% ишенчүмүн. Биз бузуп алган 1% ыктымалдык тынчсыздануу менен күйүп жатты. Бирок кыйынчылык кайсы тарапта болбосун, аны оңдоо керек болчу. Кардарларды ким болбосун, мындай коркунучтуу маалыматтар менен таштап кетүү өтө ырайымсыздык.
Таңкы саат үчкө чейин ресторандын столунда иштечүбүз. Биз окуяларды кошуп, тандоону киргизип, боштуктарды толтуруу үчүн кеттик. Берилиштерди бурмалаганыңызда, сиз муну ушундай кыласыз: мурунку күндөрдүн орточо маалыматтарын алып, аларды бузулган күндөргө киргизесиз.
Түнкү саат үчтөн кийин досум экөөбүз үйгө барып, спирт базарынан пиво заказ кылдык. Мен ноутбук жана Clickhouse көйгөйлөрү менен отурган элем, досум мага бир нерсе айтып жатты. Жыйынтыгында бир сааттан кийин мен аны менен пиво ичпей иштеп жатканыма таарынып, кетип калды. Classic - Мен Devops менен дос болчумун.
Эртең мененки саат 6да мен үстөлдү кайра түздүм, маалыматтар толуп баштады. Бардыгы коромжусуз иштеди.
Анан кыйын болду. Маалыматтардын жоголушуна баары бири-бирин күнөөлөштү. Эгер жаңы мүчүлүштүктөр болуп кетсе, анда атышуу болмок деп ишенем
Бул уруштарда биз акыры түшүнө баштадык - компания бизди маалыматтар менен иштеген жана таблицалардын структурасын көзөмөлдөгөн балдар деп ойлошкон. Алар админдерди дилерлер менен чаташтырышты. Анан алар бизге админдерден башкача бир нерсе сурап келишти.
Алардын негизги нааразычылыгы - бул эмне, сиз камдык көчүрмөлөр үчүн жооптуу болгонсуз жана аларды туура эмес кылгансыз, сиз маалыматтарды ысырап кыла бергенсиз. Жана мунун баары артка мат менен.
Мен адилеттикти кааладым. Мен корреспонденцияларды казып алдым жана бардыгынын скриншотторун тиркедим, ал жерде Леонид бүт күчү менен аларды камдык көчүрмөнү жасоого мажбурлайт. Мен телефон чалгандан кийин алардын тейлөө станциясы биз тарапка өттү. Кийинчерээк Леня күнөөсүн мойнуна алган.
Ишкананын жетекчиси тескерисинче, өз кишилерин күнөөлдөгүсү келген жок. Скриншоттор жана сөздөр ага эч кандай таасир эткен жок. Ал биз бул жерде эксперт болгондуктан, бардыгын ынандырып, чечимибизди талап кылышыбыз керек деп эсептеген. Кыязы, биздин милдет Леняны үйрөтүү жана анын үстүнө долбоордун менеджери болуп дайындалган аны айланып өтүп, негизги нерсеге өтүү жана ага камдык көчүрмөлөр жөнүндө бардык шектенүүлөрүбүздү жекече төгүү болчу.
Чат жек көрүү, жашыруун жана жашырылбаган агрессия менен коштолду. Эмне кыларымды билбей калдым. Баары токтоп калды. Анан алар мага эң оңой жолду – менеджерге жеке билдирүү жазып, аны менен жолугушууну уюштурууну кеңешишти. Вася, чыныгы жашоодо адамдар чатта сүйлөгөндөй тез эмес. Менин кабарыма начальник жооп берди: кел, суроо жок.
Бул менин карьерамдагы эң коркунучтуу жолугушуу болду. Менин кардардан өнөктөшүм - СТО - убакыт таба алган жок. Мен начальник жана Лена менен жолугушууга бардым.
Кайра-кайра мен башымда мүмкүн болгон диалогубузду кайталадым. Мен абдан эрте, жарым саат мурун жетүүгө жетиштим. Мен тынчсыздана баштадым, мен 10 тамеки тарттым, мен жалгыз жатам. Мен аларды ынандыра албайм. Анан лифтке кирди.
Ордунан туруп жатып зажигалканы катуу урду, сындырып койду.
Натыйжада Леня заседаниеде жок. Жана биз начальник менен баардыгы жөнүндө сонун маектештик! Сергей мага анын оорусун айтып берди. Ал "Кликхаусты автоматташтырууну" каалаган эмес - ал "суроолорду ишке ашырууну" каалаган.
Мен эчкини көргөн жокмун, бирок жакшы жигит, өз бизнесине тынчсызданып, 24/7 жумушка чөмүлдү. Чат көп учурда бизди жаман адамдар, шылуундар жана келесоо адамдарды тартат. Бирок жашоодо булар сендей адамдар.
Сергей жалдоо үчүн бир нече devops керек эмес. Алардын көйгөйү бир топ чоң болуп чыкты.
Мен анын көйгөйлөрүн чече аларымды айттым - бул такыр башка жумуш, ал үчүн менин досум бар. Бул алар үчүн келишим экенин башынан эле билсек, көп нерседен качмакпыз. Кеч болуп калды, бирок биз көйгөй инфраструктурада эмес, маалыматтын начар башкаруусунда экенин түшүндүк.
Биз кол алышып учураштык, алар биздин айлыгыбызды эки жарым эсе көтөрүштү, бирок мен алардын маалыматтары жана Clickhouse менен баш аламандыкты өзүм алуу шарты менен. Лифтте мен ошол эле DI жигити Макс менен сүйлөшүп, аны жумушка коштум. Бүткүл кластерди күрөктөш керек болчу.
Кабыл алынган долбоордо таштандылар көп болгон. Жогоруда айтылган "камдык" менен башталат. Көрсө, ошол эле “резервдик” кластер обочолонгон эмес. Анын үстүндө бардыгын сынап көрүштү, кээде өндүрүшкө киргизишти.
Биздин ички иштеп чыгуучулар өздөрүнүн жеке маалымат киргизгичтерин түзүштү. Ал мындай иштеди: файлдарды топтоп, сценарийди иштетип, маалыматтарды таблицага бириктирди. Бирок негизги көйгөй бир жөнөкөй суроо-талап үчүн чоң көлөмдөгү маалыматтардын кабыл алынышы болду. Сурам секунд сайын маалыматтарга кошулду. Баары бир сан үчүн - күнүнө суммасы.
Үйдө иштеп чыгуучулар аналитика куралын туура эмес колдонушкан. Алар графанага барып, падышалык өтүнүчүн жазышкан. Ал 2 жума бою маалыматтарды жүктөгөн. Бул сонун график болуп чыкты. Бирок, чындыгында, маалымат суроо-талап ар бир 10 секунд болчу. Мунун баары кезекке туруп калды, анткени Clickhouse иштетүүнү жөн эле алып салган жок. Негизги себеп дал ушул жерде жашырылган. Графанада эч нерсе иштеген жок, сурамдар кезекке туруп, эски, тиешеси жок маалыматтар тынымсыз келип турчу.
Биз кластерди кайра конфигурацияладык, киргизүүнү кайра жасадык. Үйдө иштеп чыгуучулар өздөрүнүн "киргизгичтерин" кайра жазышты жана ал маалыматтарды туура бөлүштүрө баштады.
Макс инфраструктурага толук аудит жүргүзгөн. Ал толук кандуу баекычка өтүүнүн планын белгиледи. Бирок бул компанияга туура келген жок. Алар Макстын сыйкырдуу сырын күтүшкөн, бул аларга эски модада иштөөгө мүмкүндүк берет, бирок натыйжалуу гана. Леня дагы эле долбоордун башында турган, ал эч нерсеге үйрөнгөн эмес. Сунушталгандардын ичинен ал кайрадан өзүнүн альтернативасын тандап алды. Адаттагыдай эле бул эң тандалма... тайманбас чечим болду. Леня анын компаниясынын өзгөчө жолу бар деп эсептеген. Тикенектүү жана айсбергдерге толгон.
Чынында, биз ошол жерден ажыраштык - биз колубуздан келгенди жасадык.
Бул тарыхтан билимге жана акылмандыкка толуп, биз өзүбүздүн бизнесибизди ачып, өзүбүз үчүн бир нече принциптерди түздүк. Биз эч качан мурункудай иш баштабайбыз.
Бул долбоордон кийин ди-джей Макс бизге кошулду, биз дагы деле жакшы иштеп жатабыз. Clickhouse иши мага жумушка киришерден мурун инфраструктуранын толук жана кылдат аудитин кантип жүргүзүүнү үйрөттү. Биз бардыгы кандай иштээрин түшүнөбүз жана андан кийин гана тапшырмаларды кабыл алабыз. Эгерде мурда биз инфраструктураны күтүүгө шашылсак, азыр биринчи кезекте бир жолку долбоорду ишке ашырабыз, бул бизге аны кантип иштөө абалына келтирүүнү түшүнүүгө жардам берет.
Ооба, биз инфраструктурасы начар долбоорлордон качабыз. Коп акчага болсо да, достуктан болсо да. Оорулуу долбоорлорду ишке ашыруу пайдасыз. Муну түшүнүү бизге өсүүгө жардам берди. Же инфраструктураны иретке келтирүү үчүн бир жолку долбоор, анан техникалык тейлөө боюнча келишим түзөбүз, же жөн эле учуп кетебиз. Дагы бир айсберг өттү.
PS Демек, инфраструктураңыз боюнча суроолоруңуз болсо, .
Бизде айына 2 акысыз аудит бар, балким сиздин долбооруңуз алардын бири болушу мүмкүн.
Source: www.habr.com
