Kubernetes, la soluzione open-source per l’orchestrazione dei container, sta acquistando sempre più popolarità (recenti statistiche rivelano che è utilizzato sul cloud di AWS da un’azienda su tre). Ma quali sono gli effettivi vantaggi d’adozione?
Tipicamente, vengono identificati 5 principali benefici: riduzione dei tempi di sviluppo e rilascio applicativo, ottimizzazione dei costi IT, maggiore scalabilità e disponibilità dei software, flessibilità in ambienti multi-cloud, portabilità verso la nuvola.
Prima di passare in rassegna le opportunità derivanti da Kubernetes, è bene chiarire cosa sono i container e le tecnologie per la loro orchestrazione.
L’impresa digitalizzata impone tempi di software development sempre più veloci. Il business continua a chiedere la disponibilità di nuovi servizi, che l’IT deve essere in grado di rilasciare molto rapidamente. Inoltre, i sistemi informativi aziendali sono sempre più spesso ibridi e multicloud, integrando risorse on-premise con cloud pubblici o privati di fornitori differenti. Le applicazioni IT tradizionali, progettate con un approccio monolitico, non riescono a soddisfare i nuovi requisiti: oltre a richiedere molto tempo per lo sviluppo, il rilascio e la modifica, non garantiscono le stesse prestazioni e funzionalità in ambienti diversi.
Nell'ambito della Digital Transformation si sta quindi imponendo un metodo alternativo per la progettazione del software basato su microservizi: ogni applicazione è formata da unità funzionali indipendenti, che possono essere aggiunte o modificate senza compromettere il sistema complessivo. I microservizi possono girare anche su container, ovvero contenitori di risorse (eg: namespace, cgroups) indipendenti all'interno dello stesso sistema operativo, facilmente trasportabili su diversi ambienti operativi.
I vantaggi sono innanzitutto la portabilità del software su qualsiasi nuvola e la possibilità di intervenire sulla singola funzionalità, accelerando i tempi di rilascio. La criticità maggiore deriva dalla complessità di orchestrare i container (decine di migliaia) in maniera efficiente e scalabile. Fruibile in modalità on-premise o all’interno di ambienti cloud, Kubernetes risponde a questa necessità, automatizzando le operazioni di gestione dei container e ottimizzando l’utilizzo delle risorse IT.
Chiarite le funzionalità di Kubernetes, vediamo ora come questa soluzione open-source può aiutare le aziende a migliorare l’amministrazione del parco applicativo in ambienti IT eterogenei. Di seguito vengono esplicitati i 5 vantaggi principali.
Kubernetes semplifica i processi di sviluppo, rilascio e distribuzione: ad esempio, facilita l’integrazione dei container oppure amministra l’accesso alle risorse storage fornite da diversi provider.
Inoltre, nei casi in cui l'architettura è basata su microservizi, l'applicazione è scomposta in unità funzionali che comunicano tra loro tramite API: il team di sviluppo può essere frammentato in gruppi più piccoli, ognuno specializzato su una singola feature. Questa organizzazione permette di operare con maggiore focalizzazione ed efficienza, accelerando i tempi di release.
Attraverso l’amministrazione dinamica e intelligente dei container, Kubernetes permette di risparmiare sulla gestione degli ecosistemi IT, garantendo la scalabilità su ambienti diversi. L’allocazione delle risorse viene modulata automaticamente in base alle effettive esigenze applicative e le operazioni manuali di basso livello sull'infrastruttura sono molto ridotte, grazie anche alle logiche di autoscaling (HPA, VPA) native ed alle integrazioni con i principali cloud vendor capaci di fornire dinamicamente risorse.
Grazie all’automazione, il personale IT viene dispensato da molte attività operative per la gestione dei sistemi e quindi impiegato su mansioni a valore. Poiché le applicazioni girano indistintamente su qualsiasi ambiente, le aziende sono libere di decidere da quali risorse attingere (on-premise, su cloud privato o su nuvola pubblica) per ogni specifico workload in base alla convenienza.
Kubernetes è in grado si scalare le applicazioni e le risorse infrastrutturali sottostanti in base alle necessità contingenti, garantendo la gestione dinamica dei picchi. Ad esempio, avvicinandosi la data dell’evento, un sistema di e-ticketing subirà un aumento improvviso di richieste per l'acquisto di biglietti.
Grazie alle API native di Autoscaling come HPA e VPA, Kubernetes potrà dinamicamente richiedere nuove risorse HW verso l'infrastruttura che sta erogando il servizio, in modo da garantire una erogazione efficace. Al termine dell’emergenza, Kubernetes farà dunque scale-down delle risorse non più necessarie, evitando di avere sprechi.
Tra i maggiori benefici, la containerizzazione e Kubernetes permettono di concretizzare le promesse dei nuovi ambienti ibridi e multi-cloud, poiché garantiscono il funzionamento delle applicazioni in qualsiasi ambiente pubblico e privato, senza perdite funzionali o di performance.
Si riduce così anche il rischio di lock-in (ovvero la mancanza di interoperabilità di certe soluzioni IT che costringono le aziende a legarsi a un unico fornitore, limitando la libertà di scelta).
Kubernetes permette infine di semplificare e accelerare la migrazione delle applicazioni da un ambiente on-premise alle nuvole pubbliche o private, di qualsiasi provider.
Le applicazioni infatti possono essere portate in cloud seguendo diverse metodologie:
Un percorso consigliato è procedere al replatforming su sistemi on-premise (dove è più semplice), utilizzando le nuove architetture containerizzate e Kubernetes. Si portano quindi le applicazioni su ambiente cloud dove è presente un’istanza di Kubernetes e qui si procede all’ottimizzazione, intervenendo sul codice in maniera più profonda.
Proprio in virtù di questi vantaggi, Kubernetes è una soluzione sempre più adottata dalle aziende di tutto il mondo, indipendentemente dal settore e dalle dimensioni. Un caso eclatante è rappresentato da Airbnb, che ha adottato Kubernetes per modernizzare le applicazioni monolitiche, semplificando il lavoro di mille ingegneri del software e consentendo circa 500 implementazioni giornaliere su un parco di oltre 250 applicazioni critiche che sono state containerizzate. Shopify ha affrontato un imponente progetto di migrazione portando tutte le applicazioni sul cloud di Google; i software sono stati riscritti utilizzando l’architettura a container di Docker e successivamente orchestrati attraverso Kubernetes.
LEGGI ANCHE: 3 case history di aziende che usano i container e Kubernetes
Parlando di aziende italiane, la multinazionale chimico-farmaceutica Zambon ha consolidato in cloud la piattaforma di gestione per il proprio ecosistema di siti, sfruttando Google Cloud Platform per l’Occidente e Alibaba Cloud per l’Oriente; Caleffi Hydronic Solutions invece ha rafforzato la propria presenza sul mercato cinese appoggiandosi alle soluzioni del provider di Hangzhou in affiancamento alla nuvola di Big G. Entrambi i progetti hanno quindi visto la costruzione di ambienti ibridi e multicloud, dove le applicazioni possono essere portate facilmente da una nuvola all’altra e scalate senza sprechi di risorse grazie alla containerizzazione e all’orchestrazione di Kubernetes.