Mənə monolitimi geri ver

Görünür, mikroservislər üçün şırınga zirvəsi arxada qalıb. Artıq həftədə bir neçə dəfə “Monolitimi 150 xidmətə necə köçürdüm” yazılarını oxumuruq. İndi daha çox sağlam düşüncələr eşidirəm: "Mən monolitdən nifrət etmirəm, sadəcə səmərəliliyə əhəmiyyət verirəm." Hətta bir neçə miqrasiya müşahidə etdik mikroservislərdən monolitə qədər. Bir böyük proqramdan bir neçə kiçik xidmətə keçərkən bir neçə yeni problemi həll etməli olacaqsınız. Gəlin onları mümkün qədər qısaca sadalayaq.

Tənzimləmə: əsas kimyadan kvant mexanikasına qədər

Əsas məlumat bazası və proqram təminatının fon prosesi ilə qurulması kifayət qədər sadə bir proses idi. Readmeni Github-da dərc edirəm - və tez-tez bir saatdan sonra, ən çoxu bir neçə saatdan sonra hər şey işləyir və yeni layihəyə başlayıram. Ən azı ilkin mühit üçün kodun əlavə edilməsi və işlədilməsi birinci gün edilir. Ancaq mikroservislərə girsək, ilkin işə salınma vaxtı sürətlə artır. Bəli, indi orkestrasiya ilə Docker və K8 maşınlarının çoxluğu var, lakin təcrübəsiz bir proqramçı üçün bütün bunlar daha mürəkkəbdir. Bir çox yeniyetmələr üçün bu, həqiqətən lazımsız bir ağırlaşma olan bir yükdür.

Sistemi başa düşmək asan deyil

Bir anlıq diqqətimizi gəncimizə yönəldək. Monolit tətbiqlərlə, əgər bir səhv baş verərsə, onu izləmək və dərhal sazlamaya keçmək asan idi. İndi başqa bir xidməti emal edən mesaj avtobusunda nəyisə növbəyə qoyan başqa bir xidmətlə danışan bir xidmətimiz var - və sonra xəta baş verir. A Xidmətinin 11-ci versiyasını işlədiyini və E Xidmətinin artıq 12-ci versiyasını gözlədiyini öyrənmək üçün bütün bu parçaları bir yerə yığmalıyıq. Bu, mənim standart konsolidə edilmiş jurnalımdan çox fərqlidir: gəzmək üçün interaktiv terminal/sazlayıcıdan istifadə etmək lazımdır. proses vasitəsilə addım-addım. Hataların aradan qaldırılması və anlaşılması mahiyyətcə daha çətinləşib.

Əgər onu aradan qaldırmaq mümkün deyilsə, bəlkə biz onları sınaqdan keçirəcəyik

Davamlı inteqrasiya və davamlı inkişaf indi adi hala çevrilir. Gördüyüm əksər yeni proqramlar avtomatik olaraq hər yeni buraxılışda testlər yaradır və işə salır və qeydiyyatdan əvvəl testlərin götürülməsini və nəzərdən keçirilməsini tələb edir. Bunlar tərk edilməməli olan böyük proseslərdir və bir çox şirkətlər üçün böyük dəyişiklik olmuşdur. Ancaq indi xidməti həqiqətən sınaqdan keçirmək üçün ərizəmin tam işləyən versiyasını çıxarmalıyam. 8 xidmətdən ibarət K150 klasterinə malik yeni mühəndisi xatırlayırsınız? Yaxşı, indi biz CI sistemimizə hər şeyin həqiqətən işlədiyini yoxlamaq üçün bütün bu sistemləri necə yetişdirməyi öyrədəcəyik. Bu, çox güman ki, çox səydir, ona görə də biz hər bir hissəni ayrı-ayrılıqda sınaqdan keçirəcəyik: Əminəm ki, xüsusiyyətlərimiz kifayət qədər yaxşıdır, API-lər təmizdir və xidmət çatışmazlığı təcrid olunub və başqalarına təsir etməyəcək.

Bütün kompromislərin yaxşı səbəbi var. Düzdür?

Mikroservislərə keçmək üçün bir çox səbəb var. Mən bunun daha çox çeviklik, komandaların miqyasını artırmaq, performans üçün, daha yaxşı davamlılığı təmin etmək üçün edildiyini görmüşəm. Amma əslində, biz təkamül etməyə davam edən monolitləri inkişaf etdirmək üçün onilliklər ərzində alətlər və təcrübələrə sərmayə qoymuşuq. Müxtəlif texnologiyalar üzrə peşəkarlarla işləyirəm. Biz adətən miqyaslaşdırma haqqında danışırıq, çünki onlar tək Postgres verilənlər bazası qovşağının hüdudlarına daxil olurlar. Söhbətlərin çoxu ondan gedir verilənlər bazası miqyası.

Amma mən həmişə onların memarlığını öyrənməkdə maraqlıyam. Onlar mikroservislərə keçidin hansı mərhələsindədirlər? Daha çox mühəndisin monolit tətbiqindən məmnun olduqlarını söyləməsi maraqlıdır. Bir çox insan mikroxidmətlərdən faydalanacaq və faydalar miqrasiya yolundakı zərbələrdən üstün olacaq. Ancaq şəxsən mənə monolit ərizəmi, çimərlikdə yer verin - və mən tamamilə xoşbəxtəm.

Mənbə: www.habr.com

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