Magazine

Kubernetes: cosa non è e come contribuisce all'approccio cloud native in azienda

06/09/2023
Kubernetes: cosa non è e come contribuisce all'approccio cloud native in azienda
Enterprise
Kubernetes è una piattaforma di orchestrazione di container open source che automatizza molti dei processi manuali coinvolti nella distribuzione, gestione e dimensionamento delle applicazioni containerizzate.

Grazie a Kubernetes è possibile ottimizzare e semplificare la gestione dei cluster formati da gruppi di host che eseguono i contenitori. I cluster Kubernetes possono estendersi su host cloud on-premise, pubblici, privati o ibridi. Per questo motivo, è ideale per ospitare applicazioni native del cloud che richiedono una rapida scalabilità, come lo streaming di dati in tempo reale. Kubernetes è stato originariamente sviluppato e progettato da Google.

Cosa non è 

Eppure, nonostante la diffusione della piattaforma, sembra che circolino alcuni misunderstanding su cosa sia Kubernetes e, soprattutto, su cosa non possa fare alla luce dell’ambito ristretto e specifico di funzionalità che lo caratterizzano. Infatti, al di là dell'orchestrazione, Kubernetes è stato progettato, in modo minimale e pronto all’uso, con l'idea di essere il nucleo dell'ecosistema di un container, per fungere da struttura di gestione.

Ecco raccolti alcuni luoghi comuni, errati, su Kubernetes:
  • Kubernetes non è un vero e proprio PaaS in quanto lascia agli utenti la gestione del sistema;
  • non richiede un tipo di applicazione specifico o un framework di dipendenze;
  • non ha come requisito la conoscenza di un linguaggio di programmazione;
  • non fornisce alcun database autonomo.

Breve storia

Inizialmente sviluppato da Google e reso open source nel 2014, Kubernetes gode di un importante supporto da parte della sua community di utenti. Dalla versione 1.0 nel 2015, la sua popolarità è aumentata senza sosta. Nel 2019, il rapporto annuale della CNCF (Cloud Native Computing Foundation) informa sull'importante crescita dei programmi di formazione e certificazione relativi a Kubernetes, introdotti nel 2018.

L'anno 2019 ha visto un aumento del 142% annuo delle iscrizioni alle sue certificazioni. Kubernetes ha visto anche una maggiore adozione da parte delle aziende. Nel 2020, VMware ha pubblicato uno studio in cui ha intervistato 247 figure qualificate all'interno di organizzazioni con 1.000 o più dipendenti. L'indagine ha rivelato che il 59% delle aziende dispone già di cluster Kubernetes nei propri ambienti di produzione, il 20% di loro esegue più di 50 cluster e il 33% più di 26.
 
La pratica rende perfetti, come si suol dire, e Kubernetes non fa eccezione: è il terzo più grande sistema di gestione dei container sviluppato da Google negli ultimi 15 anni dopo i predecessori Borg e Omega. Borg è stato concepito come un sistema in grado di gestire processi in esecuzione continua e di eseguire lavori batch. Utilizza i cgroup del kernel Linux per isolare i contenitori, chiamati “task” per un migliore utilizzo delle risorse disponibili.

Sebbene Borg sia partito come un sistema relativamente semplice, nel tempo è stato ampliato con numerose aggiunte per soddisfare varie esigenze di natura applicativa. Alla fine, alcune di queste aggiunte si sono rivelate utili, ma la loro natura eterogenea le ha rese difficili da integrare e comunicare.

Omega è un discendente diretto di Borg, con lo scopo di organizzare e strutturare al meglio tutto l'ecosistema di servizi che è apparso e si è evoluto nel tempo. Omega utilizza un archivio centrale, con un algoritmo per garantire coerenza e una separazione tra i componenti che accedono.

Ciò significa che i componenti possono dialogare tra loro, invece di dialogare con un’entità centrale e monolitica come prima. Nella pratica, Borg è nato come un sistema di gestione dei container piuttosto elementare e nel tempo sono stati aggiunti servizi. Omega ha riorganizzato questi servizi dall'inizio e ora Kubernetes li migliora ancora di più utilizzando un'API coerente. Tutte le API sono basate su oggetti, che hanno gli stessi elementi di base.

Perché Kubernetes è fondamentale per il Cloud Native

L'architettura o la tecnologia cloud native è un approccio utilizzato per creare, sviluppare ed eseguire applicazioni software scalabili che funzionano in ambienti moderni e dinamici. L'ambiente può presentarsi come cloud privato, pubblico o ibrido (sia privato che pubblico).

La tecnica del cloud native computing consente agli sviluppatori di gestire e mantenere sistemi liberamente accoppiati per mostrare cambiamenti significativi con il minimo sforzo, anche con l'aiuto dell'automazione. Esempi di approcci nativi del cloud sono l'infrastruttura immutabile, i contenitori, i servizi mesh e le API dichiarative. Le organizzazioni fanno affidamento su questa tecnologia per far evolvere il proprio business e aumentare le capacità per la crescita.
 
Kubernetes, d'altra parte, è una piattaforma open source utilizzata nella gestione di carichi di lavoro e servizi containerizzati utilizzando l'automazione e la configurazione dichiarativa. L'architettura dei microservizi poggia su contesti limitati e servizi liberamente accoppiati, in cui ciascuno può essere aggiornato indipendentemente dall'altro. Affinché i microservizi abbiano un flusso di lavoro fluido, viene introdotta la containerizzazione, in base alla quale ciascun servizio o microservizio può essere eseguito in contenitori diversi e gestito in modo isolato l'uno dall'altro. 

Scopri l’offerta Aruba Enterprise per il cloud native