L’esigenza di rilasciare in modo veloce, sicuro e automatizzato gli applicativi trova nell’orchestrazione un potente alleato. Kubernetes, la piattaforma open source per la gestione di container, è lo strumento chiave che permette ai team di concentrarsi sullo sviluppo degli applicativi, semplificando e automatizzando le fasi di rilascio e ottenendo maggiore scalabilità delle applicazioni.
In questo articolo scopriamo i fondamentali di Kubernetes, per rispondere alla domanda: “Che cos’è Kubernetes e cosa bisogna sapere per sviluppare su Kubernetes?”.
Che cos’è Kubernetes e con quali componenti opera
Kubernetes è un orchestratore per container Docker, ossia uno strumento per la gestione dei container in cui è ospitato il software applicativo. Permette ai team IT di standardizzare le operazioni e alzare il livello di astrazione nella gestione. Grazie a Kubernetes diventa più semplice garantire la continuità e le prestazioni delle applicazioni.
Vediamo i componenti fondamentali di Kubernetes:
- Container. È l’unità software che contiene l’applicazione. Impacchettando tutto il codice e le sue dipendenze, l’applicazione diventa indipendente dal sistema operativo e dagli altri componenti software.
- Docker. È uno dei sistemi più diffusi per isolare le applicazioni e le loro dipendenze in container virtuali. A differenza dell’isolamento ottenuto con macchine virtuali, i container Docker possono condividere le stesse istanze del sistema operativo e permettono di sfruttare in modo più efficiente le risorse di memoria e di elaborazione disponibili.
- Pod. Sono sovrastrutture che facilitano l’impiego dei container negli ambienti software più complessi. I pod permettono di raggruppare più container assieme alle specifiche di storage, di rete e alle altre informazioni che sono necessarie per garantire il funzionamento dei servizi. In questo modo i pod possono contenere interi sistemi informativi, essere creati, modificati e distrutti in funzione delle necessità della gestione.
- Namespace. È il nome con cui l’orchestratore identifica i cluster virtuali a loro volta ospitati all’interno dei cluster fisici, ossia del pool di server interconnessi nel data center. La creazione dei namespace trova la propria utilità nei grandi ambienti applicativi aziendali, quando è necessario poter controllare e quindi assegnare (pro quota) a singoli reparti, team o progetti solo delle porzioni delle risorse presenti nel cluster fisico.
Perché ti serve un orchestratore
Utilizzare un orchestratore in ambito enterprise permette di gestire correttamente i container e, di conseguenza, migliorare la produttività dei team IT attraverso l’automazione delle attività legate ai deploy delle applicazioni e alla gestione delle risorse. Per esempio, i servizi di autoscaling e di load balancing permettono un utilizzo ottimale delle risorse, allocandole dove è necessario.
Allo stesso modo, l’orchestratore può automatizzare il riavvio dei container applicativi il cui funzionamento sia venuto meno per problemi tecnici, garantendo la rapidità dei processi che servono alla business continuity. I team IT possono beneficiare di una visibilità immediata sullo stato dei servizi e sull’uso delle risorse attraverso una console centralizzata.
La capacità di standardizzare e automatizzare il provisioning delle risorse rende efficiente il lavoro dei team di sviluppo e consente di accompagnare con le risorse più adeguate le evoluzioni del software applicativo. Dal lato del business, l’utilizzo di Kubernetes permette di migliorare il time-to-market dei nuovi progetti software, così come minimizzare i danni in caso, per esempio, di attacchi informatici. Questi benefici sono riscontrabili non soltanto per le applicazioni cloud native, ma anche nell’ambito di progetti di migrazione da software legacy monolitico a microservizi.
Kubernetes a supporto degli “stili architetturali” del software
Da dove cominciare a utilizzare Kubernetes?
Come diciamo spesso, non esiste un solo modo per sviluppare su Kubernetes, ma esistono diversi stili architetturali.
Lo stile più semplice, noto come single page application (SPA) si realizza con applicazioni eseguite nel browser che interagiscono, attraverso gateway, sia con le API che espongono la logica di business sia con gli asset statici di presentazione. Un'altra modalità, nota come backend for frontend (BFF), vede le applicazioni suddivise in microservizi, ciascuno dei quali rappresenta una logica di business; il BFF espone le API che semplificano l’interazione utente. Un altro stile è saga pattern (SP) che risponde ai contesti dove i servizi non realizzano una comunicazione punto-a-punto, ma sfruttano un message broker usando la logica publish & subscribe.
Come anticipato, capita di interfacciarsi con sistemi legacy preesistenti. Talvolta l’integrazione può essere realizzata facendo in modo che i microservizi chiamino i servizi legacy via API. Altre volte, invece, Kubernetes può essere utilizzato per realizzare un sistema più sofisticato, che disaccoppia i dati in lettura e scrittura dai sistemi legacy, realizzando un'architettura per la gestione in tempo reale delle informazioni su tutti i canali.
Conclusioni
In questo articolo abbiamo visto i fondamentali di Kubernetes, che è oggi la chiave di volta per poter realizzare un’architettura applicativa in grado di evolvere insieme alle esigenze di business: è lo strumento che permette di velocizzare i processi, ridurre il time-to-market dei nuovi prodotti digitali, migliorare la scalabilità e ridurre i costi IT, abbracciando il paradigma di sviluppo cloud-native.
© MIA s.r.l. Tutti i diritti riservati