Udostępnij za pośrednictwem


Wybieranie opcji obliczeń platformy Azure dla mikrousług

Termin obliczenia dotyczy modelu hostingu zasobów obliczeniowych używanych do uruchamiania aplikacji. Ten artykuł zawiera normatywne wskazówki ułatwiające wybór platformy obliczeniowej dla mikrousług. Wybór platformy obliczeniowej mikrousługi może zależeć od bardziej szczegółowych wymagań.

W przypadku architektury mikrousług popularne są następujące podejścia:

  • Wdróż mikrousługi na dedykowanych platformach obliczeniowych, zazwyczaj przy użyciu koordynatora mikrousług.
  • Wdrażanie mikrousług na platformie bezserwerowej.

Chociaż te opcje nie są jedynymi, są one oba sprawdzone podejścia do tworzenia mikrousług. Aplikacja może zawierać oba podejścia.

Diagram przedstawiający opcje obliczeń mikrousług na platformie Azure.

Pobierz plik programu Visio z tą architekturą.

Korzystanie z platformy bezserwerowej

Platformy bezserwerowe umożliwiają wdrażanie mikrousług w usłudze Azure Container Apps lub Azure Functions. Zarówno aplikacje kontenerów, jak i funkcje zapewniają bezserwerowe opcje obliczeniowe, które są rozliczane na podstawie liczby żądań, a nie użycia zasobów obliczeniowych. Obie platformy umożliwiają również hostowanie obciążeń w pojemności dedykowanej.

Wdrażanie mikrousług opartych na kodzie

Jeśli chcesz wdrożyć mikrousługi jako kod zamiast konteneryzować je, warto użyć usługi Azure Functions. Aby uzyskać więcej informacji, zobacz listę języków programowania i skryptów obsługiwanych przez usługę Functions. W przypadku mikrousług opracowywanych w innych językach warto zaimplementować niestandardową procedurę obsługi w usłudze Functions lub rozważyć konteneryzowanie aplikacji.

Korzystanie z modelu procesora GPU

Jeśli mikrousługa wymaga pojemności procesora GPU, na przykład do uruchamiania zadań uczenia maszynowego, rozważ wybranie usługi Container Apps lub Azure Kubernetes Service (AKS) dla danej platformy. Usługa AKS może używać dowolnych modeli procesora GPU na platformie Azure, a usługa Container Apps oferuje podzbiór modeli procesora GPU do wyboru.

Korzystanie z koordynatorów usług

Orkiestrator obsługuje zadania związane z wdrażaniem zestawu usług i zarządzaniem nim. Te zadania obejmują umieszczanie usług w węzłach, monitorowanie kondycji usług, ponowne uruchamianie usług w złej kondycji, równoważenie obciążenia ruchu sieciowego między wystąpieniami usług, odnajdywanie usług, skalowanie liczby wystąpień usługi i stosowanie aktualizacji konfiguracji. Popularne orkiestratory to Kubernetes, Azure Service Fabric, DC/OS i Docker Swarm.

Na platformie Azure rozważ następujące opcje:

  • Azure Kubernetes Service (AKS) to usługa zarządzana platformy Kubernetes. Usługa AKS aprowizuje platformę Kubernetes i uwidacznia punkty końcowe interfejsu API Kubernetes, hostuje płaszczyznę sterowania platformy Kubernetes oraz wykonuje automatyczne uaktualnienia, automatyczne stosowanie poprawek, skalowanie automatyczne i inne zadania zarządzania. Usługa AKS zapewnia bezpośredni dostęp do interfejsów API platformy Kubernetes.

  • Container Apps to zarządzana usługa oparta na platformie Kubernetes, która abstrahuje od złożoności aranżacji kontenerów i innych zadań zarządzania. Usługa Container Apps upraszcza wdrażanie konteneryzowanych aplikacji i mikrousług oraz zarządzanie nimi w środowisku bezserwerowym, zapewniając jednocześnie funkcje platformy Kubernetes. Usługa Container Apps jest idealna w scenariuszach, w których bezpośredni dostęp do interfejsów API platformy Kubernetes nie jest wymagany.

  • Service Fabric to platforma systemów rozproszonych do tworzenia pakietów, wdrażania mikrousług i zarządzania nimi. Mikrousługi można wdrażać w usłudze Service Fabric jako kontenery, jako pliki wykonywalne binarne lub jako usługi Reliable Services. Korzystając z modelu programowania usług Reliable Services, usługi mogą bezpośrednio używać interfejsów API programowania usługi Service Fabric do wykonywania zapytań dotyczących systemu, raportowania kondycji, odbierania powiadomień o zmianach konfiguracji i kodu oraz odnajdywania innych usług.

  • Użyj usługi Azure Red Hat OpenShift, aby wdrożyć w pełni zarządzane klastry OpenShift . Usługa Azure Red Hat OpenShift rozszerza platformę Kubernetes. Usługa Azure Red Hat OpenShift jest wspólnie zaprojektowana, obsługiwana i obsługiwana przez firmę Red Hat i firmę Microsoft.

  • Inne opcje, takie jak Docker Enterprise Edition, mogą być uruchamiane w środowisku przetwarzania w chmurze na platformie Azure. Szablony wdrażania można znaleźć w witrynie Azure Marketplace.

