Projektowanie architektury mikrousług

Mikrousługi to popularny styl architektury służący do tworzenia aplikacji w chmurze, które pozostają odporne, wydajnie skalowane, wdrażane niezależnie i szybko ewoluują. Aby zapewnić rzeczywistą wartość, mikrousługi wymagają innego podejścia do projektowania i tworzenia aplikacji.

W tym zestawie artykułów opisano sposób tworzenia architektury mikrousług na Azure. Zawiera ona następujące wskazówki:

  • Opcje obliczeń dla mikrousług: porównaj platformy obliczeniowe platformy Azure dla mikrousług, w tym usług Azure Kubernetes Service (AKS), Azure Container Apps, Azure Functions, Azure App Service i Azure Red Hat OpenShift. Oceń każdą platformę na podstawie komunikacji między usługami, niezależnego skalowania i możliwości wdrażania.

  • Komunikacja międzyusługowa: projektowanie efektywnych wzorców komunikacji między mikrousługami przy użyciu metod synchronicznych i asynchronicznych. Dowiedz się więcej o interfejsach API REST, wzorcach obsługi komunikatów, architekturach opartych na zdarzeniach i technologiach siatki usług w celu zapewnienia niezawodnej komunikacji między usługami.

  • Projekt interfejsu API: tworzenie dobrze zaprojektowanych interfejsów API obsługujących zasady architektury mikrousług. Poznaj strategie przechowywania wersji interfejsu API, wzorce obsługi błędów i sposób projektowania interfejsów API, które promują luźne sprzężenie i niezależną ewolucję usług.

  • Bramy interfejsu API: zaimplementuj bramy interfejsu API, aby zarządzać problemami krzyżowymi, takimi jak uwierzytelnianie, ograniczanie szybkości i routing żądań. Dowiedz się, jak bramy upraszczają interakcje klientów i zapewniają scentralizowane wymuszanie zasad w ekosystemie mikrousług.

  • Zagadnienia dotyczące danych: Rozwiązywanie problemów z zarządzaniem danymi w architekturach mikrousług, w tym wzorców spójności danych, transakcji rozproszonych i wybierania odpowiednich magazynów danych. Poznaj strategie utrzymania integralności danych w granicach usług.

  • Orkiestracja kontenerów: wdrażanie konteneryzowanych mikrousług na dużą skalę i zarządzanie nimi przy użyciu koordynatorów kontenerów. Dowiedz się, jak platformy takie jak Kubernetes automatyzują wdrażanie, skalowanie, równoważenie obciążenia i zarządzanie kondycją, aby zachować żądany stan systemu w środowiskach produkcyjnych.

  • Wzorce projektowe: Zastosuj sprawdzone wzorce projektowe do typowych wyzwań związanych z mikrousługami, w tym wzorzec saga na potrzeby spójności danych rozproszonych, wzorzec bulkhead na potrzeby izolacji awarii oraz wzorzec figowy stranglera na potrzeby refaktoryzacji aplikacji przyrostowych.

Wymagania wstępne

Przed przeczytaniem tych artykułów zacznij od następujących zasobów:

Przykładowa architektura

Diagram przedstawiający architekturę obciążenia dostarczania dronów.

Pobierz plik Visio tej architektury.

Scenario

Fabrikam, Inc. tworzy usługę dostarczania dronów. Firma zarządza flotą samolotów dronów. Firmy rejestrują się w usłudze, a użytkownicy mogą zamówić drona, który pobierze towary do dostarczenia. Gdy klient planuje odbiór, system zaplecza przypisuje drona i powiadamia użytkownika o szacowanym czasie dostawy. Podczas dostawy klient może śledzić lokalizację drona, w tym stale aktualizowany szacowany czas przybycia (ETA).

To rozwiązanie działa dobrze w branży lotniczej i samolotowej.

Ten scenariusz obejmuje dość skomplikowaną domenę. Niektóre problemy biznesowe obejmują planowanie dronów, śledzenie pakietów, zarządzanie kontami użytkowników oraz przechowywanie i analizowanie danych historycznych. Firma Fabrikam chce również przejść na rynek, a następnie szybko wykonać iteracje, aby dodać nowe funkcje i możliwości. Aplikacja musi działać w skali chmury z celem wysokiego poziomu usług (SLO). Fabrikam oczekuje również, że różne części systemu będą miały bardzo różne wymagania dotyczące przechowywania i wykonywania zapytań dotyczących danych. Na podstawie zagadnień firma Fabrikam wybiera architekturę mikrousług dla aplikacji dostarczania dronów.

Uwaga / Notatka

Aby uzyskać więcej informacji na temat wybierania między architekturą mikrousług i innymi stylami architektury, zobacz przewodnik po architekturze Azure Application.

Ta architektura korzysta z platformy Kubernetes z usługą AKS. Jednak wiele decyzji i wyzwań związanych z architekturą wysokiego poziomu ma zastosowanie do każdego orkiestratora kontenerów.

Następny krok