I container e il cloud: un modo più semplice per implementare i carichi di lavoro

Panoramica sui container cloud:

  • I container sono unità astratte di software che includono tutto il necessario per eseguire un carico di lavoro o un processo.

  • L'orchestrazione dei container è la capacità d'implementare e gestire più container in tutte le infrastrutture di cloud privato e pubblico.

  • Intel ha contribuito alla scoperta delle funzionalità open source e degli strumenti di telemetria e offre hardware performante che consente alle aziende di ottenere il massimo dai loro container.

author-image

di

Cosa sono i container?

Un container è un'unità astratta di software che è eseguibile e indipendente, con tutto il necessario per eseguire un'applicazione: codice, runtime, strumenti e librerie di sistema. I container hanno parametri definiti e possono eseguire un programma, un carico di lavoro o un'attività specifica.

Una semplice analogia per comprendere i container è pensare alla spedizione dei container. Si può caricare tanta merce in un singolo container ed è possibile caricare tanti container su un'unica nave o suddividerli su più navi. Si possono anche utilizzare container specializzati per carichi di lavoro specifici, allo stesso modo come è possibile utilizzare un container refrigerato per trasportare una specifica tipologia di merce.

L'unica limitazione con i container è che dipendono dal loro kernel di sistema che li ospita. Un container Linux può funzionare solo su un host Linux, un container Windows funziona su un host Windows, e così via per altri sistemi operativi (OS).

I vantaggi dei container

I container consentono agli amministratori di sistema di ottenere una maggiore densità con la loro architettura. È possibile definire ed eseguire più container, ciascuno personalizzato per un carico di lavoro specifico per una maggiore efficienza. I container hanno solo il necessario, così da non essere pieni di software superfluo e non sprecare risorse di calcolo sui processi di background.

Le aziende stanno scoprendo l'enorme utilità dei container, in quanto sono portatili, coerenti e di facile utilizzo. I reparti IT possono consentire l'integrazione e la fornitura continua (CI/CD) con l'agilità e l'automazione che i container offrono. I container contribuiscono anche a isolare i carichi di lavoro, contribuendo a solide politiche di sicurezza dei dati.

I container hanno solo il necessario, così da non pieni software superfluo e non sprecare risorse di calcolo sui processi di background.

Macchine virtuali vs. container

Come i container, le macchine virtuali (VM) sono ambienti di computing indipendenti, astratti dall'hardware. A differenza dei container, le VM richiedono una replica completa di un sistema operativo per poter funzionare. Le VM offrono alcuni vantaggi, in quanto è possibile utilizzarle per simulare un sistema operativo diverso dal sistema ospite. Ad esempio, se la macchina host esegue Windows, è possibile eseguire un sistema operativo Linux in una VM e viceversa. Le VM consentono un maggiore isolamento e sicurezza dei dati, essendo sistemi di computing ancora più isolati.

Tuttavia, poiché le VM sono essenzialmente sistemi indipendenti con il proprio sistema operativo, richiedono tempi di avvio molto più lunghi rispetto ai container e sono meno efficienti. I container sono anche più portatili, poiché un carico di lavoro complesso può essere suddiviso su più container, che possono essere distribuiti ovunque in vari sistemi o infrastrutture cloud. Ad esempio, è possibile distribuire carichi di lavoro su più container nell'hardware in sede e nel servizio di cloud pubblico, gestendo tutto attraverso una singola dashboard di orchestrazione. A motivo di questa portabilità, i container scalano più efficacemente rispetto alle VM.

Che cos'è l'orchestrazione dei container?

L'orchestrazione è una metodologia per fornire una visione dall'alto dei container, offrendo visibilità e controllo nei punti d'implementazione dei container e di come vengono allocati i carichi di lavoro su più container. L'orchestrazione è essenziale per implementare più container. Senza orchestrazione, è necessario gestire manualmente ogni singolo container. L'orchestrazione consente agli amministratori IT di applicare politiche, come la tolleranza dei guasti, selettivamente od olisticamente a una raccolta di container.

Una delle funzionalità migliorate grazie all'orchestrazione dei container è la capacità di gestire automaticamente i carichi di lavoro su più nodi di calcolo. (Con nodi si fa riferimento a qualsiasi sistema connesso a una rete). Ad esempio, se ci sono cinque server, ma un server avvia un ciclo di manutenzione, l'orchestratore può deviare automaticamente il carico di lavoro nei quattro server rimanenti e bilanciarlo in base a ciò che i nodi rimanenti possono gestire. L'orchestratore può svolgere questa attività senza assistenza umana.

Kubernetes e Docker

Kubernetes è una piattaforma di orchestrazione per container open source, originariamente progettata da Google, ed è di fatto la soluzione standard sul mercato odierno. Docker è anch'esso un software open source utilizzato per distribuire un container singolo ed è diventata la soluzione standard per questo scopo.

Kubernetes sfrutta le soluzioni come Docker per distribuire e gestire più container. Entrambe queste soluzioni sono diffuse sul mercato e, sebbene siano entrambe open source, sono disponibili anche delle soluzioni proprietarie che specifiche per ogni set di framework, con funzionalità e strumenti aggiuntivi. Se si lavora con i container, sia Kubernetes che Docker diventeranno termini di tutti i giorni.

