Memarlıq üslubunun seçilməsi (3-cü hissə)

Salam, Habr. Bu gün mən kursun yeni axınının başlaması üçün xüsusi olaraq yazdığım bir sıra nəşrləri davam etdirirəm. "Proqram təminatı memarı".

Giriş

Memarlıq üslubunun seçimi informasiya sisteminin qurulması zamanı əsas texniki qərarlardan biridir. Bu məqalələr silsiləsində mən tikinti tətbiqləri üçün ən populyar memarlıq üslublarını təhlil etməyi və hansı memarlıq üslubunun nə vaxt daha çox üstünlük verdiyi sualına cavab verməyi təklif edirəm. Təqdimat prosesində monolitlərdən mikroservislərə qədər memarlıq üslublarının inkişafını izah edən məntiqi zəncir çəkməyə çalışacağam.

Keçən dəfə biz müxtəlif monolit növləri və onların qurulması üçün komponentlərin istifadəsi, həm tikinti komponentləri, həm də yerləşdirmə komponentləri haqqında danışdıq. Biz xidmət yönümlü arxitekturanı başa düşürük.

İndi biz nəhayət mikroservis arxitekturasının əsas xüsusiyyətlərini müəyyən edəcəyik.

Memarlıqların əlaqəsi

Başa düşmək lazımdır ki, əvvəlki məqalələrdə verilən təriflərə əsasən istənilən xidmət komponentdir, lakin hər xidmət mikroservis deyil.

Mikroservis arxitekturasının xüsusiyyətləri

Mikroservis arxitekturasının əsas xüsusiyyətləri bunlardır:

  • Biznes İmkanları ətrafında təşkil edilmişdir
  • Layihələr deyil, məhsullar
  • Ağıllı son nöqtələr və lal borular
  • Mərkəzləşdirilməmiş İdarəetmə
  • Mərkəzləşdirilməmiş Məlumat İdarəetmə
  • İnfrastrukturun avtomatlaşdırılması
  • Uğursuzluq üçün dizayn
  • Təkamül inkişafı ilə memarlıq (Təkamüllü Dizayn)

1-ci nöqtə xidmət yönümlü arxitekturadan irəli gəlir, çünki mikroservislər xidmətlərin xüsusi halıdır. Digər məqamlar ayrıca nəzərdən keçirilməlidir.

Biznes İmkanları ətrafında təşkil edilmişdir

İndi Konvey qanununu xatırlamaq lazımdır: sistemləri yaradan təşkilatlar onun arxitekturasını təşkil edir, bu təşkilatlar daxilində qarşılıqlı əlaqənin strukturunu kopyalayırlar. Nümunə olaraq kompilyatorun yaradılması halını xatırlaya bilərik: yeddi nəfərdən ibarət komanda yeddi keçidli kompilyator, beş nəfərdən ibarət bir qrup isə beş keçidli kompilyator hazırladı.

Əgər söhbət monolitlərdən və mikroservislərdən gedirsə, onda inkişaf funksional şöbələr (backend, frontend, verilənlər bazası administratorları) tərəfindən təşkil edilirsə, onda klassik monolit əldə edirik.

Mikroxidmətləri əldə etmək üçün komandalar iş qabiliyyətinə görə təşkil edilməlidir (sifarişlər, göndərişlər, kataloq qrupu). Bu təşkilat komandalara tətbiqin xüsusi hissələrinin qurulmasına diqqət yetirməyə imkan verəcək.

Layihələr deyil, məhsullar

Komandanın işlənmiş funksionallığı digər komandalara köçürdüyü layihə yanaşması mikroservis arxitekturası vəziyyətində tamamilə yararsızdır. Komanda bütün ömrü boyu sistemi dəstəkləməlidir. Mikroservislərin tətbiqi üzrə liderlərdən biri olan Amazon dedi: “sən qurursan, onu idarə edirsən”. Məhsul yanaşması komandaya biznesin ehtiyaclarını hiss etməyə imkan verir.

Ağıllı son nöqtələr və lal borular

