Introduzione
Se stai cercando di ottimizzare le prestazioni del tuo Servizio App su Azure utilizzando container Docker personalizzati, sei nel posto giusto. In questo articolo, esploreremo le migliori pratiche e le configurazioni chiave per garantire un funzionamento fluido del tuo servizio.
Fork dei Contenitori Docker Predefiniti
Se desideri personalizzare i contenitori Docker predefiniti forniti dalla piattaforma, il primo passo è il fork. Ma dove puoi trovare questi file? Puoi trovare tutti i file Docker su GitHub. Questo passaggio è fondamentale per iniziare a modellare la configurazione del tuo servizio secondo le tue esigenze.
Configurazione del Runtime Stack
Quando configuri lo stack di runtime, è essenziale inserire i valori corretti nella sezione del file di avvio. Ecco alcuni esempi:
- Java SE: Il comando per avviare la tua app JAR potrebbe essere, ad esempio,
java -jar /home/site/wwwroot/app.jar --server.port=80
. - Tomcat: Specifica la posizione di uno script per eseguire le configurazioni necessarie, come ad esempio
/home/site/deployments/tools/startup_script.sh
.
Assicurati di inserire i valori corretti per il tuo stack per garantire un avvio senza intoppi.
Riavvio e Connessione SSH
Quando premi il pulsante di riavvio nel portale Azure, questo corrisponde a un riavvio Docker. Inoltre, puoi connetterti al container della tua app tramite Secure Shell (SSH) attraverso il sito di gestione del controllo della sorgente (SCM). Tieni presente che è possibile anche la connessione diretta utilizzando SSH, SFTP o Visual Studio Code dal tuo ambiente di sviluppo locale.
Pianificazione Continua e Distribuzione
Se il tuo web app continua a utilizzare un'immagine Docker obsoleta, assicurati di sfruttare la continuità nell'integrazione e nella distribuzione. Supportiamo l'integrazione continua/deploy con Azure Container Registry o DockerHub. Per registri privati, aggiorna il container fermando e avviando l'app o aggiungendo una variabile di configurazione fittizia per forzare il refresh.
Ambienti di Staging e Web Sockets
Sì, supportiamo gli ambienti di staging e l'utilizzo di Web Sockets nelle applicazioni Node.js. Per configurare Web Sockets, assicurati di disabilitare perMessageDeflate
nel codice Node.js lato server.
Uso di Container Personalizzati
Managed Identities con App Service e ACR
Puoi utilizzare le identità gestite con App Service quando estrai le immagini da ACR. Questa funzionalità è disponibile da Azure CLI utilizzando identità assegnate dal sistema o dall'utente.
Gestione dello Spazio e Avvio del Container
Se il tuo container non parte a causa di "no space left on device", è importante comprendere che App Service su Linux utilizza due tipi di storage. Lo spazio su disco è gestito dalla piattaforma attraverso il driver di storage Docker. Assicurati di mantenere le dimensioni delle immagini il più ridotte possibile e scrivere i dati nella memoria persistente per evitare problemi di spazio.
Tempo di Avvio del Container
Se il tuo container personalizzato impiega troppo tempo per avviarsi e viene riavviato prematuramente, puoi configurare il limite di tempo di avvio del container con l'impostazione WEBSITES_CONTAINER_START_TIME_LIMIT
.
Utilizzo di Docker Compose per Multi-container
Se stai configurando Azure Container Registry (ACR) per l'uso con multi-container, assicurati che tutte le immagini siano ospitate sullo stesso server di ACR. Imposta le variabili dell'applicazione e aggiorna il file di configurazione Docker Compose per includere il nome dell'immagine ACR.
Conclusioni
Ottimizzare il tuo Servizio App su Azure con container personalizzati richiede una configurazione accurata e una comprensione approfondita delle funzionalità offerte dalla piattaforma. Seguendo le pratiche consigliate descritte in questo articolo, sarai in grado di massimizzare le prestazioni e garantire un funzionamento stabile della tua applicazione.