در حالی که همه در حال جشن گرفتن تولد من بودند، من تا صبح در حال تعمیر کلاستر بودم - و توسعه دهندگان اشتباهات خود را به گردن من انداختند.

در حالی که همه در حال جشن گرفتن تولد من بودند، من تا صبح در حال تعمیر کلاستر بودم - و توسعه دهندگان اشتباهات خود را به گردن من انداختند.

در اینجا داستانی است که برای همیشه رویکرد من به کار توسعه‌دهنده را تغییر داد. در زمان‌های قبل از کووید، خیلی قبل از آن‌ها، زمانی که من و بچه‌ها فقط در حال برنامه‌ریزی کسب‌وکار خودمان بودیم و بر اساس سفارش‌های تصادفی شغل آزاد داشتیم، یک پیشنهاد در سبد خریدم افتاد.

شرکتی که این را نوشت یک شرکت تجزیه و تحلیل داده بود. او روزانه هزاران درخواست را پردازش می کرد. آنها با این جمله نزد ما آمدند: بچه ها، ما ClickHouse داریم و می خواهیم پیکربندی و نصب آن را خودکار کنیم. ما می خواهیم Ansible، Terraform، Docker و همه آن ها در Git ذخیره شوند. ما یک خوشه از چهار گره با دو کپی می خواهیم.

این یک درخواست استاندارد است، ده ها مورد از آنها وجود دارد، و شما به یک راه حل استاندارد به همان اندازه خوب نیاز دارید. گفتیم "باشه" و بعد از 2-3 هفته همه چیز آماده بود. آنها کار را پذیرفتند و با استفاده از ابزار ما شروع به حرکت به یک خوشه کلیک‌هاوس جدید کردند.

هیچ کس نمی خواست یا نمی دانست که چگونه با کلیک هاوس سرهم کند. سپس فکر کردیم که این مشکل اصلی آنهاست و بنابراین ایستگاه خدمات شرکت به سادگی به تیم من اجازه داد تا کار را تا حد امکان خودکار کنند تا دیگر هرگز به آنجا نروم.

ما این حرکت را همراهی کردیم، وظایف دیگری به وجود آمد - تنظیم پشتیبان و نظارت. در همان لحظه، ایستگاه خدمات این شرکت با پروژه دیگری ادغام شد و ما را با یکی از خودمان - لئونید - به عنوان فرمانده باقی گذاشت. لنیا مرد خیلی با استعدادی نبود. یک توسعه دهنده ساده که به طور ناگهانی مسئول Clickhouse شد. به نظر می رسد که این اولین مأموریت او برای مدیریت چیزی بوده است و افتخار فوق العاده باعث شد که او احساس غمگینی کند.

با هم شروع به تهیه نسخه پشتیبان کردیم. من پیشنهاد کردم فوراً از داده های اصلی نسخه پشتیبان تهیه کنید. فقط آن را بردارید، آن را زیپ کنید و به زیبایی آن را در مقداری c3 بیندازید. داده های خام طلا هستند. گزینه دیگری وجود داشت - پشتیبان گیری از جداول خود در Clickhouse، با استفاده از فریز و کپی کردن. اما لنیا راه حل خودش را پیدا کرد.

او اعلام کرد که ما به خوشه دوم کلیک هاوس نیاز داریم. و از این به بعد داده ها را در دو خوشه - اصلی و پشتیبان می نویسیم. من به او می گویم، لنیا، این یک نسخه پشتیبان نیست، بلکه یک ماکت فعال خواهد بود. و اگر داده ها در تولید از بین بروند، همین اتفاق در پشتیبان گیری شما رخ می دهد.

اما لنیا فرمان را محکم گرفت و حاضر نشد به استدلال های من گوش دهد. ما برای مدت طولانی در چت با او چت کردیم، اما کاری برای انجام دادن نداشتیم - لنیا مسئول پروژه بود، ما فقط بچه های خیابانی را استخدام کرده بودیم.

ما وضعیت خوشه را زیر نظر گرفتیم و فقط برای کار مدیران هزینه دریافت کردیم. مدیریت خالص کلیک هاوس بدون ورود به داده ها. خوشه در دسترس بود، دیسک ها خوب بودند، گره ها خوب بودند.

ما نمی دانستیم که این سفارش را به دلیل سوء تفاهم وحشتناک در تیم آنها دریافت کرده ایم

مدیر از اینکه کلیک هاوس کند بود و گاهی اطلاعات از دست می رفت ناراضی بود. او وظیفه یافتن آن را در ایستگاه خدمات خود قرار داد. او به بهترین شکل ممکن آن را فهمید و به این نتیجه رسید که ما فقط باید کلیک‌هاوس را خودکار کنیم - همین. اما همانطور که به زودی مشخص شد، آنها به هیچ وجه نیازی به تیم توسعه دهنده نداشتند.

