Panoramica del Servizio app di Azure
Il Servizio app di Azure è un servizio per l'hosting di applicazioni Web, API REST e back-end mobili, basato su HTTP. È possibile usare il linguaggio di sviluppo preferito tra .NET, .NET Core, Java, Ruby, Node.js, PHP o Python. Le applicazioni vengono eseguite e dimensionate con facilità negli ambienti basati sia su Windows che su Linux.
Il servizio app non si limita ad aggiungere la potenza di Microsoft Azure all'applicazione, in termini di sicurezza, bilanciamento del carico, ridimensionamento automatico e gestione automatizzata. Permettono anche di usufruire delle funzionalità DevOps, come la distribuzione continua da Azure DevOps, GitHub, Docker Hub e altre origini, la gestione dei pacchetti, gli ambienti di staging, il dominio personalizzato e i certificati TLS/SSL.
Il servizio app permette di pagare solo le risorse di calcolo di Azure usate. La quantità di risorse di calcolo usate è determinata dal piano di servizio app in cui vengono eseguite le app. Per altre informazioni, vedere Panoramica approfondita dei piani del servizio app di Azure.
Perché usare il servizio app?
Servizio app di Azure è una piattaforma completamente gestita come servizio (PaaS) che offre agli sviluppatori. Ecco alcune delle funzionalità principali del servizio app:
- Più linguaggi e framework: il servizio app offre un supporto eccellente per ASP.NET, ASP.NET Core, Java, Ruby, Node.js, PHP o Python. È anche possibile eseguire PowerShell e altri script o eseguibili come servizi in background.
- Ambiente di produzione gestito: il servizio app applica automaticamente le patch e mantiene i framework del sistema operativo e del linguaggio. In questo modo è possibile dedicarsi alla scrittura di app senza preoccuparsi della piattaforma.
- Containerizzazione e Docker: consente di ottimizzare l'app per Docker e ospitare un contenitore Windows o Linux personalizzato nel servizio app. Esecuzione di app multi-contenitore con Docker Compose. Migrazione delle competenze Docker direttamente nel servizio app.
- Ottimizzazione della metodologia DevOps: è possibile configurare l'integrazione continua e la distribuzione continua con Azure DevOps, GitHub, BitBucket, Hub Docker o Registro Azure Container, alzare di livello gli aggiornamenti tramite ambienti di testing e di staging, e gestire le app nel servizio app con Azure PowerShell o l'interfaccia della riga di comando multipiattaforma.
- Scalabilità globale con disponibilità elevata: è possibile aumentare le prestazioni o il numero di istanze manualmente o automaticamente. Le app possono essere ospitate ovunque nell'infrastruttura globale di data center Microsoft e il contratto di servizio per il servizio app assicura disponibilità elevata.
- Connessioni a piattaforme SaaS e dati locali: è possibile scegliere tra oltre 50 connettori per sistemi aziendali (come SAP), servizi SaaS (come Salesforce) e servizi Internet (come Facebook), nonché accedere ai dati locali con connessioni ibride e reti virtuali di Azure.
- Sicurezza e conformità : il servizio app è conforme a ISO, SOC e PCI. Autenticazione degli utenti con Azure Active Directory, Google, Facebook, Twitter o account Microsoft. Creare restrizioni per gli indirizzi IP e gestire le identità del servizio.
- Modelli di applicazione: in Azure Marketplace è possibile scegliere da un esteso elenco di modelli di applicazione, come WordPress, Joomla e Drupal.
- Integrazione con Visual Studio e Visual Studio Code: gli strumenti dedicati di Visual Studio e Visual Studio Code semplificano il processo di creazione, distribuzione e debug.
- API e funzionalità mobili: il servizio app offre un supporto CORS pronto all'uso per gli scenari API RESTful. Inoltre, semplifica gli scenari di app per dispositivi mobili consentendo l'autenticazione, la sincronizzazione dei dati offline, le notifiche push e altro ancora.
- Codice senza server:è possibile eseguire un frammento di codice o uno script su richiesta senza dover eseguire il provisioning esplicito o la gestione dell'infrastruttura e pagare solo il tempo di calcolo usato effettivamente dal codice. Vedere in proposito Funzioni di Azure.
Oltre al servizio app, Azure offre altri servizi che possono essere usati per l'hosting di siti e applicazioni Web. Per la maggior parte degli scenari il servizio app è la scelta migliore. Per l'architettura di microservizi, considerare Azure Spring Apps o Service Fabric. Se è necessario un maggior controllo sulle VM in cui viene eseguito il codice, prendere in considerazione l'uso di Macchine virtuali di Azure. Per altre informazioni su come scegliere uno di questi servizi di Azure, vedere Confronto tra Servizio app di Azure, Macchine virtuali, Service Fabric e Servizi cloud.
Servizio app in Linux
Il servizio app può anche ospitare le app Web in modo nativo in Linux per gli stack di applicazioni supportate. Può anche eseguire contenitori Linux personalizzati (noti anche come app Web per contenitori).
Linguaggi e framework predefiniti
Il servizio app in Linux supporta numerose immagini predefinite specifiche del linguaggio. È sufficiente distribuire il codice. I linguaggi supportati includono: Node.js, Java (8, 11 e 17), Tomcat, PHP, Python, .NET Core e Ruby. Eseguire az webapp list-runtimes --os linux
per visualizzare i linguaggi più recenti e le versioni supportate. Se il runtime richiesto dall'applicazione non è supportato nelle immagini predefinite, è possibile distribuirlo con un contenitore personalizzato.
I runtime obsoleti vengono rimossi periodicamente dai pannelli Crea e Configurazione di App Web nel portale. Questi runtime vengono nascosti nel portale quando sono deprecati dall'organizzazione che li gestisce oppure è stato riscontrato che presentano vulnerabilità significative. Queste opzioni vengono nascoste per indirizzare i clienti verso i runtime più recenti che garantiranno migliori risultati.
Quando un runtime obsoleto viene nascosto nel portale, tutti i siti esistenti che usano tale versione continueranno a essere eseguiti. Se un runtime viene rimosso completamente dalla piattaforma del servizio app, i proprietari della sottoscrizione di Azure riceveranno una notifica tramite posta elettronica prima della rimozione.
Se è necessario creare un'altra app Web con una versione obsoleta del runtime che non viene più visualizzata nel portale, vedere le guide alla configurazione del linguaggio per istruzioni su come ottenere la versione del runtime del sito. È possibile usare l'interfaccia della riga di comando di Azure per creare un altro sito con lo stesso runtime. In alternativa, è possibile usare il pulsante Esporta modello nel pannello dell'app Web nel portale per esportare un modello di ARM del sito. È possibile riutilizzare questo modello per distribuire un nuovo sito con lo stesso runtime e configurazione.
Debian 9 Fine della vita
Il 30 giugno 2022 Debian 9 (noto anche come "Stretch") raggiungerà lo stato End-of-Life (EOL), che significa che le patch di sicurezza e gli aggiornamenti verranno interrotti. A partire da giugno 2022, viene eseguito un aggiornamento della piattaforma per fornire un percorso di aggiornamento a Debian 11 (noto anche come "Bullseye"). I runtime elencati di seguito usano attualmente Debian 9; se si usa uno dei runtime elencati, seguire le istruzioni seguenti per aggiornare il sito a Bullseye.
- Python 3.8
- Python 3.7
- .NET 3.1
- PHP 7.4
Nota
Per garantire che le applicazioni dei clienti siano in esecuzione in distribuzioni Debian sicure e supportate, dopo il febbraio 2023 tutte le app Web Linux ancora in esecuzione in Debian 9 (Stretch) verranno aggiornate automaticamente a Debian 11 (Bullseye).
Verificare l'aggiornamento della piattaforma
Prima di tutto, verificare che il nuovo aggiornamento della piattaforma che contiene Debian 11 abbia raggiunto il sito.
- Passare al sito SCM (noto anche come sito Kudu) dell'app Web. È possibile passare a questo sito in
http://<your-site-name>.scm.azurewebsites.net/Env
(sostituire\<your-site-name>
con il nome dell'app Web). - In "Variabili di ambiente", cercare
PLATFORM_VERSION
. Il valore di questa variabile di ambiente è la versione corrente della piattaforma dell'app Web. - Se il valore di
PLATFORM_VERSION
inizia con "99" o versione successiva, il sito si trova nell'aggiornamento della piattaforma più recente e si può continuare alla sezione seguente. Se il valore non mostra "99" o versione successiva, il sito non ha ancora ricevuto l'aggiornamento della piattaforma più recente, verificare nuovamente in una data successiva.
Creare quindi uno slot di distribuzione per verificare che l'applicazione funzioni correttamente con Debian 11 prima di applicare la modifica alla produzione.
Creare uno slot di distribuzione se non ne ha già uno e clonare le impostazioni dallo slot di produzione. Uno slot di distribuzione consente di testare in modo sicuro le modifiche apportate all'applicazione (ad esempio l'aggiornamento a Debian 11) e di scambiare tali modifiche nella produzione dopo la revisione.
Per eseguire l'aggiornamento a Debian 11 (Bullseye), creare un'impostazione dell'app nello slot denominato
ORYX_DEFAULT_OS
con un valore dibullseye
.az webapp config appsettings set -g MyResourceGroup -n MyUniqueApp --settings ORYX_DEFAULT_OS=bullseye
Distribuire l'applicazione nello slot di distribuzione usando lo strumento preferito (VS Code, interfaccia della riga di comando di Azure, GitHub Actions e così via)
Verificare che l'applicazione funzioni come previsto nello slot di distribuzione.
Scambiare gli slot di produzione e gestione temporanea. Verrà applicata l'impostazione dell'app
APPSETTING_DEFAULT_OS=bullseye
all'ambiente di produzione.Eliminare lo slot di distribuzione se non lo si usa più.
Risorse
- Pianificazione del supporto a lungo termine Debian
- Note sulla versione di Debian 11 (Bullseye)
- Note sulla versione di Debain 9 (Stretch)
Limitazioni
Nota
I piani di servizio app Linux e Windows possono ora condividere gruppi di risorse. Questa limitazione è stata revocata dalla piattaforma e dai gruppi di risorse esistenti è stata aggiornata per supportare questo problema.
- Il Servizio app in Linux non è supportato nel piano tariffario Condiviso.
- Il portale di Azure mostra solo le funzionalità attualmente funzionanti per le app Linux. Man mano che le funzionalità vengono abilitate, vengono attivate nel portale.
- Quando viene distribuito nelle immagini predefinite, al codice e al contenuto viene allocato un volume di archiviazione per il contenuto Web, supportato da Archiviazione di Azure. La latenza del disco di questo volume è maggiore e più variabile rispetto alla latenza del file system del contenitore. Le app che richiedono un accesso elevato in sola lettura a file di contenuto possono trarre vantaggio dall'opzione relativa al contenitore personalizzato, che colloca i file nel file system del contenitore anziché nel volume del contenuto.
Passaggi successivi
Creare la prima app Web.