Wzorce projektowe w chmurze, 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 umyślnym kompromisie w ramach obciążeń i zoptymalizować odpowiedni wynik. Mogą również pomóc w ograniczeniu ryzyka pochodzą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 w końcu zwiększy koszty. Te wzorce są wspierane przez środowisko rzeczywiste, są przeznaczone do skalowania i modeli operacyjnych 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 co najmniej jeden filar architektury. Wzorce projektowe, które obsługują filar optymalizacji kosztów, są zgodne z implementowaniem korzystnych modeli rozliczeniowych, 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 projektowania chmury, które obsługują cele optymalizacji kosztów.

Wzorce 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 wiadomości 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 w celu wydajnego obsługi elementów 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. Dzięki temu 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 jego przekazaniu. 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 scentralizowanym modelu przetwarzania są często niższe niż koszty modelu rozproszonego.
Mostek obsługi komunikatów Udostępnia pośrednika w celu umożliwienia komunikacji 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 przez zastąpienie bezpośredniej komunikacji między klientem a usługami lub klient-usługa za pomocą brokera komunikatów pośrednich lub magistrali zdarzeń. Ten projekt może umożliwić podejście oparte na zdarzeniach 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 Kontroluje poziom żądań przychodzących lub zadań, buforując je w kolejce i pozwalając procesorowi kolejki obsłużyć je w kontrolowanym tempie. Ponieważ przetwarzanie obciążenia jest oddzielone od żądania lub wprowadzania zadań, można użyć tego podejścia, aby zmniejszyć konieczność nadmiernej aprowizacji zasobów w celu obsługi szczytowego obciążenia.
Dzielenie na fragmenty Kieruje obciążenie do określonego miejsca docelowego logicznego 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ń 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 przeznaczonej 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 obecnie uruchomiony system podczas modernizacji przyrostowej. Umożliwia wykonywanie zamian wysokiego zwrotu z inwestycji przed zamianami niskiego zwrotu z inwestycji.
Ograniczanie przepływności Nakłada limity szybkości lub przepływności żądań przychodzących do zasobu lub składnika. Limity mogą informować o modelowaniu kosztów, a nawet bezpośrednio związane z modelem biznesowym aplikacji. Umieszczają również jasne górne granice wykorzystania, które można uwzględnić w określaniu rozmiaru zasobów.
Klucz portiera Udziela ograniczonego zabezpieczeń dostępu 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.

Następne kroki

Przejrzyj wzorce projektowania chmury, które obsługują inne filary platformy Azure Well-Architected Framework: