Wzorce projektowe chmury, które obsługują optymalizację kosztów
Podczas projektowania architektur obciążeń należy używać wzorców branżowych, które odpowiadają typowym wyzwaniom. Wzorce mogą pomóc w podejmowania zamierzonych kompromisów w ramach obciążeń i optymalizowania pod kątem żądanego wyniku. Mogą one również pomóc w ograniczeniu ryzyka wynikającego z określonych problemów, które mogą mieć wpływ na niezawodność, bezpieczeństwo, wydajność i operacje. Jeśli nie zostanie to złagodzone, ryzyko ostatecznie zwiększy koszty. Te wzorce są wspierane przez środowisko rzeczywiste, są przeznaczone dla modeli operacyjnych i skalowania w chmurze i są z natury niezależne od dostawcy. Używanie dobrze znanych wzorców jako sposobu standaryzacji projektu obciążenia jest składnikiem doskonałości operacyjnej.
Wiele wzorców projektowych bezpośrednio obsługuje jeden lub więcej filarów architektury. Wzorce projektowe, które obsługują filar optymalizacji kosztów, są zgodne z wdrażaniem korzystnych modeli rozliczeń, zmniejszeniem nadmiernej aprowizacji, zmianą wymiarów skalowania i maksymalizacją wartości podczas migracji.
Wzorce projektowe optymalizacji kosztów
W poniższej tabeli przedstawiono podsumowanie wzorców projektowych chmury, które obsługują cele optymalizacji kosztów.
Wzorzec | Podsumowanie |
---|---|
Sprawdzanie oświadczenia | Oddziela dane od przepływu obsługi komunikatów, zapewniając sposób oddzielnego pobierania danych związanych z komunikatem. Systemy obsługi komunikatów często nakładają limity rozmiaru komunikatów, a zwiększone limity rozmiaru są często funkcją premium. Zmniejszenie rozmiaru treści komunikatów może umożliwić korzystanie z tańszego rozwiązania do obsługi komunikatów. |
Konkurujący odbiorcy | Stosuje rozproszone i współbieżne przetwarzanie, aby efektywnie obsługiwać elementy w kolejce. Ten wzorzec może pomóc zoptymalizować koszty, włączając skalowanie oparte na głębokości kolejki, do zera, gdy kolejka jest pusta. Może również zoptymalizować koszty, umożliwiając ograniczenie maksymalnej liczby współbieżnych wystąpień konsumentów. |
Konsolidacja zasobów obliczeniowych | Optymalizuje i konsoliduje zasoby obliczeniowe, zwiększając gęstość. Ten wzorzec łączy wiele aplikacji lub składników obciążenia w udostępnionej infrastrukturze. W ten sposób maksymalizuje wykorzystanie zasobów obliczeniowych, unikając nieużywanej aprowizowanej pojemności za pośrednictwem agregacji składników, a nawet całych obciążeń w infrastrukturze w puli. Orkiestratory kontenerów są typowym przykładem. |
Odciążanie bramy | Odciąża przetwarzanie żądań do urządzenia bramy przed przekazaniem żądania do węzła zaplecza i po nim. Dodanie bramy odciążającej do procesu żądania umożliwia przekierowanie kosztów z zasobów, które zostaną wydane na węzeł do implementacji bramy. Koszty w modelu scentralizowanego przetwarzania są często niższe niż koszty modelu rozproszonego. |
Mostek obsługi komunikatów | Zapewnia pośrednika umożliwiającego komunikację między systemami obsługi komunikatów, które są w inny sposób niezgodne z powodu protokołu lub formatu. Ten pośrednik może zwiększyć długowieczność istniejącego systemu, jednocześnie umożliwiając współdziałanie z systemami korzystającymi z innej technologii obsługi komunikatów lub zdarzeń. |
Wydawca/subskrybent | Rozdziela składniki architektury, zastępując bezpośrednią komunikację klient-usługa lub klient-usługa z komunikacją za pomocą pośredniego brokera komunikatów lub magistrali zdarzeń. Ten projekt może umożliwić oparte na zdarzeniach podejście w architekturze, które dobrze łączy się z rozliczeniami opartymi na użyciu, aby uniknąć nadmiernej aprowizacji. |
Wyrównywanie obciążeń przy użyciu kolejki | Steruje poziomem przychodzących żądań lub zadań przez buforowanie ich w kolejce i umożliwienie procesorowi kolejki obsługi ich w kontrolowanym tempie. Ponieważ przetwarzanie obciążenia jest oddzielone od żądania lub wprowadzania zadań, można użyć tego podejścia, aby zmniejszyć potrzebę nadmiernej aprowizacji zasobów w celu obsługi szczytowego obciążenia. |
Dzielenie na fragmenty | Kieruje ładowanie do określonego logicznego miejsca docelowego w celu obsługi określonego żądania, włączając kolokację na potrzeby optymalizacji. System, który implementuje fragmenty, często korzysta z wielu wystąpień mniej kosztownych zasobów obliczeniowych lub magazynowych, a nie jednego droższego zasobu. W wielu przypadkach ta konfiguracja może zaoszczędzić pieniądze. |
Hosting zawartości statycznej | Optymalizuje dostarczanie zawartości statycznej do klientów obciążeń przy użyciu platformy hostingu, która jest przeznaczona do tego celu. Hosty aplikacji dynamicznych są zwykle droższe niż hosty statyczne, ponieważ hosty dynamiczne mogą uruchamiać zakodowaną logikę biznesową. Korzystanie z platformy aplikacji w celu dostarczania zawartości statycznej nie jest opłacalne. |
Drzewo figowe | Zapewnia podejście do systematycznego zastępowania składników działającego systemu nowymi składnikami, często podczas migracji lub modernizacji systemu. Celem tego podejścia jest maksymalizacja wykorzystania istniejących inwestycji w aktualnie uruchomiony system podczas modernizacji przyrostowej. Umożliwia wykonywanie zamian o wysokiej roI przed zamianami niskiego zwrotu z inwestycji. |
Ograniczanie przepływności | Nakłada limity szybkości lub przepływności przychodzących żądań do zasobu lub składnika. Limity mogą informować o modelowaniu kosztów, a nawet bezpośrednio powiązać z modelem biznesowym aplikacji. Umożliwiają one również jasne górne granice wykorzystania, które można uwzględnić w określaniu rozmiaru zasobów. |
Klucz portiera | Przyznaje dostęp ograniczony do zabezpieczeń do zasobu bez używania pośredniego zasobu do serwera proxy dostępu. Ten projekt odciąża przetwarzanie jako wyłączną relację między klientem a zasobem bez dodawania składnika do bezpośredniego obsługi wszystkich żądań klientów. Korzyść jest najbardziej dramatyczna, gdy żądania klientów są częste lub wystarczająco duże, aby wymagać znacznych zasobów serwera proxy lub serwer proxy nie dodaje wartości jako części żądania. |
Następne kroki
Przejrzyj wzorce projektowe chmury, które obsługują inne filary platformy Azure Well-Architected Framework: