Typowe wzorce skalowania automatycznego
W tej lekcji przyjrzymy się wzorom skalowania automatycznego.
Skalowanie automatyczne nie jest rozwiązaniem błyskawicznym. Po prostu dodanie zasobów do systemu lub uruchomienie większej liczby wystąpień procesu nie gwarantuje lepszej wydajności systemu. Podczas projektowania strategii skalowania automatycznego należy wziąć pod uwagę następujące kwestie:
Zalecenia
Zidentyfikuj wąskie gardła: skalowanie w górę nie jest magiczną poprawką dla każdego problemu z wydajnością. Jeśli na przykład baza danych zaplecza jest wąskim gardłem, nie pomaga dodać więcej serwerów internetowych. Zidentyfikuj i rozwiąż wąskie gardła w systemie przed zgłoszeniem większej liczby wystąpień problemu. Stanowe części systemu są najbardziej prawdopodobną przyczyną wąskich gardeł.
Dekompiluj obciążenia według wymagań dotyczących skalowalności: aplikacje często składają się z wielu obciążeń z różnymi wymaganiami dotyczącymi skalowania. Na przykład aplikacja może mieć witrynę publiczną i oddzielną witrynę administracyjną. Witryna publiczna może napotkać nagłe wzrosty ruchu, podczas gdy lokacja administracyjna ma mniejsze, bardziej przewidywalne obciążenie.
Odciążanie zadań intensywnie korzystających z zasobów: zadania wymagające wielu zasobów procesora CPU lub we/wy powinny zostać przeniesione do zadań w tle, jeśli to możliwe. Odciążanie zadań minimalizuje obciążenie frontonu obsługującego żądania użytkowników.
Użyj wbudowanych funkcji skalowania automatycznego: jeśli aplikacja ma przewidywalne, regularne obciążenie, skaluj w poziomie zgodnie z harmonogramem. Można na przykład skalować w godzinach pracy. W przeciwnym razie, jeśli obciążenie nie jest przewidywalne, użyj metryk wydajności, takich jak procesor CPU lub długość kolejki żądań, aby wyzwolić skalowanie automatyczne.
Rozważ agresywne skalowanie automatyczne dla obciążeń krytycznych: w przypadku obciążeń krytycznych chcesz zachować przewagę nad zapotrzebowaniem. Lepiej jest szybko dodać nowe wystąpienia pod dużym obciążeniem, aby obsłużyć inny ruch, a następnie stopniowo skalować z powrotem.
Projektowanie pod kątem skalowania w poziomie: pamiętaj, że w przypadku skalowania elastycznego aplikacja ma okresy skalowania w poziomie, gdy wystąpienia zostaną usunięte. Aplikacja musi bezpiecznie obsługiwać usuwanie wystąpień. Oto kilka sposobów obsługi skalowania w poziomie:
- Nasłuchiwanie zdarzeń zamknięcia, gdy są dostępne i zamykane w sposób czysty.
- Obsługa przejściowych błędów i ponawianie próby.
- Rozważ podzielenie pracy na potrzeby długotrwałych zadań.
- Umieść elementy robocze w kolejce, aby inne wystąpienie może odebrać pracę, jeśli wystąpienie zostanie usunięte w trakcie przetwarzania.
Notifications
- Wszystkie błędy autoskalowania są rejestrowane w dzienniku aktywności. Następnie można skonfigurować alert dziennika aktywności, który powiadamia Cię za pośrednictwem poczty e-mail, krótkiej usługi wiadomości (SMS) lub elementów webhook, gdy wystąpi błąd autoskalowania.
- Podobnie wszystkie pomyślne akcje skalowania są publikowane w dzienniku aktywności. Następnie można skonfigurować alert dziennika aktywności, aby otrzymywać powiadomienia za pośrednictwem poczty e-mail, wiadomości SMS lub elementów webhook za każdym razem, gdy wystąpi pomyślna akcja autoskalowania. Możesz również skonfigurować powiadomienia e-mail lub elementu webhook, aby otrzymywać powiadomienia o pomyślnych akcjach skalowania za pośrednictwem karty Powiadomienia w ustawieniu autoskalowania.
Typowe wzorce skalowania zasobu na platformie Azure
Skalowanie na podstawie zapotrzebowania
Możesz automatycznie skalować liczbę wystąpień usługi na początku dnia roboczego, gdy zapotrzebowanie klientów wzrasta. Na koniec dnia roboczego automatycznie skaluj liczbę wystąpień aplikacji, aby zminimalizować koszty zasobów z dnia na dzień, gdy użycie aplikacji jest niskie.
Skalowanie w różny sposób w dni robocze a weekendy
Wieczorem lub weekendem może być mniejsze zapotrzebowanie na aplikacje. Jeśli to obciążenie jest spójne w danym okresie, możesz skonfigurować reguły skalowania automatycznego, aby zmniejszyć liczbę wystąpień usługi w zestawie skalowania. Wykonanie tej akcji skalowania w poziomie zmniejsza koszt uruchamiania zestawu skalowania, ponieważ uruchamiasz tylko liczbę wystąpień wymaganych do spełnienia bieżącego zapotrzebowania.
Skalowanie w różny sposób podczas świąt
Jeśli masz duże użycie usługi w niektórych częściach miesiąca lub cyklu obrachunkowego, możesz automatycznie skalować liczbę wystąpień usługi, aby zaspokoić ich dodatkowe wymagania. W przypadku wydarzenia marketingowego, promocji lub sprzedaży świątecznej można automatycznie skalować liczbę wystąpień usług przed oczekiwanym zapotrzebowaniem klientów.
Skalowanie na podstawie metryki niestandardowej
Na koniec najlepiej dokładnie zdefiniować reguły skalowania automatycznego. Na przykład atak typu "odmowa usługi" (DoS) może spowodować napływ ruchu przychodzącego na dużą skalę. Próba obsługi gwałtownego wzrostu liczby żądań spowodowanych przez atak typu „odmowa usługi” będzie bezowocna i kosztowna. Te żądania nie są oryginalne i powinny być odrzucane, a nie przetwarzane. Lepszym rozwiązaniem jest zaimplementowanie wykrywania i filtrowania żądań występujących w czasie takiego ataku zanim dotrą one do Twojej usługi.
Po skonfigurowaniu reguł skalowania automatycznego monitoruj wydajność aplikacji w czasie. Użyj wyników tego monitorowania, aby dostosować wzorzec, w którym system skaluje, w razie potrzeby.