L'uso di container si sta affermando come una tendenza innovativo nel campo dello sviluppo software e le aziende geo-distribuite, in particolare, stanno seguendo questo trend: secondo l'ultimo report di Kaspersky, "Gestione delle aziende geograficamente distribuite: sfide e soluzioni", il 56% di queste realtà prevede di passare allo sviluppo di container nei prossimi 1-2 anni.
I container, isolando le applicazioni, garantiscono portabilità e stabilità nelle fasi di sviluppo e distribuzione; questa soluzione si rivela quindi particolarmente utile per le aziende che operano in più sedi e in diversi Paesi.
"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" spiega Anton Rusakov-Rudenko, Product Marketing Manager, Cloud & Network Security Product Line di Kaspersky.
Per aiutare le imprese geo-distribuite nel passaggio alla containerizzazione, gli esperti di Kaspersky hanno condiviso alcune considerazioni importanti per garantire un'integrazione e un funzionamento ottimali.
Conoscere i container
Il primo passo da fare per iniziare un percorso di containerizzazione è conoscere le basi dei container e approfondire concetti essenziali quali le immagini, i file di configurazione e i registri.
Kaspersky spiega che "un container è un componente software che contiene l'ambiente di cui un'applicazione (microservizio) ha bisogno per funzionare, compresi file, librerie e metadati." I container si differenziano dalle macchine virtuali perché condividono il sistema operativo con altri container sullo stesso nodo che li eseguono.
Il software e i suoi componenti vengono raggruppati in un'unica unità che può essere eseguita in modo coerente in ambienti diversi. Nelle piattaforme di Continuous Integration i container sono ottimizzati in build pronte all'uso per essere distribuiti negli orchestratori.
Scegliere il giusto strumento di orchestrazione
Per gestire i container è necessario usare uno strumento di orchestrazione adatto. Questi tool permette di gestire la distribuzione, la scalabilità e il funzionamento delle applicazioni nei container distribuite in diverse sedi.
Le aziende dovrebbero scegliere uno strumento che che supporti in modo efficiente le distribuzioni multiregionali, garantendo una latenza minima e una perfetta integrazione tra le diverse sedi.
Attenzione alla sicurezza
Anche i container vanno protetti adeguatamente. In un ambiente containerizzato, la sicurezza va gestita con un approccio a più livelli che tenga conto delle configurazioni errate delle immagini, della presenza di immagini obsolete con malware localizzati nei registri, di errori e accessi non autorizzati ai sistemi di orchestrazione o di vulnerabilità del rutnime.
Per proteggerei container è essenziale implementare pratiche di sicurezza quali la scansione regolare delle immagini alla ricerca di vulnerabilità, il monitoraggio e la protezione in tempo reale dei container in esecuzione e l'isolamento dei processi.
A queste si aggiungono 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.
Inoltre, dal momento che si parla di aziende che possono avere sedi in diverse aree geografiche, è necessario valutare la conformità alle normative locali sui dati ed effettuare audit continui per affrontare le regolamentazioni sul trasferimento dei dati oltre confine.
Integrazione e distribuzione continua (CI/CD)
L'integrazione dei container nelle pipeline CI/CD migliora l'agilità dello sviluppo e riduce i tempi di distribuzione. I container garantiscono ambienti stabili e sono quindi ideali per i test e le distribuzioni automatizzate.
Nel caso delle aziende geo-distribuite, le pipeline devono essere impostate tenendo conto della distribuzione in più regioni per ottimizzare la latenza e contare su un'integrazione perfetta.
Gestione delle risorse e dei costi
Nel gestire i container è fondamentale assicurarsi di avere sempre le risorse necessarie a disposizione, evitando gli eccessi o i difetti di provisioning. Usare strumenti di monitoraggio robusti aiuta le imprese a tenere traccia delle prestazioni dei container e dell'uso delle risorse nelle varie sedi.
Aggregando i dati da più fonti e impostando limiti di risorse negli strumenti di orchestrazione, è possibile garantire un uso equilibrato di asset e limitare gli sprechi.
Strettamente legata alla gestione delle risorse c'è la gestione dei costi, aspetto particolarmente importante per le aziende geo-distribuite. I costi del trasferimento dati, delle differenze di prezzo regionali e delle implementazioni multiregionali devono essere misurati e gestiti con la massima attenzione.
Per contenere le spese è importante valutare continuamente l'allocazione delle risorse in base ai modelli di utilizzo, implementare policy di autoscaling e monitorare i costi nelle diverse regioni.
Formare il personale sulla cultura DevSecOps
Oltre alla parte tecnica, il passaggio ai container richiede un cambiamento anche dal punto di vista della cultura: 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.
Le aziende possono condurre workshop e sessioni di formazione 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 sedi.
"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" conclude Rusakov-Rudenko.