Configurare Azure App Service Environment

L’Azure App Service Environment è un’offerta all’interno del cloud di Microsoft Azure progettata per fornire un ambiente di hosting altamente scalabile e sicuro per le applicazioni web. È particolarmente utile per le organizzazioni che richiedono un controllo completo sull’ambiente di hosting, inclusa la rete e le risorse ad alta disponibilità.

La peculiarità dell’App Service Environment è che consente alle applicazioni di essere isolate all’interno di una rete privata, creata specificamente per l’utente. Questa caratteristica è fondamentale per le aziende che gestiscono dati sensibili o che devono rispettare rigidi standard di conformità e sicurezza. Inoltre, l’ambiente può essere completamente integrato con la Virtual Network di Azure, permettendo alle aziende di estendere facilmente la loro rete on-premises al cloud.

Un altro aspetto importante dell’Azure App Service Environment è la sua scalabilità. È progettato per gestire carichi di lavoro di grandi dimensioni e traffico elevato, offrendo allo stesso tempo la flessibilità di scalare su o giù le risorse in base alla domanda. Questo è particolarmente utile per le applicazioni che sperimentano picchi di traffico imprevedibili.

Dal punto di vista della gestione, l’App Service Environment offre un’ampia gamma di strumenti e servizi che semplificano il deployment e la manutenzione delle applicazioni. Gli sviluppatori possono beneficiare di funzionalità di integrazione continua, deployment automatico e di una vasta gamma di opzioni di programmazione e framework supportati. Questo rende l’ambiente ideale per una vasta gamma di applicazioni, dai semplici siti web alle complesse applicazioni aziendali.

In termini di costo, però, l’Azure App Service Environment può essere più costoso rispetto ad altre opzioni di hosting in Azure, a causa del livello di isolamento e controllo che offre. Tuttavia, per le aziende che necessitano di queste caratteristiche, i benefici in termini di sicurezza, controllo e scalabilità possono giustificare l’investimento.

Scenari di utilizzo

Gli scenari più comuni di utilizzo dell’Azure App Service Environment riflettono le sue capacità uniche in termini di sicurezza, isolamento e scalabilità. Tra gli scenari principali che vi possono elencare ci sono:

  • Applicazioni che richiedono isolamento di rete e sicurezza: L’isolamento di rete offerto dall’App Service Environment è fondamentale per le applicazioni che gestiscono dati sensibili o che devono aderire a rigidi requisiti di conformità, come quelle nel settore sanitario, finanziario o governativo. Questo isolamento assicura che le applicazioni siano protette da accessi non autorizzati e riduce significativamente il rischio di attacchi cyber.
  • Migrazione di applicazioni on-premises al cloud: Le aziende che vogliono spostare le loro applicazioni esistenti da un ambiente on-premise al cloud trovano nell’App Service Environment una soluzione ideale, grazie alla sua capacità di integrarsi con reti aziendali esistenti e di supportare una vasta gamma di applicazioni legacy.
  • Applicazioni con elevate esigenze di scalabilità: Per le applicazioni che devono gestire un traffico web elevato o che sperimentano picchi di traffico, l’App Service Environment offre un’eccellente scalabilità. Le organizzazioni possono rapidamente scalare su o giù le risorse per rispondere alle fluttuazioni della domanda, garantendo prestazioni ottimali e riducendo i costi quando il traffico è basso.
  • Sviluppo e test di applicazioni in ambienti controllati: Per le aziende che hanno bisogno di ambienti di sviluppo e test sicuri e isolati, l’App Service Environment fornisce un ambiente controllato in cui è possibile sviluppare, testare e fare staging delle applicazioni prima di lanciarle in produzione.
  • Applicazioni che richiedono configurazioni personalizzate: Aziende con esigenze specifiche in termini di configurazione dell’ambiente di hosting, come la necessità di versioni specifiche di sistemi operativi o framework, possono beneficiare della flessibilità e della personalizzazione offerta dall’App Service Environment.
  • Applicazioni che necessitano di integrazioni complesse: In scenari dove le applicazioni devono integrarsi con altri servizi Azure o con sistemi on-premise, l’App Service Environment offre le capacità di rete e le opzioni di configurazione necessarie per facilitare queste integrazioni.

Trovate esempi di architetture che utilizzano Azure App Service Environment visitando la pagina Enterprise deployment using Azure ASE – Azure Reference Architectures | Microsoft Learn

Figura 1: Esempio di Enterprise deployment che utilziza Azure App Service Environment

Creazione dell’App Service Environment

Per creare un nuovo App Service Environment collegatevi al portale di Microsoft Azure e cercate la voce App Service Environments. Fate clic su + Add per lanciare il wizard di creazione.

Figura 2: Creazione di un nuovo App Service Environment

Nella scheda Basics del wizard di creazione di un Azure App Service Environment inserite le informazioni richieste, come la sottoscrizione, il gruppo di risorse, il nome dell’istanza del vostro App Service Environment e il Virtual IP. Quest’ultimo parametro è importante per determinare come il vostro ambiente sarà accessibile via rete.

Il Virtual IP è un indirizzo IP assegnato al vostro App Service Environment che facilita l’accesso e la comunicazione con il mondo esterno. Quando configurate il VIP state essenzialmente stabilendo l’indirizzo attraverso il quale il vostro ambiente sarà raggiungibile all’interno della rete di Azure.

La configurazione del VIP è particolarmente rilevante per scenari che richiedono una connettività di rete specifica o per ambienti che necessitano di un controllo più stretto su come le applicazioni sono esposte al di fuori del vostro network interno. È un aspetto chiave per garantire sia la visibilità che la sicurezza del vostro ambiente di hosting nel cloud.

Io ho deciso di rendere il mio ambiente raggiungibile da Internet e quindi ho scelto l’opzione External.

Figura 3: Scheda Basics del wizard di creazione di un Azure App Service Environment

Nella scheda Hosting del wizard di creazione di un Azure App Service Environment troverete le opzioni di Isolamento Hardware e Redundancy Zone.

L’Isolamento Hardware è una configurazione importante per le aziende che necessitano di un livello aggiuntivo di sicurezza e isolamento per le loro applicazioni. Questa opzione consente di eseguire il vostro ambiente in un hardware dedicato, separato dalle altre istanze di Azure. È particolarmente utile per soddisfare requisiti specifici di conformità o per gestire applicazioni estremamente sensibili in termini di sicurezza.

La Redundancy Zone, invece, è legata alla continuità operativa e alla resistenza agli errori. Configurando la Redundancy Zone, state decidendo di distribuire le risorse del vostro ambiente attraverso più zone di disponibilità all’interno della regione Azure selezionata. Questo garantisce una maggiore resilienza alle interruzioni, riducendo il rischio di downtime in caso di guasti in una specifica zona di disponibilità.

Attraverso queste configurazioni, potete aumentare significativamente sia la sicurezza che l’affidabilità del vostro Azure App Service Environment, assicurando che le vostre applicazioni rimangano operative e protette anche in scenari di elevato rischio o in presenza di requisiti di conformità rigorosi.

Figura 4: Scheda Hosting del wizard di creazione di un Azure App Service Environment

Nella scheda Networking del wizard configurerete aspetti essenziali legati alla connettività di rete e alla sicurezza per il vostro ambiente. Scegliete a quale VNET e a quale Subnet volete collegare il vostro App Service Environment e scegliete l’indirizzo IP pubblico da assegnargli, se prima come me avete scelto di esporre l’ASE ad Internet.

Figura 5: Scheda Networking del wizard di creazione di un Azure App Service Environment

Nella scheda Tags del wizard di creazione di un Azure App Service Environment assegnate etichette personalizzate (o tag) al vostro ambiente. Queste etichette sono utilizzate per organizzare, gestire e identificare facilmente le risorse all’interno dell’ambiente Azure.

I Tags sono fondamentali per la gestione delle risorse, specialmente in un contesto aziendale dove potreste avere molteplici risorse e servizi in esecuzione. Attraverso l’uso di tag, potete categorizzare le risorse in base a criteri come il reparto, il progetto, il centro di costo, l’ambiente (es. sviluppo, test, produzione), o qualsiasi altro sistema di classificazione che si adatti alle vostre esigenze operative e di business.

Figura 6: Scheda Tags del wizard di creazione di un Azure App Service Environment

Controllate le impostazioni che avete inserito e procedete alla creazione del vostro App Service Environment facendo clic su Create.

    Figura 7: Scheda Review + create del wizard di creazione di un Azure App Service Environment

Attendete che termini il deployment dell’App Service Environment. Nel mio caso ci sono volute circa 4 ore.

Figura 8: Deployment dell’App Service Environment completato

Deployment delle applicazioni

Adesso che avete realizzato il vostro App Service Environment siete pronti per distribuire le vostre applicazioni web.

Dal portale di Azure cercate App Services e lanciate il wizard per la creazione di una nuova Azure Web App.

Nella pagina Basics del wizard di creazione di una nuova Azure Web App trovate diverse impostazioni chiave per iniziare la configurazione della vostra applicazione web. Iniziate selezionando la Sottoscrizione, Il Resource Group, Il nome dell’istanza, Il tipo di Runtime ed il sistema operativo.

Nel campo Region scegliete di utilizzare l’App Service Environment che avete creato. Lo troverete come prima opzione nel menù a tendina.

Figura 9: Scelta dell’App Service Environment creato

Un passaggio cruciale è la selezione del Piano di Servizio App, che determina la capacità di calcolo, le caratteristiche e il prezzo per la vostra web app. Potete scegliere tra diversi piani che offrono vari livelli di potenza di calcolo, opzioni di scalabilità e funzionalità aggiuntive.

Il Pricing Plan (o Piano di Prezzi) è un modello tariffario che determina il costo e le risorse disponibili per la vostra applicazione web ospitata su Azure. Azure offre diversi Pricing Plans per le Web Apps, ognuno progettato per soddisfare esigenze diverse in termini di prestazioni, capacità e budget. I Pricing Plans in Azure Web App sono generalmente categorizzati in livelli come Free, Shared, Basic, Standard, Premium e Isolated. Ogni categoria ha le sue specifiche caratteristiche e prezzi, permettendo di scegliere il piano più adatto in base alle esigenze dell’applicazione, al traffico previsto, ai requisiti di prestazioni e al budget disponibile.

Figura 10: Creazione di uno nuovo Pricing plan per la Azure Web App

Il Pricing Tier in un Azure Web App Plan si riferisce al livello di prezzo scelto per il piano di hosting delle vostre applicazioni web su Azure. Questo livello determina una serie di fattori cruciali, come le risorse a disposizione dell’applicazione, le funzionalità disponibili, la scalabilità, le prestazioni e, naturalmente, il costo. Scegliete quindi tra i livelli di prezzo e prestazione disponibili. Ovviamente avrete a disposizione solo le opzioni Isolated.

Figura 11: Azure App Service Pricing Plan disponibili

Completate il wizard di creazione della Azure Web App inserendo tutte le configurazioni che ritenete opportune e fate clic su Create.

Figura 12: Completamento del wizard di creazione della Azure Web App

Attendete quindi la creazione della Azure Web App all’interno del vostro Azure App Service Environment. Nel mio caso ci sono voluti circa 10 minuti.

Al termine della creazione, nella schermata Overview, vi verranno mostrate tutte le caratteristiche dell’applicazione, il dominio predefinito, gli indirizzi IP pubblici in uscita, ecc.

Figura 13: Azure Web App creata

La Web App sarà raggiungibile dall’indirizzo (dominio predefinito) indicato nella scheda Overview. Come ben sapete, sarà poi possibile aggiungere un vostro dominio personalizzato.

Figura 14: Azure Web App creata con successo e raggiungibile da Internet

Dal portale di Azure sarà possibile visualizzare sia le App che gli App Service Plan creati all’interno del vostro App Service Environment, come mostrato nelle figure sotto:

Figura 15: App Service Plan creato in Azure App Service Environment

Figura 16: Azure Web App creata in Azure App Service Environment

Conclusioni

Azure App Service Environment (ASE) è una soluzione potente e flessibile all’interno dell’ecosistema Azure e offre un ambiente di hosting altamente personalizzabile e sicuro per applicazioni web. La sua capacità di fornire isolamento di rete completo e sicurezza avanzata la rende particolarmente adatta per aziende che gestiscono dati sensibili o che devono aderire a rigidi requisiti di conformità.

La grande forza di ASE risiede nella sua integrazione nativa con Azure e nella sua scalabilità, che permette alle aziende di adattare le risorse in base alle esigenze in costante evoluzione. Questo è particolarmente utile in scenari di traffico web elevato o imprevedibile. Inoltre, la capacità di integrarsi con altri servizi Azure e la possibilità di utilizzare reti virtuali (VNet) personalizzate offre alle aziende un controllo notevole sull’ambiente di hosting.

La flessibilità offerta da ASE si estende anche alle opzioni di deployment e gestione delle applicazioni, con supporto per l’integrazione continua e la consegna continua (CI/CD) tramite strumenti come Azure DevOps e GitHub Actions. Questo permette alle aziende di mantenere cicli di sviluppo agili ed efficienti.

Tuttavia, è importante riconoscere che ASE richiede una gestione attenta e una conoscenza approfondita dei servizi di cloud computing per sfruttarne appieno i vantaggi. I costi associati possono essere superiori rispetto ad altre opzioni di hosting in Azure, ma per le organizzazioni che necessitano delle sue capacità uniche, questi costi sono spesso giustificati dal livello di controllo, sicurezza e personalizzazione offerto.