L'evoluzione delle app e del loro funzionamento sui dispositivi conosce, ormai da anni, tempistiche di sviluppo e produzione inimmaginabili fino a qualche anno fa; la struttura del codice, in questi casi, diventa un problema serio da gestire per i programmatori, che devono quindi ricorrere ad un'infrastruttura di supporto, che possa aiutare nella gestione delle diverse parti che compongono il software. In uno scenario del genere, una soluzione open source come Kubernetes è in grado di fornire molte risposte
Che cos'è Kubernetes
Per capire meglio a cosa serva questa soluzione software è bene partire dal suo predecessore, ovvero BORG: mediante un sofisticato sistema di controllo, infatti, esso consentiva di raggiungere un ottimale utilizzo delle risorse, sfruttando packaging e suddivisione del carico di lavoro senza appesantire il thread principale. Il software consentiva, in altri termini, di monitorare più processi e far funzionare il software nel suo complesso orchestrandone (secondo opportune politiche) le diverse parti. I dettagli tecnici su BORG, per chi volesse saperne di più, sono stati pubblicati in un paper di Google di qualche anno fa.
Da questo sistema deriva l'attuale sistema - che da tempo, peraltro, Google Cloud supporta il cluster Kubernes e permette di eseguirlo in modo semplice e pratico.
Come funziona Kubernetes
Per comprendere al meglio il vantaggio derivante dall'uso di Kubernetes, è bene partire dall'idea di creare una o più istanze di software; una volta che i nodi dell'applicazione sono realizzati, infatti, vengono monitorati nel loro insieme da Kubernetes. Lo scopo della creazione di più nodi è a questo punto evidente: impedire disservizi e malfunzionamenti che potrebbero ridurre la qualità  del servizio, ad esempio qualora debba funzionare 24 ore al giorno, 7 giorni su 7. Se un nodo dovesse funzionare male o essere non raggiungibile per via di qualche problema di rete, ad esempio, Kubernetes provvede a rimpiazzarlo in modo automatico con un altro equivalente. Grazie ad un master node che "dirige l'orchestra", di fatto, è possibile garantire esternamente la continuità  del servizio che, con un'app tradizionale, sarebbe impossibile da ottenere, vista la grande varietà  di fattori e software diversi che devono interagire tra di loro. L'insieme dei nodi gestiti dal master node viene poi detto, in gergo, POD, che diventa quindi un'unità  di servizio che è possibile gestire e controllare dall'esterno come "blocco" unico, utilizzabile nel sistema senza sapere nulla dei suoi rispettivi dettagli di funzionamento.
Nel sito ufficiale del framework è possibile far funzionare un "Hello World" di base, che funziona direttamente da browser, senza dover installare nulla.
Come si usa Kubernetes nella pratica
A livello pratico, poi, Kubernetes è utilizzato per orchestrare il funzionamento di applicazioni come, ad esempio, Spotify o Box: molti servizi cloud come CRITICALCASE, di fatto, offrono la possibilità  di sviluppare applicazioni complesse basate sul modello PaaS o IaaS.