mikroserwisy - wstęp

Pogadamy teraz o architekturze na backendzie. Konkretnie o mikroserwisach.

Na czym polegają mikroserwisy? Otóż na tym, że zamiast mieć jedną monolityczną apkę, ma się wiele różnych małych mikroapek.

Jednak modularność to nie wszystko. Bo przecież apki mogą być podzielone na moduły i nie będzie się nazywać tego mikroserwisami. Jednak mikroserwisy biorą ideę modularności dalej, aż do Księżyca. Takie mikroserwisy mogą być na różnych serwerach (prawdziwych albo wirtualnych) i wszystko mają osobno. W monolitycznej apce jest jedna baza, to tutaj każdy mikroserwis może mieć swoją osobną bazę i osobne wszystko. Totalna izolacja. Mogą być pisane nawet w innych językach programowania.

Tylko to rodzi problem komunikacji między mikroserwisami. Zamiast wywoływać funkcję, to trzeba się komunikować przez sieć z innymi mikroserwisami. Czyli wszystko musi być jakoś serializowane. Można przesyłać dane np. za pomocą REST i JSON, ale np. można też użyć gRPC, czyli taki binarny sposób przesyłania danych, gdzie się definiuje najpierw rodzaj danych w specjalnym pliku `.proto`.

Jednak bezpośrednia komunikacja między serwisami może nieść problemy. Że trzeba robić zabezpieczenia różne albo szykować się na okoliczność tego, że jakiś serwis nie będzie odpowiadał (i co teraz? powtórzyć żądanie?). Dlatego często serwisy nie komunikują się bezpośrednio, ale przez specjalny proces na serwerze (sidecar proxy pattern), i wysyłają żądanie do tego procesu i on dopiero się komunikuje w ich imieniu z innymi serwisami (a inne serwisy też mogą mieć takie sidecar proxy, które będzie odbierało te żądania).

Żeby zlokalizować serwisy w sieci (często wirtualnej) możemy użyć jakiejś siatki serwisów (service mesh). Wtedy taka siatka będzie wszystkim zarządzać (siatka serwisów do realizacji działań może korzystać ze wzorców takich jak sidecar proxy)

Do komunikacji możemy użyć też kolejek czy systemów do powiadomień (np. RabbitMQ. A jak używamy AWS to można użyć SNS czy SQS). I wtedy mikroserwisy się komunikują tak, że wysyłają komunikaty w odpowiednie miejsce, a potem inny mikroserwis odbiera te komunikaty np. ze specjalnej kolejki (albo dostaje powiadomienie)

Dobra, więcej innym razem. To taki wstęp był (ale też być może rozbuduję ten artykuł).

Komentarze

Popularne posty z tego bloga

Dlaczego nie da się nadgonić frontendu

Absurdy Rekrutacji 2023

Przygody juniora (1)