Technology In Depth

Container: quali piattaforme e tool per razionalizzare la gestione?



Indirizzo copiato

La tecnologia container ha un ruolo sempre più preponderante nello sviluppo delle moderne architetture applicative basate su microservizi e cloud. Ma richiede strumenti adeguati per gestirla con efficacia ed efficienza

Pubblicato il 6 mar 2023



container

I container rispondono bene all’esigenza di qualunque impresa voglia oggi attuare una trasformazione digitale per gestire il software in maniera più agile e flessibile in rapporto alle moderne esigenze imprenditoriali, ma paradossalmente generano anche nuova complessità. Per tale ragione, l’adozione dei container, specie su larga scala, richiede piattaforme e strumenti per semplificare il più possibile la loro amministrazione.

I dati confermano questo trend. Il mercato globale dei container applicativi, stando a un’analisi di Data Bridge Market Research, è previsto espandersi con un CAGR (tasso annuo di crescita composto) del 32,7% nel periodo 2023-2030. In questo comparto, la voce “container data management & orchestration” risulta rappresentare il più ampio segmento di offerta. L’aumento del volume dei dati organizzativi e delle necessità di agilità e coordinamento aziendale sono indicati tra i fattori chiave che incrementeranno la domanda nel settore.

Docker, la piattaforma per facilitare gestione e portabilità dei container

L’origine della tecnologia container viene fatta risalire allo sviluppo del comando chroot (change root), nel 1979. In un sistema operativo Unix, e negli OS Unix-like, chroot consente di cambiare la directory radice (root), creando un nuovo ambiente (chroot jail), isolato a livello logico dal sistema principale (host).

In sostanza una sandbox, dove codice e processi possono girare senza pericolo di modificare file e configurazioni dell’host, influenzandone il funzionamento. In epoca recente, il cambio di passo della tecnologia container, in termini di diffusione nel mercato, è avvenuto dopo il debutto della piattaforma open source Docker, nel 2013. Diventato uno standard de facto, Docker, attraverso il Docker Engine, fornisce alle organizzazioni IT aziendali una soluzione semplice per creare, eseguire e gestire container.

Questi ultimi sono definibili come unità software standard in cui viene impacchettato il codice applicativo e tutto quanto necessario (runtime, librerie e dipendenze software, tool di sistema) per implementarlo e farlo funzionare in differenti ambienti, on-premise o nel cloud. La piattaforma Docker è installabile su una varietà di distribuzioni Linux (RHEL, Fedora, Oracle Linux, CentOS, Debian, Ubuntu), e su sistemi operativi Windows e macOS che girano su hardware dotato di differenti architetture CPU, tra cui AMD x86-64, e ARM a 32 e 64 bit.

Container per rendere più agile la virtualizzazione

Nelle pratiche IT di modernizzazione applicativa, i container hanno impresso un forte impulso innovativo al software di virtualizzazione. Negli anni 2000, la tecnologia di virtualizzazione, grazie allo sviluppo degli hypervisor, ha permesso agli amministratori di sistema di attuare strategie di consolidamento dei server e ottimizzazione dello sfruttamento dell’hardware esistente all’interno dei data center aziendali. Utilizzando un hypervisor è possibile creare ed eseguire su una stessa macchina fisica diverse macchine virtuali (VM), che a loro volta possono eseguire differenti sistemi operativi.

Tuttavia, i container portano la virtualizzazione a un nuovo livello perché, a differenza delle VM, non possiedono un proprio sistema operativo, ma condividono lo stesso kernel del sistema operativo del server bare metal, o della macchina virtuale, su cui stanno funzionando. Sono quindi più molto più efficienti, “leggeri” da gestire, e si usano spesso per incapsulare singole applicazioni, funzioni, o servizi, noti come microservizi.

Applicazioni multi-container: i benefici

La capacità dei container di eseguire singoli servizi in un ambiente isolato rispetto al sistema host si può sfruttare per implementare applicazioni multi-container. Un’applicazione a più contenitori può costituire la base per progettare e implementare un’architettura applicativa a microservizi, separati, indipendenti, specializzati per singole funzioni, e in grado di comunicare fra loro.

Rispetto alle tradizionali applicazioni basate su architettura monolitica, in cui il codice applicativo viene eseguito come singola unità, nelle applicazioni a microservizi ciascun microservizio può girare all’interno di un container, e comunicare con gli altri microservizi tramite API (Application Programming Interface). Questo paradigma architetturale modulare consente di ottenere diversi benefici: ad esempio, i team di sviluppo possono sviluppare il codice con maggior agilità e flessibilità, gestire la scalabilità di ciascun microservizio in maniera indipendente dagli altri, e anche rafforzare la resilienza dell’applicazione, in quanto è meno probabile che il malfunzionamento di un microservizio possa influenzare altri componenti della stessa.

Gestire applicazioni multi-container, le soluzioni

I benefici dei microservizi comportano comunque ulteriori sfide, perché gestire con Docker il deployment di applicazioni multi-container diventa complesso senza l’ausilio di strumenti come Docker Compose. Compose permette di definire ed eseguire applicazioni multi-container attraverso un file di configurazione scritto in linguaggio YAML. Compose funziona in ambienti di sviluppo test, staging, produzione controllando il ciclo di vita completo (creazione, avvio, arresto, spegnimento, monitoraggio) dei vari container e servizi.

Attualmente, il modo più semplice (e raccomandato da Docker) per ottenere Docker Compose è installare Docker Desktop, che già lo include, assieme a Docker Engine. Disponibile per sistemi Windows, Linux e Mac, Docker Desktop aiuta gli sviluppatori a creare e condividere applicazioni e microservizi containeirizzati.

Il vantaggio di Docker Desktop, utilizzabile come tool complementare all’interfaccia a riga di comando (CLI – command-line interface), è fornire un’interfaccia grafica (GUI – graphical user interface) semplice con cui gestire container, applicazioni e immagini direttamente dal proprio PC o laptop.

Occupandosi direttamente di mappatura porte, operazioni sui file system o altre configurazioni predefinite, lo strumento ha l’obiettivo di ridurre il tempo che lo sviluppatore impiega in complessi setup, e di aiutarlo a concentrarsi sulla scrittura di codice. Docker Desktop può inoltre integrare le Docker Extensions, che estendono le funzionalità dello strumento tramite tool di terze parti o di Docker stesso, come nel caso dell’estensione Volumes Backup & Share, che semplifica backup, restore, clonazione e condivisione di volumi Docker.

Da maggio 2022, Docker Desktop si è arricchito anche di un’estensione per integrare Portainer, popolare piattaforma di gestione container dotata di GUI. La Portainer extension permette agli utenti Docker Desktop di avviare ed eseguire una versione di Portainer CE (community edition), il prodotto open source gratuito di Portainer.

La piattaforma Portainer è pensata per accelerare l’adozione dei container, e ridurre la complessità operativa di esecuzione degli stessi in ambienti Docker, Swarm, Nomad e Kubernetes.

Tornando a Docker Desktop, questo non è comunque l’unico tool grafico open source utilizzabile dagli sviluppatori per lavorare con container e Kubernetes: in tale ambito, uno strumento con funzionalità simili è, ad esempio, Podman Desktop.

Applicazioni multi-container in sistemi IT distribuiti

Le attuali versioni di Docker includono la funzionalità “swarm mode”, con cui è possibile gestire nativamente un cluster, o “sciame”, di Docker Engine. Tuttavia, quando si tratta di orchestrare applicazioni containerizzate in produzione su vasta scala in ambienti distribuiti, la piattaforma open source divenuta standard de facto è il software open source Kubernetes.

Naturalmente, anche in questo caso, Kubernetes non è la sola soluzione. In alternativa, ad esempio, si può utilizzare una piattaforma commerciale come Red Hat OpenShift, basata su Kubernetes ma, come spiega Red Hat, caratterizzata da funzionalità “enterprise grade”.


Argomenti


Canali

Speciale Digital Awards e CIOsumm.it

Tutti
Update
Keynote
Round table
Video
Digital360Awards e CIOsumm.it, i momenti salienti
Approfondimenti
La sinergia tra CIO e CISO trasforma la cybersecurity in un obiettivo di business strategico
Approfondimenti 
Etica dell’innovazione tecnologica per i CIO: prima chiedersi perché. Poi definire cosa e come
Eventi
Digital360 Awards e CIOsumm.IT, ecco i progetti vincitori
Tavola rotonda
Evoluzione del CIO: da centro di costo a motore strategico del business
Tavola rotonda
Business Process Augmentation: dall’RPA alla GenAI… il dato e tratto
Approfondimenti
Sistemi digitali potenziati: l’intelligenza dei chatbot è nelle mani dei CIO
Tavola rotonda
Intelligenza collaborativa e AI: sfide e opportunità per i CIO nell’era dello Human to Machine (H2M) 
Approfondimenti
Open Source: collaborazione e innovazione nel caos apparente del software libero 
Metodologie
BANI: che cos’è e come l’AI può aiutare i CIO a gestire la felicità (e l’infelicità) dei talenti
Prospettive
AI in un mondo complesso. Tra ordine e disordine, le aziende iniziano a capire la giusta via
Approfondimenti
Intelligenza Umana vs Intelligenza Artificiale insieme. Non invece
Eventi
Digital360 Awards e CIOsumm.IT, al via l’evento conclusivo
Video
Digital360Awards e CIOsumm.it, i momenti salienti
Approfondimenti
La sinergia tra CIO e CISO trasforma la cybersecurity in un obiettivo di business strategico
Approfondimenti 
Etica dell’innovazione tecnologica per i CIO: prima chiedersi perché. Poi definire cosa e come
Eventi
Digital360 Awards e CIOsumm.IT, ecco i progetti vincitori
Tavola rotonda
Evoluzione del CIO: da centro di costo a motore strategico del business
Tavola rotonda
Business Process Augmentation: dall’RPA alla GenAI… il dato e tratto
Approfondimenti
Sistemi digitali potenziati: l’intelligenza dei chatbot è nelle mani dei CIO
Tavola rotonda
Intelligenza collaborativa e AI: sfide e opportunità per i CIO nell’era dello Human to Machine (H2M) 
Approfondimenti
Open Source: collaborazione e innovazione nel caos apparente del software libero 
Metodologie
BANI: che cos’è e come l’AI può aiutare i CIO a gestire la felicità (e l’infelicità) dei talenti
Prospettive
AI in un mondo complesso. Tra ordine e disordine, le aziende iniziano a capire la giusta via
Approfondimenti
Intelligenza Umana vs Intelligenza Artificiale insieme. Non invece
Eventi
Digital360 Awards e CIOsumm.IT, al via l’evento conclusivo

Articoli correlati

Articolo 1 di 3