Monitor Sportmaster - necə və nə ilə

Məhsul komandalarının formalaşdırılması mərhələsində monitorinq sistemi yaratmağı düşündük. Aydın oldu ki, bizim biznesimiz - istismar bu komandalara düşmür. Niyə belədir?

Fakt budur ki, bütün komandalarımız fərdi məlumat sistemləri, mikroservislər və cəbhələr ətrafında qurulur, buna görə də komandalar bütövlükdə bütün sistemin ümumi sağlamlığını görmürlər. Məsələn, onlar dərin arxa hissədəki bəzi kiçik hissənin ön hissəyə necə təsir etdiyini bilmirlər. Onların maraq dairəsi onların sisteminin inteqrasiya olunduğu sistemlərlə məhdudlaşır. Əgər komanda və onun A xidmətinin B xidməti ilə demək olar ki, heç bir əlaqəsi yoxdursa, o zaman belə bir xidmət komanda üçün demək olar ki, görünməzdir.

Monitor Sportmaster - necə və nə ilə

Komandamız da öz növbəsində bir-biri ilə çox güclü inteqrasiya olunmuş sistemlərlə işləyir: onların arasında çoxlu əlaqələr var, bu, çox böyük infrastrukturdur. Onlayn mağazanın işləməsi bütün bu sistemlərdən asılıdır (yeri gəlmişkən, bizdə çoxlu sayda var).

Belə çıxır ki, bizim şöbə heç bir komandaya aid deyil, bir az kənarda yerləşir. Bütün bu hekayədə bizim vəzifəmiz informasiya sistemlərinin necə işlədiyini, onların funksionallığını, inteqrasiyasını, proqram təminatını, şəbəkəsini, aparat təminatını və bütün bunların bir-biri ilə necə əlaqəli olduğunu hərtərəfli başa düşməkdir.

Onlayn mağazalarımızın fəaliyyət göstərdiyi platforma belə görünür:

  • ön
  • orta ofis
  • geri ofis

Nə qədər istəsək də, bütün sistemlərin rəvan və qüsursuz işləməsi baş vermir. Məsələ, yenə də sistemlərin və inteqrasiyaların sayıdır - bizim kimi bir şeylə sınaq keyfiyyətinə baxmayaraq, bəzi insidentlər qaçılmazdır. Üstəlik, həm ayrıca bir sistem daxilində, həm də onların inteqrasiyası baxımından. Və yalnız onun hər hansı bir hissəsinə deyil, bütün platformanın vəziyyətinə hərtərəfli nəzarət etməlisiniz.

İdeal olaraq, platformada sağlamlıq monitorinqi avtomatlaşdırılmalıdır. Və biz monitorinqə bu prosesin qaçılmaz hissəsi kimi gəldik. Əvvəlcə o, yalnız cəbhə hissəsi üçün qurulmuşdu, halbuki şəbəkə mütəxəssisləri, proqram və aparat administratorları öz səviyyəli monitorinq sistemlərinə malik idilər və hələ də var. Bütün bu insanlar monitorinqi yalnız öz səviyyələrində izləyiblər, heç kimin də hərtərəfli anlayışı olmayıb.

Məsələn, virtual maşın qəzaya uğrayarsa, əksər hallarda bu barədə yalnız aparat və virtual maşın üçün məsul olan administrator bilir. Belə hallarda, cəbhə komandası tətbiqin qəzaya uğraması faktını gördü, lakin virtual maşının qəzaya uğraması barədə məlumatı yox idi. Və administrator müştərinin kim olduğunu bilə bilər və bu virtual maşında hazırda nəyin işlədiyi barədə təxmini təsəvvürə malik ola bilər, bir şərtlə ki, bu bir növ böyük layihədir. Çox güman ki, o, kiçiklər haqqında bilmir. Hər halda, administrator sahibinə getməli və bu maşında nə olduğunu, nəyi bərpa etmək və nəyi dəyişdirmək lazım olduğunu soruşmalıdır. Və həqiqətən ciddi bir şey pozulduqda, onlar dairələrdə qaçmağa başladılar - çünki heç kim sistemi bütövlükdə görmürdü.

Nəhayət, bu cür fərqli hekayələr bütün cəbhəyə, istifadəçilərə və əsas biznes funksiyamıza - onlayn satışlara təsir göstərir. Biz bir komandanın bir hissəsi olmadığımızdan, lakin onlayn mağazanın bir hissəsi kimi bütün e-ticarət proqramlarının işlədilməsi ilə məşğul olduğumuzdan, e-ticarət platforması üçün hərtərəfli monitorinq sistemi yaratmaq vəzifəsini öz üzərimizə götürdük.

