Ręczne skalowanie aplikacji internetowej
Ręczne zwiększanie, a następnie zmniejszanie skali w poziomie umożliwia reagowanie na oczekiwane wzrosty i spadki ruchu. Skalowanie wyprzedaje ma dodatkową korzyść ze zwiększenia dostępności ze względu na zwiększoną liczbę wystąpień aplikacji internetowej. Błąd jednego wystąpienia nie powoduje niedostępności aplikacji internetowej.
W systemie rezerwacji hotelowych możesz zwiększyć skalę w poziomie przed przewidywanym sezonowym napływem klientów. Po zakończeniu sezonu i zmniejszeniu liczby żądań rezerwacji możesz zmniejszyć skalę w poziomie.
W tej lekcji dowiesz się, jak ręcznie skalować aplikację internetową i jak ją skalować z powrotem.
Plany usługi App Service i skalowalność
Aplikacja internetowa działająca na platformie Azure zwykle używa usługi aplikacja systemu Azure Service w celu zapewnienia środowiska hostingu. Usługa App Service może rozmieścić uruchamianie wielu wystąpień aplikacji internetowej. Moduł równoważenia obciążenia równoważy żądania przychodzące w tych wystąpieniach. Każde wystąpienie jest uruchamiane na maszynie wirtualnej.
Plan usługi App Service definiuje zasoby dostępne dla każdego wystąpienia. Plan usługi App Service określa system operacyjny (Windows lub Linux), sprzęt (pamięć, wydajność przetwarzania przez procesor CPU, magazyn na dysku itd.) oraz dostępność usług, takich jak automatyczne wykonywanie kopii zapasowej i przywracanie.
Platforma Azure udostępnia szereg dobrze zdefiniowanych warstw planu usługi App Service. Ta lista zawiera podsumowanie każdej z tych warstw w kolejności rosnącej pojemności i kosztów:
- Warstwa Bezpłatna zapewnia 1 GB miejsca na dysku i obsługę maksymalnie 10 aplikacji, ale tylko w ramach pojedynczego, współdzielonego wystąpienia i bez umowy SLA dotyczącej dostępności. Każda aplikacja ma przydział mocy obliczeniowej wynoszący 60 minut dziennie. Plan bezpłatnej usługi jest odpowiedni do tworzenia i testowania aplikacji, a nie wdrożeń produkcyjnych.
- Warstwa Współdzielona zapewnia obsługę większej liczby aplikacji (maksymalnie 100) i również korzysta z pojedynczego, współdzielonego wystąpienia. Aplikacje mają przydział mocy obliczeniowej wynoszący 240 minut dziennie. Umowa SLA dotycząca dostępności nie jest dostępna.
- Warstwa Podstawowa obsługuje nieograniczoną liczbę aplikacji i udostępnia więcej miejsca na dysku. Skalę aplikacji można zwiększać w poziomie do trzech dedykowanych wystąpień. Ta warstwa zapewnia umowę SLA gwarantującą dostępność przez 99,95% czasu. W tej warstwie istnieją trzy poziomy oferujące różne ilości mocy obliczeniowej, pamięci i magazynu na dysku.
- Warstwa Standardowa również obsługuje nieograniczoną liczbę aplikacji. Ta warstwa umożliwia przeprowadzenie skalowania do 10 dedykowanych wystąpień i zapewnia umowę SLA gwarantującą dostępność przez 99,95% czasu. Podobnie jak warstwa Podstawowa, ta warstwa ma trzy poziomy oferujące coraz bardziej zaawansowany zestaw opcji dotyczących mocy obliczeniowej, pamięci i dysków.
- Warstwa Premium zapewnia do 20 dedykowanych wystąpień, umowę SLA gwarantującą dostępność na poziomie 99,95% czasu i wiele poziomów sprzętu.
- Warstwa Izolowana działa w dedykowanej sieci wirtualnej platformy Azure, zapewniając izolację sieci i usług obliczeniowych. Ta warstwa umożliwia zwiększanie skali w poziomie do 100 wystąpień i zapewnia umowę SLA gwarantującą dostępność przez 99,95% czasu.
Uwaga
Niektóre warstwy nie są dostępne dla wszystkich systemów operacyjnych. Na przykład obecnie nie ma warstwy Współdzielona dla systemu Linux.
Monitorowanie i skalowanie aplikacji internetowej
Podczas tworzenia aplikacji internetowej możesz utworzyć nowy plan usługi App Service lub użyć istniejącego. Jeśli wybierzesz istniejący plan, wszystkie inne aplikacje internetowe korzystające z tego samego planu współdzielą zasoby z aplikacją internetową. Wszystkie są skalowane razem, więc muszą mieć te same wymagania dotyczące skalowania. Jeśli Twoje aplikacje mają różne wymagania, użyj oddzielnego planu usługi App Service dla każdej z nich.
Zwiększanie skali w poziomie odbywa się przez dodawanie kolejnych wystąpień do planu usługi App Service aż do osiągnięcia limitu dostępnego dla wybranej warstwy. Jeśli nie używasz warstwy Bezpłatna, opłaty są naliczane za każde wystąpienie co godzinę. To zadanie można wykonać przy użyciu witryny Azure Portal.
Kluczem do efektywnego skalowania jest wiedza, kiedy przeprowadzić skalowanie i o ile. Wydajność aplikacji internetowej monitoruje się przy użyciu metryk dostępnych dla usługi App Service. Najprostszym sposobem wykonania tego zadania jest użycie witryny Azure Portal.
Jeśli zauważysz stały wzrost użycia zasobów, na przykład wykorzystania procesora CPU, zajętości pamięci czy długości kolejki dysku, rozważ zwiększenie skali w poziomie, zanim te metryki osiągną punkt krytyczny. Należy również monitorować średni czas odpowiedzi na żądania oraz liczbę żądań zakończonych niepowodzeniem. Jeśli obie te wartości są wysokie, system może działać blisko lub poza pojemnością. Może być konieczne natychmiastowe zwiększenie skali w poziomie.
Jeśli metryki wskazują, że system jest mniej obciążony i ma mnóstwo niewykorzystanej wydajności, warto zmniejszyć skalę w poziomie w celu zmniejszenia kosztów.
W obu przypadkach należy kontynuować monitorowanie danych statycznych dla aplikacji internetowej. Zaczekaj na ustabilizowanie systemu. Jeśli metryki wskazują, że aplikacja jest nadal niedostatecznie obezwładniona lub obezwładniona, dodaj lub usuń wystąpienia zgodnie z potrzebami.