Semasa semua orang meraikan hari lahir saya, saya membetulkan kluster sehingga pagi - dan pembangun menyalahkan kesilapan mereka kepada saya

Semasa semua orang meraikan hari lahir saya, saya membetulkan kluster sehingga pagi - dan pembangun menyalahkan kesilapan mereka kepada saya

Berikut adalah kisah yang selama-lamanya mengubah pendekatan saya terhadap kerja devops. Kembali pada zaman pra-Covid, lama, jauh sebelum mereka, apabila saya dan lelaki itu hanya merancang perniagaan kami sendiri dan bebas secara rawak, satu tawaran jatuh ke dalam troli saya.

Syarikat yang menulis ini ialah syarikat analisis data. Dia memproses beribu-ribu permintaan setiap hari. Mereka datang kepada kami dengan kata-kata: kawan-kawan, kami mempunyai ClickHouse dan kami mahu mengautomasikan konfigurasi dan pemasangannya. Kami mahu Ansible, Terraform, Docker dan untuk semuanya disimpan dalam Git. Kami mahu sekumpulan empat nod dengan dua replika setiap satu.

Ia adalah permintaan standard, terdapat berpuluh-puluh daripadanya, dan anda memerlukan penyelesaian standard yang sama baiknya. Kami berkata "ok", dan selepas 2-3 minggu semuanya sudah siap. Mereka menerima kerja itu dan mula berpindah ke kluster Clickhouse baharu menggunakan utiliti kami.

Tiada siapa yang mahu atau tahu cara bermain-main dengan Clickhouse. Kemudian kami berpendapat bahawa ini adalah masalah utama mereka, dan oleh itu stesen servis syarikat hanya memberi kebenaran kepada pasukan saya untuk mengautomasikan kerja sebanyak mungkin, supaya tidak pergi ke sana sendiri lagi.

Kami mengiringi langkah itu, tugas lain timbul - menyediakan sandaran dan pemantauan. Pada masa yang sama, stesen perkhidmatan syarikat ini bergabung dengan projek lain, meninggalkan kami dengan salah satu daripada kami sendiri - Leonid - sebagai komander. Lenya bukanlah seorang yang sangat berbakat. Seorang pembangun mudah yang tiba-tiba diletakkan bertanggungjawab ke atas Clickhouse. Nampaknya ini adalah tugasan pertamanya untuk menguruskan sesuatu, dan penghormatan yang luar biasa itu membuatkan dia berasa terkejut.

Bersama-sama kami mula membuat sandaran. Saya mencadangkan untuk membuat sandaran data asal dengan segera. Ambil sahaja, zip dan buang dengan elegan ke dalam beberapa c3. Data mentah adalah emas. Terdapat pilihan lain - untuk menyandarkan jadual itu sendiri dalam Clickhouse, menggunakan pembekuan dan penyalinan. Tetapi Lenya datang dengan penyelesaiannya sendiri.

Beliau mengumumkan bahawa kami memerlukan kluster Clickhouse kedua. Dan mulai sekarang kami akan menulis data kepada dua kelompok - yang utama dan sandaran. Saya beritahu dia, Lenya, ia bukan sandaran, tetapi replika aktif. Dan jika data mula hilang dalam pengeluaran, perkara yang sama akan berlaku pada sandaran anda.

Tetapi Lenya memegang stereng dengan kuat dan enggan mendengar hujah saya. Kami berbual dengannya untuk masa yang lama dalam sembang, tetapi tidak ada yang perlu dilakukan - Lenya bertanggungjawab terhadap projek itu, kami hanya mengupah anak-anak dari jalanan.

Kami memantau keadaan kluster dan mengenakan bayaran hanya untuk kerja pentadbir. Pentadbiran Clickhouse tulen tanpa masuk ke dalam data. Kelompok itu tersedia, cakeranya baik, nodnya baik.

Kami tidak tahu bahawa kami menerima pesanan ini kerana salah faham yang teruk dalam pasukan mereka

Pengurus tidak berpuas hati kerana Clickhouse lambat dan data kadangkala hilang. Dia menetapkan stesen servisnya untuk memikirkannya. Dia memikirkannya sebaik mungkin dan membuat kesimpulan bahawa kami hanya perlu mengautomasikan Clickhouse - itu sahaja. Tetapi apabila ia tidak lama lagi menjadi jelas, mereka tidak memerlukan pasukan devops sama sekali.

Semua ini ternyata sangat-sangat menyakitkan. Dan perkara yang paling menyakitkan hati ialah ia adalah pada hari lahir saya.

