Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Architekci projektują obciążenia, integrując usługi platformy, funkcje i kod w celu spełnienia wymagań funkcjonalnych i niefunkcjonalnych. Aby zaprojektować efektywne obciążenia, musisz zrozumieć te wymagania i wybrać topologie i metodologie, które odpowiadają wyzwaniom związanym z ograniczeniami obciążenia. Wzorce projektowe chmury zapewniają rozwiązania wielu typowych wyzwań.
Projekt systemu w dużym stopniu opiera się na ustalonych wzorcach projektowych. Infrastrukturę, kod i systemy rozproszone można zaprojektować przy użyciu kombinacji tych wzorców. Te wzorce mają kluczowe znaczenie dla tworzenia niezawodnych, wysoce bezpiecznych, zoptymalizowanych pod kątem kosztów, wydajnych operacyjnie i wysoko wydajnych aplikacji w chmurze.
Poniższe wzorce projektowe chmury są niezależne od technologii, co sprawia, że są odpowiednie dla dowolnego systemu rozproszonego. Te wzorce można zastosować na platformie Azure, innych platformach w chmurze, konfiguracjach lokalnych i środowiskach hybrydowych.
Jak wzorce projektowania chmury zwiększają proces projektowania
Obciążenia w chmurze są podatne na błędy przetwarzania rozproszonego, które są typowymi, ale niepoprawnymi założeniami dotyczącymi sposobu działania systemów rozproszonych. Przykłady tych fallacies obejmują:
- Sieć jest niezawodna.
- Opóźnienie wynosi zero.
- Przepustowość jest nieskończona.
- Sieć jest bezpieczna.
- Topologia nie zmienia się.
- Jest jeden administrator.
- Wersjonowanie składników jest proste.
- Implementacja możliwości obserwacji może być opóźniona.
Te błędne przekonania mogą spowodować wadliwe projekty obciążeń. Wzorce projektowe nie eliminują tych nieporozumień, ale pomagają podnieść świadomość, zapewnić strategie wynagrodzeń i zapewnić środki zaradcze. Każdy wzorzec projektu chmury ma kompromisy. Skoncentruj się na tym, dlaczego należy wybrać konkretny wzorzec, zamiast tego, jak go zaimplementować.
Zastanów się, jak używać tych standardowych wzorców projektowych jako podstawowych bloków konstrukcyjnych dla dobrze zaprojektowanego projektu obciążenia. Każdy wzorzec projektu w strukturze Azure Well-Architected Framework reprezentuje co najmniej jeden z jego filarów. Niektóre wzorce mogą wprowadzać kompromisy wpływające na cele innych filarów.
Wykaz wzorców
Każdy wzorzec w tym wykazie opisuje problem, który rozwiązuje, zagadnienia dotyczące stosowania wzorca oraz przykład na podstawie usług i narzędzi platformy Microsoft Azure. Niektóre wzorce obejmują przykłady kodu lub fragmenty kodu, które pokazują, jak zaimplementować wzorzec na platformie Azure.
| Wzorzec | Podsumowanie | filary struktury Well-Architected |
|---|---|---|
| Ambasador | Tworzenie usług pomocnika, które wysyłają żądania sieci w imieniu usługi lub aplikacji klienta. | -Niezawodność -Bezpieczeństwo |
| Warstwa antykorupcyjna | Implementowanie warstwy fasady lub adaptera między nowoczesną aplikacją a starszym systemem. | - Doskonałość operacyjna |
| Asynchroniczne żądanie-odpowiedź | Rozdziel przetwarzanie zaplecza od interfejsu użytkownika. Ten wzorzec jest przydatny, gdy procesy po stronie serwera muszą być asynchroniczne, ale interfejs użytkownika wymaga jasnej i terminowej odpowiedzi. | - Wydajność |
| Zaplecza dla interfejsów użytkownika | Utwórz oddzielne usługi zaplecza dla określonych aplikacji frontonu lub interfejsów. | -Niezawodność -Bezpieczeństwo - Wydajność |
| Gródź | Izoluj elementy aplikacji do pul, aby w przypadku awarii, pozostałe nadal działały. | -Niezawodność -Bezpieczeństwo - Wydajność |
| Odkładanie do pamięci podręcznej | Ładowanie danych na żądanie do pamięci podręcznej z magazynu danych. | -Niezawodność - Wydajność |
| Choreografia | Pozwól poszczególnym usługom decydować o tym, kiedy i w jaki sposób jest przetwarzana operacja biznesowa, a nie w zależności od centralnego koordynatora. | - Doskonałość operacyjna - Wydajność |
| Wyłącznik obwodu | Obsługa błędów, których naprawa może zająć różną ilość czasu, kiedy aplikacja łączy się z usługą zdalną lub zasobem. | -Niezawodność - Wydajność |
| Sprawdzanie oświadczenia | Podziel duży komunikat na kontrolkę dostępu i ładunek, aby uniknąć przeciążania magistrali wiadomości. | -Niezawodność -Bezpieczeństwo - Optymalizacja kosztów - Wydajność |
| Transakcja kompensacyjna | Cofnij pracę wykonywaną przez sekwencję kroków, które wspólnie tworzą ostatecznie spójną operację. | -Niezawodność |
| Konkurujący odbiorcy | Umożliwianie wielu współbieżnych odbiorców przetwarzania komunikatów odbieranych w tym samym kanale obsługi komunikatów. | -Niezawodność - Optymalizacja kosztów - Wydajność |
| Konsolidacja zasobów obliczeniowych | Skonsoliduj wiele zadań lub operacji w jednej jednostce obliczeniowej. | - Optymalizacja kosztów - Doskonałość operacyjna - Wydajność |
| CQRS | Oddzielaj operacje odczytujące dane od tych, które aktualizują dane przy użyciu odrębnych interfejsów. | - Wydajność |
| Znaczniki wdrożenia | Wdróż wiele niezależnych kopii składników aplikacji, w tym magazynów danych. | - Doskonałość operacyjna - Wydajność |
| Śledzenie zdarzeń | Użyj magazynu z możliwością tylko dopisywania, aby zarejestrować pełną serię zdarzeń opisujących działania wykonywane na danych w domenie. | -Niezawodność - Wydajność |
| Zewnętrzny magazyn konfiguracji | Przenoszenie informacji o konfiguracji z pakietu wdrożeniowego aplikacji do scentralizowanej lokalizacji. | - Doskonałość operacyjna |
| Tożsamość federacyjna | Powierzenie uwierzytelniania zewnętrznemu dostawcy tożsamości. | -Niezawodność -Bezpieczeństwo - Wydajność |
| Agregacja za pomocą bramy | Użyj bramy do agregowania wielu pojedynczych żądań w jedno żądanie. | -Niezawodność -Bezpieczeństwo - Doskonałość operacyjna - Wydajność |
| Odciążanie bramy | Odciążenie funkcji współdzielonych lub specjalistycznych usług na serwerze proxy bramy. | -Niezawodność -Bezpieczeństwo - Optymalizacja kosztów - Doskonałość operacyjna - Wydajność |
| Trasowanie bramy | Kierowanie żądań do wielu usług przy użyciu jednego punktu końcowego. | -Niezawodność - Doskonałość operacyjna - Wydajność |
| geode | Wdrażanie usług zaplecza w węzłach rozproszonych geograficznie. Każdy węzeł może obsługiwać żądania klientów z dowolnego regionu. | -Niezawodność - Wydajność |
| Monitorowanie stanu punktu końcowego | Implementowanie testów funkcjonalności w aplikacji, do których zewnętrzne narzędzia mogą uzyskiwać dostęp przez udostępniane punkty końcowe w regularnych odstępach czasu. | -Niezawodność - Doskonałość operacyjna - Wydajność |
| Tablica indeksów | Utwórz indeksy dla pól w magazynach danych, na które zapytania często się powołują. | -Niezawodność - Wydajność |
| Wybór lidera | Koordynuj akcje w aplikacji rozproszonej, wybierając jedno wystąpienie jako lider. Lider zarządza kolekcją współpracujących instancji zadań. | -Niezawodność |
| Zmaterializowany widok | Generowanie wstępnie wypełnionych widoków na danych w co najmniej jednym magazynie danych, gdy dane są słabo sformatowane na potrzeby wymaganych operacji zapytań. | - Wydajność |
| |
Utwórz pośrednika, aby umożliwić komunikację między systemami obsługi komunikatów, które w przeciwnym razie są niezgodne. | - Optymalizacja kosztów - Doskonałość operacyjna |
| Potoki i filtry | Podział zadania wykonującego złożone przetwarzanie na serię oddzielnych elementów, które mogą być używane ponownie. | -Niezawodność |
| Kolejka priorytetowa | Określanie priorytetów żądań wysyłanych do usług w celu szybszego przetwarzania żądań o wyższym prioryfikcie. | -Niezawodność - Wydajność |
| Wydawca/subskrybent | Umożliwia aplikacji ogłaszanie zdarzeń wielu odbiorców asynchronicznie bez sprzęgania nadawców z odbiornikami. | -Niezawodność -Bezpieczeństwo - Optymalizacja kosztów - Doskonałość operacyjna - Wydajność |
| Kwarantanna | Upewnij się, że zasoby zewnętrzne spełniają uzgodniony przez zespół poziom jakości, zanim obciążenie z nich zużyje. | -Bezpieczeństwo - Doskonałość operacyjna |
| Wyrównywanie obciążeń przy użyciu kolejki | Użyj kolejki, która tworzy bufor między zadaniem a usługą, aby wyrównać okresowe, duże obciążenia. | -Niezawodność - Optymalizacja kosztów - Wydajność |
| Ograniczanie szybkości | Unikaj lub minimalizuj błędy ograniczania przepustowości, kontrolując zużycie zasobów. | -Niezawodność |
| Spróbuj ponownie | Umożliwia aplikacjom obsługę przewidywanych tymczasowych niepowodzeń przez ponowienie próby operacji, które zakończyły się niepowodzeniem. | -Niezawodność |
| Saga | Zarządzanie spójnością danych między mikrousługami w scenariuszach transakcji rozproszonych. | -Niezawodność |
| Agent harmonogramu — nadzorca | Koordynowanie zestawu akcji między rozproszonymi usługami i zasobami. | -Niezawodność - Wydajność |
| Sekwencyjny konwój | Przetwarzanie zestawu powiązanych komunikatów w zdefiniowanej kolejności bez blokowania innych grup komunikatów. | -Niezawodność |
| Dzielenie na fragmenty | Dzielenie magazynu danych na zestaw poziomych partycji lub fragmentów. | -Niezawodność - Optymalizacja kosztów |
| Wózek boczny | Wdróż składniki w osobnym procesie lub kontenerze, aby zapewnić izolację i hermetyzację. | -Bezpieczeństwo - Doskonałość operacyjna |
| Hosting zawartości statycznej | Rozmieść zawartość statyczną do usługi magazynowania opartej na chmurze dla bezpośredniego dostarczania do klienta. | - Optymalizacja kosztów |
| Drzewo figowe | Przyrostowe migrowanie starszego systemu przez stopniowe zastępowanie elementów funkcjonalności nowymi aplikacjami i usługami. | -Niezawodność - Optymalizacja kosztów - Doskonałość operacyjna |
| Ograniczanie | Kontrolowanie zużycia zasobów z aplikacji, dzierżaw lub usług. | -Niezawodność -Bezpieczeństwo - Optymalizacja kosztów - Wydajność |
| Klucz parkingowy | Użyj tokenu lub klucza, aby zapewnić klientom ograniczony, bezpośredni dostęp do określonego zasobu lub usługi. | -Bezpieczeństwo - Optymalizacja kosztów - Wydajność |
Wzorce orkiestracji agenta sztucznej inteligencji
Powyższe wzorce projektowe chmury dotyczą typowych wyzwań związanych z systemami rozproszonymi, ale obciążenia sztucznej inteligencji korzystające z wielu agentów autonomicznych wymagają wyspecjalizowanych metod koordynacji. Tradycyjne wzorce, takie jak Scheduler Agent Supervisor lub Choreografia, zapewniają podstawowe pojęcia. Jednak agenci sztucznej inteligencji wprowadzają unikatowe wyzwania, takie jak nieokreślone dane wyjściowe, dynamiczne możliwości rozumowania i potrzebę inteligentnego przekazywania między wyspecjalizowanymi składnikami.
W przypadku obciążeń sztucznej inteligencji, które obejmują wielu agentów autonomicznych, zobacz Wzorce aranżacji agentów sztucznej inteligencji. Te wzorce uzupełniają wzorce projektowe chmury w tym wykazie, spełniając określone wymagania dotyczące koordynacji inteligentnych, autonomicznych składników, które współpracują ze sobą w celu osiągnięcia złożonych wyników.
Dalsze kroki
Przejrzyj wzorce projektowe z perspektywy filaru Well-Architected Framework, który wzorzec ma na celu zoptymalizować.
- wzorce projektowe do obsługi filaru niezawodności
- wzorce projektowe do obsługi filaru zabezpieczeń
- wzorce projektowe do obsługi filaru optymalizacji kosztów
- wzorce projektowe do wspierania filaru doskonałości operacyjnej
- wzorce projektowe wspierające filar wydajności operacyjnej