Servono container per fare Internet of Things

Per affrontare un mondo sempre più interconnesso, l’automazione si sta evolvendo al fine di integrare molte tecnologie e lo fa con i container.

L’IoT per esempio è di particolare interesse oggigiorno perché un numero di trend tecnologici convergenti sta rendendo soluzioni utili ancora più pratiche: processori economici a basso consumo energetico per sensori pervasivi e reti wireless e la capacità di analizzare e archiviare grandi quantità di dati, sia in periferia che in data center centralizzati.

L’IoT apre enormi possibilità in termini di raccolta e automazione delle informazioni che, a loro volta, danno luogo a nuove opportunità di innovare, aumentare il fatturato e migliorare l’efficienza.

Secondo Gordon Haff, Red Hat Technology Evangelist una delle tecnologie adottate per abilitare l’implementazione e l’isolamento di applicazioni che girano su gateway e server di back-end sono proprio i Linux container.

Pacchettizzare per isolare

Questi offrono un isolamento applicativo leggero ed efficace e pacchettizzano le applicazioni con qualunque altro componente necessario al loro funzionamento, evitando così conflitti tra app che altrimenti si affidano a componenti chiave del sottostante sistema operativo host.

I container sono una parte della gamma di tecnologie e practice attraverso cui vengono sviluppate nuove applicazioni nell’ambito dell’automazione industriale, e non solo.

L’isolamento offerto dai container permette di utilizzarli per impacchettare servizi ‘sciolti’ che possono svolgere un’unica semplice funzione, come la lettura di un sensore, l’aggregazione di dati o l’invio di un messaggio. Questi servizi che possono agire in maniera indipendente l’uno dall’altro vengono spesso chiamati microservizi.

Questi permettono di evitare alcune delle problematiche che si verificano con applicazioni monolitiche più complesse perché le interfacce tra le diverse funzioni sono più pulite e i servizi possono essere modificati in modo indipendente. I servizi sono, a tutti gli effetti, delle scatole nere per gli altri servizi e se la loro interfaccia pubblica non viene modificata e svolgono la loro attività, possono essere trasformati secondo la volontà dello sviluppatore.

Queste semplici interazioni permettono a piccoli team di lavorare su servizi individuali, testarli e rilasciarne rapidamente nuove versioni, facilitando l’adozione di DevOps, un approccio alla cultura, l’automazione e il design di un sistema per offrire maggiore valore e responsività tramite la fornitura rapida di servizi iterativi di elevata qualità.

Quindi container, microservizi e DevOps, anche se in linea teorica indipendenti, supportano e abilitano l’un l’altro per dare luogo a un’infrastruttura flessibile ed efficiente, ad applicazioni che utilizzano al meglio tale infrastruttura e a un processo e una cultura che sviluppano e adottano tali applicazioni rapidamente e con elevati livelli di qualità.

Dentro la tecnica

Da un punto di vista tecnico, i servizi su Linux container sono isolati all’interno di un’unica copia del sistema operativo di un server fisico (o potenzialmente su una macchina virtuale).

Questo approccio contrasta con la virtualizzazione basata su hypervisor in cui ogni servizio isolato è legato a una copia completa del sistema operativo guest, come Linux. Il risultato pratico è che i container consumano poche risorse di sistema, ad esempio in termini di memoria, e non impongono alcun overhead di prestazioni sull’applicazione.

Una delle implicazioni legate all’uso di container è che le copie di sistema operativo che girano su un determinato ambiente agiscono come una sorta di piattaforma condivisa per tutte le applicazioni sovrastanti. Il kernel è condiviso tra i container di un sistema mentre le dipendenze applicative sono pacchettizzate nel container.

Il sistema operativo non viene quindi configurato, integrato e‘abbinato a una singola applicazione come in passato, ma riveste comunque un’importanza notevole. Infatti, poiché il sistema operativo offre il framework e il supporto per tutti i container sovrastanti, svolge un ruolo ancora più importante.

Tutte le attività di sicurezza, performance, affidabilità e certificazioni che si applicano al mondo virtuale valgono anche per quello containerizzato. E, in effetti, il sistema operativo riveste un’importante responsabilità per la sicurezza e l’isolamento delle risorse. Questo significa che si dovrebbero impiegare le capacità del sistema operativo Linux, come SELinux, come best practice per far girare i servizi containerizzati, come se girassero su bare metal host convenzionali.

Applicazioni multi-host

Ci spostiamo verso un futuro in cui il sistema operativo gestisce applicazioni multi-host, agendo da orchestrator e scheduler e modellando l’app su molteplici host e container e fornendo i servizi e le interfacce per posizionare le app sulle risorse più adatte.

In altre parole, Linux si sta evolvendo per supportare un ambiente in cui il computer è sempre più un insieme di sistemi connessi complessi piuttosto che un semplice server.

Oltre a garantire la sicurezza e l'orchestrazione delle applicazioni container in modo automatico, il sistema operativo offre coerenza, e quindi portabilità, in altri modi. Per esempio, la reale portabilità richiede la possibilità di implementare su hardware fisico, hypervisor, cloud privati e pubblici; un accesso sicuro a immagini container firmate digitalmente che sono certificate per girare su host container certificati; e una piattaforma integrata di delivery delle applicazioni basata su standard aperti.

Mettiamo tutto insieme e le applicazioni sono più adattabili, mobili, distribuite e leggere. Il loro posizionamento e provisioning sempre più automatizzato. La loro capacità di adattarsi a cambiamenti nell’infrastruttura e nei processi a seconda delle esigenze di business sempre più spiccata.

E questo prevede che il sistema operativo si adatti, pur basandosi e facendo uso delle capacità di sicurezza, prestazioni e affidabilità esistenti. Linux lo fa in concerto con altre comunità e progetti open source non solo per i container ma per farlo in modo sicuro, portatile e gestito.

 

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato sulle novità tecnologiche iscriviti alla newsletter gratuita.
CONDIVIDI

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here