همه اینها بسیار بسیار دردناک بود. و توهین آمیزترین چیز این بود که در روز تولد من بود.

عصر جمعه. من در بار شراب مورد علاقه ام رزرو کردم و مهمانداران را دعوت کردم.

تقریباً قبل از رفتن، وظیفه ای برای ایجاد یک تغییر دریافت می کنیم، آن را کامل می کنیم، همه چیز اوکی است. تغییر تصویب شد، کلیک هاوس تایید شد. ما در حال حاضر به نوار می رویم و آنها برای ما می نویسند که داده های کافی وجود ندارد. ما محاسبه کردیم که به نظر می رسد همه چیز کافی است. و برای جشن رفتند.

رستوران جمعه پر سر و صدا بود. با سفارش نوشیدنی و غذا، روی مبل ها لم دادیم. در تمام این مدت، شلوار من کم کم پر از پیام ها شد. آنها چیزی در مورد کمبود داده نوشتند. فکر کردم - صبح عاقل تر از عصر است. به خصوص امروز.

نزدیک به یازده شروع کردند به تماس. رئیس شرکت بود... "احتمالا تصمیم گرفتم به من تبریک بگویم" با تردید فکر کردم و گوشی را برداشتم.

و من چیزی شبیه این شنیدم: "شما داده های ما را خراب کردید! من به شما پول می دهم، اما هیچ چیز کار نمی کند! شما مسئول پشتیبان‌گیری بودید، و هیچ کار لعنتی انجام ندادید! بیا درستش کنیم!" - فقط حتی بی ادب تر.

- میدونی چیه، برو بیرون! امروز تولد من است و اکنون می نوشم و درگیر محصولات خانگی ژوئن شما از آشغال و چوب نمی شوم!

این چیزی است که من نگفتم. در عوض لپ تاپم را درآوردم و مشغول کار شدم.

نه، بمباران کردم، مثل جهنم بمباران کردم! او "من به شما گفتم" تند را در چت ریخت - زیرا نسخه پشتیبان که اصلاً پشتیبان نبود - البته چیزی ذخیره نکرد.

من و پسرها فهمیدیم که چگونه به صورت دستی ضبط را متوقف کنیم و همه چیز را بررسی کنیم. ما در واقع مطمئن شدیم که برخی از داده ها نوشته نشده است.

ما ضبط را متوقف کردیم و تعداد رویدادهایی که در روز وجود داشت را شمارش کردیم. آنها داده های بیشتری را آپلود کردند که فقط یک سوم آنها ثبت نشد. سه قطعه با 2 ماکت از هر کدام. شما 100.000 ردیف را وارد می کنید - 33.000 ردیف ثبت نمی شود.

سردرگمی کامل وجود داشت. همه به نوبت به هم می گفتند: لنیا اول به آنجا رفت و بعد از آن من و بنیانگذار شرکت. فقط ایستگاه خدماتی که به آن ملحق شد سعی کرد تماس ها و مکاتبات فریاد زده ما را به سمت یافتن راه حلی برای مشکل منحرف کند.

هیچ کس نفهمید که واقعا چه اتفاقی می افتد

من و بچه ها به سادگی غافلگیر شدیم وقتی متوجه شدیم که یک سوم کل داده ها نه تنها ثبت نشده، بلکه از بین رفته است! معلوم شد که سفارش در شرکت به شرح زیر است: پس از درج، داده ها به طور غیرقابل برگشت حذف شدند، رویدادها به صورت دسته ای تلف شدند. تصور می کردم که سرگئی چگونه همه اینها را به روبل های گمشده تبدیل می کند.

تولدم را هم به سطل زباله انداختند. ما پشت میله نشستیم و ایده هایی تولید کردیم و سعی کردیم پازلی را که به سمت ما پرتاب شده بود حل کنیم. دلیل سقوط کلیک هاوس مشخص نبود. شاید از شبکه، شاید تنظیمات لینوکس باشد. بله، هر چه بخواهید، به اندازه کافی فرضیه وجود داشته است.

من سوگند توسعه‌دهنده را نپذیرفتم، اما رها کردن بچه‌ها در آن سوی خط غیرصادقانه بود - حتی اگر آنها ما را به خاطر همه چیز سرزنش کنند. من 99 درصد مطمئن بودم که مشکل در تصمیمات ما نیست، نه در طرف ما. احتمال 1 درصدی که ما خراب کرده بودیم از اضطراب می سوخت. اما مهم نیست که مشکل از کدام طرف بود، باید رفع می شد. ترک کردن مشتریان، بدون توجه به اینکه چه کسی هستند، با چنین نشت اطلاعات وحشتناکی بسیار ظالمانه است.

تا سه صبح سر میز رستوران کار می کردیم. رویدادها را اضافه کردیم، انتخاب را درج کردیم و رفتیم تا شکاف ها را پر کنیم. وقتی داده‌ها را خراب می‌کنید، این کار را به این صورت انجام می‌دهید: میانگین داده‌های روزهای قبل را می‌گیرید و آنها را در داده‌های خراب وارد می‌کنید.

بعد از سه صبح، من و دوستم به خانه ام رفتیم و از بازار الکل یک آبجو سفارش دادیم. نشسته بودم با لپ تاپ و مشکل کلیک هاوس، یکی از دوستان به من چیزی می گفت. در نتیجه بعد از یک ساعت از اینکه من با او کار می کنم و آبجو نمی نوشم ناراحت شد و رفت. کلاسیک - من دوست Devops بودم.

تا ساعت 6 صبح، جدول را دوباره ایجاد کردم و داده ها شروع به سیل کردند. همه چیز بدون هیچ ضرری کار کرد.

بعدش سخت بود همه یکدیگر را مقصر از دست دادن داده ها می دانستند. اگر یک باگ جدید اتفاق می افتاد، مطمئن هستم که یک تیراندازی رخ می داد

در این دعواها، ما در نهایت شروع به درک کردیم - شرکت فکر می کرد که ما افرادی هستیم که با داده ها کار می کنیم و ساختار جداول را نظارت می کنیم. آنها ادمین ها را با دلال ها اشتباه گرفتند. و آنها آمدند تا از ما چیزی متفاوت از ادمین ها بپرسند.

شکایت اصلی آنها این است - لعنتی، شما مسئول پشتیبان گیری ها بودید و آنها را به درستی انجام ندادید، به هدر دادن داده ها ادامه دادید. و همه اینها با تشک های عقب گرد.

من عدالت می خواستم من مکاتبات را بیرون آوردم و اسکرین شات های همه را ضمیمه کردم، جایی که لئونید با تمام توان آنها را مجبور می کند تا نسخه پشتیبان تهیه شده را تهیه کنند. پس از تماس تلفنی من، ایستگاه خدمات آنها طرف ما را گرفت. بعداً لنیا به گناه خود اعتراف کرد.

رئیس شرکت، برعکس، نمی خواست مردم خود را مقصر بداند. اسکرین شات ها و کلمات تاثیری روی او نداشتند. او معتقد بود از آنجایی که ما اینجا متخصص هستیم، باید همه را قانع کنیم و بر تصمیم خود پافشاری کنیم. ظاهراً وظیفه ما این بود که به لنیا بیاموزیم و علاوه بر این، او را که به عنوان مدیر پروژه منصوب شده بود دور بزنیم تا به موضوع اصلی برسیم و شخصاً تمام تردیدهای خود را در مورد مفهوم پشتیبان گیری به او بریزیم.

گپ با نفرت، پرخاشگری پنهان و پنهان جاری شد. نمیدونستم چیکار کنم همه چیز به بن بست رسیده است. و سپس آنها به من ساده ترین راه را توصیه کردند - یک پیام شخصی برای مدیر بنویسم و ​​با او ملاقاتی ترتیب دهم. واسیا، مردم در زندگی واقعی به اندازه آنها در چت سریع نیستند. رئیس به پیام من پاسخ داد: بیا، سوالی نیست.

این ترسناک ترین ملاقات در دوران حرفه ای من بود. متحد من از مشتری - STO - نتوانست زمان را پیدا کند. با رئیس و لنا به جلسه رفتم.

بارها و بارها دیالوگ احتمالی خود را در ذهنم تکرار کردم. خیلی زود رسیدم، نیم ساعت قبل. من شروع به عصبی شدن کردم، 10 نخ سیگار کشیدم، فهمیدم، همین است - من تنها هستم لعنتی. من نمی توانم آنها را متقاعد کنم. و وارد آسانسور شد.

در حالی که بلند می شد، چنان به فندک ضربه زد که شکست.

در نتیجه، لنیا در جلسه نبود. و در مورد همه چیز با رئیس گفتگوی عالی داشتیم! سرگئی در مورد دردش به من گفت. او نمی‌خواست «کلیک‌هاوس» را خودکار کند، او می‌خواست «پرسش‌ها را به کار بیاندازد».

من یک بز ندیدم، اما یک پسر خوب، نگران تجارت خود، غوطه ور در کار 24/7. چت اغلب ما را شرور، شرور و افراد احمق می کشاند. اما در زندگی اینها افرادی مانند شما هستند.

سرگئی برای استخدام به چند نفر نیاز نداشت. مشکلی که آنها داشتند بسیار بزرگتر بود.

من گفتم که می توانم مشکلات او را حل کنم - این فقط یک کار کاملاً متفاوت است و من دوستی دارم که برای آن کار می کند. اگر از ابتدا می دانستیم که این معامله برای آنهاست، از خیلی دوری می کردیم. دیر شده است، اما متوجه شدیم که مشکل در مدیریت داده های ناقص است، نه در زیرساخت.

ما دست دادیم، آنها حقوق ما را دو برابر و نیم افزایش دادند، اما به شرطی که من مطلقاً کل خرابی داده های آنها و کلیک هاوس را برای خودم بردارم. در آسانسور، من با همان مرد DI مکس ارتباط برقرار کردم و او را به محل کار وصل کردم. لازم بود کل خوشه را بیل بزنیم.

در پروژه پذیرفته شده زباله های زیادی وجود داشت. با "پشتیبان گیری" ذکر شده شروع کنید. معلوم شد که همین خوشه "پشتیبان" مجزا نیست. آنها همه چیز را روی آن آزمایش کردند، حتی گاهی اوقات آن را به تولید رساندند.

توسعه دهندگان داخلی ما درج کننده داده های سفارشی خود را ایجاد کرده اند. او اینگونه کار می کرد: او فایل ها را دسته بندی کرد، اسکریپت را اجرا کرد و داده ها را در یک جدول ادغام کرد. اما مشکل اصلی این بود که حجم عظیمی از داده برای یک درخواست ساده پذیرفته شد. درخواست هر ثانیه به داده ها می پیوندد. همه به خاطر یک عدد - مقدار در روز.

توسعه دهندگان داخلی به اشتباه از ابزار تجزیه و تحلیل استفاده کردند. آنها به گرافانا رفتند و درخواست سلطنتی خود را نوشتند. او داده ها را برای 2 هفته آپلود کرد. معلوم شد که نمودار زیبایی است. اما در واقعیت، درخواست داده هر 10 ثانیه بود. همه اینها در یک صف انباشته شده بود زیرا Clickhouse به سادگی پردازش را حذف نکرد. اینجا بود که دلیل اصلی پنهان شد. هیچ چیز در Grafana کار نمی کرد، درخواست ها در یک صف قرار می گرفتند و داده های قدیمی و نامربوط دائماً می رسید.

ما خوشه را دوباره پیکربندی کردیم، درج را دوباره انجام دادیم. توسعه دهندگان داخلی "درج" خود را بازنویسی کردند و شروع به اشتراک گذاری صحیح داده ها کرد.

مکس یک ممیزی کامل زیرساخت انجام داد. او طرحی را برای انتقال به یک باطن کامل ارائه کرد. اما این برای شرکت مناسب نبود. آنها انتظار یک راز جادویی را از مکس داشتند که به آنها اجازه می داد به روش قدیمی کار کنند، اما فقط کارآمد. لنیا همچنان مسئول پروژه بود و چیزی یاد نگرفت. از بین همه چیزهایی که ارائه شد، او دوباره جایگزین خود را انتخاب کرد. مثل همیشه، این انتخابی ترین... جسورانه ترین تصمیم بود. لنیا معتقد بود که شرکت او مسیر خاصی دارد. خاردار و پر از کوه یخ.

در واقع، این همان جایی است که ما از هم جدا شدیم - ما آنچه را که می توانستیم انجام دادیم.

پر از دانش و حکمت از این تاریخ، کسب و کار خود را باز کردیم و چندین اصل را برای خود شکل دادیم. ما هرگز مانند آن زمان اکنون کار را شروع نمی کنیم.

دیجی مکس بعد از این پروژه به ما پیوست و ما هنوز هم عالی با هم کار می کنیم. پرونده کلیک هاوس به من یاد داد که چگونه قبل از شروع کار یک حسابرسی کامل و کامل زیرساخت انجام دهم. ما درک می کنیم که همه چیز چگونه کار می کند و تنها پس از آن وظایف را می پذیریم. و اگر قبلاً بلافاصله برای حفظ زیرساخت عجله می‌کردیم، اکنون ابتدا یک پروژه یک بار انجام می‌دهیم که به ما کمک می‌کند بفهمیم چگونه آن را به شرایط کاری برسانیم.

و بله، ما از پروژه هایی با زیرساخت های نامناسب اجتناب می کنیم. حتی اگر برای پول زیاد، حتی اگر از روی دوستی. اجرای پروژه های بیمار بی سود است. درک این موضوع به رشد ما کمک کرد. یا یک پروژه یکباره برای مرتب کردن زیرساخت ها و سپس یک قرارداد تعمیر و نگهداری، یا فقط پرواز می کنیم. از کنار کوه یخی دیگر.

پس اگر در مورد زیرساخت خود سوالی دارید، با خیال راحت درخواستی بگذارید.

ما 2 ممیزی رایگان در ماه داریم، شاید پروژه شما یکی از آنها باشد.

منبع: www.habr.com

اضافه کردن نظر