Container, container e ancora container. Un vortice che ti cattura e non ti abbandona piรน.
Chi si occupa di sviluppo e di informatica sa di cosa stiamo parlando. I container hanno permesso di fare un notevole passo avanti nella realizzazione di ambienti isolati, solidi e scalabili. Un nuovo punto di vista sui servizi in genere che emerge quando inizi a sviluppare due o piรน container interconessi tra di loro e si fa avanti il concetto di “Pets VS Cattle“, ovvero il passaggio da semplici “animali domestici” a “mandrie”. Secondo l’analogia Pets VS Cattle, i primi (animali domestici) indicano una vecchia metodologia di fare software, con server e mainframe trattati come unici e indispensabili, mentre i secondi (mandrie) trasmettono la concezione moderna secondo cui tutto puรฒ essere sostituito e in caso di errore (ad esempio il down di un server di posta) subentra subito un altro componente. E senza alcun intervento umano: al presentarsi dell’eventuale problematica si avvia un automatico “routing intorno agli errori” e i dati vengono replicati altrove.
Tutto ciรฒ ha a che fare con il mondo IoT – Internet of Things – e con i vari devices presenti sul mercato. Vediamo l’esempio concreto di un software da noi sviluppato.
Containerizzazione dei software: il caso Morplex
Recentemente abbiamo fatto evolvere il nostro software Morplex per poterlo distribuire in modo piรน efficiente e veloce.
Abbiamo innanzitutto esplorato la soluzione di balena.IO, un’infrastruttura che permette di sviluppare e gestire dispositivi interconnessi su larga scala, e da subito abbiamo avuto la sensazione di lavorare con una piattaforma ben pensata e realizzata. Utilizzando le normali pratiche di DevOps con Balena.IO รจ possibile continuare a sviluppare software come abbiamo sempre fatto per poi distribuirlo facendo un push al repository della nostra App creata dentro balenaCloud: al resto pensa tutto questo fantastico servizio.
Balena: un esempio operativo
Per chi non conosce Balena, sintetizziamo velocemente la sua utilitร con un caso operativo.
Poniamo che io abbia bisogno di configurare 10 Raspberry PI2 per una determinata App. Dalla dashboard di Balena allโinterno dellโApp faccio click su โAdd deviceโ, scarico lo zip < 140MB, lo masterizzo su 10 MicroSD attraverso balenaEtcher, lo inserisco nei 10 Raspberry e semplicemente li accendo assicurandomi che siano connessi ad Internet. Nello zip utilizzato per masterizzare le SD card non รจ presente il nostro software: una volta accessi i i Raspberry sono giร configurati per collegarsi a balenaCloud (piattaforma basata sui container), alla nostra App, scaricare lโultima versione del nostro software ed avviarla. Se dopo una settimana rilasciamo un aggiornamento del software, i 10 Raspberry riceveranno in automatico l’update. Comodo no?
Lโapp viene distribuita a tutti i device collegati alla nostra App in maniera semplice e sicura. Possiamo scegliere quali device mantenere ad una determinata versione e quali invece lasciar liberi per i vari aggiornamenti. Possiamo inoltre definire dei settaggi globali per tutti i nostri dispositivi, per famiglia o singolo device. Tornando all’esempio, nel nostro progetto Morplex abbiamo valorizzato la variabile “DT overlaysโ per gestire la scheda Can che andrร a controllare il modulo seriale su protocollo CanOpen.
Altro importante vantaggio รจ che quando connessi ad Internet i dispositiviย possono essere controllati dalla dashboard web di Balena, senza la necessitร di dover mettere mano al firewall.
Immagini che schematizzano il funzionamento di balenaOS:
Hai bisogno di configurare dispositivi interconnessi sfruttando al meglio le funzionalitร dei container e le potenzialitร di Balena? Contattaci senza impegno.