Casi di utilizzo dei container

Come precedentemente indicato, è possibile utilizzare i container per eseguire un compito specifico, un programma o un carico di lavoro. Possiamo espandere la nostra comprensione del modo in cui i container funzionano analizzando da vicino tre casi di utilizzo principali.

  • Microservizi: un microservizio è una funzione specifica di un servizio o applicazione più grande. Ad esempio, è possibile utilizzare un container per eseguire una ricerca o una funzione di ricerca su un set di dati, piuttosto che caricare un'intera applicazione di database. Poiché l'operazione funziona all'interno di un ambiente container, viene eseguita più velocemente rispetto a un ambiente di tipo non container, che sia VM o bare metal, con un sistema operativo completo e processi di backup che occupano risorse di calcolo aggiuntive. I container rendono più semplice e più veloce la distribuzione e l'utilizzo dei microservizi.
  • Cloud ibrido e multicloud: all'interno di un ambiente di cloud ibrido, il container diventa l'unità di calcolo, astratta dall'hardware sottostante. Non è necessario preoccuparsi di dove verranno eseguiti i container, poiché è possibile eseguirli ovunque. I container rendono quindi più facile distribuire i carichi di lavoro in un ambiente di cloud ibrido. Ciò viene solitamente gestito tramite la piattaforma di orchestrazione, in modo che gli amministratori abbiano visibilità su dove vengono implementati i container e quali sono le funzionalità offerte dai ogni nodo, tra infrastrutture di cloud pubblico e in sede. Per quanto riguarda le pratiche di sicurezza del cloud nel modello di cloud ibrido, le aziende dovrebbero ancora prestare attenzione a questioni come l'autenticazione, in modo da garantire che solo il personale autorizzato possa accedere ai carichi di lavoro e ai dati all'interno di ciascun container. Tuttavia, le aziende possono aspettarsi che l'autenticazione venga eseguita in modo più semplificato nell'ambiente container.
  • Apprendimento automatico: i carichi di lavoro di apprendimento automatico e apprendimento profondo rappresentano una sfida in quanto la loro complessità è elevata, ci sono molte parti mobili e non si può fare molto dal punto di vista umano per intervenire e cambiare le cose in un ambiente containerizzato. Per questi carichi di lavoro, l'apprendimento algoritmico tende a essere la tipologia più comune che viene implementata tramite container. Gli scienziati di dati e i ricercatori spesso si basano sul tagging dei carichi di lavoro, che è il processo d'identificazione e corrispondenza dei carichi di lavoro a nodi con funzionalità specifiche. Altrimenti, gli scienziati di dati utilizzano i container per l'elaborazione parallela, un metodo per spezzettare grandi set di dati ed eseguire algoritmi simultaneamente su ogni pezzo, in modo da ottenere un risultato più velocemente.

L'offerta Intel

Se si eseguono più container su un singolo nodo, è possibile ottenere una buona scalabilità a condizione che il nodo abbia disponibili le risorse di calcolo. Ecco perché l'hardware è importante. Una maggiore elaborazione consente una densità più elevata con più container. Il contributo di Intel® in questo ambito include una gamma completa di architetture e componenti server, tra cui i processori scalabili Intel® Xeon®, la famiglia di unità SSD Intel® per data center e i prodotti Ethernet Intel®. Queste tecnologie consentono una containerizzazione veloce, robusta, efficiente e densa.

In termini di soluzioni software, Node Feature Discovery (NFD) è un contributo fondamentale. NFD è stato sviluppato da Intel e recentemente aggiunto alla principale release open source di Kubernetes. Questa funzione consente a un orchestratore d'identificare le tecnologie e le funzionalità principali (come Intel® AVX-512) all'interno di ciascun nodo disponibile. Se l'amministratore di sistema ha un carico di lavoro che necessita di Intel® AVX-512, Kubernetes può utilizzare NFD per comunicare all'amministratore quali nodi offrono questa funzionalità, permettendo all'amministratore d'implementare i container ai quei nodi specifici.

Infine, Intel consente la telemetria per la visibilità delle prestazioni a livello di container, rispetto a ciascun nodo attivato. In particolare, Intel ha contribuito con i contatori di prestazione allo strumento di telemetria open source di Google, cAdvisor. Esso consente alle aziende di misurare e stabilire un controllo granulare sulle prestazioni dei container, che a sua volta consente una maggiore ottimizzazione, la corrispondenza dei carichi di lavoro e una densità crescente nell'implementazione di più container su ciascun nodo.

Una promessa di alta utilità

È importante comprendere che i container non sono solo una moda. Essi offrono scalabilità, portabilità e vantaggi di sicurezza, che rendono i container una metodologia essenziale per l'implementazione dei carichi di lavoro sia oggi che in futuro. Se non hai ancora preso in considerazione i container, il momento migliore per iniziare è ora. Se hai già lavorato con i container, il prossimo passo è quello di capire come rendere i tuoi container più efficienti, performanti e più densi, utilizzando l'architettura giusta in combinazione con la telemetria e gli strumenti di scoperta delle funzionalità.