Sistemin strukturu və yığını

Biz sistemlərimiz üçün bir neçə monitorinq qatını müəyyən etməklə başladıq, onların daxilində ölçüləri toplamaq lazımdır. Və bütün bunları birləşdirmək lazım idi, ilk mərhələdə bunu etdik. İndi bu mərhələdə korrelyasiya qurmaq və sistemlərin bir-birinə necə təsir etdiyini başa düşmək üçün bütün təbəqələrimizdə ən yüksək keyfiyyətli ölçülər toplusunu yekunlaşdırırıq.

Tətbiqin işə salınmasının ilkin mərhələlərində hərtərəfli monitorinqin olmaması (sistemlərin əksəriyyəti istehsalda olanda onu qurmağa başladığımız üçün) bütün platformanın monitorinqini qurmaq üçün əhəmiyyətli texniki borcumuz olduğuna səbəb oldu. Sistemlərin qalan hissəsi bir müddət monitorinqsiz qalacağından, bir İS üçün monitorinqin qurulmasına və onun təfərrüatlı monitorinqinin işlənməsinə diqqət yetirə bilməzdik. Bu problemi həll etmək üçün biz informasiya sisteminin vəziyyətini təbəqələr üzrə qiymətləndirmək üçün ən zəruri ölçülərin siyahısını müəyyən etdik və onu həyata keçirməyə başladıq.

Buna görə də fili hissə-hissə yeməyə qərar verdilər.

Sistemimiz aşağıdakılardan ibarətdir:

  • aparat;
  • əməliyyat sistemi;
  • proqram təminatı;
  • Monitorinq proqramında UI hissələri;
  • biznes göstəriciləri;
  • inteqrasiya proqramları;
  • informasiya təhlükəsizliyi;
  • şəbəkələr;
  • trafik balanslaşdırıcısı.

Monitor Sportmaster - necə və nə ilə

Bu sistemin mərkəzində özünü nəzarət edir. Bütün sistemin vəziyyətini ümumiyyətlə başa düşmək üçün bütün bu təbəqələrdə və bütün proqramlar dəstində tətbiqlərlə nə baş verdiyini bilməlisiniz.

Beləliklə, yığın haqqında.

Monitor Sportmaster - necə və nə ilə

Biz açıq mənbə proqram təminatından istifadə edirik. Mərkəzdə ilk növbədə xəbərdarlıq sistemi kimi istifadə etdiyimiz Zabbix var. Hər kəs bunun infrastrukturun monitorinqi üçün ideal olduğunu bilir. Bu nə deməkdir? Məhz öz məlumat mərkəzinə sahib olan hər bir şirkətin (və Sportmaster-in öz məlumat mərkəzləri var) malik olduğu aşağı səviyyəli göstəricilər - server temperaturu, yaddaş vəziyyəti, reyd, şəbəkə cihazı ölçüləri.

Biz Zabbix-i komandalarda fəal şəkildə istifadə olunan Telegram messencer və Microsoft Teams ilə inteqrasiya etdik. Zabbix faktiki şəbəkənin, aparatın və bəzi proqram təminatının təbəqəsini əhatə edir, lakin bu, panacea deyil. Biz bu məlumatları bəzi digər xidmətlərdən zənginləşdiririk. Məsələn, aparat səviyyəsində biz birbaşa API vasitəsilə virtualizasiya sistemimizə qoşulur və məlumat toplayırıq.

Başqa. Zabbix-ə əlavə olaraq, dinamik mühit tətbiqində ölçüləri izləməyə imkan verən Prometheus-dan istifadə edirik. Yəni biz HTTP son nöqtəsi vasitəsilə tətbiq ölçülərini qəbul edə bilərik və hansı ölçülərin ona yüklənəcəyi və hansının yüklənməyəcəyi barədə narahat olmaya bilərik. Bu məlumatlar əsasında analitik sorğular hazırlana bilər.

Digər təbəqələr üçün məlumat mənbələri, məsələn, biznes ölçüləri üç komponentə bölünür.

Birincisi, bunlar xarici biznes sistemləri, Google Analytics, biz qeydlərdən ölçüləri toplayırıq. Onlardan biz aktiv istifadəçilər, dönüşümlər və bizneslə əlaqəli hər şey haqqında məlumat əldə edirik. İkincisi, bu UI monitorinq sistemidir. Daha ətraflı təsvir edilməlidir.

