Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Wskazówka
Ta zawartość jest fragmentem e-książki, Architektura Cloud Native .NET Applications for Azure, dostępnej w .NET Docs lub jako bezpłatny plik PDF do pobrania, który można czytać offline.
Istnieją dwa sposoby skalowania aplikacji: w górę lub w poziomie. Pierwszy odnosi się do dodawania pojemności do pojedynczego zasobu, a drugi odnosi się do dodawania większej liczby zasobów w celu zwiększenia pojemności.
Proste rozwiązanie: skalowanie w górę
Uaktualnianie istniejącego serwera hosta ze zwiększoną mocą procesora CPU, pamięci, szybkością wejścia/wyjścia dysku oraz szybkością wejścia/wyjścia sieci jest nazywane skalowaniem w górę. Skalowanie w górę aplikacji natywnej dla chmury polega na wyborze bardziej zdolnych zasobów od dostawcy chmury. Możesz na przykład utworzyć nową pulę węzłów z większymi maszynami wirtualnymi w klastrze Kubernetes. Następnie przeprowadź migrację usług opartych na kontenerach do nowej puli.
Aplikacje bezserwerowe zwiększają się przez wybór planu Functions Premium lub rozmiarów instancji premium z dedykowanego planu usługi App Service.
Skalowanie aplikacji natywnych dla chmury
Aplikacje chmurowe często doświadczają dużych wahań zapotrzebowania i wymagają skalowania w krótkim czasie. Preferują skalowanie poziome. Skalowanie poziome odbywa się poprzez dodanie dodatkowych maszyn (nazywanych węzłami) lub instancji aplikacji do istniejącego klastra. Na platformie Kubernetes można skalować ręcznie, dostosowując ustawienia konfiguracji aplikacji (na przykład skalowanie puli węzłów) lub przez skalowanie automatyczne.
Klastry AKS mogą skalować automatycznie na jeden z dwóch sposobów:
Najpierw narzędzie Horizontal Pod Autoscaler monitoruje zapotrzebowanie na zasoby i automatycznie skaluje repliki zasobników, aby je spełnić. Gdy ruch wzrasta, dodatkowe repliki są automatycznie udostępniane w celu skalowania usług poziomo. Podobnie, gdy zapotrzebowanie spada, są usuwane, aby zmniejszyć skalę usług. Zdefiniuj metrykę, według której ma być skalowany system, na przykład użycie procesora. Można również określić minimalną i maksymalną liczbę replik do uruchomienia. Usługa AKS monitoruje odpowiednio metrykę i skaluje je.
Następnie funkcja automatycznego skalowania klastra usługi AKS umożliwia automatyczne skalowanie węzłów obliczeniowych w klastrze Kubernetes w celu spełnienia wymagań. Dzięki niemu można automatycznie dodawać nowe maszyny wirtualne do bazowego zestawu skalowania maszyn wirtualnych platformy Azure za każdym razem, gdy wymagana jest większa pojemność obliczeniowa. Usuwa również węzły, gdy nie są już wymagane.
Rysunek 3–11 przedstawia relację między tymi dwoma usługami skalowania.
Rysunek 3–11. Skalowanie poziome planu usługi App Service.
Obie strony, współpracując ze sobą, zapewniają optymalną liczbę wystąpień kontenerów oraz węzłów obliczeniowych, aby obsługiwać zmienne zapotrzebowanie. Narzędzie do automatycznego skalowania zasobników w poziomie optymalizuje wymaganą liczbę zasobników. Funkcja automatycznego skalowania klastra optymalizuje wymaganą liczbę węzłów.
Skalowanie usługi Azure Functions
Usługi Azure Functions skalują się automatycznie w razie potrzeby. Zasoby serwera są dynamicznie przydzielane i usuwane na podstawie liczby wyzwolonych zdarzeń. Opłaty są naliczane tylko za zasoby obliczeniowe używane podczas uruchamiania funkcji. Rozliczenia są oparte na liczbie wykonań, czasu wykonywania i używanej pamięci.
Chociaż domyślny plan zużycia zapewnia ekonomiczne i skalowalne rozwiązanie dla większości aplikacji, opcja Premium umożliwia deweloperom elastyczność niestandardowych wymagań usługi Azure Functions. Uaktualnienie do planu Premium zapewnia kontrolę nad rozmiarami instancji, preinstancjami (aby uniknąć opóźnień związanych z zimnym startem) i dedykowanymi maszynami wirtualnymi.