Caricamento...
img

Gestire i nuovi modelli di sviluppo con Kubernetes

I vantaggi della piattaforma aperta e flessibile negli ecosistemi di oggi

Creato da Fabrizio Iannucci, il 13/09/2021

Progettare e costruire applicazioni oggi richiede una semplice e frequente gestione del cambiamento, della variazione della capacità di servizio, e della alta affidabilità.

I nuovi modelli di sviluppo prevedono il ricorso a tecnologie, come microservizi, container e API, e alla integrazione del ciclo di sviluppo con il ciclo di esercizio, sempre più spesso gestiti dallo stesso soggetto, nella modalità SaaS, con l’obiettivo di accelerare il time-to-market, diffondere il proprio servizio in maniera distribuita ricorrendo al minimo a intermediari.

Nella documentazione ufficiale, Kubernetes (abbreviato in K8s o semplicemente Kube) viene definito come una piattaforma aperta e flessibile che permette di gestire carichi di lavoro e servizi containerizzati, abilitando sia l’automazione sia la configurazione dichiarativa.

Kubernetes è la diretta evoluzione di Borg, il sistema per il cluster management progettato da Google e utilizzato internamente per la gestione di carichi di lavoro su sistemi fortemente distribuiti che devono essere altamente scalabili e disponibili per definizione. Le sue caratteristiche, come tutti gli open source, vengono continuamente aggiornate e arricchite dai membri della community internazionale.

Attualmente, il progetto è mantenuto dalla Cloud Native Computing Foundation (CNCF), parte dell’organizzazione senza scopo di lucro Linux Foundation, che riunisce oltre duecento startup insieme ai maggiori fornitori mondiali di soluzioni Cloud. Tra questi figurano, oltre a Google, Microsoft, IBM, Amazon Web Services, Oracle, Huawey, SAP, VmWare, Alibaba Cloud.

L'architettura dei sistemi si è evoluta negli ultimi trent’anni, passando rapidamente dai server fisici, che ospitano applicazioni monolitiche scarsamente integrate tra di loro, a macchine virtuali, che consentono una più semplice condivisione delle risorse e un dialogo tra servizi che utilizzano una base comune per evolvere ulteriormente verso architetture a microservizi che, di fatto, utilizzano un sistema completamente distribuito, nei quali i servizi operano come gruppi di processi intrinsecamente ridondati e largamente indipendenti da nodi fisici o virtuali sui quali operano.

Laddove, in passato, l'artefice della gestione del sistema e dei processi era il sistema operativo legato alla macchina fisica, oggi è rappresentato da un sistema di orchestrazione e gestione dei processi distribuito, noto come Kubernetes, implementato in varie versioni da diversi operatori quali IBM, VMWARE, Google, AWS, Ubuntu e disponibile in forma di open source da ulteriori soggetti quali lo stesso Google, Ubuntu, Ranch.

Il tutto crea un ecosistema complesso da considerare come il nuovo ambiente da utilizzare, nel quale andare a implementare ed esercire le applicazioni di oggi e di domani, in quanto continuare con vecchi modelli comporterebbe costi, specialmente di esercizio, ma anche di sviluppo, non più facilmente sopportabili.

Per essere parte attiva di tale rivoluzione è necessario essere introdotti in questo ecosistema, e questo può essere fatto attraverso dei corsi di formazione e di certificazione, indirizzati e ritagliati per figure diverse quali sviluppatori CKAD Certified Kubernetes Application Developer, Amministratori di sistema e responsabili dell'esercizio, CKA Certified Kuberted Administrator, e specialisti della sicurezza CKS, Certified Kubernetes Security Specialist.

Per tutte le aziende che sviluppano / eserciscono applicazioni, conoscenza e competenza su tali temi rappresentano la chiave per accedere alle architetture utilizzate oggi e nei prossimi dieci anni.