Orchestrare microservizi: aumentare la flessibilità isolando le criticità
L’uomo è affascinato dai duelli.
Dalla storia al cinema, alla letteratura l’uomo ha spesso amato raccontare le sfide tra fazioni.
Guelfi e ghibellini, Davide e Golia, Milan e Inter…
Anche nei datacenter, nell’ ambito sistemistico, si è assistito all’adozione di software pensati con una differente visione: quella più orientata a sistemi monolitici tipica dei sistemi operativi Microsoft e quella maggiormente orientata alla collaborazione tra piccoli software specializzati tipica dei sistemi operativi Unix-Like (Unix, *BSD, Linux…): la stessa bash [ https://en.wikipedia.org/wiki/Bash_(Unix_shell) ] trova la sua forza nella possibilità di attuare complesse concatenazioni di comandi.
Una buona parte del software è ora accessibile via internet e questo significa che molte persone possono accedervi contemporaneamente in modo non sempre prevedibile. Anche in questo caso le scelte possono essere due:
- Scrivere un’applicazione monolitica che all’aumentare delle utenze richiede più risorse
- Fare cooperare molte piccole applicazioni indipendenti in modo che ognuna possa, in modo autonomo, svilupparsi in base a ciò che è necessario.
In base al contesto può essere utile una scelta piuttosto che un’altra ma, nel caso di 3Festo, la scelta è stata maggiormente rivolta alla seconda direzione.
Molti servizi che cooperano tra loro rendono certamente più complessa la loro connessione ed orchestrazione ma le possibilità di sviluppo indipendente consentono un controllo più granulare dell’applicazione e soprattutto di utilizzare solo ciò che è necessario.
Ciò che non c’è non si rompe e quando entrano in gioco processi produttivi e macchine industriali più è possibile circoscrivere gli eventuali problemi e meno impatto questi avranno sul risultato finale.
Siamo al lavoro su prodotti smart-hardware che hanno lo scopo di rendere più intelligenti un vasto numero di macchine ad oggi utilizzati nella filiera produttiva della manifattura additiva. Questi possono nativamente connettersi a sistemi sicuri di stoccaggio dati programmati per esporre end-point protetti interrogabili da qualsiasi linguaggio di programmazione.
Stiamo lavorando in due direzioni convergenti.
La costruzione di una costellazione di hardware e software cooperanti a cui, secondo necessità, ogni azienda “additiva” potrà accedere ed inserire nel proprio stabilimento produttivo e nella propria gestione informativa.
La scrittura di un’applicazione web che possa aggregare e pilotare le informazioni che provengono sia dai nostri componenti hardware che da altre entità atte a produrre dati e informazioni.
Due soluzioni alternative per un solo obiettivo: raccogliere dati ed elaborarli unendo le capacità dell’uomo e delle macchine, insieme, per migliorare e migliorarsi.