Xidmət Mesh nədir?

Bir daha salam!.. Kursun başlaması ərəfəsində "Proqram təminatı memarı" Daha bir faydalı tərcümə hazırlamışıq.

Xidmət Mesh nədir?

Xidmət şəbəkəsi tətbiq proqramlaşdırma interfeysləri (API) arasında böyük həcmdə şəbəkə əsaslı proseslərarası kommunikasiyaları idarə etmək üçün lazım olan konfiqurasiya edilə bilən, aşağı gecikmə müddəti olan infrastruktur təbəqəsidir. Service Mesh konteynerləşdirilmiş və tez-tez efemer tətbiq infrastrukturu xidmətləri arasında sürətli, etibarlı və təhlükəsiz əlaqə yaratmağa imkan verir. Service Mesh xidmət kəşfi, yük balansı, şifrələmə, şəffaflıq, izlənilmə, autentifikasiya və avtorizasiya və avtomatik bağlanma nümunəsi dəstəyi kimi imkanları təmin edir (kəsici).
Xidmət şəbəkəsi adətən hər bir xidmət instansiyasını adlandırılan proxy nümunəsi ilə təmin etməklə həyata keçirilir Yan araba. Yan araba xidmətlər arasında kommunikasiyaları idarə etmək, təhlükəsizlik məsələlərini, yəni ayrı-ayrı xidmətlərdən abstraksiya edilə bilən hər şeyi izləmək və həll etmək. Bu yolla tərtibatçılar xidmətlərdə proqram kodunu yaza, saxlaya və xidmət göstərə, sistem administratorları isə Service Mesh ilə işləyə və tətbiqi işlədə bilərlər.

Google, IBM və Lyft-dən İstio hazırda ən məşhur xidmət mesh arxitekturasıdır. Və əvvəlcə Google-da hazırlanmış Kubernetes, indi Istio tərəfindən dəstəklənən yeganə konteyner orkestrasiya çərçivəsidir. Satıcılar Istio-nun kommersiya cəhətdən dəstəklənən versiyalarını yaratmağa çalışırlar. Onların açıq mənbə layihəsinə hansı yeni şeylər gətirə biləcəyini görmək maraqlı olacaq.

Bununla belə, Istio yeganə seçim deyil, çünki digər Service Mesh tətbiqləri hazırlanır. Nümunə sidecar proxy Buoyant, HashiCorp, Solo.io və digər layihələrlə mühakimə oluna biləcəyi kimi ən populyar tətbiqdir. Alternativ arxitekturalar da var: Netflix texnologiya alətlər dəsti Service Mesh funksionallığının Ribbon, Hysterix, Eureka, Archaius kitabxanaları, həmçinin Azure Service Fabric kimi platformalar vasitəsilə həyata keçirildiyi yanaşmalardan biridir.

Service Mesh həmçinin xidmət komponentləri və funksiyaları üçün öz terminologiyasına malikdir:

  • Konteyner orkestri çərçivəsi. Tətbiq infrastrukturuna getdikcə daha çox konteyner əlavə olunduqca, konteynerlərin monitorinqi və idarə edilməsi üçün ayrıca alətə - konteyner orkestrasiya çərçivəsinə ehtiyac yaranır. Kubernetes bu yeri o qədər möhkəm tutdu ki, hətta onun əsas rəqibləri Docker Swarm və Mesosphere DC/OS alternativ olaraq Kubernetes ilə inteqrasiya təklif edir.
  • Xidmətlər və Nümunələr (Kubernetes Pods). Nümunə mikroxidmətin tək işləyən nüsxəsidir. Bəzən bir nümunə bir konteynerdir. Kubernetesdə nümunə pod adlanan kiçik müstəqil konteynerlər qrupundan ibarətdir. Müştərilər nadir hallarda instansiyaya və ya poda birbaşa daxil olurlar; daha tez-tez onlar eyni, miqyaslana bilən və xətaya dözümlü instansiyalar və ya podlar (replikalar) dəsti olan xidmətə daxil olurlar.
  • Sidecar Proxy. Sidecar Proxy tək instansiya və ya pod ilə işləyir. Sidecar Proxy-nin məqsədi işlədiyi konteynerdən gələn trafiki marşrutlaşdırmaq və ya proksi vermək və trafiki qaytarmaqdır. Sidecar digər Sidecar Proksiləri ilə qarşılıqlı əlaqədə olur və orkestrasiya çərçivəsi tərəfindən idarə olunur. Bir çox Service Mesh tətbiqləri instansiyaya və ya poddan daxil olan və çıxan bütün trafiki ələ keçirmək və idarə etmək üçün Sidecar Proxy-dən istifadə edir.
  • Xidmət kəşfi. Nümunə başqa xidmətlə əlaqə saxlamalı olduqda, o, digər xidmətin sağlam və əlçatan nümunəsini tapmalıdır (kəşf etməlidir). Tipik olaraq, nümunə DNS axtarışlarını həyata keçirir. Konteyner orkestri çərçivəsi sorğuları qəbul etməyə hazır olan nümunələrin siyahısını saxlayır və DNS sorğuları üçün interfeys təqdim edir.
  • Yük balansı. Əksər konteyner orkestri çərçivələri 4-cü qatda (nəqliyyat) yük balansını təmin edir. Service Mesh, alqoritmlərlə zəngin və trafikin idarə edilməsində daha effektiv olan 7-ci qatda (tətbiq səviyyəsi) daha mürəkkəb yük balansını həyata keçirir. Yük balansı parametrləri API istifadə edərək dəyişdirilə bilər ki, bu da mavi-yaşıl və ya kanareyka yerləşdirmələrini təşkil etməyə imkan verir.
  • Şifrələmə. Service Mesh bu yükü xidmətlərdən götürərək sorğu və cavabları şifrələyə və deşifrə edə bilər. Service Mesh həmçinin mövcud davamlı bağlantıları prioritetləşdirmək və ya təkrar istifadə etməklə performansı yaxşılaşdıra bilər, yeni bağlantılar yaratmaq üçün bahalı hesablamalara ehtiyacı azalda bilər. Trafik şifrələməsinin ən çox yayılmış tətbiqi qarşılıqlı TLS (mTLS), burada açıq açar infrastrukturu (PKI) Sidecar Proxy tərəfindən istifadə üçün sertifikatlar və açarlar yaradır və paylayır.
  • Doğrulama və Avtorizasiya. Service Mesh tətbiqin xaricdən və ya daxilindən edilən sorğulara icazə verə və autentifikasiya edə bilər, instansiyalara yalnız təsdiqlənmiş sorğular göndərir.
  • Avtomatik bağlanma nümunəsi dəstəyi. Service Mesh dəstəkləyir avtomatik bağlanma nümunəsi, bu, qeyri-sağlam instansiyaları təcrid edir və sonra lazım olduqda tədricən onları sağlam nümunələr hovuzuna qaytarır.

Nümunələr arasında şəbəkə trafikini idarə edən Service Mesh tətbiqinin hissəsi adlanır Məlumat təyyarəsi. Davranışa nəzarət edən konfiqurasiya yaradın və yerləşdirin Məlumat təyyarəsi, ayrıca istifadə edərək həyata keçirilir Nəzarət Planı. Nəzarət Planı adətən tətbiqi idarə etmək üçün API, CLI və ya GUI-yə qoşulmaq üçün nəzərdə tutulub və ya nəzərdə tutulub.

Xidmət Mesh nədir?
Xidmət şəbəkəsindəki İdarəetmə Planı konfiqurasiyanı Sidecar Proxy və Data Plane arasında paylayır.

Service Mesh arxitekturası tez-tez konteynerlərdən və mikroservislərdən istifadə edərək mürəkkəb əməliyyat problemlərini həll etmək üçün istifadə olunur. Sahənin qabaqcılları mikroservislər dünya üzrə milyonlarla istifadəçiyə stabil xidmət göstərən Lyft, Netflix və Twitter kimi şirkətlərdir. (Netflix-in qarşılaşdığı bəzi memarlıq problemlərinə ətraflı nəzər salaq.). Daha az tələbkar tətbiqlər üçün daha sadə arxitekturalar kifayət edəcəkdir.

Service Mesh arxitekturası çətin ki, bütün tətbiqlərin işləməsi və çatdırılması məsələlərinə cavab versin. Memarlar və tərtibatçılar böyük bir alət arsenalına malikdirlər və onlardan yalnız biri çəkicdir, bir çox vəzifələr arasında yalnız birini - çəkic dırnaqlarını həll etməlidir. NGINX-dən Microservices Reference Architectureməsələn, mikroservislərdən istifadə edərək problemlərin həlli üçün davamlı yanaşma təmin edən bir neçə fərqli model daxildir.

NGINX, konteynerlər, Kubernetes və arxitektura yanaşması kimi mikroservislər kimi Service Mesh arxitekturasında bir araya gələn elementlər, xidmətdən kənar tətbiqlərdə eyni dərəcədə məhsuldar ola bilər. Məsələn, Istio tam bir xidmət şəbəkəsi arxitekturası kimi hazırlanmışdır, lakin onun modulyarlığı tərtibatçıların yalnız ehtiyac duyduqları texnologiya komponentlərini seçib həyata keçirə bilməsi deməkdir. Bunu nəzərə alaraq, Service Mesh konsepsiyasını aydın şəkildə başa düşmək vacibdir, hətta onu tətbiqinizdə tam şəkildə həyata keçirə biləcəyinizə əmin olmasanız belə.

Modul monolitlər və DDD

Mənbə: www.habr.com

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