L'automatizzazione della distribuzione del software aiuta a ridurre gli attriti e i ritardi che si verificano tra il completamento del software e la messa in produzione.
Una delle sfide più difficili è ridurre il tempo tra la fase finale dei test e l'esecuzione dal vivo la quale deve essere necessariamente la più breve possibile per ridurre al minimo i tempi di fermo.
Blue-green deployment
Nel blue-green deployment, dobbiamo creare due ambienti completamente uguali, quello di test e quello di produzione. In qualsiasi momento uno dei due ambienti è vivo, ad esempio l'ambiente blu, mentre nell'altro ambiente, ad esempio ambiente verde, si esegue l'ultima fase dei test. Una volta che il software sta funzionando, si cambia il routing delle richieste in modo che passino progressivamente all'ambiente verde fino a che l'ambiente blu diventi inattivo.
Questo approccio è un modo rapido per eseguire il rollback nel caso qualcosa vada storto.
I due ambienti devono essere diversi ma il più possibile identici. In alcune situazioni possono essere componenti hardware diversi oppure possono essere macchine virtuali diverse in esecuzione sullo stesso (o diverso) hardware.
Una volta che l' ambiente è verde e si è soddisfatti della sua stabilità, allora si utilizza l'ambiente blu come ambiente di gestione temporanea per la fase di test finale per la tua prossima distribuzione.
I database possono spesso rappresentare una sfida con questa tecnica, in particolare quando è necessario modificare lo schema per supportare una nuova versione del software. In questi casi è necessario attuare una politica di rollback nel caso il rilascio non funzioni correttamente.
Azure WebApp distribution slot
Nelle WebApp di Azure è disponibile la funzionalità dello slot di distribuzione che consente di mutare il carico progressivamente dall'ambiente blu all'ambiente verde e di verificare i requisiti.
Quando un nuovo client esegue una richiesta, viene associato a una delle due istanze con un particolare header HTTP chiamato: x-ms-routing-name=BLUEGREENSLOT dove il BLUEGREENSLOT è il nome dello slot. L'ambiente di produzione viene individuato con l'attributo SELF (x-ms-routing-name=self).
Il blue-green deployment è una tecnica da utilizzare nelle procedure di ontinuous Delivery, in particolare, è possibile sfruttare tramite Azure DevOps, le opzioni di deployment slot tramite l'estensione predefinita Azure App Service Deployment: ARM.
Con questa tecnica, ed eventualmente con il supporto del manual intervention task, è possibile eliminare il downtime dell'applicazione anche su ambienti di continuous delivery.
Di seguito è mostrato come implementare su Azure DevOps per rilasciare il codice in uno slot di staging.
Una volta testato è possibile proseguire con il task per scambiare l'istanza di produzione, da blu a verde.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Gestire i dati con Azure Cosmos DB Data Explorer
Ottimizzare le pull con Artifact Cache di Azure Container Registry
Gestire la cancellazione di una richiesta in streaming da Blazor
Gestire liste di tipi semplici con Entity Framework Core
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Migliorare i tempi di risposta di GPT tramite lo streaming endpoint in ASP.NET Core
Eseguire i worklow di GitHub su runner potenziati
Path addizionali per gli asset in ASP.NET Core MVC
Assegnare un valore di default a un parametro di una lambda in C#
.NET Conference Italia 2024
Creare una libreria CSS universale: Cards
I più letti di oggi
- Screencast 'Primi passi con Windows Workflow Foundation'
- .NET Conference Italia 2021 - Online
- Venite a trovarci a SMAU, dal 2 al 6 ottobre!
- Validazione dell'input in ASP.NET MVC 2
- Ignorare gli errori negli script
- Persistere la ChatHistory di Semantic Kernel in ASP.NET Core Web API per GPT
- Inviare un'e-mail con ASP.NET