Tecnologie di gestione e amministrazione dei Container in informatica

Tecnologie di gestione e amministrazione dei Container in informatica

Tecnologie per la gestione dei Container

Al crescere del numero dei container in esecuzione su vari host, si è reso fondamentale avere degli strumenti appositi per gestirli in maniera semplice, diretta e con un livello di astrazione anche abbastanza elevato. Tutte le varie soluzioni presenti nel mercato odierno sono di tipo Application container o Full system container, ed operano a differenti livelli di astrazione.

Tecnologie di gestione e amministrazione dei Container in informatica

Queste tecnologie sono partite come un’estensione di Linux Container (LXC), introducendo una API di alto livello che permette di automatizzare la distribuzione del software in ambiente sicuro e riproducibile, fornendo quindi tutte le funzionalità necessarie per costruire, caricare, scaricare, avviare e arrestare un container. Tali tecnologie sono state pensate per la gestione di processi soprattutto in ambienti single-host che presentano un numero abbastanza piccolo di container.
Quando le applicazioni sono scalate attraverso più host, diventa quindi fondamentale gestire ogni host e astrarne la sua piattaforma sottostante in maniera tale da eliminare eventuali complessità, tramite un meccanismo di orchestrazione. Con il termine orchestrazione infatti, intendiamo proprio la schedulazione dei container, la gestione del cluster e il concetto di approvvigionamento.

La schedulazione si riferisce quindi alla capacità dell’amministratore di caricare su un host un servizio che stabilisce come eseguire un dato container.
Per gestione del cluster invece si vuole intendere il processo di controllo di gruppi di host. Questo può includere l’aggiunta o la rimozione di host dal cluster, l’acquisizione di informazioni sullo stato corrente di host e container, l’avvio e l’interruzione dei processi.

Una delle maggiori responsabilità dello schedulatore è la selezione del’host, infatti se un amministratore decide di eseguire un servizio, ovvero avviare un container all’interno di un cluster, solitamente lo schedulatore selezionerà l’host in modo automatico. L’amministratore può però opzionalmente imporre dei vincoli sulla schedulazione in accordo con i suoi bisogni e desideri, ma alla fine sarà sempre lo schedulatore a decidere se rispettare o meno tali vincoli.
Gli schedulatori più avanzati mettono a disposizione una funzionalità che permette la gestione di gruppi di container allo scopo di poter consentire all’amministratore di trattare un insieme di container come una singola applicazione, mantenendo i vantaggi derivanti dall’uso dei container e riducendo l’overhead addizionale di gestione.

Un concetto legato alla gestione del cluster è quello di approvvigionamento, ovvero quel processo mediante il quale un amministratore di sistema può inserire nuovi host nella rete e configurarli in maniera semplice, così che essi possano essere utilizzati per eseguire determinate operazioni.
Nonostante il risultato dell’approvvigionamento sia sempre la comparsa di un nuovo host online disponibile per eseguire nuove operazioni, la metodologia con cui ciò viene fatto dipende dal tool e dal tipo di host utilizzati. L’approvvigionamento può infatti essere eseguito dall’amministratore, oppure essere inglobato nei tool di gestione del cluster per lo scaling automatico. Questo secondo metodo comporta la definizione di un processo utile per richiedere host addizionali così come la definizione delle condizioni che devono verificarsi affinchè questa richiesta venga inoltrata. Ad esempio, se la nostra applicazione soffre di un sovraccarico del server, sarebbe desiderabile che il nostro sistema avviasse nuovi host e scalasse i container attraverso l’infrastruttura al fine di alleviarne la congestione.

Docker

Infiene, è necessario dire che Docker nasce come un’estensione delle funzionalità di LXC e viene utilizzato allo scopo di costruire, spostare ed eseguire container Linux based. Docker è un progetto open source nato con un’ azienda di supporto che fornisce assistenza e altri servizi a pagamento, il cui punto di forza sta sia nella sua particolare facilità di utilizzo, sia nella possibilità di utilizzare delle API che permettono una virtualizzazione molto leggera, permettendo inoltre di avviare processi isolati fra loro.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *