Zalecenia dotyczące optymalizowania kosztów skalowania

Dotyczy tej rekomendacji z listy kontrolnej optymalizacji kosztów platformy Azure Well-Architected Framework:

CO:12 Optymalizowanie kosztów skalowania. Oceń alternatywne skalowanie w jednostkach skalowania. Rozważ alternatywne konfiguracje skalowania i dostosuj je do modelu kosztów. Zagadnienia powinny obejmować wykorzystanie dla dziedziczynych limitów każdego wystąpienia, zasobu i granicy jednostki skalowania. Używaj strategii kontrolowania popytu i podaży.

Ten przewodnik zawiera zalecenia dotyczące optymalizowania kosztów skalowania. Optymalizacja kosztów optymalizacji skalowania to proces usuwania nieefektywności w skalowaniu obciążeń. Celem jest zmniejszenie kosztów skalowania, jednocześnie spełniając wszystkie wymagania niefunkcjonalne. Wydaj mniej, aby uzyskać ten sam wynik. Optymalizacja skalowania pozwala uniknąć niepotrzebnych wydatków, nadmiernej aprowizacji i odpadów. Pomaga również zapobiec nieoczekiwanym wzrostom kosztów poprzez kontrolowanie popytu i ograniczanie podaży. Nieefektywne praktyki skalowania mogą prowadzić do zwiększenia kosztów obciążeń i operacyjnych oraz negatywnie wpływać na ogólną kondycję finansową obciążenia.

Definicje

Okres Definicja
Skalowanie automatyczne Podejście do skalowania, które automatycznie dodaje lub usuwa zasoby po spełnieniu zestawu warunków.
Metryki kosztów Dane liczbowe związane z kosztami obciążenia.
Skalowanie w dół Strategia skalowania w pionie, która przenosi się do niższej jednostki SKU w celu zapewnienia mniejszej ilości zasobów do obciążenia.
Skalowanie w pionie Strategia skalowania w poziomie, która usuwa wystąpienia w celu zapewnienia mniejszej ilości zasobów do obciążenia.
Skalowanie w poziomie Strategia skalowania w poziomie, która dodaje wystąpienia w celu zapewnienia większej ilości zasobów do obciążenia.
Jednostka skalowania Grupa zasobów, które są skalowane proporcjonalnie do siebie.
Skalowanie w górę Strategia skalowania w pionie, która przechodzi do wyższej jednostki SKU w celu zapewnienia większej ilości zasobów do obciążenia.
Jednostka magazynowa (SKU) Warstwa usługi dla usługi platformy Azure.
Dane użycia Dane użycia to informacje bezpośrednie (rzeczywiste) lub pośrednie/reprezentatywne (proxy) dotyczące ilości używanego zadania, usługi lub aplikacji.

Kluczowe strategie projektowania

Celem optymalizacji skalowania kosztów jest skalowanie w górę i w poziomie w ostatnim odpowiedzialnym momencie oraz skalowanie w dół i w dół, jak tylko jest to praktyczne. Aby zoptymalizować skalowanie dla obciążenia, możesz ocenić alternatywne opcje skalowania w jednostkach skalowania i dopasować je do modelu kosztów. Jednostka skalowania reprezentuje określoną grupę zasobów, które można skalować niezależnie lub razem. Należy zaprojektować jednostki skalowania w celu obsługi określonej ilości obciążenia i mogą składać się z wielu wystąpień, serwerów lub innych zasobów. Należy ocenić efektywność kosztów jednostek skalowania obciążeń i alternatywnych modeli.

Jeśli nie używasz skalowania, zobacz wskazówki dotyczące skalowania obciążenia. Musisz ustalić, czy aplikacja może być skalowana. Aplikacje bezstanowe są łatwiejsze do skalowania, ponieważ mogą obsługiwać wiele żądań jednocześnie. Ponadto należy ocenić, czy aplikacja jest tworzona przy użyciu zasad systemów rozproszonych. Systemy rozproszone mogą obsługiwać zwiększone obciążenie, rozkładając obciążenie między wiele węzłów. Jednak pojedyncza aplikacja została zaprojektowana tak, aby w danym momencie było uruchomione tylko jedno wystąpienie. Dlatego skalowanie może nie być odpowiednie dla wszystkich obciążeń.

Ocena skalowania w poziomie i skalowania w górę

Ocena skalowania w poziomie i skalowania w górę obejmuje określenie najbardziej ekonomicznego podejścia między zwiększeniem zasobów w istniejącym systemie (skalowanie w górę) lub dodanie większej liczby wystąpień tego systemu (skalowanie w poziomie) na podstawie różnych czynników, takich jak ceny, wymagania dotyczące obciążenia i akceptowalny przestój. Wybór odpowiedniego podejścia do skalowania może prowadzić do znacznych oszczędności, zapewniając, że płacisz tylko za to, czego potrzebujesz, jednocześnie spełniając standardy wydajności i niezawodności.

Celem jest określenie najbardziej ekonomicznego wyboru na podstawie cen warstwy usług, cech obciążenia, akceptowalnego przestoju i modelu kosztów. Dla niektórych może być bardziej ekonomiczne, aby zdecydować się na droższe wystąpienia w mniejszej liczbie. Z drugiej strony, dla innych, tańsza warstwa z większą liczbie wystąpień może być lepsza. Aby podjąć świadomą decyzję, należy przeanalizować rzeczywiste lub reprezentatywne dane z konfiguracji i ocenić względne zalety każdej strategii. Aby ocenić najbardziej ekonomiczne podejście, rozważ następujące zalecenia:

  • Zbieranie danych użycia: zbieranie rzeczywistych danych produkcyjnych lub danych serwera proxy reprezentujących wzorce użycia obciążenia i wykorzystanie zasobów. Te dane powinny obejmować metryki, takie jak użycie procesora CPU, użycie pamięci, ruch sieciowy i inne istotne metryki wpływające na koszt skalowania.

  • Definiowanie metryk kosztów: zidentyfikuj metryki kosztów, które są istotne dla obciążenia, takie jak koszt za godzinę, koszt za transakcję lub koszt użycia zasobów. Te metryki ułatwiają porównanie efektywności kosztów różnych opcji skalowania.

  • Zbieranie danych użycia: zbieranie rzeczywistych danych produkcyjnych lub danych serwera proxy reprezentujących wzorce użycia obciążenia i wykorzystanie zasobów. Te dane powinny obejmować metryki, takie jak użycie procesora CPU, użycie pamięci, ruch sieciowy i inne istotne metryki wpływające na koszt skalowania

  • Definiowanie metryk kosztów: zidentyfikuj metryki kosztów, które są istotne dla obciążenia, takie jak koszt za godzinę, koszt za transakcję lub koszt użycia zasobów. Te metryki pomagają porównać efektywność kosztów różnych opcji skalowania.

  • Zapoznaj się z wymaganiami: podczas podejmowania decyzji dotyczących strategii skalowania w poziomie i skalowania w górę należy wziąć pod uwagę wymagania dotyczące niezawodności, wydajności i skalowania obciążenia. Skalowanie w górę może zwiększyć niezawodność dzięki nadmiarowości. Skalowanie w górę zwiększa pojemność zasobu, ale może istnieć limity, ile można skalować w górę.

  • Rozważ limity zasobów: podczas oceniania opcji skalowania ważne jest, aby wziąć pod uwagę nieodłączne limity każdego wystąpienia, zasobu i granicy jednostki skalowania. Należy pamiętać o górnych limitach skalowania dla każdego zasobu i odpowiednio zaplanować. Ponadto należy pamiętać o limitach subskrypcji i innych zasobów.

  • Skalowanie testów: tworzenie testów dla różnych scenariuszy skalowania, w tym opcji skalowania w poziomie i skalowania w górę. Zastosowanie danych użycia symuluje zachowanie obciążenia w różnych konfiguracjach skalowania. Przeprowadzanie rzeczywistych testów przy użyciu modelowanych scenariuszy skalowania.

  • Oblicz koszty: użyj zebranych danych i metryk kosztów, aby obliczyć koszty skojarzone z każdą konfiguracją skalowania. Rozważ czynniki, takie jak cennik wystąpienia, wykorzystanie zasobów i wszelkie dodatkowe koszty związane ze skalowaniem.

Optymalizowanie skalowania automatycznego

Optymalizacja zasad skalowania automatycznego polega na uściśliniu skalowania automatycznego w celu reagowania na zmiany obciążenia w oparciu o wymagania niefunkcjonalne obciążenia. Możesz ograniczyć nadmierne działania skalowania, dostosowując progi i używając odpowiedniego okresu chłodzenia. Aby zoptymalizować skalowanie automatyczne, rozważ następujące zalecenia:

  • Przeanalizuj bieżące zasady skalowania automatycznego: Poznaj istniejące zasady i jego zachowanie w odpowiedzi na różne poziomy obciążenia.

  • Zapoznaj się z wymaganiami niefunkcjonalnymi: zidentyfikuj określone wymagania niefunkcyjne, które należy wziąć pod uwagę, takie jak czas odpowiedzi, wykorzystanie zasobów lub koszt.

  • Dostosowywanie progów skalowania: dostosuj progi skalowania na podstawie właściwości obciążenia i wymagań niefunkcjonalnych. Ustaw progi skalowania w górę lub w dół na podstawie czynników, takich jak wykorzystanie procesora CPU w czasie, ruch sieciowy lub długość kolejki.

  • Dostosuj okres ochładzania: dostosuj okres ochładzania, aby zapobiec nadmiernemu skalowaniu działań wyzwalanych przez tymczasowe skoki obciążenia. Okres ochładzania wprowadza opóźnienie między zdarzeniami skalowania, co pozwala systemowi ustabilizować się przed dalszymi akcjami skalowania.

  • Monitorowanie i dostosowywanie: ciągłe monitorowanie zachowania i wydajności systemu. Przeanalizuj działania skalowania i dostosuj zasady zgodnie z potrzebami, aby zoptymalizować koszty i spełnić żądane wymagania niefunkcjonalne.

Kompromis: zmniejszenie liczby zdarzeń skalowania zwiększa szanse na napotkanie problemów związanych ze skalowaniem. Oznacza to, że eliminujesz dodatkową poduszkę lub bufor, który może pomóc w zarządzaniu potencjalnymi problemami lub opóźnieniami ze skalowania.

Rozważ skalowanie oparte na zdarzeniach

Skalowanie automatyczne oparte na zdarzeniach umożliwia aplikacji dynamiczne dostosowywanie zasobów na podstawie określonych zdarzeń lub wyzwalaczy, a nie tradycyjnych metryk, takich jak użycie procesora CPU lub pamięci. Na przykład rozwiązanie Kubernetes oparte na zdarzeniach autoskalowanie (KEDA) może skalować aplikacje na podstawie skalowania na podstawie skalowania, takich jak długość tematu platformy Kafka. Precyzja pomaga zapobiegać niepotrzebnym wahaniom skalowania i marnowaniu zasobów. Wysoki poziom precyzji ostatecznie optymalizuje koszty. Aby użyć skalowania opartego na zdarzeniach, wykonaj następujące kroki:

  • Wybierz źródło zdarzeń: określ źródło zdarzeń, które wyzwala skalowanie jednostki skalowania. Źródłem może być kolejka komunikatów, platforma przesyłania strumieniowego lub dowolny inny system oparty na zdarzeniach.

  • Konfigurowanie pozyskiwania zdarzeń: skonfiguruj aplikację do korzystania ze zdarzeń z wybranego źródła zdarzeń. Zwykle wiąże się to z nawiązaniem połączenia, subskrybowaniem odpowiednich tematów lub kolejek oraz przetwarzaniem zdarzeń przychodzących.

  • Implementowanie logiki skalowania: napisz logikę określającą, kiedy i jak jednostka skalowania powinna być skalowana na podstawie zdarzeń przychodzących. Ta logika powinna uwzględniać czynniki, takie jak liczba zdarzeń, częstotliwość zdarzeń przychodzących lub inne istotne metryki.

  • Integracja z mechanizmami skalowania: w zależności od środowiska uruchomieniowego aplikacji można użyć różnych mechanizmów skalowania, aby dostosować zasoby przydzielone do aplikacji.

  • Konfigurowanie reguł skalowania: zdefiniuj reguły skalowania, które określają sposób skalowania jednostki skalowania w odpowiedzi na zdarzenia. Te reguły mogą być oparte na progach, wzorcach lub innych kryteriach, które są zgodne z wymaganiami aplikacji. Progi skalowania powinny być powiązane z metrykami biznesowymi. Jeśli na przykład dodasz jeszcze dwa wystąpienia, możesz obsługiwać 50 kolejnych użytkowników w przetwarzaniu koszyka zakupów.

  • Testowanie i monitorowanie: zweryfikuj zachowanie implementacji skalowania opartego na zdarzeniach, testując ją przy użyciu różnych scenariuszy zdarzeń. Monitoruj akcje skalowania i upewnij się, że akcje są zgodne z oczekiwaniami.

Kompromis Konfigurowanie i dostrajanie automatycznego skalowania opartego na zdarzeniach może być złożone, a niewłaściwa konfiguracja może prowadzić do nadmiernej aprowizacji lub niedostatecznej aprowizacji zasobów.

Optymalizowanie popytu i podaży

Kontroluj popyt na podaż. W przypadku obciążeń, w których użycie określa skalowanie, koszt jest skorelowany ze skalowaniem. Aby zoptymalizować koszty skalowania, można zminimalizować wydatki na skalowanie. Zapotrzebowanie można odciążyć, dystrybuując zapotrzebowanie na inne zasoby lub zmniejszając zapotrzebowanie, implementując kolejki priorytetów, odciążanie bramy, buforowanie i ograniczanie szybkości. Obie strategie mogą zapobiegać niepożądanym kosztom ze względu na skalowanie i zużycie zasobów. Możesz również kontrolować dostarczanie, ograniczając limity skalowania. Aby zoptymalizować zapotrzebowanie i dostawy obciążeń, należy wziąć pod uwagę następujące zalecenia.

Odciążanie zapotrzebowania

Odciążanie zapotrzebowania odnosi się do praktyki dystrybucji lub przenoszenia zapotrzebowania na zasoby do innych zasobów lub usług. Można użyć różnych technologii lub strategii:

  • Buforowanie: buforowanie służy do przechowywania często używanych danych lub zawartości, co zmniejsza obciążenie infrastruktury zaplecza. Na przykład użyj sieci dostarczania zawartości (CDN), aby buforować i obsługiwać zawartość statyczną, co zmniejsza potrzebę skalowania zaplecza. Jednak nie każde obciążenie może buforować dane. Obciążenia, które wymagają aktualnych i aktualnych danych w czasie rzeczywistym, takich jak obciążenia związane z handlem lub grami, nie powinny używać pamięci podręcznej. Buforowane dane byłyby stare i nieistotne dla użytkownika.

    Kompromis. Buforowanie może powodować wyzwania związane z unieważnieniem pamięci podręcznej, spójnością i zarządzaniem wygaśnięciem pamięci podręcznej. Ważne jest, aby starannie zaprojektować i wdrożyć strategie buforowania, aby uniknąć potencjalnych kompromisów.

  • Odciążanie zawartości: odciążanie zawartości do usług zewnętrznych lub platform w celu zmniejszenia obciążenia infrastruktury. Na przykład zamiast przechowywać pliki wideo na serwerze podstawowym, można hostować te pliki w oddzielnej usłudze magazynu, która jest niezależna od serwera podstawowego. Te duże pliki można załadować bezpośrednio z usługi magazynu. Takie podejście zwalnia zasoby na serwerach, umożliwiając korzystanie z mniejszego serwera. Przechowywanie dużych plików w oddzielnym magazynie danych może być tańsze. Aby zwiększyć wydajność, można użyć sieci CDN.

  • Równoważenie obciążenia: dystrybuuj żądania przychodzące na wielu serwerach przy użyciu równoważenia obciążenia. Równoważenie obciążenia równomiernie dystrybuuje obciążenie i uniemożliwia przeciążenie każdego pojedynczego serwera. Moduły równoważenia obciążenia optymalizują wykorzystanie zasobów i zwiększają wydajność infrastruktury.

  • Odciążanie bazy danych: zmniejsz obciążenie głównego serwera aplikacji, odciążając operacje bazy danych na oddzielny serwer bazy danych lub wyspecjalizowaną usługę. Na przykład użyj sieci CDN do buforowania zawartości statycznej i pamięci podręcznej Redis na potrzeby buforowania zawartości dynamicznej (danych z bazy danych). Techniki, takie jak fragmentowanie baz danych, repliki do odczytu lub korzystanie z zarządzanych usług baz danych, mogą również zmniejszyć obciążenie.

    Kompromis: Odciążanie określonych zadań do alternatywnych zasobów pomaga zmniejszyć lub uniknąć dodatkowego skalowania i kosztów związanych ze skalowaniem. Należy jednak wziąć pod uwagę wyzwania związane z operacjami i konserwacją, które mogą wynikać z odciążania. Przeprowadzenie kompleksowej analizy kosztów i korzyści ma kluczowe znaczenie podczas wybierania najbardziej odpowiednich technik odciążania obciążenia. Ta analiza zapewnia, że wybrana metoda jest zarówno wydajna, jak i wykonalna w odniesieniu do przewidywanych oszczędności i złożoności operacyjnych.

Zmniejszanie zapotrzebowania

Zmniejszenie zapotrzebowania na zasoby oznacza wdrożenie strategii, które pomagają zminimalizować wykorzystanie zasobów w obciążeniu. Odciążanie zapotrzebowania przenosi zapotrzebowanie na inne zasoby. Zmniejszenie zapotrzebowania zmniejsza zapotrzebowanie na obciążenie. Zmniejszenie zapotrzebowania pozwala uniknąć nadmiernej aprowizacji zasobów i płacenia za nieużywaną lub niedostatecznie wykorzystywaną pojemność. Aby zmniejszyć zapotrzebowanie na zasoby obciążenia, należy użyć wzorców projektowych na poziomie kodu. Aby zmniejszyć zapotrzebowanie na wzorce projektowe, wykonaj następujące kroki:

  • Omówienie wzorców projektowych: Zapoznaj się z różnymi wzorcami projektowymi, które promują optymalizację zasobów.

  • Analizowanie wymagań dotyczących obciążeń: oceń określone wymagania dotyczące obciążenia, w tym oczekiwane wzorce zapotrzebowania, szczytowe obciążenia i potrzeby dotyczące zasobów.

  • Wybierz odpowiednie wzorce projektowe: wybierz wzorce projektowe zgodne z wymaganiami i celami obciążenia. Jeśli na przykład obciążenie doświadcza wahań zapotrzebowania, wzorce skalowania i ograniczania zdarzeń mogą pomóc w zarządzaniu obciążeniem przez dynamiczne przydzielanie zasobów. Zastosuj wybrane wzorce projektowe do architektury obciążenia. Może być konieczne oddzielenie składników obciążenia, konteneryzowanie aplikacji, optymalizowanie wykorzystania magazynu i nie tylko.

  • Ciągłe monitorowanie i optymalizowanie: Regularnie oceniaj skuteczność wdrożonych wzorców projektowych i dostosowuj je zgodnie z potrzebami. Monitorowanie użycia zasobów, metryk wydajności i możliwości optymalizacji kosztów.

Wykonując te kroki i korzystając z odpowiednich wzorców projektowych, można zmniejszyć zapotrzebowanie na zasoby, zoptymalizować koszty i zapewnić wydajną obsługę ich obciążeń.

Użyj tych wzorców projektowych, aby zmniejszyć zapotrzebowanie:

  • Odkładanie do pamięci podręcznej: wzorzec sprawdza pamięć podręczną, aby sprawdzić, czy dane są już przechowywane w pamięci. Jeśli dane znajdują się w pamięci podręcznej, aplikacja może szybko pobrać i zwrócić dane, zmniejszając konieczność wykonywania zapytań względem trwałego magazynu danych.

  • Sprawdzanie oświadczeń: oddzielając dane od przepływu obsługi komunikatów, ten wzorzec zmniejsza rozmiar komunikatów i obsługuje bardziej ekonomiczne rozwiązanie do obsługi komunikatów.

  • Konkurujący użytkownicy: ten wzorzec efektywnie obsługuje elementy w kolejce przez zastosowanie rozproszonego i współbieżnego przetwarzania. Ten wzorzec projektowy optymalizuje koszty, skalując je na podstawie głębokości kolejki i ustawiając limity maksymalnej liczby współbieżnych wystąpień odbiorców.

  • Konsolidacja zasobów obliczeniowych: ten wzorzec zwiększa gęstość i konsoliduje zasoby obliczeniowe przez połączenie wielu aplikacji lub składników w udostępnionej infrastrukturze. Maksymalizuje wykorzystanie zasobów, unikając nieużywanej aprowizowanej pojemności i zmniejszając koszty.

  • Sygnatury wdrażania: korzystanie z sygnatur wdrażania zapewnia kilka zalet, takich jak rozproszone geograficznie grupy urządzeń, wdrażanie nowych funkcji w określonych sygnaturach i obserwowanie kosztów na urządzenie. Sygnatury wdrażania umożliwiają lepszą skalowalność, odporność na uszkodzenia i efektywne wykorzystanie zasobów.

  • Odciążanie bramy: ten wzorzec odciąża przetwarzanie żądań w urządzeniu bramy, przekierowując koszty z zasobów na węzeł do implementacji bramy. Użycie tego wzorca projektowego może spowodować obniżenie kosztów posiadania w modelu scentralizowanego przetwarzania.

  • Wydawca/subskrybent: ten wzorzec rozdziela składniki w architekturze, zastępując bezpośrednią komunikację z pośrednim brokerem komunikatów lub magistralą zdarzeń. Umożliwia ona oparte na zdarzeniach podejście i rozliczenia oparte na użyciu, co pozwala uniknąć nadmiernej aprowizacji.

  • Bilansowanie obciążenia opartego na kolejce: wzorzec buforuje przychodzące żądania lub zadania w kolejce. Buforowanie zmniejsza obciążenie i zmniejsza potrzebę nadmiernej aprowizacji zasobów w celu obsługi szczytowego obciążenia. Żądania przychodzące są przetwarzane asynchronicznie w celu zmniejszenia kosztów.

  • Fragmentowanie: ten wzorzec kieruje określone żądania do logicznego miejsca docelowego, co pozwala na optymalizacje z kolokacją danych. Fragmentowanie może prowadzić do oszczędności kosztów dzięki użyciu wielu wystąpień zasobów obliczeniowych lub magazynowych o niższej specyfikacji.

  • Hosting zawartości statycznej: ten wzorzec zapewnia wydajną zawartość statyczną przy użyciu platformy hostingu zaprojektowanej do tego celu. Pozwala uniknąć korzystania z droższych hostów aplikacji dynamicznych, optymalizowania wykorzystania zasobów.

  • Ograniczanie przepustowości: ten wzorzec ogranicza szybkość (ograniczanie szybkości) lub przepływność żądań przychodzących do zasobu lub składnika. Ułatwia ona modelowanie kosztów i może być powiązana bezpośrednio z modelem biznesowym aplikacji.

  • Klucz portiera: ten wzorzec zapewnia bezpieczny i wyłączny dostęp do zasobu bez angażowania większej liczby składników, zmniejszając potrzebę pośredniczących zasobów i zwiększając wydajność.

Zasilanie sterujące

Zdefiniowanie górnego limitu kwoty, którą chcesz wydać na określony zasób lub usługę, jest jednym ze sposobów kontrolowania dostaw. Jest to ważna strategia kontrolowania kosztów i zapewnienia, że wydatki nie przekraczają określonego poziomu. Ustanów budżet i monitoruj wydatki, aby upewnić się, że pozostają w ramach zdefiniowanej kwoty. Możesz użyć platform zarządzania kosztami, alertów budżetowych lub śledzenia wzorców użycia i wydatków. Niektóre usługi umożliwiają ograniczanie liczby dostaw i limitów, a te funkcje należy używać tam, gdzie jest to przydatne.

Kontrolowanie podaży odnosi się do definiowania górnego limitu kwoty, którą chcesz wydać na określony zasób lub usługę. Jest to ważna strategia, ponieważ pomaga kontrolować koszty i zapewnia, że wydatki nie przekraczają określonego poziomu. Ustanów budżet i monitoruj wydatki, aby upewnić się, że pozostają one w ramach zdefiniowanego progu. Możesz użyć platform zarządzania kosztami, alertów budżetowych lub śledzenia wzorców użycia i wydatków. Niektóre usługi umożliwiają ograniczanie liczby dostaw i limitów, a te funkcje należy używać tam, gdzie jest to przydatne.

Kompromis: Bardziej rygorystyczne limity mogą spowodować niewykorzystane możliwości skalowania w przypadku wzrostu zapotrzebowania, co może mieć wpływ na środowisko użytkownika. Może to spowodować zamknięcie lub nie można odpowiedzieć na obciążenie. Ważne jest, aby zachować równowagę między optymalizacją kosztów a zapewnieniem, że masz wystarczające zasoby, aby zaspokoić potrzeby biznesowe.

Ułatwienia dla platformy Azure

Ocenianie skalowania w poziomie i skalowania w górę: platforma Azure udostępnia środowisko testowe, w którym można wdrażać i testować różne konfiguracje skalowania. Korzystając z rzeczywistych danych obciążenia lub danych serwera proxy, można symulować rzeczywiste scenariusze i mierzyć wpływ na koszty. Platforma Azure oferuje narzędzia i usługi do testowania wydajnościowego, testowania obciążenia i monitorowania, które mogą ułatwić ocenę opłacalności opcji skalowania w poziomie i skalowania w górę.

Platforma Azure udostępnia rekomendacje dotyczące zarządzania kosztami za pomocą różnych narzędzi i usług, takich jak Azure Advisor. Te zalecenia analizują wzorce użycia, wykorzystanie zasobów i konfiguracje skalowania, aby zapewnić szczegółowe informacje i sugestie dotyczące optymalizacji kosztów.

Azure Load Testing to w pełni zarządzana usługa do testowania obciążenia, która generuje obciążenie na dużą skalę. Usługa symuluje ruch dla aplikacji, niezależnie od tego, gdzie są hostowane. Deweloperzy, testerzy i inżynierowie kontroli jakości (QA) mogą używać testów obciążeniowych do optymalizowania wydajności, skalowalności lub pojemności aplikacji.

Optymalizacja skalowania automatycznego: wiele usług obliczeniowych platformy Azure obsługuje wdrażanie wielu identycznych wystąpień oraz szybkie dostrajanie progów i zasad skalowania. Platforma Azure udostępnia funkcje skalowania automatycznego, które umożliwiają automatyczne dostosowywanie liczby wystąpień lub zasobów na podstawie zapotrzebowania na obciążenie. Możesz zdefiniować reguły i progi skalowania w celu wyzwolenia akcji skalowania w poziomie lub skalowania w poziomie. Korzystając z skalowania automatycznego, można zoptymalizować alokację zasobów i efektywność kosztową przez dynamiczne skalowanie zasobów na podstawie rzeczywistego zapotrzebowania.

Platforma Azure utrzymuje listę limitów subskrypcji i usług. Istnieje ogólny limit liczby wystąpień zasobu, które można wdrożyć w każdej grupie zasobów z pewnymi wyjątkami. Aby uzyskać więcej informacji, zobacz Limity wystąpień zasobów na grupę zasobów.

Optymalizacja zapotrzebowania i podaży: usługa Azure Monitor zapewnia wgląd w wydajność i kondycję aplikacji i infrastruktury. Usługa Azure Monitor umożliwia monitorowanie obciążenia zasobów i analizowanie trendów w czasie. Korzystając z metryk i dzienników zbieranych przez usługę Azure Monitor, możesz zidentyfikować obszary, w których mogą być potrzebne korekty skalowania. Te informacje mogą kierować uściśleniem zasad skalowania automatycznego, aby upewnić się, że są zgodne z wymaganiami niefunkcjonalnymi i celami optymalizacji kosztów.

  • Odciążanie dostaw: platforma Azure ma nowoczesną usługę Content Delivery Network (CDN) w chmurze o nazwie Azure Front Door i usługi buforowania (Azure Cache for Redis i Azure HPC Cache). Usługa CDN buforuje zawartość bliżej użytkowników końcowych, co zmniejsza opóźnienie sieci i skraca czas odpowiedzi. Buforowanie przechowuje kopię danych przed głównym magazynem danych, co zmniejsza potrzebę powtarzających się żądań do zaplecza. Korzystając z usług CDN i buforowania, można zoptymalizować wydajność i zmniejszyć obciążenie serwerów pod kątem potencjalnych oszczędności kosztów.

  • Kontrolowanie podaży: platforma Azure umożliwia również ustawianie limitów zasobów dla obciążenia w chmurze. Definiując limity zasobów, można zagwarantować, że obciążenie pozostanie w przydzielonych zasobach i uniknąć niepotrzebnych kosztów. Platforma Azure udostępnia różne mechanizmy ustawiania limitów zasobów, takich jak limity przydziału, zasady i alerty budżetowe. Te mechanizmy ułatwiają monitorowanie i kontrolowanie użycia zasobów.

    API Management może ograniczać liczbę żądań i ograniczać je. Możliwość ograniczania żądań przychodzących jest kluczową rolą usługi Azure API Management. Kontrolując szybkość żądań lub łączną liczbę żądań/przesyłanych danych, API Management umożliwia dostawcom interfejsów API ochronę interfejsów API przed nadużyciami i tworzenie wartości dla różnych warstw produktów interfejsu API.

Lista kontrolna optymalizacji kosztów

Zapoznaj się z pełnym zestawem zaleceń.