Petang Jumaat. Saya membuat tempahan di bar wain kegemaran saya dan menjemput homies.

Hampir sebelum pergi, kami menerima tugas untuk membuat alter, kami menyelesaikannya, semuanya ok. Pengubah telah diluluskan, clickhouse disahkan. Kami sudah pergi ke bar, dan mereka menulis kepada kami bahawa data tidak mencukupi. Kami mengira bahawa segala-galanya nampaknya cukup. Dan mereka pergi untuk meraikannya.

Restoran itu bising pada hari Jumaat. Setelah memesan minuman dan makanan, kami berehat di sofa. Selama ini kelonggaran saya perlahan-lahan dibanjiri mesej. Mereka menulis sesuatu tentang kekurangan data. Saya fikir - pagi lebih bijak daripada petang. Terutama hari ini.

Hampir sebelas mereka mula menelefon. Ia adalah ketua syarikat... "Mungkin memutuskan untuk mengucapkan tahniah kepada saya," saya berfikir dengan teragak-agak, dan mengangkat telefon.

Dan saya mendengar sesuatu seperti: "Anda merosakkan data kami! Saya membayar anda, tetapi tidak ada yang berkesan! Anda bertanggungjawab untuk sandaran, dan anda tidak melakukan apa-apa! Mari kita betulkan!" - malah lebih kasar.

- Anda tahu apa, pergi keluar! Hari ini adalah hari lahir saya, dan sekarang saya akan minum, dan tidak terlibat dalam produk buatan sendiri bulan Jun anda daripada sampah dan kayu!

Itu yang saya tak cakap. Sebaliknya, saya mengeluarkan komputer riba saya dan mula bekerja.

Tidak, saya mengebom, saya mengebom seperti neraka! Dia menuangkan "Saya beritahu anda begitu" ke dalam sembang - kerana sandaran, yang bukan sandaran sama sekali, - sudah tentu, tidak menyimpan apa-apa.

Saya dan kanak-kanak lelaki mengetahui cara menghentikan rakaman secara manual dan menyemak segala-galanya. Kami sebenarnya memastikan bahawa beberapa data tidak ditulis.

Kami berhenti merakam dan mengira bilangan acara yang ada setiap hari. Mereka memuat naik lebih banyak data, yang mana hanya satu pertiga daripadanya tidak direkodkan. Tiga serpihan dengan 2 replika setiap satu. Anda memasukkan 100.000 baris - 33.000 tidak direkodkan.

Terdapat kekeliruan sepenuhnya. Semua orang memberitahu satu sama lain untuk bercinta secara bergilir-gilir: Lenya pergi ke sana dahulu, diikuti oleh saya dan pengasas syarikat itu. Hanya stesen servis yang menyertai cuba mengalihkan panggilan dan surat-menyurat kami ke arah mencari penyelesaian kepada masalah tersebut.

Tiada siapa yang memahami apa yang sebenarnya berlaku

Lelaki dan saya hanya terpesona apabila kami menyedari bahawa satu pertiga daripada semua data bukan sahaja tidak direkodkan, ia telah hilang! Ternyata pesanan dalam syarikat adalah seperti berikut: selepas dimasukkan, data telah dipadamkan secara tidak boleh ditarik balik, peristiwa itu dibazirkan dalam kelompok. Saya membayangkan bagaimana Sergei akan menukar semua ini menjadi rubel yang hilang.

Hari lahir saya juga dibuang ke dalam tong sampah. Kami duduk di bar dan menjana idea, cuba menyelesaikan teka-teki yang telah dilemparkan kepada kami. Sebab kejatuhan Clickhouse tidak jelas. Mungkin ia adalah rangkaian, mungkin ia adalah tetapan Linux. Ya, apa sahaja yang anda mahukan, terdapat hipotesis yang mencukupi.

Saya tidak mengambil sumpah pemaju, tetapi meninggalkan mereka di hujung talian adalah tidak jujur ​​- walaupun mereka menyalahkan kami untuk segala-galanya. Saya 99% pasti bahawa masalahnya bukan terletak pada keputusan kami, bukan di pihak kami. Peluang 1% yang kami telah kacau adalah membara dengan kebimbangan. Tetapi tidak kira di sisi mana masalah itu, ia harus diperbaiki. Meninggalkan pelanggan, tidak kira siapa mereka, dengan kebocoran data yang begitu dahsyat adalah terlalu kejam.

Kami bekerja di meja restoran sehingga pukul tiga pagi. Kami menambah acara, memasukkan pilih, dan kami pergi untuk mengisi jurang. Apabila anda mengosongkan data, ini adalah cara anda melakukannya: anda mengambil purata data untuk hari sebelumnya dan memasukkannya ke dalam yang rosak.

Selepas tiga pagi, saya dan rakan saya pergi ke rumah saya dan memesan bir dari pasar alkohol. Saya sedang duduk dengan komputer riba dan masalah Clickhouse, seorang rakan memberitahu saya sesuatu. Akibatnya, selepas sejam dia tersinggung kerana saya bekerja dan tidak minum bir dengannya, dan pergi. Klasik - Saya adalah rakan Devops.

Menjelang 6 pagi, saya mencipta semula jadual itu, dan data mula membanjiri. Semuanya berjaya tanpa sebarang kerugian.

Kemudian ia adalah sukar. Semua orang menyalahkan satu sama lain atas kehilangan data. Sekiranya pepijat baru berlaku, saya pasti akan berlaku tembak-menembak

Dalam pergaduhan ini, kami akhirnya mula memahami - syarikat menganggap kami adalah lelaki yang bekerja dengan data dan memantau struktur jadual. Mereka mengelirukan pentadbir dengan peniaga. Dan mereka datang untuk bertanya kepada kami sesuatu yang berbeza daripada pentadbir.

Aduan utama mereka ialah - apalah, anda bertanggungjawab untuk sandaran dan tidak melakukannya dengan betul, anda terus membazir data. Dan semua ini dengan tikar gulung semula.

Saya mahukan keadilan. Saya menggali surat-menyurat dan melampirkan tangkapan skrin semua orang, di mana Leonid dengan sekuat tenaga memaksa mereka untuk membuat sandaran yang dibuat. Stesen servis mereka memihak kepada kami selepas panggilan telefon saya. Kemudian Lenya mengakui kesalahannya.

Ketua syarikat itu, sebaliknya, tidak mahu menyalahkan orangnya sendiri. Tangkapan skrin dan perkataan tidak memberi kesan kepadanya. Dia percaya bahawa kerana kami pakar di sini, kami perlu meyakinkan semua orang dan bertegas dengan keputusan kami. Nampaknya, tugas kami adalah untuk mengajar Lenya dan, lebih-lebih lagi, memintas dia, yang dilantik sebagai pengurus projek, untuk mencapai perkara utama dan secara peribadi mencurahkan semua keraguan kami tentang konsep sandaran kepadanya.

Sembang itu dipenuhi dengan kebencian, pencerobohan tersembunyi dan tidak tersembunyi. Saya tidak tahu apa yang perlu dilakukan. Semuanya terhenti. Dan kemudian mereka menasihati saya cara paling mudah - untuk menulis mesej peribadi kepada pengurus dan mengatur pertemuan dengannya. Vasya, orang dalam kehidupan sebenar tidak sepantas mereka dalam sembang. Bos membalas mesej saya: datang, tiada soalan.

Ia adalah pertemuan paling menakutkan dalam kerjaya saya. Rakan saya dari pelanggan - STO - tidak dapat mencari masa. Saya pergi ke mesyuarat dengan bos dan Lena.

Berkali-kali saya memainkan semula dialog kami yang mungkin dalam kepala saya. Saya berjaya tiba sangat awal, setengah jam lebih awal. Saya mula gementar, saya menghisap 10 batang rokok. Saya faham, itu sahaja - saya bersendirian. Saya tidak akan dapat meyakinkan mereka. Dan dia melangkah masuk ke dalam lif.

Semasa dia bangun, dia memukul pemetik api dengan kuat sehingga dia patah.

Akibatnya, Lenya tidak hadir dalam mesyuarat itu. Dan kami mempunyai perbualan yang hebat tentang segala-galanya dengan bos! Sergei memberitahu saya tentang kesakitannya. Dia tidak mahu "mengautomatikkan Clickhouse" - dia mahu "membuat pertanyaan berfungsi."

Saya tidak melihat seekor kambing, tetapi seorang lelaki yang baik, bimbang tentang perniagaannya, tenggelam dalam kerja 24/7. Sembang sering menarik kita penjahat, penyangak dan orang bodoh. Tetapi dalam hidup ini adalah orang seperti anda.

Sergei tidak memerlukan beberapa devops untuk disewa. Masalah yang mereka hadapi ternyata lebih besar.

Saya berkata bahawa saya boleh menyelesaikan masalahnya - ia hanya pekerjaan yang sama sekali berbeza, dan saya mempunyai rakan yang bekerja untuknya. Jika kita tahu dari awal bahawa ini adalah perjanjian untuk mereka, kita akan mengelak banyak. Sudah lewat, tetapi kami menyedari bahawa masalahnya terletak pada pengurusan data yang buruk, bukan pada infrastruktur.

Kami berjabat tangan, mereka menaikkan gaji kami dua setengah kali, tetapi dengan syarat saya mengambil sepenuhnya kekacauan dengan data mereka dan Clickhouse untuk diri saya sendiri. Di dalam lif, saya berkomunikasi dengan lelaki DI yang sama Max dan menyambungkannya ke tempat kerja. Ia adalah perlu untuk menyodok seluruh kelompok.

Terdapat banyak sampah dalam projek yang diterima pakai. Bermula dengan "sandaran" yang disebutkan. Ternyata kelompok "sandaran" yang sama ini tidak diasingkan. Mereka menguji segala-galanya di atasnya, kadangkala memasukkannya ke dalam pengeluaran.

Pembangun dalaman kami telah mencipta pemasuk data tersuai mereka sendiri. Dia bekerja seperti ini: dia menyusun fail, menjalankan skrip dan menggabungkan data ke dalam jadual. Tetapi masalah utama ialah sejumlah besar data telah diterima untuk satu permintaan mudah. Permintaan itu menyertai data setiap saat. Semua demi satu nombor - jumlah setiap hari.

Pembangun dalaman menggunakan alat analitik dengan salah. Mereka pergi ke grafana dan menulis permintaan diraja mereka. Dia memuat naik data selama 2 minggu. Ia ternyata satu graf yang cantik. Tetapi pada hakikatnya, permintaan data adalah setiap 10 saat. Semua ini bertimbun dalam baris gilir kerana Clickhouse hanya tidak mengambil pemprosesan. Di sinilah sebab utama disembunyikan. Tiada apa-apa yang berfungsi di Grafana, permintaan berdiri dalam baris gilir, dan data lama yang tidak berkaitan sentiasa tiba.

Kami mengkonfigurasi semula kluster, menyusun semula sisipan. Pembangun dalaman menulis semula "penyisip" mereka dan ia mula memecah data dengan betul.

Max menjalankan audit infrastruktur penuh. Dia menggariskan rancangan untuk peralihan kepada bahagian belakang yang lengkap. Tetapi ini tidak sesuai dengan syarikat itu. Mereka mengharapkan rahsia ajaib daripada Max yang membolehkan mereka bekerja dengan cara lama, tetapi hanya dengan cekap. Lenya masih bertanggungjawab ke atas projek itu, dan dia tidak belajar apa-apa. Daripada semua yang ditawarkan, dia sekali lagi memilih alternatifnya. Seperti biasa, ini adalah keputusan yang paling selektif... berani. Lenya percaya bahawa syarikatnya mempunyai laluan istimewa. Berduri dan penuh dengan gunung ais.

Sebenarnya, di situlah kami berpisah - kami melakukan apa yang kami mampu.

Penuh dengan pengetahuan dan kebijaksanaan dari sejarah ini, kami membuka perniagaan kami sendiri dan membentuk beberapa prinsip untuk diri kami sendiri. Kami tidak akan mula bekerja dengan cara yang sama sekarang seperti yang kami lakukan dahulu.

DJ Max menyertai kami selepas projek ini, dan kami masih bekerjasama dengan baik. Kes Clickhouse mengajar saya cara menjalankan audit infrastruktur yang lengkap dan teliti sebelum memulakan kerja. Kami memahami bagaimana segala-galanya berfungsi dan kemudian menerima tugasan itu. Dan jika sebelum ini kami akan segera tergesa-gesa untuk mengekalkan infrastruktur, kini kami mula-mula melakukan projek sekali sahaja, yang membantu kami memahami cara membawanya ke dalam keadaan berfungsi.

Dan ya, kami mengelakkan projek dengan infrastruktur yang buruk. Walaupun untuk wang yang banyak, walaupun kerana persahabatan. Ia tidak menguntungkan untuk menjalankan projek sakit. Menyedari ini membantu kami berkembang. Sama ada projek sekali sahaja untuk menyiapkan infrastruktur dan kemudian kontrak penyelenggaraan, atau kami hanya melaluinya. Melepasi gunung ais yang lain.

PS Jadi jika anda mempunyai soalan tentang infrastruktur anda, Jangan ragu untuk menghantar permintaan.

Kami mempunyai 2 audit percuma setiap bulan, mungkin projek anda akan menjadi salah satu daripadanya.

Sumber: www.habr.com

Tambah komen