di W. Dal Mut, Lead of Infrastructures @ Corley - whitepaper 2020
Gestire un'infrastruttura cloud è un processo complicato, in quanto spesso diverse componenti devono interagire alla perfezione.
Immaginiamo un'architettura composta da server web, load balancer, microservizi API, database, sistemi di coda e notifica, storage scalabile...
Creare, gestire e mantenere nel tempo queste architetture richiede tool e processi specifici per evitare errori e automatizzare ogni variazione all'architetetura.
CloudFormation è il tool di Infrastructure as Code che utilizziamo quotidianamente per la realizzazione di tutte le nostre infrastrutture. Grazie alla gestione delle risorse programmabili, alla gestione dei tag e di molte altre feature è possibile raccogliere a template le requirements di un progetto e renderlo così disponibile e riproducibile a comando, e avere un continuo legame tra le risorse esistenti e necessità di variare le infrastrutture nel tempo.
Grazie al sistema di tagging è anche possibile catalogare le risorse impiegate e avere il dettaglio costi completamente mappato e pronto per le successive analisi!
Ecco un caso di successo pubblicato che fonda tutte le sue radici negli stack di CloudFormation.
CloudFormation non necessita di tool esterni: un semplice editor di testo lo rende immediatamente utilizzabile.
I template di infrastruttura realizzati possono essere direttamente caricati nella console AWS o integrati nell'ambiente cloud dagli sviluppatori attraverso linea di comando.
Grazie alla programmaticità del sistema CloudFormation di Amazon Web Services è possibile integrarsi rapidamente con i sistemi di continous integration, delivery e deployment. La flessibilità del tool di infrastructure as code permette non solo di lavorare su reti applicative ma anche le stesse strutture di ci/cd permettendo così anche la loro mappatura, revisione e gestione.
La seguente immagine mostra come diversi tool di AWS possono essere collegati per, partendo da un template di codice infrastrutturale (icona rossa in alto), creare e aggiornare una infrastruttura (blocco verde delle risorse in basso).
I template di CloudFormation sono semplici file di testo che rappresentano la struttura che si vuole creare sul Cloud Amazon Web Services. Grazie a questa struttura possiamo registrare tutti i template nei sistemi di revisione del codice, come Git, permettendo così il continuo tracking delle risorse e delle modifiche infrastrutturali, consentendoci di seguire le differenze rispetto al passato ed identificare potenziali bug grazie al sistema di revisione.
L'adozione di un sistema di revisione del codice (e quindi dell'architettura) ci permette di attivare processi di continuous delivery/deployment degli stack CloudFormation.
Ad ogni variazione architetturale che viene descritta nel codice, possiamo quindi ingaggiare il deploy di infrastruttura, permettendo così il continuo upgrade delle risorse mantenendo al tempo stesso uno archivio storico degli eventi dell'architettura. In caso di problemi l'integrato sistema di rollback di CloudFormation permetterà il ritorno automatico alla condizione di partenza lasciando in questo modo l'infrastruttura sempre disponibile e in salute. Sistemi di notifica basati su SNS (Simple Notification Service) integrati con il sistema di monitoring o altri software interni all'azienda gestiscono in realtime qualunque necessità specifica avvisando il team di infrastruttura e permettendo di risolvere velocemente il problema.
I template di CF permettono di eseguire il tagging di tutte le risorse sotto il loro controllo garantendo in questo modo il tracking di tutte le strutture e quindi il monitor di dettaglio dei costi in modo completamente organizzato.
Grazie al tagging infatti è possibile abilitare il servizio Cost Explorer di Amazon Web Services e analizzare il consumo di risorse in tempo reale. In questo modo è possibile pianificare operazioni di cost-saving delegando l'aggiornamento di tutte le risorse direttamente a CloudFormation.
CloudFormation consente infine l'importazione delle risorse, grazie a cui è possibile mappare componenti dell'architettura già esistenti collegandole ad un nuovo template. In questo modo è possibile costruire infrastrutture basandosi su definizioni pre-esistenti, ereditando così parte dell'architettura e ottenendo un immediato vantaggio operativo.
Questo permette di passare da una gestione manuale di una infrastruttura (con tutti i rischi del caso: errori umani, perdita di risorse, tempo sprecato) ad una versione completamente sicura e automatizzata.
parlaci del tuo progetto o condividi le tue domande con noi!
Grazie ai successi e all'impegno costanti, Corley è Advanced Consulting Partner di Amazon Web Services!
Servizi su AWS
Migrazioni in cloud, performance
cloud native, serverless & IoT