Automatyczne skalowanie i domeny niestandardowe
Skonfiguruj reguły skalowania w poziomie na podstawie metryk procesora CPU i kolejki HTTP, przypisz domenę niestandardową do aplikacji internetowej oraz powiąż ją z bezpłatnym certyfikatem App Service Managed Certificate.
Automatyczne skalowanie i domeny niestandardowe to bezpłatna lekcja Azure Fundamentals na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Azure Fundamentals, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Azure Fundamentals zawiera 4 lekcji w sumie.
Dlaczego automatyczne skalowanie ma znaczenie
Automatyczne skalowanie automatycznie dostosowuje liczbę instancji App Service uruchamiających aplikację na podstawie zapotrzebowania w czasie rzeczywistym. Bez automatycznego skalowania trzeba przygotować zasoby na obciążenie szczytowe i płacić za niewykorzystywaną pojemność poza godzinami szczytu. Dzięki automatycznemu skalowaniu platforma Azure dodaje instancje, gdy obciążenie rośnie, i usuwa je, gdy spada, optymalizując zarówno wydajność, jak i koszty. Automatyczne skalowanie wymaga warstwy Standard lub wyższej.
Skalowanie wszerz a skalowanie w górę
Platforma Azure oferuje dwa wymiary skalowania. Skalowanie wszerz (skalowanie horyzontalne) dodaje kolejne identyczne instancje aplikacji, aby rozłożyć obciążenie — właśnie na tym przede wszystkim polega automatyczne skalowanie. Skalowanie w górę (skalowanie wertykalne) polega na przejściu do większego rozmiaru maszyny wirtualnej z większą ilością CPU i pamięci RAM poprzez zmianę jednostki SKU planu App Service. Skalowanie wszerz jest preferowane ze względu na odporność, ponieważ wiele instancji może przetrwać awarię pojedynczych instancji; skalowanie w górę ma ograniczenia sprzętowe.
# Scale out to 5 instances manually
az appservice plan update \
--name MyAppServicePlan \
--resource-group MyRG \
--number-of-workers 5
# Scale up: change the SKU tier
az appservice plan update \
--name MyAppServicePlan \
--resource-group MyRG \
--sku P2V3Reguły i profile automatycznego skalowania
Automatyczne skalowanie na platformie Azure konfiguruje się za pomocą ustawień automatycznego skalowania dołączonych do planu App Service. Ustawienie automatycznego skalowania zawiera co najmniej jeden profil (regularny, z ustaloną datą lub cykliczny), a każdy profil zawiera reguły. Reguła skalowania wszerz jest uruchamiana, gdy metryka przekroczy próg (np. CPU > 70%), natomiast reguła skalowania w dół — gdy spadnie poniżej niższego progu (np. CPU < 30%). Zawsze definiuj zarówno reguły skalowania wszerz, jak i skalowania w dół, aby uniknąć niekontrolowanego wzrostu lub nadmiernych kosztów.
# Create an autoscale setting with CPU-based rules
az monitor autoscale create \
--name MyAutoscale \
--resource-group MyRG \
--resource MyAppServicePlan \
--resource-type Microsoft.Web/serverfarms \
--min-count 2 \
--max-count 10 \
--count 2
# Add scale-out rule: CPU > 70% for 5 minutes
az monitor autoscale rule create \
--autoscale-name MyAutoscale \
--resource-group MyRG \
--scale out 2 \
--condition 'CpuPercentage > 70 avg 5m'Automatyczne skalowanie oparte na harmonogramie
Automatyczne skalowanie oparte na harmonogramie (profile cykliczne) umożliwia wcześniejsze przygotowanie zasobów na przewidywalne wzorce ruchu. Można na przykład zwiększać liczbę instancji do 10 w każdy dzień roboczy o 08:00, a następnie zmniejszać ją do 2 o 18:00. Połączenie profili opartych na harmonogramie i metrykach zapewnia to, co najlepsze w obu podejściach: wcześniej przygotowaną pojemność na znane szczyty oraz elastyczną reakcję na nieoczekiwane skoki obciążenia.
# Add a recurrence profile for weekday peak hours
az monitor autoscale profile create \
--autoscale-name MyAutoscale \
--resource-group MyRG \
--name 'WeekdayPeak' \
--min-count 5 \
--max-count 15 \
--count 5 \
--recurrence week mon tue wed thu fri \
--start 08:00 \
--end 18:00 \
--timezone 'UTC'Okresy schładzania
Okres schładzania to opóźnienie po wykonaniu operacji skalowania, podczas którego nie jest wykonywane dalsze skalowanie. Zapobiega ono oscylacji — szybkim, powtarzającym się operacjom skalowania wszerz lub w dół wywoływanym przejściowymi skokami wartości metryk. Domyślny okres schładzania wynosi 5 minut dla skalowania wszerz i 5 minut dla skalowania w dół. Ustaw dłuższy okres schładzania dla skalowania w dół (np. 10–15 minut), aby instancje miały czas na zamknięcie aktywnych połączeń przed usunięciem.
# Scale-in rule with 10-minute cooldown
az monitor autoscale rule create \
--autoscale-name MyAutoscale \
--resource-group MyRG \
--scale in 1 \
--condition 'CpuPercentage < 30 avg 10m' \
--cooldown 10Konfigurowanie domeny niestandardowej
Aplikacje App Service otrzymują domyślną nazwę hosta azurewebsites.net. Aby używać własnej domeny (np. www.contoso.com), dodaj domenę niestandardową w ustawieniach App Service i utwórz odpowiednie rekordy DNS u rejestratora domeny. Należy potwierdzić własność domeny, tworząc w strefie DNS rekord CNAME lub TXT (nazywany rekordem weryfikacyjnym), a następnie utworzyć właściwy rekord CNAME lub A do routingu.
# DNS records at your registrar:
# CNAME www MyUniqueWebApp.azurewebsites.net
# TXT asuid.www <verification_id from Azure portal>
# After DNS propagation, add the custom domain in Azure
az webapp config hostname add \
--webapp-name MyUniqueWebApp \
--resource-group MyRG \
--hostname www.contoso.comCertyfikaty TLS dla domen niestandardowych
Po przypisaniu domeny niestandardowej potrzebny jest certyfikat TLS, aby włączyć protokół HTTPS. App Service oferuje trzy opcje: App Service Managed Certificate (bezpłatny, automatycznie odnawiany, ograniczony do standardowych domen), App Service Certificate (kupowany za pośrednictwem platformy Azure i przechowywany w Key Vault) lub przesłanie certyfikatu innej firmy (własny certyfikat z Let's Encrypt lub od urzędu certyfikacji). Tryb tylko HTTPS automatycznie przekierowuje cały ruch HTTP do HTTPS.
# Create a free App Service Managed Certificate
az webapp config ssl create \
--name MyUniqueWebApp \
--resource-group MyRG \
--hostname www.contoso.com
# Bind the certificate to enforce HTTPS
az webapp config ssl bind \
--name MyUniqueWebApp \
--resource-group MyRG \
--certificate-thumbprint <THUMBPRINT> \
--ssl-type SNI
# Enforce HTTPS only
az webapp update \
--name MyUniqueWebApp \
--resource-group MyRG \
--https-only trueMetryki kolejki HTTP na potrzeby automatycznego skalowania
Choć procesor jest często używaną metryką automatycznego skalowania, długość kolejki HTTP jest często lepszym sygnałem w przypadku aplikacji internetowych. Gdy kolejka jest długa, nowe żądania oczekują, ponieważ instancje są w pełni zajęte. Skalowanie na podstawie właściwości HttpQueueLength szybciej wykrywa przeciążenie niż użycie procesora, ponieważ jego wartość może się zmieniać bez wskazywania opóźnień odczuwanych przez użytkownika. Używaj obu metryk jednocześnie, aby uzyskać niezawodne działanie automatycznego skalowania.
# Scale out when HTTP queue length exceeds 100
az monitor autoscale rule create \
--autoscale-name MyAutoscale \
--resource-group MyRG \
--scale out 2 \
--condition 'HttpQueueLength > 100 avg 1m' \
--cooldown 5
# Scale in when queue drops below 10
az monitor autoscale rule create \
--autoscale-name MyAutoscale \
--resource-group MyRG \
--scale in 1 \
--condition 'HttpQueueLength < 10 avg 10m' \
--cooldown 10Powiadomienia dotyczące automatycznego skalowania
Skonfiguruj powiadomienia dotyczące automatycznego skalowania, aby otrzymywać alerty e-mail lub webhooki po wystąpieniu zdarzeń skalowania. Pomaga to zespołom zrozumieć wzorce ruchu i sprawdzić, czy automatyczne skalowanie działa zgodnie z oczekiwaniami. Powiadomienia konfiguruje się w sekcji powiadomień ustawienia automatycznego skalowania; można je kierować na wiele adresów e-mail i punktów końcowych webhooków (w celu integracji ze Slack, PagerDuty lub niestandardowymi narzędziami).
# Add email notification to autoscale setting
az monitor autoscale update \
--name MyAutoscale \
--resource-group MyRG \
--add-condition '{"email": {"sendToSubscriptionAdministrator": true, "customEmails": ["ops@contoso.com"]}, "webhooks": []}'Domeny główne i Traffic Manager
Przypisanie domeny głównej (np. contoso.com bez www) do App Service wymaga rekordu A wskazującego adres IP usługi App Service oraz rekordu TXT do weryfikacji. Ponieważ adresy IP usługi App Service mogą się zmieniać, firma Microsoft zaleca użycie Azure Traffic Manager lub Azure Front Door jako pośrednika — odpowiednik rekordu CNAME dla domeny głównej (rekord ALIAS/ANAME) wskazuje profil Traffic Manager, który kieruje ruch do usługi App Service.
# Get the App Service inbound IP (for A record)
az webapp show \
--name MyUniqueWebApp \
--resource-group MyRG \
--query 'inboundIpAddress' -o tsv
# DNS at registrar (apex domain with A record approach)
# A contoso.com <inboundIpAddress>
# TXT asuid <verification_id>Testowanie działania autoskalowania
Po skonfigurowaniu autoskalowania należy sprawdzić, czy działa ono prawidłowo, generując sztuczne obciążenie. Do symulowania jednoczesnego dostępu wielu użytkowników można użyć narzędzi takich jak Apache JMeter, k6 lub Azure Load Testing. W usłudze Azure Monitor należy obserwować metrykę Instance count planu App Service, aby potwierdzić, że liczba wystąpień rośnie wraz ze wzrostem obciążenia i maleje po jego spadku. Należy udokumentować zaobserwowaną liczbę żądań na sekundę (RPS) przypadającą na wystąpienie, aby zweryfikować progi skalowania.
# Run a quick load test with curl (basic)
for i in {1..100}; do curl -o /dev/null -s https://www.contoso.com/health & done
wait
# Monitor current instance count
az monitor metrics list \
--resource '/subscriptions/.../providers/Microsoft.Web/serverfarms/MyAppServicePlan' \
--metric 'InstanceCount' \
--interval PT1MSzybkie sprawdzenie
Sprawdź swoją znajomość zagadnień Microsoft Azure Fundamentals (AZ-900) omówionych w tej lekcji.
Podsumowanie lekcji
W tej lekcji poznali Państwo: reguły autoskalowania w planach App Service, które dodają lub usuwają wystąpienia na podstawie wyzwalaczy związanych z użyciem procesora CPU, kolejką HTTP lub harmonogramem; domeny niestandardowe, które wymagają rekordów DNS CNAME/A oraz rekordu TXT do weryfikacji w strefie DNS; a także certyfikaty TLS (w tym bezpłatne certyfikaty zarządzane), które umożliwiają korzystanie z protokołu HTTPS dla domen niestandardowych. W następnej części omówimy uwierzytelnianie i sieci w usłudze App Service.
Często zadawane pytania
Czy lekcja „Automatyczne skalowanie i domeny niestandardowe” jest bezpłatna?
Tak — pełny tekst „Automatyczne skalowanie i domeny niestandardowe” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Azure Fundamentals, przejdź na CoddyKit PRO. Kurs Azure Fundamentals zawiera 4 lekcji w sumie.
Co nauczysz się w „Automatyczne skalowanie i domeny niestandardowe”?
Skonfiguruj reguły skalowania w poziomie na podstawie metryk procesora CPU i kolejki HTTP, przypisz domenę niestandardową do aplikacji internetowej oraz powiąż ją z bezpłatnym certyfikatem App Servic… Ćwiczysz Azure Fundamentals z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Azure Fundamentals?
Nie wymagamy żadnego doświadczenia. Azure Fundamentals w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Automatyczne skalowanie i domeny niestandardowe”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Azure Fundamentals?
Tak. Każda lekcja Azure Fundamentals zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Tworzenie planu App Service i aplikacji internetowej
- Sloty wdrażania i zamiana
- Automatyczne skalowanie i domeny niestandardowe
- Uwierzytelnianie i sieci w App Service