Udostępnij za pośrednictwem


Perspektywa frameworka Well-Architected w usłudze Azure Service Fabric

Azure Service Fabric to platforma systemów rozproszonych, która ułatwia pakowanie, wdrażanie skalowalnych i niezawodnych mikrousług i kontenerów oraz zarządzanie nimi. Te zasoby są wdrażane w połączonym z siecią zestawie maszyn wirtualnych lub fizycznych, który jest nazywany klastrem .

W tym artykule założono, że jako architekt_ka przejrzałeś/-aś drzewo decyzyjne obliczeń i wybrałeś/-aś Service Fabric jako platformę obliczeniową dla swojego obciążenia. Wskazówki zawarte w tym artykule zawierają zalecenia dotyczące architektury odnoszące się do zasad filarów Well-Architected Framework.

Ważny

Jak używać tego przewodnika

Każda sekcja zawiera listę kontrolną projektu , która przedstawia zagadnienia dotyczące architektury wraz ze strategiami projektowania zlokalizowanymi w zakresie technologii.

Dostępne są również zalecenia dotyczące możliwości technologicznych, które mogą pomóc zmaterializować te strategie. Zalecenia nie reprezentują wyczerpującej listy wszystkich konfiguracji, które są dostępne dla usługi Azure Service Fabric i jej zależności. Zamiast tego przedstawiają listę kluczowych zaleceń dopasowywanych do perspektyw projektowych. Skorzystaj z zaleceń, aby utworzyć weryfikację koncepcji lub zoptymalizować istniejące środowiska.

Podstawowa architektura, która demonstruje kluczowe zalecenia: architektura mikrousług w usłudze Azure Service Fabric.

zakres technologii

Ten przegląd koncentruje się na powiązanych decyzjach dotyczących następujących zasobów platformy Azure:

  • Service Fabric

Notatka

Ten przewodnik po usłudze opiera się na wskazówkach zawartych w przewodniku usługi Virtual Machines i zestawów skalowalnych. Węzły usługi Service Fabric są wspierane przez zestawy skalowania maszyn wirtualnych, dlatego zapoznaj się z tym przewodnikiem dotyczącym usługi, aby uzyskać zalecenia dotyczące obsługi zaplecza obliczeniowego dla węzłów usługi Service Fabric.

Podczas omawiania zagadnień związanych z architekturą i zaleceń dotyczących konfiguracji w usłudze Azure Service Fabric ważne jest, aby rozróżniać klaster i obciążenie . Konfiguracja klastra jest współdzieloną odpowiedzialnością między administratorem klastra usługi Service Fabric a dostawcą zasobów, podczas gdy konfiguracja obciążenia jest domeną dewelopera. Usługa Azure Service Fabric ma uwagi i zalecenia dotyczące obu tych ról.

Na liście kontrolnej projektu i liście zaleceń poniżej objaśnienia są podejmowane w celu wskazania, czy każdy wybór ma zastosowanie do architektury klastra, architektury obciążenia, czy obu tych elementów.

Niezawodność

Celem filaru niezawodności jest zapewnienie ciągłej funkcjonalności przez budowanie wystarczającej odporności i możliwość szybkiego odzyskiwania po awariach.

zasady projektowania niezawodności zapewniają ogólną strategię projektowania stosowaną dla poszczególnych składników, przepływów systemowych i całego systemu.

Lista kontrolna projektu

Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu pod kątem niezawodności. Określ jego znaczenie dla wymagań biznesowych, pamiętając o [aspektach specyficznych dla oferty]. Rozszerz strategię w celu uwzględnienia większej liczby podejść zgodnie z potrzebami.

  • (Klaster) Określ odpowiedni poziom niezawodności dla klastra na podstawie ogólnej metryki docelowej niezawodności dla obciążenia. Poziom niezawodności zidentyfikowanego klastra będzie określać minimalną liczbę węzłów do wdrożenia dla typu węzła podstawowego. Zapoznaj się z dokumentacją dotyczącą planowania pojemności , aby dowiedzieć się więcej o dokonywaniu tych ustaleń.
  • (Klaster) W przypadku obciążeń krytycznych rozważ użycie stref dostępności dla klastrów usługi Service Fabric.
  • (Klaster) W przypadku scenariuszy produkcyjnych użyj jednostki SKU standardowego klastra zarządzanego z warstwą trwałości Silver (5 maszyn wirtualnych) lub wyższą. Ta jednostka SKU oferuje wyższe możliwości niezawodności niż podstawowa jednostka SKU, która powinna być używana w scenariuszach nieprodukcyjnych.
  • (Klaster) Utwórz dodatkowe, drugorzędne typy węzłów dla obciążeń, aby odizolować różne typy obciążeń. Może to pomóc w oddzieleniu usług frontonu od usług zaplecza, co pozwala na niezależne zarządzanie tymi usługami i skalowanie ich. Każdy typ węzła jest wspierany przez własny zestaw skalowania.

Zalecenia

Zalecenie Korzyść
(Klaster) Usługa API Management (APIM) może zintegrować bezpośrednio z usługą Service Fabric. Rozważ użycie go do uwidaczniania i odciążania funkcjonalności przekrojowych dla interfejsów API hostowanych w klastrze. APIM to brama aplikacji bogata w funkcje, która pomaga bezpiecznie publikować, zarządzać i monitorować interfejsy API wdrożone w klastrze usługi Service Fabric.
(Obciążenie) W przypadku scenariuszy obciążeń stanowych rozważ użycie Reliable Services. Model usług Reliable Services pozwala na utrzymanie ich działania nawet w przypadku awarii systemu, problemów z siecią lub gdy same usługi ulegają awariom. W przypadku usług stanowych stan jest zachowywany w przypadku awarii.

Bezpieczeństwo

Celem filaru Zabezpieczenia jest zapewnienie poufności, integralności i gwarancji dostępności dla zadania.

Zasady projektowania zabezpieczeń zapewniają strategię projektowania wysokiego poziomu w celu osiągnięcia tych celów, stosując podejścia do projektu technicznego usługi Service Fabric.

Lista kontrolna projektu

Bazuj strategię projektowania na liście kontrolnej przeglądu projektowego dla zabezpieczeń.

  • (Klaster i obciążenie) Zapoznaj się ze wskazówkami dotyczącymi zabezpieczeń produktów usługi Service Fabric. Zobacz najlepsze praktyki w zakresie bezpieczeństwa, scenariusze zabezpieczeń klastra oraz zabezpieczenia aplikacji i usług Service Fabric .
  • (Klaster) Stosowanie segmentacji sieci i kontroli przez skonfigurowanie sieciowych grup zabezpieczeń, aby ograniczyć przepływ ruchu sieciowego między podsieciami i typami węzłów.
  • (Klaster) Bezpiecznie zarządzaj tajemnicami aplikacji i certyfikatami klientów przy użyciu narzędzi natywnych. Tajemnice aplikacji powinny być zarządzane za pomocą Magazynu Tajemnic Service Fabric, a certyfikaty powinny być zarządzane za pomocą usługi Key Vault.
  • (Klaster) Rozważ wprowadzenie własnego modułu równoważenia obciążenia, co umożliwia użycie wewnętrznego modułu równoważenia obciążenia i zdefiniowanie różnych modułów równoważenia obciążenia i sieciowych grup zabezpieczeń dla każdego typu węzła.
  • (Klaster) Bezpiecznie kontroluj dostęp do klastra, włączając integrację z firmą Microsoft Entra, umożliwiając użytkownikom uwierzytelnianie przy użyciu poświadczeń entra. Alternatywnie można użyć certyfikatów klienta klastra i administratora. Nie rozpowszechniaj certyfikatów klienta klastra wśród użytkowników narzędzia Service Fabric Explorer.
  • (Klaster i obciążenie) Utwórz proces monitorowania daty wygaśnięcia certyfikatów klienta.
  • (Klaster i obciążenie pracą) Utrzymuj oddzielne klastry do rozwoju, testowania i produkcji. Środowiska produkcyjne zwykle wymagają bardziej rygorystycznych mechanizmów kontroli zabezpieczeń niż środowiska nieprodukcyjne, a izolowanie środowisk od siebie zapewnia dodatkową warstwę zabezpieczeń na wypadek naruszenia jednego ze środowisk.

Zalecenia

Zalecenie Korzyść
(Klaster) Upewnij się, że właściwe porty są otwarte na potrzeby wdrażania i działań aplikacji. Ta konfiguracja gwarantuje, że komunikacja między zasobami usługi Service Fabric a resztą obciążenia jest zabezpieczona.
(Klaster) W przypadku używania magazynu wpisów tajnych usługi Service Fabric do dystrybucji wpisów tajnych należy użyć oddzielnego certyfikatu szyfrowania danych , aby zaszyfrować wartości. Użycie oddzielnego certyfikatu szyfrowania zapewnia izolację między certyfikatami, zmniejszając ryzyko wystąpienia pojedynczego punktu awarii i umożliwiając bardziej szczegółową kontrolę dostępu.
(Klaster) Zastosuj listę kontroli dostępu (ACL) do certyfikatu klienta dla klastra usługi Service Fabric. Użycie listy ACL zapewnia dodatkowy poziom uwierzytelniania, co umożliwia bardziej szczegółową kontrolę nad tym, kto może uzyskiwać dostęp do certyfikatów.
(Klaster) Użyj żądań zasobów i limitów, aby zarządzać użyciem zasobów w węzłach w klastrze. Wymuszanie limitów zasobów pomaga zagwarantować, że jedna usługa nie zużywa zbyt wielu zasobów i nie głoduje innych usług.
(Obciążenie) Uwzględnij certyfikaty klienta w aplikacjach usługi Service Fabric. Używanie przez aplikacje certyfikatów klientowskich do uwierzytelniania zapewnia możliwości zabezpieczeń zarówno na poziomie klastra, jak i na poziomie obciążenia.
(Obciążenie) Uwierzytelnianie aplikacji usługi Service Fabric w zasobach platformy Azure przy użyciu tożsamości zarządzanej. Użycie tożsamości zarządzanej umożliwia bezpieczne zarządzanie poświadczeniami w kodzie na potrzeby uwierzytelniania w różnych usługach bez zapisywania ich lokalnie na stacji roboczej dewelopera lub kontroli źródła.
(Klaster i obciążenie) W przypadku hostowania niezaufanych aplikacji użyj najsilniejszej technologii piaskownicy, usuń dostęp do środowiska uruchomieniowego usługi Service Fabric i postępuj zgodnie z innymi najlepszymi rozwiązaniami Service Fabric. Poniższe najlepsze rozwiązania pomagają zapewnić, że tylko zaufane i zweryfikowane aplikacje mogą wchodzić w interakcje z krytycznymi składnikami, ograniczając wpływ niezaufanych aplikacji z lukami w zabezpieczeniach lub złośliwym kodem, które mogą mieć na normalne działanie klastra.

Optymalizacja kosztów

Optymalizacja kosztów koncentruje się na wykrywaniu wzorców wydatków, określaniu priorytetów inwestycji w krytycznych obszarach i optymalizacji w innych w celu spełnienia budżetu organizacji przy jednoczesnym spełnieniu wymagań biznesowych.

Zasady projektowania optymalizacji kosztów zapewniają strategię projektowania wysokiego poziomu w celu osiągnięcia tych celów i podejmowania kompromisów zgodnie z potrzebami w projekcie technicznym związanym z usługą Service Fabric i jego środowiskiem.

Lista kontrolna projektu

Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu dla optymalizacji kosztów dla inwestycji. Dostosuj projekt tak, aby obciążenie było dostosowane do budżetu przydzielonego dla obciążenia. Projekt powinien korzystać z odpowiednich możliwości platformy Azure, monitorować inwestycje i znajdować możliwości optymalizacji w czasie.

  • (Obciążenie i klaster) Szacowanie kosztu intowego przy użyciu kalkulatora cen platformy Azure . Opłaty są naliczane tylko za wystąpienia obliczeniowe, magazyn, zasoby sieciowe i adresy IP wybrane podczas tworzenia klastra usługi Service Fabric. Za usługę oferowaną przez samą Service Fabric nie są naliczane opłaty. Aby ułatwić rozpoczęcie modelowania kosztów, zobacz przykładowy proces obliczania kosztów na potrzeby planowania aplikacji.
  • (Klaster) Wybierz odpowiednie SKU maszyn wirtualnych. Wybierz maszyny wirtualne na podstawie właściwości obciążenia. Czy obciążenie intensywnie korzysta z procesora, czy uruchamia procesy, które można przerywać?
  • (Klaster) Wybierz odpowiednie jednostki SKU klastra. Używaj warstwy Standardowa dla środowisk produkcyjnych i Podstawowa dla środowisk nieprodukcyjnych, chyba że istnieje przekonujący powód, aby zrobić inaczej. Używaj odpowiednich typów i rozmiarów węzłów w każdym środowisku.
  • (Klaster i obciążenie) Wybierz odpowiednie warstwy i rozmiary dysków zarządzanych. Zapoznaj się z przewodnikiem usługi zapory aplikacji internetowej dla magazynu dysków. Unikaj używania SKU maszyn wirtualnych z ofertami dysków tymczasowych, aby nie płacić za niepotrzebne zasoby.