SOA arxitekturası kommunikasiya kanallarına, xüsusən Enterprise Service Bus-a böyük diqqət yetirirdi. Hansı ki, tez-tez Erroneous Spagetti Box, yəni monolitin mürəkkəbliyi xidmətlər arasında əlaqələrin mürəkkəbliyinə çevrilir. Mikroservis arxitekturası yalnız sadə ünsiyyət üsullarından istifadə edir.

Mərkəzləşdirilməmiş İdarəetmə

Mikroservislərlə bağlı əsas qərarlar mikroservisləri həqiqətən inkişaf etdirən insanlar tərəfindən qəbul edilməlidir. Burada əsas qərarlar seçim deməkdir
proqramlaşdırma dilləri, yerləşdirmə metodologiyası, ictimai interfeys müqavilələri və s.

Mərkəzləşdirilməmiş Məlumat İdarəetmə

Tətbiqin vahid verilənlər bazasına əsaslandığı standart yanaşma hər bir xüsusi xidmətin xüsusiyyətlərini nəzərə ala bilməz. MSA müxtəlif texnologiyalardan istifadə də daxil olmaqla, mərkəzləşdirilməmiş məlumatların idarə edilməsini əhatə edir.

İnfrastrukturun avtomatlaşdırılması

MSA davamlı yerləşdirmə və çatdırılma proseslərini dəstəkləyir. Buna yalnız proseslərin avtomatlaşdırılması ilə nail olmaq olar. Eyni zamanda, çoxlu sayda xidmətlərin yerləşdirilməsi artıq qorxulu bir şey kimi görünmür. Yerləşdirmə prosesi darıxdırıcı olmalıdır. İkinci aspekt məhsul mühitində xidmətin idarə edilməsi ilə bağlıdır. Avtomatlaşdırma olmadan müxtəlif əməliyyat mühitlərində işləyən prosesləri idarə etmək qeyri-mümkün olur.

Uğursuzluq üçün dizayn

Çoxsaylı MSA xidmətləri uğursuzluğa meyilli olur. Eyni zamanda, paylanmış sistemdə səhvlərin idarə edilməsi əhəmiyyətsiz bir iş deyil. Tətbiq arxitekturası belə uğursuzluqlara davamlı olmalıdır. Rebecca Parsons hesab edir ki, biz artıq xidmətlər arasında prosesdaxili rabitədən belə istifadə etməməyimizin çox vacib olduğunu düşünür; bunun əvəzinə biz əlaqə üçün HTTP-yə müraciət edirik, bu da demək olar ki, etibarlı deyil.

Təkamül inkişafı ilə memarlıq (Təkamüllü Dizayn)

MSA sisteminin arxitekturası təkamül yolu ilə inkişaf etməlidir. Lazımi dəyişiklikləri vahid xidmətin sərhədləri ilə məhdudlaşdırmaq məsləhətdir. Digər xidmətlərə təsiri də nəzərə alınmalıdır. Ənənəvi yanaşma bu problemi versiyalaşdırma ilə həll etməyə çalışmaqdır, lakin MSA versiyalaşdırmadan istifadə etməyi təklif edir
son çarə kimi.

Nəticə

Yuxarıda göstərilənlərin hamısından sonra mikroservislərin nə olduğunu formalaşdıra bilərik. Mikroservis arxitekturası, hər biri öz prosesində işləyən və yüngül mexanizmlər, çox vaxt HTTP resurs API-si vasitəsilə qarşılıqlı əlaqədə olan kiçik xidmətlər toplusu kimi vahid tətbiqi inkişaf etdirməyə yanaşmadır. Bu xidmətlər biznes imkanları üzərində qurulub və tam istifadə edərək müstəqil şəkildə tətbiq oluna bilər
avtomatlaşdırılmış yerləşdirmə mexanizmi. Müxtəlif proqramlaşdırma dillərində yazıla bilən və müxtəlif məlumat saxlama texnologiyalarından istifadə edə bilən bu xidmətlərin mərkəzləşdirilmiş idarəetməsinin minimum səviyyəsi var.

Memarlıq üslubunun seçilməsi (3-cü hissə)

2-ci hissəni oxuyun

Mənbə: www.habr.com

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