Zalecenia dotyczące wybierania odpowiednich usług

Dotyczy tego zalecenia listy kontrolnej wydajności platformy Azure Well-Architected Framework:

PE:03 Wybierz odpowiednie usługi. Wybrane usługi, infrastruktura i warstwy muszą obsługiwać możliwość osiągnięcia celów wydajności obciążenia i uwzględnienia oczekiwanych zmian pojemności. Wybór powinien również ważyć korzyści wynikające z używania funkcji platformy lub tworzenia niestandardowej implementacji.

W tym przewodniku opisano zalecenia dotyczące wybierania odpowiednich usług dla obciążenia. Poniższe zalecenia pomagają wybrać usługi, które najlepiej spełniają wymagania i wymagania dotyczące obciążenia. Gdy używasz usług zaprojektowanych do obsługi wymagań obciążenia, możesz upewnić się, że obciążenie spełnia twoje cele dotyczące wydajności. Jeśli wybierzesz nieodpowiednie usługi dla obciążenia, usługi mogą nie być w stanie obsłużyć wymagań obciążenia. Niewystarczające usługi mogą prowadzić do powolnego czasu odpowiedzi, wąskich gardeł lub błędów obciążeń.

Definicje

Okres Definicja
Strefa dostępności Oddzielona grupa centrów danych w regionie. Każda strefa dostępności jest niezależna od innych, z własną infrastrukturą zasilania, chłodzenia i sieci. Wiele regionów obsługuje strefy dostępności.
Usługa obliczeniowa Usługa udostępniająca infrastrukturę, której potrzebujesz do uruchomienia aplikacji.
Usługa bazy danych Usługa, która udostępnia relacyjne i nierelacyjne bazy danych dla aplikacji.
Infrastruktura Fizyczne składniki przetwarzania w chmurze i lokalizacja geograficzna składników.
Infrastruktura jako usługa (IaaS) Usługa, w której klient jest odpowiedzialny za system operacyjny, tożsamość, aplikacje i sieć.
Platforma jako usługa (PaaS) Usługa, w której dostawca usług w chmurze jest odpowiedzialny za system operacyjny. Dostawca usług w chmurze ponosi odpowiedzialność za zarządzanie tożsamościami, aplikacjami i siecią.
Region (Region) Obwód geograficzny, który zawiera zestaw centrów danych.
Zasób Pojedyncza jednostka lub składnik, który można tworzyć, konfigurować i wykorzystywać w ramach dostawcy usług w chmurze.
Usługa Produkt lub oferta od dostawcy usług w chmurze.
Jednostka magazynowa (SKU) Warstwa usługi dla usługi platformy Azure.
Usługa magazynu Usługa, która zapewnia magazyn obiektów, bloków i plików.

Kluczowe strategie projektowania

Wybrane usługi powinny być zgodne z celami wydajności obciążenia i być dostosowywane do przyszłych potrzeb związanych z pojemnością. W miarę rozszerzania lub rozwoju obciążenia używane usługi powinny być zgodne ze standardami wydajności bez konieczności istotnych korekt. Rozważ równowagę między funkcjami platformy i implementacjami niestandardowymi. Funkcje platformy zapewniają natychmiastowe rozwiązania, ale niestandardowe opcje oferują precyzyjne dostosowywanie. Wybór usług powinien być zarówno do przodu, jak i dostosowany do konkretnych potrzeb, biorąc pod uwagę kompromisy między wygodą a dostosowaniem.

Informacje o wymaganiach dotyczących obciążeń

Zrozumienie wymagań dotyczących obciążeń odnosi się do zrozumienia wymagań technicznych i funkcjonalnych obciążenia. Ta analiza pomaga określić zasoby, magazyn, obliczenia, sieć i inne specyfikacje potrzebne do uruchomienia obciążenia. Dostosowanie usług do określonych potrzeb obciążenia pomaga zapobiegać nadmiernej aprowizacji lub niedostatecznie wykorzystywane zasoby.