Zalecenia

Zalecenie Korzyść
(Klaster) Jeśli nie masz wymagań dotyczących utrzymywania stanu, rozważ wybranie SKU maszyny wirtualnej z obsługą tymczasowego dysku . Wykorzystaj w pełni zasoby, za które płacisz. Użycie dysku tymczasowego zamiast dysku zarządzanego może obniżyć koszty obciążeń bezstanowych.
(Klaster i robocze obciążenie) Dopasuj wybór jednostki SKU maszyny wirtualnej do wymagań roboczego obciążenia. Upewnij się, że zidentyfikowałeś prawidłowe typy węzłów, które są hostowane w zestawach skalowania , aby spełniać twoje wymagania. Dopasowanie wyboru do wymagań dotyczących obciążeń pomaga uniknąć płacenia za kosztowne jednostki SKU maszyn wirtualnych, których być może nie potrzebujesz.
(Klaster i obciążenie) Dopasuj wybór typu dysku z wymaganiami dotyczącymi obciążenia. Wybranie odpowiedniego typu dysku zarządzanego pomaga uniknąć płacenia za kosztowne typy, których być może nie potrzebujesz.

Doskonałość operacyjna

Doskonałość operacyjna koncentruje się głównie na procedurach praktyk rozwojowych, obserwowalności i zarządzania wydaniami.

Zasady projektowania doskonałości operacyjnej oferują wysoko zaawansowaną strategię projektowania, która pozwala osiągnąć cele dotyczące wymagań operacyjnych obciążenia.

Lista kontrolna projektu

Rozpocznij strategię projektowania na podstawie listy kontrolnej przeglądu projektu dla doskonałości operacyjnej do definiowania procesów pod kątem obserwacji, testowania i wdrażania związanego z usługą Service Fabric.

  • (Klaster i obciążenie) Integrowanie składników usługi Service Fabric, w tym klastrów, powiązanej infrastruktury i samej aplikacji, z platformą monitorowania i alertów. Aby uzyskać szczegółowe wskazówki, zobacz artykuł dotyczący najlepszych rozwiązań dotyczących monitorowania .
  • (Klaster i obciążenie) Użyj modelu kondycji usługi Service Fabric, aby stale monitorować kondycję rozwiązania. To narzędzie powinno uzupełniać ogólny model kondycji obciążenia
  • (Klaster i obciążenie) Utwórz proces monitorowania daty wygaśnięcia certyfikatów klienta. Na przykład usługa Key Vault oferuje funkcję, która wysyła wiadomość e-mail po upływie x% cyklu życia certyfikatu.
  • (Klaster i obciążenie) Użyj praktyk ciągłej integracji i ciągłego wdrażania, aby zarządzać wdrożeniami klastra. Użyj dedykowanego narzędzia, takiego jak Azure Pipelines lub Github Actions, do zarządzania potokami ciągłej integracji/ciągłego wdrażania, które umożliwia centralne zarządzanie wszystkimi wdrożeniami obciążeń we wszystkich środowiskach przy użyciu odpowiednich strategii kontroli źródła.

Zalecenia

Zalecenie Korzyść
(Obciążenie) Użyj usługi Application Insights, aby monitorować obciążenia. Usługa Application Insights zapewnia kompleksowe monitorowanie wydajności aplikacji (APM) dla aplikacji internetowych na żywo, co umożliwia zbieranie i analizowanie danych telemetrycznych aplikacji, zwiększanie kondycji aplikacji i monitorowania wydajności.
(Klaster i obciążenie) Użyj usługi Azure Monitor, aby monitorować zdarzenia infrastruktury klastra i kontenera. Usługa Azure Monitor udostępnia kompleksowe funkcje monitorowania i diagnostyki, które umożliwiają zbieranie i analizowanie dzienników i metryk z aplikacji i infrastruktury platformy Azure. Usługa Azure Monitor dobrze integruje się z platformą Azure, w tym z usługą Service Fabric.
(Klaster) Zaimplementuj odpowiednie zasady kondycji klastra w ramach modelowania kondycji. Zasady umożliwiają dostosowanie sposobu interpretowania błędów z perspektywy kondycji klastra. Można na przykład ustawić maksymalną tolerowaną wartość procentową węzłów, które mogą być w złej kondycji, zanim klaster zostanie uznany za błędny.
(Klaster) Zaimplementuj odpowiednie polityki zdrowotne aplikacji i typu usługi w ramach modelowania kondycji. Zasady kondycji aplikacji opisują sposób oceny zdarzeń i agregacji stanów podrzędnych dla aplikacji i ich elementów podrzędnych. Usługa Service Fabric zakłada, że jednostka jest w złej kondycji, jeśli ma raport kondycji lub element podrzędny w stanie kondycji ostrzeżenia lub błędu.
(Klaster i obciążenie) Użyj Azure Chaos Studio, aby wprowadzić awarie do rozwiązania w ramach strategii testowania. Celowo wprowadzenie awarii do rozwiązania pomoże zidentyfikować potencjalne punkty awarii i przećwiczyć miary reagowania na zdarzenia.
(Klaster i obciążenie) Użyj usługi Azure Pipelines na potrzeby rozwiązania do ciągłej integracji i wdrażania (CI/CD). Korzystanie z narzędzia ciągłej integracji/ciągłego wdrażania, takiego jak Azure Pipelines, ułatwia efektywne, spójne i bezpieczne zarządzanie wdrożeniami. Usługa Azure Pipelines ma natywną obsługę wdrożeń usługi Service Fabric.

Wydajność

Wydajność działania polega na utrzymaniu doświadczenia użytkownika nawet przy wzroście obciążenia dzięki zarządzaniu obciążeniem. Strategia obejmuje skalowanie zasobów, identyfikowanie i optymalizowanie potencjalnych wąskich gardeł oraz optymalizowanie pod kątem szczytowej wydajności.

Zasady projektowania wydajności zapewniają strategię projektowania wysokiego poziomu w celu osiągnięcia tych celów wydajności w porównaniu z oczekiwanym użyciem.

Lista kontrolna projektu

Rozpocznij strategię projektową na podstawie listy kontrolnej przeglądu projektu pod kątem efektywności wydajnościowej. Zdefiniuj punkt odniesienia oparty na kluczowych wskaźnikach wydajności dla usługi Service Fabric.

  • (Klaster) Korzystaj z optymalizacji wydajności i ulepszania funkcji zgodnie z wymaganiami obciążenia. Zapoznaj się z przewodnikiem usługi VM, aby uzyskać zalecenia dotyczące podstawowej platformy obliczeniowej.
  • (Klaster) Wdróż maszyny wirtualne i rozmiary dysków spełniające wymagania dotyczące wydajności bez ponoszenia niepotrzebnych wydatków na nieużywaną pojemność. Upewnij się, że będzie można łatwo dodać pojemność, aby spełnić przyszłe plany rozwoju.
  • (Obciążenie) Zapoznaj się z modelami programowania obsługiwanymi przez usługę Service Fabric i wybierz najlepszy model dla wymagań dotyczących obciążenia. Każdy model programowania ma unikatowe zalety i wady, a konkretne wymagania dotyczące obciążenia mogą być zgodne z jednym modelem lepszym niż inne.
  • (Obciążenie) Użyj ustalonych wzorców architektury chmury, aby zaprojektować obciążenie. mikrousługi, oparte na zdarzeniachi wzorce architektury przetwarzania w tle są dobrymi kandydatami do projektowania aplikacji usługi Service Fabric.

Zalecenie

Zalecenie Korzyść
(Klaster) Wykluczanie procesów usługi Service Fabric uruchomionych na maszynach wirtualnych z systemem Windows z usługi Windows Defender, jeśli zasady zabezpieczeń umożliwiają wykluczanie procesów i ścieżek oprogramowania open source. Wykluczanie procesów usługi Service Fabric zmniejsza wpływ na wydajność i obciążenie związane z zużyciem zasobów przez usługę Windows Defender
(Klaster) Rozważ użycie Autoskalowania dla klastra, aby na żądanie dodawać lub usuwać węzły w ramach typu węzła pomocniczego. Skalowanie automatyczne zmniejsza obciążenie związane z zarządzaniem i potencjalnym wpływem na działalność biznesową przez monitorowanie i optymalizowanie ilości węzłów obsługujących obciążenie.
(Klaster) Rozważ użycie Accelerated Networking. Przyspieszone sieciowanie umożliwia wysokowydajną ścieżkę, która pomija hosta, co zmniejsza opóźnienia, opóźnienie przesyłu oraz wykorzystanie procesora dla najbardziej wymagających obciążeń sieciowych.
(Klaster) Rozważ użycie szyfrowania na hoście zamiast usługi Azure Disk Encryption (ADE). Szyfrowanie na hoście ulepsza usługę ADE przez obsługę wszystkich typów i obrazów systemu operacyjnego, w tym obrazów niestandardowych, dla maszyn wirtualnych przez szyfrowanie danych w usłudze Azure Storage.
(Obciążenie) Zaimplementuj modele programowania usługi Service Fabric najlepiej dopasowane do obciążenia. Wybranie odpowiedniego modelu programowania umożliwia korzystanie z wbudowanych funkcji, które obsługują wymagania dotyczące obciążeń, takie jak zarządzanie stanem, współbieżność i ponowne użycie istniejącej bazy kodu. Możesz również upewnić się, że standardy wdrażania są utrzymywane, wybierając model programowania zgodny z tymi standardami.
(Klaster i obciążenie) Zaimplementuj skalowanie, aby spełnić wymagania biznesowe. Znajdź odpowiedni mechanizm skalowania dla twojego obciążenia.. Skalowanie umożliwia maksymalne wykorzystanie zasobów dla twojego rozwiązania.

Zasady platformy Azure

Platforma Azure udostępnia obszerny zestaw wbudowanych zasad związanych z usługą Service Fabric i jej zależnościami. Niektóre z wcześniejszych zaleceń można sprawdzić za pomocą usługi Azure Policy. Możesz na przykład sprawdzić, czy:

  • Klastry Service Fabric są skonfigurowane do nadmiarowości strefowej.
  • Klastry usługi Service Fabric mają właściwość ClusterProtectionLevel ustawioną na EncryptAndSign.
  • Klastry usługi Service Fabric są skonfigurowane do używania tylko usługi Azure Active Directory do uwierzytelniania klienta.

Aby uzyskać kompleksowy ład, zapoznaj się z wbudowanymi definicjami Azure Policy dla usługi Service Fabric i innymi zasadami, które mogą mieć wpływ na bezpieczeństwo [obszaru infrastruktury chmurowej].

Rekomendacje usługi Azure Advisor

Azure Advisor to spersonalizowany konsultant ds. chmury, który pomaga stosować najlepsze rozwiązania w celu zoptymalizowania wdrożeń platformy Azure. Poniżej przedstawiono kilka zaleceń, które mogą pomóc zwiększyć niezawodność, bezpieczeństwo, efektywność kosztową, wydajność i doskonałość operacyjną usługi Service Fabric.

Zapoznaj się z artykułem Opcje konfiguracji klastra zarządzanego usługi Azure Service Fabric, aby zapoznać się z listą wszystkich dostępnych opcji podczas tworzenia i obsługi klastra.

Zapoznaj się z podstawami architektury aplikacji platformy Azure , aby uzyskać wskazówki, jak opracowywać obciążenia robocze. Chociaż usługa Service Fabric może być używana wyłącznie jako platforma hostingu kontenerów, korzystanie z dobrze zaprojektowanych obciążeń wykorzystuje pełną funkcjonalność usługi Service Fabric.

Użyj tych zaleceń podczas tworzenia klastra zarządzanego usługi Service Fabric przy użyciu szablonu usługi ARM lub za pośrednictwem witryny Azure Portal: