Architektura mikrousług - poznaj, buduj i wdrażaj mikrousługi



Ten blog szczegółowo wyjaśnia architekturę mikrousług. Zawiera również zalety i wady oraz studium przypadku, które wyjaśnia architekturę UBER.

Architektura mikrousług:

Od mojego , musisz mieć podstawową wiedzę na temat architektury mikrousług.Ale będąc profesjonalistą z będzie wymagać czegoś więcej niż tylko podstaw. Na tym blogu zagłębisz się w koncepcje architektoniczne i zaimplementujesz je na przykładzie UBER-a.

Na tym blogu dowiesz się o następujących kwestiach:





  • Definicja architektury mikrousług
  • Kluczowe koncepcje architektury mikrousług
  • Plusy i minusy architektury mikrousług
  • UBER - studium przypadku

Możesz zapoznać się z , aby zrozumieć podstawy i zalety mikrousług.

Będzie uczciwie tylko wtedy, gdy podam definicję mikrousług.



Definicja mikrousług

W związku z tym nie ma właściwej definicji mikrousług zwanych architekturą mikrousług, ale można powiedzieć, że jest to struktura składająca się z małych, indywidualnie wdrażanych usług wykonujących różne operacje.

Mikrousługi koncentrują się na jednej domenie biznesowej, którą można wdrożyć jako w pełni niezależne usługi wdrażalne i wdrożyć je na różnych stosach technologii.

Różnice między architekturą monolityczną a mikrousługami - Architektura mikrousług - Edureka



Rysunek 1: Różnica między architekturą monolityczną a mikrousługową - architektura mikrousług

Zapoznaj się z powyższym diagramem, aby zrozumieć różnicę między architekturą monolityczną i mikrousługową.Aby lepiej zrozumieć różnice między obiema architekturami, możesz zapoznać się z moim poprzednim blogiem

Aby lepiej zrozumieć, opowiem o kilku kluczowych koncepcjach architektury mikrousług.

Kluczowe koncepcje architektury mikrousług

Zanim zaczniesz budować własne aplikacje przy użyciu mikrousług, musisz mieć jasność co do zakresu i funkcjonalności aplikacji.

Poniżej przedstawiono kilka wskazówek, których należy przestrzegać podczas omawiania mikrousług.

Wytyczne dotyczące projektowania mikrousług

tableau łączenie dwóch źródeł danych
  • Jako programista, decydując się na zbudowanie aplikacji, oddziel domeny i jasno określ funkcje.
  • Każda zaprojektowana przez Ciebie mikrousługa powinna koncentrować się tylko na jednej usłudze aplikacji.
  • Upewnij się, że zaprojektowałeś aplikację w taki sposób, aby każdą usługę można było wdrożyć indywidualnie.
  • Upewnij się, że komunikacja między mikrousługami odbywa się za pośrednictwem serwera bezstanowego.
  • Każda usługa może zostać przekształcona w mniejsze usługi, posiadające własne mikrousługi.

Po zapoznaniu się z podstawowymi wskazówkami podczas projektowania mikrousług, przyjrzyjmy się architekturze mikrousług.

Jak działa architektura mikrousług?

Typowa architektura mikrousług (MSA) powinna składać się z następujących komponentów:

  1. Klienci
  2. Dostawcy tożsamości
  3. Gateway API
  4. Formaty wiadomości
  5. Bazy danych
  6. Treść statyczna
  7. Zarządzanie
  8. Wykrywanie usług

Zapoznaj się z poniższym schematem.

Rysunek 2: Architektura mikrousług - Architektura mikrousług

Wiem, że architektura wygląda na nieco złożoną, ale pozwóljauprościć to dla siebie.

1. Klienci

Architektura zaczyna się od różnych typów klientów, z różnych urządzeń, próbujących wykonywać różne funkcje zarządzania, takie jak wyszukiwanie, budowanie, konfigurowanie itp.

2. Dostawcy tożsamości

Te żądania od klientów są następnie przekazywane dostawcom tożsamości, którzy uwierzytelniają żądania klientów i przekazują żądania do API Gateway. Żądania są następnie przekazywane do usług wewnętrznych za pośrednictwem dobrze zdefiniowanej bramy interfejsu API.

3. Brama API

Ponieważ klienci nie wywołują usług bezpośrednio, API Gateway działa jako punkt wejścia dla klientów do przekazywania żądań do odpowiednich mikrousług.

