69
EMBEDDED
62 • NOVEMBRE • 2016
DEVOPS |
SOFTWARE
risolvere nel minor tempo possibile i bug del codice,
che compromettono un buon funzionamento della
app sul dispositivo e una fruizione soddisfacente dei
servizi online degradando la ‘user experience’, ma
anche per migliorare la cybersecurity: prima viene
pubblicata e resa disponibile la patch che ripara una
vulnerabilità di un sistema o di una app, e più sicuro
potrà essere mantenuto un dato dispositivo mobile,
che in molti casi non contiene più solo dati perso-
À
&
lavorativa. Una cybersecurity che, in applicazioni
‘safety-critical’, come possono essere quelle del set-
tore automobilistico, avionico o industriale, diventa
cruciale mantenere, per garantire anche la sicurezza
funzionale (functional safety) di ciascun dispositivo,
nei differenti casi d’uso in cui viene utilizzato.
Oggetti connessi, cambiano i numeri
Il processo di sviluppo e distribu-
zione del software embedded nell’e-
ra della Internet of Things diventa
ancora più complesso di quello tra-
dizionale, e non solo per una que-
stione di incremento nella velocità
di aggiornamento e manutenzione
dei sistemi. Bisogna anche conside-
rare che le classiche metodologie di
sviluppo, test, dispiegamento e ma-
nutenzione del codice, lungo tutto il
suo ciclo di vita, vanno adeguate ad
ambienti industriali, aziendali o di
altro genere, dove esisteranno, nei
prossimi anni, moltitudini di dispo-
sitivi e oggetti intelligenti connessi
al cloud. A tal proposito, una recen-
te analisi della società di ricerche di mercato Gart-
ner prevede circa 6,4 miliardi di oggetti connessi a
livello mondiale in uso per quest’anno, pari a un in-
cremento del 30% rispetto al 2015. Ma per il 2020,
secondo le stime, tali oggetti arriveranno a quasi 21
miliardi. Quest’anno, secondo Gartner, il trend sta-
rebbe procedendo al ritmo di 5,5 milioni di nuove
‘cose’ connesse al giorno. Ed è evidente che, davanti
a questi numeri, o a reti IoT con migliaia di oggetti
connessi, se non si implementano tecnologie e meto-
dologie adeguate di sviluppo, distribuzione e manu-
tenzione del software, la complessità di gestione del
ciclo di vita di queste infrastrutture può generare
costi molto elevati rispetto agli scenari classici.
Mondo embedded, più difficile applicare DevOps
Le metodologie DevOps (Development and Ope-
rations) possono rappresentare una risposta alla
sempre più forte necessità di inno-
A À
-
delli di produzione e distribuzione
del software, e questo oggi lo si sta
già osservando nel settore IT. In
effetti, in questi anni, la graduale
transizione del reparto IT dal ruolo
di semplice erogatore di servizi, a
quello di vero e proprio ‘abilitatore’
del business, ha portato in primo
piano la rilevanza delle strategie
DevOps. Per DevOps si intendo-
no in sostanza quelle metodologie
che puntano a ottenere una mi-
glior collaborazione tra il reparto
di sviluppo del codice e le operation
aziendali. Tradizionalmente, infat-
Continuous delivery, i tool a disposizione
Il concetto di rilascio continuo (CD) del software, teso ad automatizzare
l’intero processo di distribuzione del codice, oggi può avvalersi di numero-
si strumenti, disponibili online e basati sulla potenza del web e del cloud.
Spesso, poi, il paradigma open source, che permette di lavorare su co-
dice aperto e condivisibile tra team, diventa una condizione chiave per
facilitare lo sviluppo di progetti innovativi, e arrivare a risolvere problemi
ingegneristici complessi. Tra i software SCM (software configuration ma-
nagement) di tipo distribuito, un esempio su tutti è rappresentato da Git,
un sistema di controllo versione DVCS (distributed version control sy-
stem) studiato per gestire con velocità ed efficienza sia progetti di piccole
dimensioni, sia piani di sviluppo software molto estesi. Ma si possono citare anche sistemi come ElectricFlow,
in grado di orchestrare e automatizzare tutti i tool DevOps nel processo di delivery del software, dal controllo
del codice, alla pubblicazione delle release; o come il software Jira, implementabile on-premise o fruibile via
cloud. Un altro sistema interessante da menzionare è l’infrastruttura di gestione e distribuzione del software
realizzata da J-Frog, attraverso un repository manager come Artifactory e un servizio di amministrazione di
pacchetti e file binari come Bintray.
Il servizio Bintray
Fig. 2 – In un sistema DVCS
(come Git), i client, oltre a con-
trollare lo snapshot più recente
del file, fanno anche una copia
completa del repository