La container orchestration è il processo automatico di gestione o pianificazione del lavoro di singoli container, per applicazioni basate su microservizi all’interno di più cluster. Queste operazioni possono essere eseguite in un numero elevato di varianti di ambiente, modalità e approccio ai microservizi.

Parlando di container, il nome di riferimento nei container è senz’altro Docker, un approccio di virtualizzazione basato su Linux. I container sono impostati per svolgere il lavoro in un’architettura a più container, denominata cluster di container.

Ma non esistono solo le soluzioni Docker su Unix: Microsoft, ad esempio, fornisce due diverse soluzioni di orchestrazione, Azure Kubernetes Service (AKS) e Azure Service Fabric.

Senza entrare nel dettaglio, la più grande differenza tra i due è che AKS funziona solo con le applicazioni Docker con Kubernetes. Service Fabric può invece distribuire container Docker e Windows Server o anche applicazioni ASP.NET IIS; è più orientato verso i microservizi e supporta anche servizi stateful.

Le piattaforme di container orchestration ampiamente distribuite si basano su versioni open source come Kubernetes, Docker Swarm o la versione commerciale di Red Hat OpenShift.

Kubernetes è di fatto la più nota piattaforma open source per l’orchestrazione dei container, ma la gestione dei cluster Kubernetes richiede molto overhead.

Bisogna quindi prestare attenzione alle caratteristiche specifiche delle varie soluzioni, che in genere non sono interscambiabili, anzi presentano molte differenze le une dalle altre. Le piattaforme di gestione dei container possono includere funzionalità di orchestrazione, ma molte soluzioni funzionano come complemento alla piattaforma di gestione.

I benefici della container orchestration

Il software di container orchestration consente agli sviluppatori di distribuire i container all’interno delle applicazioni. Le aziende li usano per aumentare la scalabilità e la funzionalità delle applicazioni aggiungendo container e collegando informazioni su repository e reti. Ciascuna scelta va ponderata in funzione degli obiettivi immediati e a medio termine che l’IT architect si propone di raggiungere: una scelta troppo orientata sul risultato immediato potrebbe rendere più farraginosi gli sviluppi futuri.

Questi strumenti infatti intervengono grandemente nel lavoro degli amministratori IT che oggi si trovano a dover automatizzare il processo di esecuzione di istanze, host provisioning e collegamento. Sono questi gli strumenti che rendono effettivamente possibile l’esistenza di un sistema informativo moderno, ottimizzando inoltre le procedure di orchestrazione ed estendendo il ciclo di vita delle applicazioni complesse. Ovviamente danno un grande aiuto anche nel facilitare il deployment, nell’identificare eventuali container non funzionanti e nel configurare le applicazioni. Possono anche migliorare la sicurezza dei container, impostando i requisiti per l’accesso ai container e mantenendo i componenti separati gli uni dagli altri.

Scegliere l’orchestratore più adatto all’azienda

Il modo più immediato di semplificare la gestione delle applicazioni è scegliere il tool più adeguato. Esistono molte soluzioni che possono svolgere lo stesso compito, o meglio, rientrano nella stessa categoria, ma non coprono le stesse fasi allo stesso modo. Abbiamo già citato Docker Swarm, Kubernetes, Red Hat OpenShift e due diverse soluzioni Azure, Kubernetes Service e Service Fabric.

Altri software di orchestrazione dei container sono Amazon Elastic Container Service (ECS), Google Kubernetes Engine (GKE), Mirantis Kubernetes Engine (ex Docker Enterprise), Apache Mesos, VMware Tanzu e IBM Cloud Kubernetes Service (IKS). Quest’ultimo in particolare è un framework integrato che semplifica grandemente lo sviluppo e il deployment.

VMware Tanzu gestisce, governa e controlla in maniera centralizzata tutti i cluster e le app nei cloud, aumentando sicurezza e produttività nello sviluppo con approccio DevOps particolarmente produttivo nello sviluppo di microservizi.


VMWare Tanzu Mission Control (from VMWare’s website)

Conclusioni

L’adozione del modello open source mette a disposizione un numero elevato di soluzioni che a prima vista sembrano molto simili. Una prima, importante valutazione da fare è il costo reale di implementazione e manutenzione in un periodo di medio termine, ad esempio nei primi tre anni di implementazione dell’orchestrazione.

Inoltre, le differenze nei processi e nella matrice di compatibilità – si pensi ai microservizi – rischiano di diventare colli di bottiglia in un futuro molto vicino. Nella scelta, va dato un peso rilevante alla sicurezza: non partire direttamente con la security by design, se non proprio con un approccio DevSecOps, potrebbe essere motivo di rallentamenti quando si presume di aver completato la prima fase di sviluppo.

In tale ottica, essere affiancati da un partner nella scelta della giusta soluzione e nel percorso di adozione consente di massimizzare benefici e risultati.