La containerizzazione si sta affermando come una tendenza innovativa nel campo dello sviluppo software. Come dimostrato in un recente studio di Kaspersky, più della metà delle aziende geo-distribuite ha intenzione di ricorrere allo sviluppo di container nel prossimo futuro
Secondo l’ultimo report di Kaspersky “Gestione delle aziende geograficamente distribuite: sfide e soluzioni”, il 56% delle aziende geo-distribuite prevede di passare allo sviluppo di container nei prossimi 1-2 anni. Inserendo le applicazioni e i loro componenti in ambienti isolati, i container offrono una portabilità e una stabilità senza precedenti nelle varie fasi di sviluppo e distribuzione. Per le aziende geo-distribuite, che operano in più sedi e spesso in diversi Paesi, ci sono ulteriori considerazioni da fare per garantire un’integrazione e un funzionamento ottimali, che Kaspersky esplora in questo articolo.
Conoscere le basi dei container
Prima di affrontare la containerizzazione, le aziende geo-distribuite devono conoscerne le basi e familiarizzare con i concetti essenziali come le immagini dei container, i container stessi, i file di configurazione e i registri, requisiti essenziali per una transizione senza problemi.
Un container è un componente software che contiene l’ambiente di cui un’applicazione (microservizio) ha bisogno per funzionare, compresi file, librerie e metadati. A differenza di una virtual machine, un container non ha un proprio sistema operativo, ma lo condivide con altri container sul nodo che li esegue. I container raggruppano il software e i suoi componenti in un’unica unità che può essere eseguita in modo coerente in ambienti diversi. È anche possibile creare container da immagini gestite in piattaforme CI. Nelle piattaforme CI i container vengono organizzati in build pronte all’uso (app) e quindi distribuiti negli orchestratori.
Scegliere il giusto strumento di orchestrazione dei container
La scelta del giusto strumento di orchestrazione dei container è fondamentale, soprattutto per le aziende geo-distribuite. Questi strumenti consentono di gestire la distribuzione, la scalabilità e il funzionamento delle applicazioni containerizzate. Kubernetes è la scelta più popolare grazie al suo robusto set di funzionalità e al supporto della community. È importante scegliere uno strumento che supporti in modo efficiente le distribuzioni multiregionali, garantendo una latenza minima e una perfetta integrazione tra le diverse sedi. La scalabilità, il supporto della community e la compatibilità con i sistemi esistenti sono fattori chiave da considerare.
Considerazioni sulla sicurezza
La sicurezza in un ambiente containerizzato richiede un approccio a più livelli in particolare per le aziende geo-distribuite. I container possono creare problemi di sicurezza unici, come vulnerabilità o configurazioni errate nelle immagini dei container, immagini obsolete con malware localizzati nei registri delle immagini, errori o accessi non autorizzati ai sistemi di orchestrazione, vulnerabilità del runtime, possibilità per i container di accedere al file system del sistema operativo host e molto altro. È essenziale implementare pratiche di sicurezza complete, tra cui la scansione regolare delle immagini dei container alla ricerca di vulnerabilità, il monitoraggio e la protezione in tempo reale dei container in esecuzione e l’isolamento dei processi. L’esecuzione dei container con privilegi minimi, l’implementazione della segmentazione di rete e l’utilizzo di service meshes per la comunicazione sicura tra i microservizi sono fondamentali. Inoltre, la conformità alle normative locali sui dati e l’audit continuo sono necessari per affrontare la sovranità dei dati e le regolamentazioni sul trasferimento dei dati oltre il confine.
Integrazione e distribuzione continua (CI/CD)
L’integrazione dei container nelle pipeline CI/CD può migliorare l’agilità dello sviluppo e ridurre i tempi di distribuzione. I container garantiscono ambienti stabili e sono quindi ideali per i test e le distribuzioni automatizzate. Per le aziende geo-distribuite, le pipeline CI/CD devono tenere conto della distribuzione in più regioni, ottimizzando la latenza e garantendo un’integrazione perfetta. L’automazione di test, build e deployment è un passo fondamentale per implementare il CI/CD grazie ai container.
Gestione e monitoraggio delle risorse
Una gestione efficiente delle risorse è fondamentale per evitare un eccesso o un difetto di provisioning, soprattutto in un ambiente geo-distribuito in cui le richieste di risorse possono variare in modo significativo da una regione all’altra. Gli strumenti di monitoraggio aiutano a tenere traccia delle prestazioni dei container e dell’utilizzo delle risorse nelle diverse sedi. Le soluzioni di registrazione centralizzate con aggregazione dei dati da più sedi e l’impostazione di richieste e limiti di risorse negli strumenti di orchestrazione garantiscono un utilizzo equilibrato delle risorse.
Gestione dei costi
La gestione efficiente dei costi è un altro aspetto cruciale per le aziende geo-distribuite. I costi aggiuntivi legati al trasferimento dei dati, alle differenze di prezzo a livello regionale e alle implementazioni multiregionali devono essere gestiti con attenzione. La valutazione e la revisione continua dell’allocazione delle risorse in base ai modelli di utilizzo, l’implementazione di policy di autoscaling e il monitoraggio dei costi nelle diverse regioni sono essenziali per la gestione dei costi.
Formazione e cambiamento della cultura della sicurezza
La migrazione verso lo sviluppo di container non è solo un cambiamento tecnico, ma anche culturale. I team devono essere formati sui nuovi strumenti e sulle nuove pratiche e si deve promuovere una cultura DevSecOps per favorire la collaborazione tra sviluppo, sicurezza e operazioni in diverse regioni. Condurre workshop e sessioni di formazione su misura per i diversi team regionali, incoraggiare pratiche come l’infrastructure as a code o l’approccio Shift-left e creare team trasversali che includano sviluppatori, professionisti della cybersecurity e personale operativo di diverse regioni sono passi fondamentali per facilitare questo passaggio.
“Il passaggio ai container snellisce i processi di sviluppo e apre la strada ad applicazioni innovative, resilienti e scalabili. Tuttavia, questa transizione comporta sfide di sicurezza uniche che richiedono un approccio proattivo e completo. In Kaspersky siamo consapevoli dei rischi per la sicurezza associati all’uso dei container e nel 2023 abbiamo rilasciato una soluzione specializzata per la protezione degli ambienti containerizzati, Kaspersky Container Security, che protegge tutte le fasi dello sviluppo dei container, compresa la parte più critica: il runtime. Integrando soluzioni avanzate per la sicurezza dei container, le aziende possono garantire che le loro applicazioni siano sicure e conformi, consentendo loro di sfruttare appieno il potenziale della containerizzazione, salvaguardando al contempo gli asset digitali”, ha commentato Anton Rusakov-Rudenko, Product Marketing Manager, Cloud & Network Security Product Line di Kaspersky.