Oceń potrzeby i cechy obciążenia, aby określić wymagania i dostosować wymagania dotyczące obciążenia do celów wydajności w każdej warstwie. Musisz uwzględnić ograniczenia lub zależności. Gdy rozumiesz wymagania dotyczące obciążenia, możesz podejmować świadome decyzje. Możesz określić właściwą infrastrukturę i wdrożyć strategie obsługi szczytowych obciążeń lub zmian zapotrzebowania.

  • Spełnianie celów dotyczących wydajności. Wybierz usługi, które umożliwiają spełnienie celów wydajności dla obciążenia. Upewnij się, że usługa może obsługiwać wymagania dotyczące wydajności i monitorować jej wydajność. Zbieranie danych wydajności dla krytycznych składników.

  • Rozważ ograniczenia organizacyjne. Zapoznaj się z ograniczeniami, które organizacja może mieć w przypadku wdrożonych usług. Podczas projektowania rozwiązania należy wziąć pod uwagę te ograniczenia.

  • Weź pod uwagę wymagania dotyczące zgodności i zabezpieczeń. Wymagania dotyczące zgodności i zabezpieczeń mogą mieć wpływ na wybrane usługi i konfiguracje. Upewnij się, że wybrana usługa spełnia wymagania związane z magazynem, szyfrowaniem, kontrolą dostępu, dziennikami inspekcji i lokalizacjami danych.

  • Weź pod uwagę umiejętności zespołu. Twój zespół tworzy i utrzymuje obciążenia. Różne usługi wymagają różnych umiejętności. Wybierz usługi, których twój zespół wie, jak używać, lub zobowiązać się do ich trenowania przed wybraniem usługi. Upewnij się, że członkowie zespołu posiadają wiedzę i wiedzę, aby efektywnie korzystać z usług i zoptymalizować ich wydajność.

Kompromis: Wyspecjalizowane usługi oferują określone funkcje, ale mogą ograniczać dostosowywanie. Elastyczne zasoby wymagają większej ilości zarządzania i konfiguracji w porównaniu z wyspecjalizowanymi usługami. Usługi zarządzane oferują łatwość zarządzania, ale możesz mieć mniejszą kontrolę nad podstawową infrastrukturą w porównaniu z zasobami zarządzanymi samodzielnie.

Omówienie usług

Zrozumienie usług polega na poznaniu możliwości, limitów i funkcjonalności narzędzi i ofert dostawcy. Znajomość usług ułatwia korzystanie z wbudowanych funkcji, co zmniejsza potrzebę tworzenia złożonych niestandardowych rozwiązań i poprawia wydajność.

Przed jego wybraniem należy wziąć pod uwagę różne czynniki i poznać kompleksową wiedzę na temat usługi. Badania i ocena usług i narzędzi, które oferuje dostawca. Określ, które usługi i narzędzia najlepiej pasują do wymagań dotyczących obciążenia. Rozważ czynniki, takie jak usługi zarządzane, opcje bezserwerowe i wyspecjalizowane usługi.

Omówienie limitów usług

Limity usług to wstępnie zdefiniowane progi lub granice ustawione przez dostawców usług. Limity usługi definiują maksymalne użycie zasobów lub możliwości w ramach tej usługi. Jeśli znasz limity usług, możesz uniknąć problemów, takich jak rywalizacja o zasoby, obniżenie wydajności lub nieoczekiwane przerwy w działaniu usługi. Możesz odpowiednio zaplanować i skalować infrastrukturę. Planowanie uwzględnia czynniki, takie jak ilość danych, pojemność przetwarzania i wymagania dotyczące rezydencji danych.

Preferuj funkcje platformy

Preferowanie funkcji platformy polega na używaniu wbudowanych funkcji udostępnianych przez dostawcę do obsługi określonych zadań bez kodu niestandardowego. Dostawcy projektują funkcje platformy do wydajnego obsługi określonych zadań na dużą skalę i regularnie obsługują te funkcje. Funkcje platformy umożliwiają lepsze korzystanie z możliwości infrastruktury w chmurze. Wybierz usługi, które umożliwiają odciążanie funkcji do platformy zamiast pisania i obsługi własnego kodu niestandardowego. W wielu przypadkach rozwiązania typu "platforma jako usługa" (PaaS) zapewniają lepszą wydajność niż kod niestandardowy. Kod niestandardowy zwiększa złożoność i sprawia, że obciążenie jest podatne na problemy z wydajnością. Twórz kod niestandardowy tylko wtedy, gdy funkcje usługi nie są wystarczające.

Kompromis: najlepszą usługą dla obciążenia może być technologia, na którą twój zespół nie jest wykwalifikowanych, nie może sobie pozwolić lub może wymagać dodatkowych warstw zabezpieczeń. Na przykład publiczny moduł równoważenia obciążenia może odpowiadać potrzebom w zakresie wydajności. Jeśli jednak nie masz zapory aplikacji internetowej, może być konieczne wdrożenie zapory w celu zabezpieczenia obciążenia.

Ocena wymagań dotyczących infrastruktury

Wydajność zasobów jest powiązana z infrastrukturą, w której się znajdują. Dzięki temu wybór odpowiedniej infrastruktury ma kluczowe znaczenie dla wydajności usługi. Ocena wymagań dotyczących infrastruktury oznacza zidentyfikowanie regionu geograficznego i stref dostępności, które najlepiej nadają się do obsługi obciążenia. Najważniejsze kwestie związane z tym podejmowaniem decyzji obejmują:

  • Omówienie regionów i stref dostępności. Każdy region odpowiada odrębnej lokalizacji geograficznej. Strefy dostępności reprezentują poszczególne fizyczne centra danych w danym regionie.

  • Model wdrażania w jednym regionie a model wdrażania w wielu regionach. Model wdrażania w jednym regionie wdraża wszystkie zasoby w jednym regionie. Model wdrażania w wielu regionach wdraża zasoby w wielu regionach. Wdrożenie w wielu regionach może zmniejszyć opóźnienie dla użytkowników końcowych i ograniczyć ograniczenia pojemności. Może jednak również zwiększyć koszt i złożoność obciążenia. Wybierz model wdrażania, który najlepiej odpowiada potrzebom obciążeń.

  • Omówienie dostępnych funkcji. Różne regiony mają różne dostępne funkcje, takie jak liczba usług i stref dostępności. Zapoznaj się z funkcjami dostępnymi w regionie przed jego wybraniem. Upewnij się, że region spełnia wymagania dotyczące wydajności obciążenia.

  • Rozważ opóźnienie. Opóźnienie, czas potrzebny na podróż ze źródła do miejsca docelowego zwiększa liczbę kolejnych usług. Usługi komunikujące się między regionami lub strefami dostępności mogą mieć większe opóźnienie. Zalecane jest identyfikowanie usług, które często komunikują się z nimi i pozycjonowanie ich w tym samym regionie. Ponadto wybranie regionu, który jest proporcjonalny do podstawowej bazy użytkowników, może zminimalizować opóźnienia, oferując lepsze środowisko użytkownika.

  • Omówienie mapowania centrum danych. Strefy dostępności mogą nie być mapowe spójnie na te same centra danych w różnych subskrypcjach. Na przykład "Strefa 1" w subskrypcji A może być inna niż "Strefa 1" w subskrypcji B. Podczas pracy z wieloma subskrypcjami należy znać te mapowania, aby wybrać strefy, które optymalnie wzmacniają wydajność.

Ocena wymagań dotyczących sieci

Oceń sieć, aby określić odpowiednie usługi i konfiguracje obciążeń. Upewnij się, że sieć może obsługiwać obciążenie. Aby ocenić wymagania dotyczące sieci, rozważ następujące kwestie:

  • Omówienie ruchu sieciowego. Oceń oczekiwany ruch sieciowy dla obciążenia. Poznaj potrzeby transferu danych i częstotliwość żądań sieciowych.

  • Informacje o wymaganiach dotyczących przepustowości. Określ wymagania dotyczące przepustowości dla obciążenia. Weź pod uwagę ilość danych przesyłanych i odbieranych przez sieć.

  • Informacje o opóźnieniu sieci. Oceń żądane opóźnienie dla obciążenia. Używaj prywatnych sieci wirtualnych i sieci szkieletowych zamiast przechodzenia przez publiczny Internet. Ta technika zmniejsza opóźnienie obciążenia.

  • Omówienie przepływności. Rozważ wymaganą przepływność dla obciążenia. Przepływność odnosi się do ilości danych, które można przesyłać za pośrednictwem sieci w danym czasie. Skonfiguruj opcje routingu sieciowego, aby korzystać z korzyści z przepływności sieci.

Kompromis: Prywatna sieć wirtualna ogranicza dostęp publiczny i utrudnia wdrażanie zasobów i zarządzanie nimi.

Ocena wymagań obliczeniowych

Ocena wymagań obliczeniowych obejmuje ocenę określonych potrzeb obliczeniowych obciążenia, w tym czynników, takich jak typ wystąpienia, skalowalność i konteneryzacja. Różne usługi obliczeniowe mają różne możliwości i cechy, które mogą mieć wpływ na wydajność obciążenia. Wybierz optymalną usługę obliczeniową, aby upewnić się, że obciążenie działa wydajnie. Rozważ następujące strategie:

  • Omówienie typów wystąpień. Różne typy wystąpień są zoptymalizowane pod kątem różnych obciążeń, takich jak zoptymalizowane pod kątem procesora CPU, zoptymalizowane pod kątem pamięci i wystąpienia procesora GPU. Wybierz typ wystąpienia, który jest zgodny z twoimi potrzebami.

  • Rozważ automatyczne skalowanie. Jeśli obciążenie ma zmienne zapotrzebowanie, rozważ usługę obliczeniową z funkcją automatycznego skalowania, która może automatycznie dostosować pojemność obliczeniową na podstawie zapotrzebowania. Automatyczne skalowanie pomaga zapewnić wystarczającą ilość zasobów w okresach szczytu i zapobiega nadmiernej aprowizacji w okresach niskiego zapotrzebowania.

  • Rozważ konteneryzację. Kontenery zapewniają korzyści z wydajnością w porównaniu z niekontenerowanym obciążeniem. Rozważ użycie konteneryzacji, jeśli odpowiada potrzebom architektury. Kontenery zwiększają wydajność obliczeń poprzez izolację, wydajność zasobów, szybki czas uruchamiania i przenośność.

    W przypadku korzystania z kontenerów należy wziąć pod uwagę czynniki projektowe, takie jak konteneryzowanie wszystkich składników aplikacji. Używaj środowisk uruchomieniowych kontenerów opartych na systemie Linux na potrzeby lekkich obrazów. Zapewnij kontenerom krótkie cykle życia, aby uczynić je niezmiennymi i zamienialnymi. Zbierz odpowiednie dzienniki i metryki z kontenerów, hostów kontenerów i bazowego klastra. Te dane służą do monitorowania i analizowania wydajności. Kontenery są tylko jednym składnikiem ogólnej architektury. Wybierz odpowiedni koordynator kontenerów, taki jak Kubernetes, aby zwiększyć wydajność i skalowalność.

    Korzyść kontenera Opis
    Izolacja Kontenery zapewniają izolowane środowiska dla aplikacji. Kontenery zapewniają, że zasoby aplikacji nie zakłócają siebie nawzajem. Ta izolacja zapewnia, że zasoby obliczeniowe przypisane do kontenera są przeznaczone do uruchamiania określonej aplikacji, co zapewnia lepszą wydajność.
    Efektywność zasobów Kontenery są lekkie i współużytkują jądro systemu operacyjnego hosta, co umożliwia efektywne wykorzystanie zasobów. Wiele kontenerów może działać w tej samej zwirtualizowanej infrastrukturze, co maksymalizuje wykorzystanie zasobów obliczeniowych.
    Szybki czas uruchamiania Obrazy kontenerów są wstępnie utworzone i są szybko uruchamiane w razie potrzeby. Ten szybki czas uruchamiania umożliwia szybką skalowalność. Umożliwia ona aplikacjom skalowanie w górę lub w dół na podstawie zapotrzebowania i unikanie wąskich gardeł wydajności.
    Przenośność Kontenery hermetyzują wszystkie wymagane zależności i biblioteki w obrazie. Dzięki kontenerom łatwiej jest przenosić aplikacje między różnymi systemami operacyjnymi lub środowiskami. Ta przenośność umożliwia elastyczność wdrażania aplikacji i umożliwia łatwą migrację między dostawcami usług w chmurze lub środowiskami lokalnymi.
  • Wybierz odpowiednią warstwę. W ramach każdej usługi obliczeniowej można ustawić pojemność obliczeniową, wybrać funkcje i włączyć możliwości. Na podstawie celów wydajności wybierz odpowiednią warstwę usługi dla usługi obliczeniowej.

  • Określ liczbę wystąpień. Określ minimalną liczbę wystąpień wymaganą przez obciążenie. Niektóre obciążenia, nawet przy minimalnym obciążeniu, mogą wymagać więcej niż jednego wystąpienia zasobu obliczeniowego. Ustaw odpowiednio minimalną liczbę wystąpień.

Ocena wymagań dotyczących równoważenia obciążenia

Równoważenie obciążenia zapewnia równomierną dystrybucję ruchu sieciowego i zapobiega przeciążeniu żądań przez każdy pojedynczy serwer. Równoważenie obciążenia pomaga zapobiegać wąskim gardłom i skracać czas odpowiedzi. Oceń różne usługi równoważenia obciążenia, które oferuje dostawca usług w chmurze. Zapoznaj się z dokumentacją i narzędziami do porównywania dostawcy usług w chmurze, aby zrozumieć funkcje. Wybierz najbardziej odpowiednią usługę dla obciążenia. Aby wybrać usługę równoważenia obciążenia, rozważ następujące kwestie:

  • Opis typu ruchu: określ, czy usługa równoważenia obciążenia musi obsługiwać ruch internetowy, taki jak HTTP i HTTPS, czy inne protokoły, takie jak Transmission Control Protocol (TCP) lub User Datagram Protocol (UDP).

  • Znajomość routingu globalnego lub regionalnego: określ, czy obciążenie wymaga równoważenia obciążenia w określonym regionie, czy w wielu regionach.

  • Znajomość celów poziomu usług (SLO): rozważ umowę dotyczącą poziomu usług (SLA). Różne usługi równoważenia obciążenia oferują różne poziomy wydajności.

  • Omówienie funkcji: Rozważ równoważenie obciążenia usług, które zapewniają przyspieszanie lokacji, optymalną dystrybucję ruchu i równoważenie obciążenia warstwy 4 o małych opóźnieniach.

Ocena wymagań dotyczących magazynu danych

Ocena wymagań dotyczących magazynu danych polega na ocenie konkretnych potrzeb i warunków przechowywania, pobierania i zarządzania danymi. Ta ocena uwzględnia czynniki, takie jak ilość danych, szybkość dostępu, spójność i trwałość. Obciążenie może wymagać wielu typów magazynów danych w zależności od różnych wymagań biznesowych i technicznych. Identyfikowanie odpowiednich usług magazynu danych i właściwej implementacji pomaga zapobiegać wąskim gardłom i zapewnia szybki dostęp do danych.

Ocena wymagań dotyczących bazy danych

Baza danych może mieć wpływ na czynniki, takie jak przechowywanie danych i pobieranie, przetwarzanie transakcji, gwarancje spójności i obsługa dużych lub szybko zmieniających się danych. Ocenianie potrzeb i kryteriów bazy danych. Wybierz system bazy danych, który może spełniać te wymagania. Przed wybraniem bazy danych należy ocenić wymagania dotyczące bazy danych. Aby ocenić wymagania bazy danych i wybrać odpowiednią bazę danych, wykonaj następujące kroki:

  • Identyfikowanie potrzeb związanych z obciążeniem. Poznaj określone wymagania dotyczące obciążenia, takie jak ilość danych, oczekiwane współczynniki transakcji, współbieżność, typy danych i oczekiwany wzrost. Oceń różne systemy baz danych na podstawie potrzeb związanych z obciążeniem. Jeśli na przykład obciążenie wymaga przetwarzania danych w czasie rzeczywistym o wysokiej wydajności, możesz wybrać system bazy danych zoptymalizowany pod kątem szybkiego pozyskiwania danych i małych opóźnień.

  • Rozważ model danych. Określ model danych, który najlepiej odpowiada obciążeniu. Oceń wymagania dotyczące bazy danych, aby upewnić się, że wybrana baza danych obsługuje wymagane struktury danych, relacje i ograniczenia integralności. Jeśli na przykład dane mają wysoce relacyjną strukturę, możesz wybrać system zarządzania relacyjnymi bazami danych (RDBMS), który zapewnia niezawodną obsługę transakcji i więzów integralności. Model danych może być hierarchiczny, sieciowy, relacyjny, obiektowy lub NoSQL. Ocena złożoności modelu danych. Upewnij się, że wybrana baza danych obsługuje wymagane struktury danych i relacje.

  • Oceń możliwości. Należy wziąć pod uwagę czynniki, takie jak wzorce odczytu/zapisu, złożoność zapytań, wymagania dotyczące opóźnień i potrzeby dotyczące skalowalności. Należy odpowiednio ocenić możliwości wydajności różnych systemów baz danych. Niektóre bazy danych są excel w obciążeniach z dużym obciążeniem odczytu, podczas gdy inne są zoptymalizowane pod kątem obciążeń intensywnie korzystających z zapisu lub analitycznych.

  • Oceń obciążenie. Rozważ czynniki, takie jak ilość danych, współczynniki transakcji, współczynniki odczytu/zapisu i oczekiwany wzrost. Wybierz bazę danych, która może obsłużyć przewidywane obciążenie, aby zapewnić bezproblemową operację i zapobiec wąskim gardłom wydajności podczas skalowania obciążenia. Weź pod uwagę wymagania dotyczące skalowalności obciążenia. Te wymagania obejmują przewidywany wzrost danych, współbieżny dostęp użytkowników oraz potrzebę skalowania w poziomie lub w pionie. Oceń opcje skalowalności i funkcje dostępności zapewniane przez różne systemy baz danych.

Ocena wymagań dotyczących magazynu

Wybierz usługi magazynu, które są zgodne ze wzorcami dostępu do danych, wymaganiami dotyczącymi trwałości i potrzebami dotyczącymi wydajności. Większość obciążeń w chmurze korzysta z kombinacji technologii magazynowania. Ta technika jest nazywana podejściem trwałości wielolotowej. Określ odpowiednią kombinację usług magazynu dla obciążenia. Warto również oddzielić dane, aby uniknąć zanieczyszczenia. Na przykład możesz mieć oddzielne konta magazynu na potrzeby monitorowania danych i danych biznesowych. Wybór odpowiedniej kombinacji i prawidłowej implementacji jest ważny w celu optymalizacji wydajności aplikacji.

Ocena wymagań dotyczących pamięci podręcznej

Pamięć podręczna przechowuje często używane dane. Buforowanie zmniejsza opóźnienie dostępu do danych i zmniejsza obciążenie składników magazynu danych. Umożliwia ona obciążeniu obsługę większej liczby żądań bez skalowania. Często buforowane są dane obciążenia i zawartość statyczna. Pamięć podręczna Redis Cache może przechowywać dane sesji, wyniki bazy danych, odpowiedzi interfejsu API i dane referencyjne, takie jak ustawienia konfiguracji. Sieć dostarczania zawartości lub statyczna aplikacja internetowa może buforować i obsługiwać zawartość statyczną. Rozważ buforowanie danych, aby zwiększyć wydajność obciążenia. Wybierz odpowiednią opcję buforowania dla obciążenia, preferując usługi buforowania platformy, takie jak Azure Redis Cache, za pośrednictwem niestandardowych lub hostowanych samodzielnie.

Ułatwienia dla platformy Azure

Informacje o wymaganiach: usługa Azure Monitor umożliwia zbieranie i analizowanie danych z obciążenia. Monitor zapewnia wgląd w wydajność i kondycję obciążeń, co pozwala identyfikować i rozwiązywać problemy.

Omówienie i ocenianie usług: Przejrzyj usługi i produkty platformy Azure, aby określić, czy spełniają one wymagania dotyczące wydajności. Platforma Azure oferuje kilka usług, które osiągają ten sam wynik. Masz możliwość dostosowania wybranej usługi do potrzeb związanych z wydajnością, zestawu umiejętności zespołu i wymagań dotyczących kosztów.

Aby uzyskać listę najbardziej typowych limitów platformy Azure, zobacz Limity, limity przydziału i ograniczenia subskrypcji i usług platformy Azure.

W przykładzie Limity zapytań i limity przydziału pokazano, jak wykonywać zapytania dotyczące limitów i przydziałów dla często używanych zasobów.

Platforma Azure oferuje wiele usług, które mogą pomieścić dowolne obciążenie. Zapoznaj się ze wskazówkami dotyczącymi wyboru dla każdego typu usługi, aby ułatwić wybór na podstawie wymagań. Zapoznaj się z następującymi przewodnikami, które należy wybrać:

Lista kontrolna dotycząca wydajności

Zapoznaj się z pełnym zestawem zaleceń.