Bir vaxtlar biz əllə sınaqdan başladıq və o, funksionallıq və inteqrasiyanın avtomatik sınaqlarına çevrildi. Bundan sonra biz yalnız əsas funksionallığı buraxaraq monitorinq etdik və mümkün qədər sabit olan və zamanla tez-tez dəyişməyən markerlərə etibar etdik.

Yeni komanda strukturu o deməkdir ki, bütün tətbiq fəaliyyətləri məhsul komandaları ilə məhdudlaşır, ona görə də biz təmiz test etməyi dayandırdıq. Bunun əvəzinə Java, Selenium və Jenkins dillərində yazılmış testlərdən UI monitorinqi etdik (hesabatların işə salınması və yaradılması üçün sistem kimi istifadə olunur).

Çox sınaqlarımız oldu, amma sonda əsas yola, yüksək səviyyəli metrikaya getməyə qərar verdik. Bir çox xüsusi testlərimiz varsa, məlumatları yeni saxlamaq çətin olacaq. Hər bir sonrakı buraxılış bütün sistemi əhəmiyyətli dərəcədə pozacaq və biz bunu düzəltmək olacaq. Buna görə də biz nadir hallarda dəyişən çox fundamental şeylərə diqqət yetirdik və biz onları yalnız izləyirik.

Nəhayət, üçüncüsü, məlumat mənbəyi mərkəzləşdirilmiş giriş sistemidir. Biz qeydlər üçün Elastic Stack-dən istifadə edirik və sonra bu məlumatları biznes ölçüləri üçün monitorinq sistemimizə çəkə bilərik. Bütün bunlara əlavə olaraq, bizim Python-da yazılmış, API vasitəsilə istənilən xidmətlərə sorğu göndərən və onlardan Zabbix-ə məlumat toplayan öz Monitorinq API xidmətimiz var.

Monitorinqin başqa bir əvəzedilməz atributu vizuallaşdırmadır. Bizimki Grafana əsasındadır. O, digər vizuallaşdırma sistemləri arasında fərqlənir ki, o, idarə panelində müxtəlif məlumat mənbələrindən ölçüləri vizuallaşdırmağa imkan verir. Biz onlayn mağaza üçün yüksək səviyyəli göstəriciləri toplaya bilərik, məsələn, DBMS-dən son bir saatda verilmiş sifarişlərin sayı, bu onlayn mağazanın Zabbix-dən işlədiyi ƏS üçün performans göstəriciləri və bu tətbiqin nümunələri üçün göstəricilər Prometeydən. Və bütün bunlar bir tablosunda olacaq. Aydın və əlçatan.

Təhlükəsizliyə dair qeyd edim - biz hazırda sistemi yekunlaşdırırıq, sonra onu qlobal monitorinq sistemi ilə birləşdirəcəyik. Fikrimcə, e-ticarətin informasiya təhlükəsizliyi sahəsində qarşılaşdığı əsas problemlər botlar, təhlilçilər və brute force ilə bağlıdır. Biz buna diqqət yetirməliyik, çünki bütün bunlar həm tətbiqlərimizin işinə, həm də işgüzar nöqteyi-nəzərdən nüfuzumuza tənqidi təsir göstərə bilər. Və seçilmiş yığınla bu vəzifələri uğurla yerinə yetiririk.

Digər mühüm məqam isə tətbiqi təbəqənin Prometey tərəfindən yığılmasıdır. Özü də Zabbix ilə inteqrasiya olunub. Həmçinin səhifəmizin yükləmə sürəti, darboğazlar, səhifənin göstərilməsi, skriptlərin yüklənməsi və s. kimi parametrlərə baxmağa imkan verən sayt sürəti də var, o, həmçinin API ilə inteqrasiya olunub. Beləliklə, ölçülərimiz Zabbix-də toplanır və müvafiq olaraq biz də oradan xəbərdarlıq edirik. Bütün xəbərdarlıqlar hazırda əsas göndərmə üsullarına göndərilir (hazırda bu e-poçt və teleqramdır, MS Teams də bu yaxınlarda qoşulub). Ağıllı botların xidmət kimi işlədiyi və bütün maraqlanan məhsul qruplarına monitorinq məlumatı təqdim etdiyi vəziyyətə qədər xəbərdarlığı təkmilləşdirmək planları var.

Bizim üçün ölçülər təkcə ayrı-ayrı informasiya sistemləri üçün deyil, həm də proqramların istifadə etdiyi bütün infrastruktur üçün ümumi ölçülər vacibdir: virtual maşınların işlədiyi fiziki serverlərin klasterləri, trafik balanslaşdırıcıları, Şəbəkə yük balanslaşdırıcıları, şəbəkənin özü, rabitə kanallarının istifadəsi. . Öz məlumat mərkəzlərimiz üçün əlavə ölçülər (bizdə onlardan bir neçəsi var və infrastruktur olduqca böyükdür).

Monitor Sportmaster - necə və nə ilə

Monitorinq sistemimizin üstünlükləri ondan ibarətdir ki, onun köməyi ilə biz bütün sistemlərin sağlamlıq vəziyyətini görürük və onların bir-birinə və paylaşılan resurslara təsirini qiymətləndirə bilirik. Və nəhayət, bu, bizə resursların planlaşdırılması ilə məşğul olmağa imkan verir ki, bu da bizim məsuliyyətimizdir. Biz server resurslarını idarə edirik - e-ticarət daxilində hovuz, yeni avadanlığın istismara verilməsi və istismardan çıxarılması, əlavə yeni avadanlıqların alınması, resursdan istifadənin auditi və s. Hər il komandalar yeni layihələr planlaşdırır, sistemlərini inkişaf etdirir və onları resurslarla təmin etmək bizim üçün vacibdir.

Metriklərin köməyi ilə biz informasiya sistemlərimiz tərəfindən resurs istehlakı tendensiyasını görürük. Və onlara əsaslanaraq nəsə planlaşdıra bilərik. Virtuallaşdırma səviyyəsində biz məlumatları toplayırıq və verilənlər mərkəzi tərəfindən mövcud resursların miqdarına dair məlumatları görürük. Artıq məlumat mərkəzinin içərisində siz resursların təkrar emalı, faktiki paylanması və istehlakını görə bilərsiniz. Üstəlik, həm müstəqil serverlər, həm də virtual maşınlar və bütün bu virtual maşınların güclü şəkildə fırlandığı fiziki server qrupları ilə.

Perspektivləri

İndi biz bütövlükdə sistemin əsasını hazırlamışıq, lakin hələ də üzərində işləmək lazım olan çox şey var. Ən azı, bu, informasiya təhlükəsizliyi təbəqəsidir, lakin şəbəkəyə daxil olmaq, xəbərdarlıqları inkişaf etdirmək və korrelyasiya problemini həll etmək də vacibdir. Çoxlu təbəqə və sistemlərimiz var və hər bir təbəqədə daha çox ölçülər var. Matruşka dərəcəsinə qədər matryoshka olduğu ortaya çıxır.

Bizim vəzifəmiz son nəticədə düzgün xəbərdarlıq etməkdir. Məsələn, hardware ilə, yenidən virtual maşınla problem yaranıbsa və vacib bir proqram var idisə və xidmət heç bir şəkildə ehtiyat nüsxəsini çıxarmadı. Virtual maşının öldüyünü öyrəndik. Sonra biznes ölçüləri sizi xəbərdar edəcək: istifadəçilər hardasa yoxa çıxıblar, heç bir dönüşüm yoxdur, interfeysdə UI əlçatan deyil, proqram təminatı və xidmətlər də ölüb.

Bu vəziyyətdə, xəbərdarlıqlardan spam alacağıq və bu, artıq düzgün monitorinq sisteminin formatına uyğun gəlmir. Korrelyasiya sualı yaranır. Buna görə də, ideal olaraq, monitorinq sistemimiz bizi yüz xəbərdarlıqla hirslə bombalamaq əvəzinə, bir siqnalın köməyi ilə "Uşaqlar, fiziki maşınınız öldü və onunla birlikdə bu proqram və bu ölçülər" deməlidir. O, əsas şeyi bildirməlidir - səbəbi, onun lokalizasiyasına görə problemi tez bir zamanda aradan qaldırmağa kömək edir.

Bildiriş sistemimiz və xəbərdarlıq emalı 24 saatlıq qaynar xətt xidməti ətrafında qurulub. Mütləq hesab edilən və yoxlama siyahısına daxil edilən bütün xəbərdarlıqlar oraya göndərilir. Hər bir siqnalın təsviri olmalıdır: nə baş verdi, əslində nə deməkdir, nə təsir edir. Həm də tablosuna bir keçid və bu halda nə edəcəyinə dair təlimatlar.

Bütün bunlar xəbərdarlıq yaratmaq üçün tələblərə aiddir. Onda vəziyyət iki istiqamətdə inkişaf edə bilər - ya problem var və onu həll etmək lazımdır, ya da monitorinq sistemində nasazlıq olub. Ancaq hər halda, gedib başa düşmək lazımdır.

Orta hesabla, indi xəbərdarlıqların korrelyasiyasının hələ düzgün konfiqurasiya edilmədiyini nəzərə alaraq gündə təxminən yüz xəbərdarlıq alırıq. Və əgər texniki işləri yerinə yetirməli olsaq və nəyisə zorla söndürsək, onların sayı xeyli artır.

Fəaliyyət göstərdiyimiz sistemlərin monitorinqi və bizim tərəfimizdən vacib hesab edilən metriklərin toplanması ilə yanaşı, monitorinq sistemi məhsul qrupları üçün məlumat toplamağa imkan verir. Onlar monitorinq etdiyimiz informasiya sistemlərindəki metriklərin tərkibinə təsir göstərə bilər.

Həmkarımız gəlib həm bizim, həm də komanda üçün faydalı olacaq bəzi metrikanı əlavə etməyi xahiş edə bilər. Və ya, məsələn, komanda bizdə olan əsas ölçülərə kifayət qədər malik olmaya bilər; onlar bəzi xüsusi ölçüləri izləməlidirlər. Grafana-da biz hər komanda üçün boşluq yaradırıq və admin hüquqları veririk. Həmçinin, əgər komandanın tablosuna ehtiyacı varsa, lakin onlar bunu necə edəcəyini bilmirlər/bilmirlərsə, biz onlara kömək edirik.

Biz komandanın dəyər yaratması, onların buraxılışları və planlaşdırılması axınından kənarda olduğumuz üçün, biz tədricən belə qənaətə gəlirik ki, bütün sistemlərin buraxılışları qüsursuzdur və bizimlə koordinasiya olmadan gündəlik yayıla bilər. Bu buraxılışları izləmək bizim üçün vacibdir, çünki onlar tətbiqin işinə potensial təsir göstərə və nəyisə poza bilər və bu çox vacibdir. Relizləri idarə etmək üçün biz Bamboo istifadə edirik, buradan API vasitəsilə məlumat alırıq və hansı relizlərin hansı informasiya sistemlərində buraxıldığını və onların statusunu görə bilirik. Və ən əsası nə vaxtdır. Biz buraxılış markerlərini əsas kritik ölçülərin üzərinə qoyuruq ki, bu da problemlər zamanı vizual olaraq çox göstəricidir.

Bu yolla biz yeni buraxılışlar və yaranan problemlər arasında əlaqəni görə bilərik. Əsas fikir sistemin bütün təbəqələrdə necə işlədiyini başa düşmək, problemi tez bir zamanda lokallaşdırmaq və onu tez bir zamanda həll etməkdir. Axı, tez-tez olur ki, ən çox vaxt tələb edən problemi həll etmək deyil, səbəb axtarmaqdır.

Və bu sahədə gələcəkdə biz fəallığa diqqət yetirmək istəyirik. İdeal olaraq, yaxınlaşan bir problem haqqında faktdan sonra deyil, əvvəlcədən bilmək istərdim ki, onu həll etməkdənsə, qarşısını ala bilim. Bəzən həm insan səhvi, həm də tətbiqdəki dəyişikliklər səbəbindən monitorinq sisteminin yanlış siqnalları baş verir.Və biz bunun üzərində işləyirik, onu sazlayırıq və monitorinq sisteminin hər hansı manipulyasiyasından əvvəl bizimlə birlikdə istifadə edən istifadəçiləri bu barədə xəbərdar etməyə çalışırıq. , və ya bu fəaliyyətləri texniki pəncərədə həyata keçirin.

Deməli, sistem işə salınıb və yazın əvvəlindən uğurla işləyir... və çox real gəlirlər göstərir. Əlbəttə ki, bu onun son versiyası deyil, biz daha çox faydalı xüsusiyyətləri təqdim edəcəyik. Ancaq indi, çoxlu inteqrasiya və tətbiqlərlə monitorinq avtomatlaşdırılması həqiqətən qaçılmazdır.

Əgər siz də xeyli sayda inteqrasiya ilə böyük layihələri izləyirsinizsə, bunun üçün hansı gümüş güllə tapdığınızı şərhlərdə yazın.

Mənbə: www.habr.com

Добавить комментарий