Zalety korzystania z bramy API obejmują:

  • Wszystkie usługi można aktualizować bez wiedzy klientów.
  • Usługi mogą również używać protokołów przesyłania wiadomości, które nie są przyjazne dla sieci.
  • Brama API może wykonywać funkcje przekrojowe, takie jak zapewnianie bezpieczeństwa, równoważenie obciążenia itp.

Po otrzymaniu żądań klientów architektura wewnętrzna składa się z mikrousług, które komunikują się ze sobą za pomocą komunikatów w celu obsługi żądań klientów.

4. Formaty wiadomości

Są dwa rodzaje wiadomości, za pośrednictwem których się komunikują:

  • Synchroniczne wiadomości: W sytuacji, gdy klienci czekają na odpowiedzi z usługi, zwykle używają mikrousług REST (Reprezentacyjny transfer państwa) ponieważ opiera się na bezstanowym, klient-serwerze i Protokół HTTP . Ten protokół jest używany, ponieważ jest to środowisko rozproszone, każda funkcjonalność jest reprezentowana za pomocą zasobu do wykonywania operacji
  • Wiadomości asynchroniczne: W sytuacji, gdy klienci nie czekają na odpowiedzi z usługi, mikrousługi zwykle używają protokołów, takich jak AMQP, STOMP, MQTT . Te protokoły są używane w tego typu komunikacji, ponieważ charakter wiadomości jest zdefiniowany i te wiadomości muszą być interoperacyjne między implementacjami.

Kolejne pytanie, które może przyjść do głowy, dotyczy tego, w jaki sposób aplikacje korzystające z mikrousług radzą sobie z danymi?

5. Przetwarzanie danych

Cóż, każda mikrousługa posiada prywatną bazę danych do przechwytywania ich danych i wdrażania odpowiednich funkcji biznesowych. Ponadto bazy danych mikrousług są aktualizowane wyłącznie za pośrednictwem ich usług API. Zobacz poniższy diagram:

Rysunek 3: Reprezentacja mikrousług obsługujących dane - architektura mikrousług

Usługi świadczone przez Microservices są przenoszone do dowolnej usługi zdalnej, która obsługuje komunikację między procesami dla różnych stosów technologii.

6. Treść statyczna

Po tym, jak mikrousługi komunikują się w sobie, wdrażają zawartość statyczną w usłudze pamięci masowej w chmurze, która może dostarczać je bezpośrednio do klientów za pośrednictwem Sieci dostarczania treści (CDN) .

Oprócz powyższych komponentów, w typowej architekturze mikrousług pojawiają się inne komponenty:

7. Zarządzanie

jak przekonwertować na binarny w Pythonie

Ten komponent jest odpowiedzialny za równoważenie usług na węzłach i identyfikowanie awarii.

8. Wykrywanie usług

Działa jako przewodnik po mikrousługach w celu znalezienia trasy komunikacji między nimi, ponieważ utrzymuje listę usług, w których znajdują się węzły.

Zasubskrybuj nasz kanał YouTube, aby otrzymywać nowe aktualizacje ..!

Przyjrzyjmy się teraz zaletom i wadom tej architektury, aby lepiej zrozumieć, kiedy należy jej używać.

Plusy i minusy architektury mikrousług

Zapoznaj się z poniższą tabelą.

Zalety architektury mikrousług Wady mikrousług Architektura
Swoboda korzystania z różnych technologiiZwiększa wyzwania związane z rozwiązywaniem problemów
Każda mikrousługa koncentruje się na pojedynczych możliwościach biznesowychZwiększa opóźnienia spowodowane połączeniami zdalnymi
Obsługuje poszczególne jednostki do rozmieszczaniaZwiększone wysiłki związane z konfiguracją i innymi operacjami
Umożliwia częste wydania oprogramowaniaTrudne do utrzymania bezpieczeństwa transakcji
Zapewnia bezpieczeństwo każdej usługiTrudne do śledzenia danych w różnych granicach usług
Wiele usług jest opracowywanych i wdrażanych równolegleTrudne do przenoszenia kodu między usługami

Pozwól nam zrozumieć więcej na temat mikrousług, porównując poprzednią architekturę UBER z obecną.

STUDIUM PRZYPADKU UBERA

Poprzednia architektura UBER

Podobnie jak wiele startupów, UBER rozpoczął swoją podróż od monolitycznej architektury zbudowanej dla jednej oferty w jednym mieście. Posiadanie jednej bazy kodu wydawało się wówczas wyczyszczone i rozwiązało podstawowe problemy biznesowe UBER-a. Jednak gdy UBER zaczął się rozwijać na całym świecie, rygorystycznie stawiał czoła różnym problemom związanym ze skalowalnością i ciągłą integracją.

Rysunek 4: Architektura monolityczna UBER - Architektura mikrousług

Powyższy diagram przedstawia poprzednią architekturę UBER.

  • Obecne jest REST API, z którym łączy się pasażer i kierowca.
  • Trzy różne adaptery są używane z API w nich, do wykonywania czynności takich jak fakturowanie, płatności, wysyłanie e-maili / wiadomości, które widzimy, gdy rezerwujemy taksówkę.
  • Baza danych MySQL do przechowywania wszystkich danych.

Tak więc, jeśli zauważysz tutaj, wszystkie funkcje, takie jak zarządzanie pasażerami, fakturowanie, funkcje powiadomień, płatności, zarządzanie podróżami i zarządzanie kierowcami zostały skomponowane w jednej strukturze.

Stwierdzenie problemu

Podczas gdy UBER zaczął się rozwijać na całym świecie, tego rodzaju ramy wprowadziły różne wyzwania. Oto niektóre z najważniejszych wyzwań

  • Wszystkie funkcje musiały zostać ponownie zbudowane, wdrożone i testowane wielokrotnie, aby zaktualizować pojedynczą funkcję.
  • Naprawianie błędów stało się niezwykle trudne w pojedynczym repozytorium, ponieważ programiści musieli ciągle zmieniać kod.
  • Skalowanie funkcji jednocześnie z wprowadzaniem nowych funkcji na całym świecie było dość trudne do wspólnego rozwiązania.

Rozwiązanie

Aby uniknąć takich problemów, UBER postanowił zmienić swoją architekturę i podążyć za innymi hiper-wzrostowymi firmami, takimi jak Amazon, Netflix, Twitter i wiele innych. W związku z tym firma UBER zdecydowała się rozbić swoją monolityczną architekturę na wiele baz kodów, aby utworzyć architekturę mikrousług.

Zapoznaj się z poniższym diagramem, aby przyjrzeć się architekturze mikrousług UBER.

Rysunek 5: Architektura mikrousług UBER - Architektura mikrousług

jak skonfigurować zaćmienie dla java
  • Główną zmianą, którą tutaj obserwujemy, jest wprowadzenie API Gateway, dzięki któremu połączeni są wszyscy kierowcy i pasażerowie. Z API Gateway są połączone wszystkie punkty wewnętrzne, takie jak zarządzanie pasażerami, zarządzanie kierowcami, zarządzanie podróżami i inne.
  • Jednostki to oddzielne, rozstawiane jednostki, które wykonują oddzielne funkcje.
    • Na przykład: jeśli chcesz zmienić cokolwiek w rozliczeniowych mikrousługach, wystarczy wdrożyć tylko rozliczeniowe mikrousługi i nie musisz wdrażać pozostałych.
  • Wszystkie funkcje zostały teraz skalowane indywidualnie, tj. Usunięto współzależność między wszystkimi funkcjami.
    • Na przykład wszyscy wiemy, że liczba osób szukających taksówek jest porównywalnie większa niż osób faktycznie rezerwujących taksówkę i dokonujących płatności. Daje nam to wniosek, że liczba procesów działających w mikrousłudze zarządzania pasażerami jest większa niż liczba procesów pracujących na płatnościach.

W tymsposób, UBER skorzystał na zmianiejegoarchitektura od monolitycznej do mikrousług.

Mam nadzieję, że podobał Ci się ten post o architekturze Microservice.Będę wymyślał więcej blogów, które będą zawierały również ćwiczenia praktyczne.
Chcesz dowiedzieć się więcej o mikrousługach?

Jeśli chcesz nauczyć się mikrousług i tworzyć własne aplikacje, sprawdź nasze który obejmuje szkolenie na żywo prowadzone przez instruktora i rzeczywiste doświadczenie projektowe. To szkolenie pomoże ci dogłębnie zrozumieć mikrousługi i osiągnąć mistrzostwo w tym temacie.

Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy „ Architektura mikrousług ”I skontaktuję się z Tobą.