{"id":1839,"date":"2020-10-16T12:00:00","date_gmt":"2020-10-16T10:00:00","guid":{"rendered":"https:\/\/blog.besharp.it\/?p=1839"},"modified":"2021-03-17T15:28:04","modified_gmt":"2021-03-17T14:28:04","slug":"strategie-di-rilascio-con-amazon-ecs-il-blue-green-deployment","status":"publish","type":"post","link":"https:\/\/blog.besharp.it\/it\/strategie-di-rilascio-con-amazon-ecs-il-blue-green-deployment\/","title":{"rendered":"Strategie di rilascio con Amazon ECS: il blue\/green deployment."},"content":{"rendered":"\n
L’architettura a microservizi<\/strong> \u00e8 diventata ormai predominante in molti progetti software. Grazie ai suoi enormi vantaggi in termini di velocit\u00e0 di sviluppo e di deploy, agevola i task quotidiani dei DevOps e non solo.<\/p>\n\n\n\n
Per sfruttare questo pattern architetturale su AWS possiamo utilizzare Amazon Elastic Container Service (Amazon ECS)<\/strong>, un servizio di orchestrazione dei container completamente gestito.<\/p>\n\n\n\n
ECS \u00e8 una grande scelta per l’esecuzione dei container per diverse ragioni. Per prima cosa, permette di scegliere di eseguire i cluster ECS utilizzando AWS Fargate, un\u2019infrastruttura serverless per container. Fargate rimuove la necessit\u00e0 di effettuare il provisioning e la gestione dei server, permettendoci di pagare solo per le risorse utilizzate per ciascuna applicazione.<\/p>\n\n\n\n
Inoltre, ECS pu\u00f2 essere integrato in modo nativo con altri servizi come Amazon Route 53, Secrets Manager, AWS Identity and Access Management (IAM) e Amazon CloudWatch.<\/p>\n\n\n\n
Gestire architetture a microservizi su ECS non \u00e8 sempre banale. Sul nostro blog abbiamo gi\u00e0 parlato di come creare e gestire cluster e implementare pipeline di CI\/CD per ECS.<\/p>\n\n\n\n
In questo articolo andremo invece a vedere un aspetto fondamentale per la continuous integration<\/strong> del software, ovvero le diverse modalit\u00e0 di rilascio dei nuovi pacchetti software. In particolare, ci focalizzeremo sulla metodologia blue\/green<\/strong>, una tecnica relativamente nuova che risolve molti dei problemi presenti con altre modalit\u00e0 di deployment pi\u00f9 semplici.<\/p>\n\n\n\n
Strategie di deployment<\/h2>\n\n\n\n
Ad oggi esistono numerose strategie di deployment. Vediamo insieme quelle pi\u00f9 diffuse e supportate da ECS:<\/p>\n\n\n\n
Rolling update<\/strong>: Con questa modalit\u00e0, la vecchia e la nuova versione software coesisteranno nella fase di rilascio. Infatti, il nuovo pacchetto verr\u00e0 installato progressivamente su tutti i server. Cosa comporta? La tua applicazione dev\u2019essere in grado di supportare entrambe le versioni, il che pu\u00f2 diventare complicato quando queste due utilizzano una versione diversa del database. Questa modalit\u00e0 di deployment \u00e8 tra le pi\u00f9 semplici da setuppare, tuttavia \u00e8 importante considerare che prevede forti vincoli sulla retrocompatibilit\u00e0 delle versioni rilasciate.<\/li><\/ul>\n\n\n\n