Ridimensionamento automatico e domini personalizzati
Configuri regole di scale-out basate sulle metriche della CPU e della coda HTTP, associ un dominio personalizzato alla Sua web app e colleghi un certificato gestito gratuito di App Service.
Ridimensionamento automatico e domini personalizzati è una lezione Azure Fundamentals gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Azure Fundamentals, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Azure Fundamentals include 4 lezioni in totale.
Perché il ridimensionamento automatico è importante
Il ridimensionamento automatico regola automaticamente il numero di istanze di App Service che eseguono l'applicazione in base alla domanda in tempo reale. Senza ridimensionamento automatico, è necessario predisporre risorse per il carico massimo e pagare la capacità inattiva nelle ore di minor traffico. Con il ridimensionamento automatico, Azure aggiunge istanze quando il carico aumenta e le rimuove quando diminuisce, ottimizzando sia le prestazioni sia i costi. Il ridimensionamento automatico richiede il livello Standard o superiore.
Ridimensionamento orizzontale e verticale
Azure offre due dimensioni di ridimensionamento. Il ridimensionamento orizzontale aggiunge altre istanze identiche dell'app per condividere il carico: è il meccanismo utilizzato principalmente dal ridimensionamento automatico. Il ridimensionamento verticale passa a una macchina virtuale di dimensioni maggiori, con più CPU e RAM, modificando lo SKU del piano App Service. Il ridimensionamento orizzontale è preferibile per la resilienza, perché più istanze possono sopravvivere a singoli guasti; il ridimensionamento verticale presenta limiti hardware.
# 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 P2V3Regole e profili di ridimensionamento automatico
Il ridimensionamento automatico in Azure viene configurato tramite impostazioni di ridimensionamento automatico associate a un piano App Service. Un'impostazione di ridimensionamento automatico contiene uno o più profili (regolare, a data fissa, di ricorrenza), ciascuno dei quali contiene regole. Una regola di ridimensionamento orizzontale si attiva quando una metrica supera una soglia (ad esempio, CPU > 70%); una regola di ridimensionamento orizzontale inverso si attiva quando scende al di sotto di una soglia inferiore (ad esempio, CPU < 30%). Definisca sempre entrambe le regole per evitare una crescita incontrollata o costi eccessivi.
# 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'Ridimensionamento automatico basato su pianificazione
Il ridimensionamento automatico basato su pianificazione (profili di ricorrenza) consente di aumentare in anticipo la capacità in previsione di schemi di traffico prevedibili. Ad esempio, è possibile aumentare il numero di istanze a 10 ogni giorno feriale alle 08:00 e ridurlo nuovamente a 2 alle 18:00. La combinazione di profili basati sulla pianificazione e di profili basati sulle metriche offre il meglio di entrambi: capacità predisposta per i picchi noti e risposta elastica ai picchi imprevisti.
# 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'Periodi di raffreddamento
Un periodo di raffreddamento è un intervallo di attesa successivo a un'azione di ridimensionamento, durante il quale non viene eseguito alcun altro ridimensionamento. Previene il comportamento oscillatorio, ovvero rapidi ridimensionamenti orizzontali e inversi ripetuti causati da picchi transitori nelle metriche. Il periodo di raffreddamento predefinito è di 5 minuti sia per il ridimensionamento orizzontale sia per quello inverso. Imposti un periodo più lungo per il ridimensionamento inverso (ad esempio, 10-15 minuti) per consentire alle istanze di chiudere le connessioni attive prima di essere rimosse.
# 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 10Configurazione di un dominio personalizzato
Le app App Service ricevono un nome host predefinito azurewebsites.net. Per usare il proprio dominio (ad esempio www.contoso.com), aggiunga un dominio personalizzato nelle impostazioni di App Service e crei i record DNS corrispondenti presso il registrar del dominio. È necessario dimostrare la proprietà creando un record CNAME o un record TXT (chiamato record di verifica) nella zona DNS, quindi creare il record CNAME o A di instradamento effettivo.
# 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.comCertificati TLS per domini personalizzati
Dopo aver associato un dominio personalizzato, è necessario un certificato TLS per abilitare HTTPS. App Service offre tre opzioni: App Service Managed Certificate (gratuito, rinnovato automaticamente, limitato ai domini standard), App Service Certificate (acquistato tramite Azure e archiviato in Key Vault) oppure il caricamento di un certificato di terze parti (un certificato proprio ottenuto da Let's Encrypt o da un'autorità di certificazione). La modalità solo HTTPS reindirizza automaticamente tutto il traffico HTTP a 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 trueMetriche della coda HTTP per il ridimensionamento automatico
Sebbene la CPU sia una metrica comune per il ridimensionamento automatico, la lunghezza della coda HTTP è spesso un indicatore migliore per le applicazioni Web. Quando la coda è lunga, le nuove richieste sono in attesa perché le istanze sono completamente occupate. Il ridimensionamento basato su HttpQueueLength rileva il sovraccarico più rapidamente rispetto alla CPU, poiché la CPU può variare senza indicare necessariamente una latenza percepita dall'utente. Utilizzi entrambe le metriche per un comportamento del ridimensionamento automatico più affidabile.
# 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 10Notifiche del ridimensionamento automatico
Configuri le notifiche del ridimensionamento automatico per ricevere avvisi tramite e-mail o webhook quando si verificano eventi di ridimensionamento. Ciò aiuta i team a comprendere gli schemi di traffico e a verificare che il ridimensionamento automatico funzioni come previsto. Le notifiche vengono configurate nella sezione delle notifiche dell'impostazione di ridimensionamento automatico e possono essere inviate a più indirizzi e-mail ed endpoint webhook (per l'integrazione con Slack, PagerDuty o strumenti personalizzati).
# 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": []}'Domini apex e Traffic Manager
Il mapping di un dominio apex (ad esempio, contoso.com senza www) in App Service richiede un record A che punti all'indirizzo IP di App Service, oltre a un record TXT di verifica. Poiché gli indirizzi IP di App Service possono cambiare, Microsoft consiglia di usare Azure Traffic Manager o Azure Front Door come intermediario: l'equivalente del record CNAME per il dominio apex (record ALIAS/ANAME) punta al profilo di Traffic Manager, che instrada il traffico verso 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>Testare il comportamento dell'autoscaling
Dopo aver configurato l'autoscaling, verifichi che funzioni correttamente generando un carico artificiale. Utilizzi strumenti come Apache JMeter, k6 o Azure Load Testing per simulare utenti simultanei. In Azure Monitor osservi la metrica Conteggio istanze del piano App Service per verificare che il numero di istanze aumenti quando il carico cresce e diminuisca quando il carico si riduce. Documenti gli RPS (richieste al secondo) osservati per istanza per convalidare le soglie di scalabilità.
# 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 PT1MVerifica rapida
Verifichi la propria comprensione dei concetti di Microsoft Azure Fundamentals (AZ-900) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha appreso che le regole di autoscaling nei piani App Service aggiungono o rimuovono istanze in base a trigger relativi alla CPU, alla coda HTTP o a una pianificazione; i domini personalizzati richiedono record DNS CNAME/A e un record TXT di verifica nella zona DNS; infine, i certificati TLS (inclusi i certificati gestiti gratuiti) abilitano HTTPS sui domini personalizzati. Nella prossima lezione esamineremo l'autenticazione e il networking di App Service.
Domande Frequenti
La lezione «Ridimensionamento automatico e domini personalizzati» è gratuita?
Sì — il testo completo di «Ridimensionamento automatico e domini personalizzati» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Azure Fundamentals, passa a CoddyKit PRO. Il corso Azure Fundamentals include 4 lezioni in totale.
Cosa imparerò in «Ridimensionamento automatico e domini personalizzati»?
Configuri regole di scale-out basate sulle metriche della CPU e della coda HTTP, associ un dominio personalizzato alla Sua web app e colleghi un certificato gestito gratuito di App Service. Eserciti Azure Fundamentals con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Azure Fundamentals?
Non è richiesta alcuna esperienza precedente. Azure Fundamentals su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Ridimensionamento automatico e domini personalizzati»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Azure Fundamentals?
Sì. Ogni lezione Azure Fundamentals include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Creazione di un piano App Service e di una web app
- Slot di distribuzione e swap
- Ridimensionamento automatico e domini personalizzati
- Autenticazione e rete di App Service