Korzystanie z interfejsów API platformy Kubernetes

Dostęp do interfejsów API platformy Kubernetes jest często czynnikiem decydującym podczas wybierania opcji obliczeniowej. Usługa AKS zapewnia bezpośredni dostęp do interfejsów API platformy Kubernetes, ale usługa Container Apps nie. Usługa Container Apps ukrywa złożoność platformy Kubernetes i upraszcza wdrażanie kontenerów. Jeśli projektujesz wdrożenie mikrousług w celu bezpośredniej interakcji z interfejsami API platformy Kubernetes, usługa AKS może być właściwym wyborem.

Inne czynniki decyzyjne

Mogą istnieć inne czynniki wpływające na wybór platformy obliczeniowej mikrousług. Te czynniki obejmują opcje siatki usług, skalowalność platformy i zestawy umiejętności, których można używać w organizacji.

Kwestie wymagające rozważenia

Te zagadnienia implementują filary struktury Azure Well-Architected Framework, która jest zestawem wytycznych, które mogą służyć do poprawy jakości obciążenia. Aby uzyskać więcej informacji, zobacz Microsoft Azure Well-Architected Framework.

Niezawodność

Niezawodność zapewnia, że aplikacja może spełnić zobowiązania podjęte przez klientów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca niezawodności.

Jednym z kluczowych filarów niezawodności jest odporność. Celem odporności jest zwrócenie obciążenia do w pełni funkcjonalnego stanu po wystąpieniu awarii.

Jeśli wybierzesz usługę Azure Functions jako platformę obliczeniową mikrousług, rozważ wdrożenie planu usługi Functions Premium lub planu usługi aplikacja systemu Azure w konfiguracji strefowo nadmiarowej. Aby uzyskać więcej informacji, zobacz Niezawodność w usłudze Functions.

Jeśli wybierzesz usługę AKS jako platformę obliczeniową mikrousług, możesz zwiększyć niezawodność mikrousług, wdrażając klaster usługi AKS korzystający ze stref dostępności przy użyciu warstwy Standardowa lub Premium dla klastrów usługi Azure Kubernetes oraz zwiększając minimalną liczbę zasobników i węzłów. Aby uzyskać więcej informacji, zobacz Wdrażanie i najlepsze rozwiązania dotyczące niezawodności klastra dla usługi AKS.

Jeśli wybierzesz usługę Container Apps jako platformę przetwarzania mikrousług, możesz zwiększyć niezawodność przy użyciu stref dostępności. Aby uzyskać więcej informacji, zobacz Niezawodność w usłudze Container Apps.

Zabezpieczenia

Zabezpieczenia zapewniają ochronę przed celowymi atakami i nadużyciami cennych danych i systemów. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca zabezpieczeń.

Jeśli wybierzesz usługę Azure Functions jako platformę obliczeniową do wdrażania mikrousług, zasady zabezpieczania usługi Azure Functions mają zastosowanie również do mikrousług.

Jeśli wybierzesz usługę AKS jako platformę obliczeniową do wdrażania mikrousług, architektura punktu odniesienia zabezpieczeń usługi AKS zawiera wskazówki dotyczące zabezpieczania platformy obliczeniowej. Aby uzyskać najlepsze rozwiązania dotyczące zabezpieczeń mikrousług w usłudze AKS, zobacz Advanced AKS microservice architecture (Zaawansowana architektura mikrousług usługi AKS).

Jeśli wybierzesz usługę Container Apps jako platformę obliczeniową do wdrażania mikrousług, zobacz punkt odniesienia zabezpieczeń dla usługi Container Apps , aby uzyskać najlepsze rozwiązania w zakresie zabezpieczeń.

Optymalizacja kosztów

Optymalizacja kosztów dotyczy sposobów zmniejszenia niepotrzebnych wydatków i poprawy wydajności operacyjnej. Aby uzyskać więcej informacji, zobacz Lista kontrolna przeglądu projektu dotycząca optymalizacji kosztów.

W przypadku korzystania z orkiestratora płacisz za maszyny wirtualne uruchomione w klastrze. W przypadku korzystania z aplikacji bezserwerowej płacisz tylko za rzeczywiste używane zasoby obliczeniowe. W obu przypadkach należy uwzględnić koszt wszelkich dodatkowych usług, takich jak magazyn, bazy danych i usługi obsługi komunikatów.

Usługi Azure Functions, Container Apps i AKS zapewniają opcje skalowania automatycznego. Usługi Container Apps i Functions udostępniają platformy bezserwerowe, w których koszt jest oparty na użyciu i może wynosić zero. Usługa AKS udostępnia tylko dedykowane opcje obliczeniowe.

Jeśli wybierzesz usługę AKS jako platformę obliczeniową do wdrażania mikrousług, musisz poznać najlepsze rozwiązania dotyczące optymalizacji kosztów. Aby uzyskać więcej informacji, zobacz Optymalizowanie kosztów w usłudze Azure Kubernetes Service.

Jeśli wybierzesz usługę Container Apps jako platformę obliczeniową mikrousług, musisz zrozumieć różne modele rozliczeń i zdecydować się na model wdrażania dla mikrousług na podstawie wymagań dotyczących obciążenia. Aby uzyskać więcej informacji, zobacz Rozliczenia w usłudze Container Apps.

Jeśli wybierzesz usługę Azure Functions jako platformę obliczeniową mikrousług, musisz zrozumieć różne modele rozliczeniowe i zdecydować o planie usługi Functions na podstawie wymagań dotyczących obciążenia. Aby uzyskać więcej informacji, zobacz Szacowanie kosztów opartych na użyciu i szczegóły planu usługi Azure Functions.

Sprawność operacyjna

Doskonałość operacyjna obejmuje procesy operacyjne, które wdrażają aplikację i działają w środowisku produkcyjnym. Aby uzyskać więcej informacji, zobacz Lista kontrolna projektu dotycząca doskonałości operacyjnej.

Możesz wdrożyć wszystkie opcje obliczeniowe mikrousług opisane w tym artykule w zautomatyzowany sposób przy użyciu programu Terraform, Bicep i innych języków skryptów. Usługę Application Insights, usługę Azure Monitor i inne rozwiązania do monitorowania można używać do monitorowania tych platform obliczeniowych i mikrousług.

Podczas wybierania podejścia orkiestratora do podejścia bezserwerowego należy wziąć pod uwagę następujące czynniki:

  • Elastyczność i kontrola: Orkiestrator zapewnia kontrolę nad konfigurowaniem usług i klastrem oraz zarządzaniem nimi. Kompromis jest bardziej skomplikowany. W przypadku architektury bezserwerowej można zrezygnować z pewnego stopnia kontroli, ponieważ te szczegóły są abstrakcyjne.

  • Przenośność: wszystkie orkiestratory wymienione w tym artykule, w tym Kubernetes, DC/OS, Docker Swarm i Service Fabric, mogą działać lokalnie lub w wielu chmurach publicznych.

  • Integracja aplikacji: tworzenie złożonej aplikacji korzystającej z architektury bezserwerowej może być trudne, ponieważ trzeba koordynować, wdrażać i zarządzać wieloma małymi, niezależnymi funkcjami. Jedną z opcji na platformie Azure jest użycie usługi Azure Logic Apps do koordynowania zestawu funkcji platformy Azure. Aby zapoznać się z przykładem tego podejścia, zobacz Tworzenie funkcji zintegrowanej z usługą Logic Apps.

Następny krok