ICTalk@CNR-2021

Europe/Rome
Virtual Room Conference
ALESSANDRO AGOSTINI (IFAC-CNR) , ANDREA DELL'AMICO (CNR-ISTI) , CRISTIAN LUCCHESI (Istituto di Informatica e Telematica) , ERMANN RIPEPI (IMAA) , GIORGIO BARTOCCIONI (CNR) , GUIDO RIGHINI (CNR - IC) , MARCO SIMONETTI (CNR) , MASSIMO IANIGRO, SILVIO SCIPIONI
Description

Recentemente, complici il primo lockdown e la necessità di scambiarsi rapidamente informazioni per semplificare le attività dettate dal ​ lavoro agile, si è formato un gruppo Telegram di colleghi informatici del CNR che si è dimostrato molto utile per ​fare rete tra i gestori dei servizi della Sede Centrale, degli Istituti e delle varie Aree di Ricerca.
Il gruppo “​Informatici CNR"​, diffusosi con il passaparola, conta ad oggi oltre 130 iscritti.
Dalle varie discussioni sul gruppo è emerso che, mentre le necessità informatiche sono per lo più omogenee, tali non sono le soluzioni. È nata così l’idea di organizzare uno o più incontri al fine di stimolare uno scambio di informazioni che consenta un coordinamento tra le risorse umane e gli strumenti informatico/infrastrutturali che il CNR possiede nell’ambito IT.
Un ristretto numero di volontari ha elaborato un sondaggio per individuare alcuni dei temi più importanti su cui confrontarsi. Al sondaggio hanno partecipato 107 colleghi, evidenziando l'interesse su tematiche specifiche. L'idea è quella di procedere con workshop  interni per autoformazione e confronto al fine di condividere conoscenze, contatti e professionalità all'interno dell'Ente.

ICTalk2021 è il primo di questi incontri.

Data l'attuale emergenza sanitaria, e considerata l'assenza di qualunque tipo di rimborso, l'evento sarà condotto interamente online.

L'evento non è pubblico ma riservato al solo personale CNR.

La partecipazione è vincolata alla registrazione su questa piattaforma accedendo con le consuete credenziali SIPER (LDAP).

Attenzione: Al momento non sono previsti rimborsi o attestati di alcun tipo ma è possibile pubblicare i materiali inviati sulla rivista Smart eLab

Gli abstract da inviare dovrebbero essere un'introduzione dell'argomento che verrà poi presentato con un talk di circa 30 minuti. Per l'abstract è raccomandata una dimensione di circa 40 righe.

    • 14:30 16:00
      Sviluppo, sistemi di automazione software e CI/CD: Presentazioni

      Sviluppo, sistemi di automazione software e CI/CD

      • 14:30
        Utilizzo di Git per sviluppo collaborativo 30m

        Git è un software open source per il versionamento di file sorgente (Version Control System) sviluppato inzialmente nel 2005 da Linus Torvalds. Git permette controllare in maniera flessibile ma rigorosa le fasi di sviluppo di un software, o in generale di tenere traccia delle modifiche operate a un insieme di file (tipicamente file di testo contenenti codice sorgente, ma l'utilizzo può essere esteso a file di configurazione, testi in Markdown, PDF ecc.). La caratteristica principale di Git, che lo distingue da sistemi simili è la sua natura distribuita - che consente di utilizzarlo in locale senza necessariamente dover configurare un server centrale dedicato - e la possibilità di creare "ramificazioni" (branches) parallele alla linea di sviluppo principale con molta facilità e poco "impegno" in termini di risorse. Queste sue proprietà - tra le altre - hanno portato negli anni alla sua adozione su larga scala, anche grazie alla nascita e alla diffusione di sistemi di tipo Git server come GitHub e GitLab che permettono di utilizzare Git in modo collaborativo attraverso un repository remoto condiviso, offrendo interfacce Web che consentono molte operazioni.
        La demo - che in nessun modo può essere considerata esaustiva - intende:
        1. Presentare le funzionalità basilari di Git, nel suo utilizzo in locale tramite la rispettiva Command Line Interface (CLI) da terminale. (Pur esistendo varie interfacce grafiche per Git che offrono funzionalità comparabili alla CLI, sarebbe necessario selezionarne una specifica, mentre i comandi sono utilizzabili sempre allo stesso modo.)
        2. Offrire una panoramica essenziale delle modalità di lavoro collaborativo tramite il servizio Gitlab (dato il suo utilizzo nell'istanza CNR https://baltig.cnr.it)
        Si partirà dalla creazione e inizializzazione di un repository Git locale vuoto, aggiungendo progressivamente file sorgente (codice HTML per una semplicissima pagina Web) e dimostrando l'utilizzo di vari comandi, tra i quali:

        • git config;
        • git status;
        • git add;
        • git commit;
        • git branch;
        • git checkout;
        • git merge;
        • git rebase;
        • git stash.

        Si mostrerà poi un esempio di flusso di lavoro distribuito (nello specifico, il cosiddetto Integration Manager Workflow), tramite la sua applicazione ad un repository di prova ospitato su Gitlab.

        video della comunicazione

        Speaker: NICOLO' PARACIANI (ISPC)
      • 15:00
        Q&A time 10m

        Domande e risposte relative alla presentazione

      • 15:10
        ePAS under the hood 30m

        ePAS under the hood

        ePAS è il sistema di rilevazione e gestione delle presenze sviluppato in house dal CNR e uno strumento software utilizzato quotidianamente dalla stragrande maggioranza dei dipendenti CNR (e non solo).
        Ma cosa si nasconde dietro alla snella e intuitiva interfaccia grafica che mostra i dati delle presenze e delle assenze?

        Questa presentazione mostrerà l'architettura del sistema, i componenti che la caratterizzano, le integrazioni con gli altri sistemi CNR, gli strumenti/framework software utilizzati per lo sviluppo delle applicazioni e gli strumenti di CI/CD, di logging e monitoring impiegati.
        Lo scopo della presentazione è molteplice: da una parte quello di rendere consapevoli i colleghi CNR dei limiti e delle potenzialità della soluzione, comprese le sue possibili integrazioni con altri sistemi software; dall'altra, quella di mostrare strumenti e metodologie che possono essere di esempio per la gestione del ciclo di vita di un prodotto software, dalla sua ideazione, alla messa in produzione, al mantenimento nel tempo, prevedendo, eventualmente, il rilascio del codice sorgente come open source.

        La presentazione si soffermerà sul processo di deploy di ePAS nel CED del CNR, ne mostrerà l'architettura e entrerà nel dettaglio delle scelte tecniche effettuate.
        Saranno mostrati i componenti principali della soluzione e le loro interazioni, compresa l'integrazione con strumenti software già in uso nel CNR e saranno evidenziate le tecniche di scalabilità e alta affidabilità adottate.

        In particolare, saranno trattate le modalità di accesso all'applicazione tramite le credenziali CNR, l'integrazione dei dati contrattuali del personale di SIPER e del DCP, l'integrazione con il sistema di ticketing OIL e con l'applicazione Missioni e saranno mostrate le modalità e gli strumenti utilizzati.

        In conclusione, la presentazione mostrerà l'esperienza, acquisita negli anni, nello sviluppo e nella gestione di un'applicazione in-house utilizzata in ambito CNR, con la speranza di fornire spunti e riferimenti per chi volesse intraprendere una strada simile, o collaborare per estendere le potenzialità di ePAS mettendo a disposizione le proprie idee e le proprie capacità.

        video della comunicazione

        Speaker: CRISTIAN LUCCHESI (Istituto di Informatica e Telematica)
      • 15:40
        Q&A time 10m

        Domande e risposte relative alla presentazione

      • 15:50
        Break 10m
    • 16:00 17:00
      Applicazioni in house e interoperabilità al CNR: Panel di discussione
    • 14:30 16:00
      Sicurezza informatica, gestione delle identità e dei dati: Presentazioni

      Sicurezza informatica, gestione delle identità e dei dati

      • 14:30
        Implementazione di un sistema di autenticazione federato nell'ambito della rilevazione dei settori ERC del personale Ricercatore e Tecnologo del DSB 30m

        Background

        Al fine di delineare la distribuzione degli ambiti di ricerca definiti dall’ERC all’interno del personale afferente al Dipartimento di Scienze Biomediche del Consiglio Nazionale delle Ricerche (da ora denominato CNR-DSB) è stato appositamente progettato e sviluppato un servizio web per permettere ai ricercatori e tecnologi l’indicazione dei propri ambiti di ricerca.
        L’infrastruttura realizzata è composta da tre moduli inter-comunicanti tra loro:
        - Server
        - Client
        - Autenticazione

        Il modulo server, sviluppato in GO, è responsabile delle interazioni col database per il salvataggio e controllo delle informazioni inserite. Il modulo client, realizzato in Angular, permette la visualizzazione e l'inserimento dei valori per la determinazione degli ambiti di competenza degli utenti.

        Gestione dell'Autenticazione

        Il modulo Autenticazione, realizzato mediante l’applicazione di Identity and Access Management enterprise Keycloack, si occupa del recupero dei dati associati agli utenti, della loro gestione e alla associazione di ulteriori metadati specifici per la piattaforma utilizzata.
        Tramite questa applicazione il modulo server e il modulo client sono in grado di gestire le sessioni utente a seguito della autenticazione sulla piattaforma con le credenziali CNR “SIPER” mediante il protocollo OpenID Connect.
        I dati associati agli utenti sono acquisiti dal server centrale del personale CNR tramite accesso LDAP mediante credenziali di sola lettura e filtro di accesso tramite IP forniti a seguito di una richiesta formale.
        Le informazioni associate ad ogni utente (tranne la password) sono poi importate (e controllate periodicamente) nel sistema per permettere l’autenticazione ai soli utenti del CNR-DSB attraverso un filtro appositamente creato. Questo processo permette di importare solo i dati degli utenti abilitati all'accesso al servizio non solo in base all'istituto di appartenenza ma anche in base al tipo di profilo lavorativo; in questo modo, il modulo di autenticazione non importa o utilizza dati non inerenti allo specifico scopo della piattaforma.
        Al fine di agevolare la gestione delle informazioni associate agli utenti nel modulo di autenticazione sono stati definiti anche dai campi dedicati che vengono associati alle informazioni reperite dal server CNR. Questo permette di estendere il set di metadati forniti alle applicazioni facenti parte della piattaforma cosi da renderli tutti accessibili con la medesima modalità.
        Il processo di autenticazione e gestione delle sessioni utente tra il modulo autenticazione e i moduli client e server avviene mediante il protocollo di sicurezza OpenID Connect attraverso l’esposizione di specifiche API di tipo REST richiamate ed utilizzate dalle applicazioni sviluppate. In questo modo le attività degli utenti tra il modulo client e il modulo server, sono costantemente sincronizzate e controllate cosi da garantire una maggiore sicurezza.

        GDPR e Privacy

        Inoltre, come precedentemente descritto, la piattaforma sviluppata richiede l’utilizzo di alcuni dati sensibili associati ai dipendenti afferenti al CNR-DSB. Questo ha richiesto anche una stretta collaborazione con il Data Protection Officer al fine di rendere il servizio conforme alla normavia Europea legata alla gestione dei dati personali (denominata GDPR). a tal proposito sono stati redatti due specifici documenti:
        - Analisi del rischio relativo ad eventuali problematiche di sicurezza
        - Privacy policy, direttamente scaricabile dalla applicazione, relativa alla modalità di utilizzo dei dati trattati

        Futuri Sviluppi

        Attualmente l'interconnessione tra la piattaforma sviluppata e il sistema di gestione utenti CNR "SIPER" si basa su accesso tramite protocollo LDAP. Il passaggio ad un sistema basato su Service e Identity provider non richiederebbe modifiche ai moduli client e server in quanto utilizzano un sistema di comunicazione standard e indipendente dalla modalità di reperimento delle informazioni riguardanti l'utente che sta operando sulla piattaforma. Questo rende l'intera infrastruttura modulare e facilmente estendibile in termini di funzionalità e sicurezza.

        Speaker: MATTEO GNOCCHI (CNR-ITB)
      • 15:00
        Q&A time 10m

        Domande e risposte sulla presentazione

      • 15:10
        Policy di sicurezza informatica dell’Istituto di Informatica e Telematica 30m

        L'Articolo riporta la prima versione della Security Policy dell’Istituto di Informatica e Telematica, adottata nel rispetto della normativa vigente “Misure minime di sicurezza ICT per le pubbliche amministrazioni” previste dall’Agenzia per l’Italia Digitale. Tratta gli aspetti necessari per rilevare eventuali criticità di sicurezza informatica e stabilisce le azioni da intraprendere per accrescere il livello di sicurezza dell’intero ecosistema informatico dell’Istituto. Definisce inoltre un insieme di misure organizzative e comportamentali da adottare, da parte del personale dello IIT, per contrastare le minacce informatiche più frequenti e gestire eventuali incidenti.

        Un ulteriore obiettivo è la consultazione e divulgazione della policy stessa ad altri istituti del CNR, enti di ricerca e Pubblica Amministrazione, al fine di supportarli nella definizione di una politica di sicurezza per la propria organizzazione.

        Keywords. Security Policy, Vulnerability Assessment, AGID, Access Control,
        Incident response

        Speaker: ABRAHAM GEBREHIWOT (Istituto di Informatica e Telematica)
      • 15:40
        Q&A time 20m

        Domande e risposte sulla presentazione

    • 16:00 17:00
      Privacy e sicurezza dei dati: Panel di discussione

      Privacy e sicurezza dei dati

    • 09:00 10:30
      Infrastruttura server: Presentazioni

      Infrastruttura server

      • 09:00
        ISTI: migrazione dei servizi come occasione per l'introduzione di automazione e integrazione 30m

        Durante il 2019/2020 un gruppo composto da tre persone - una ricercatrice, due tecnici - ha lavorato alla migrazione di tutti i servizi di base dell'istituto: * autenticazione (LDAP, SAML/OIDC) * posta elettronica * DNS (autorevole e resolver) * Radius (eduroam) * DHCP

        A questi sono stati aggiunti altri strumenti, usati per la gestione del lavoro e che poi sono stati allargati all'istituto: * issue tracker (redmine) * server git (gitea) * cloud server (nextcloud) * wiki (mediawiki)

        Con l'occasione è stato introdotto un sistema di provisioning che è diventato lo strumento usato per l'installazione e la configurazione di tutti i sistemi.

        Speaker: ANDREA DELL'AMICO (CNR-ISTI)
      • 09:30
        Q&A time 10m

        Domande e risposte sulla presentazione

      • 09:40
        Realizzazione e gestione di una piattaforma di High Performance Computing 30m

        Background

        I recenti sviluppi tecnologici in ambito biomedico, hanno portato alla generazione di enormi mole di dati derivanti da tecnologie di high-throughput come microarray e sequenziatori che richiedono la gestione e la possibilità di effettuare diverse analisi computazionali in modo efficiente ed efficace attraverso una infrastruttura in grado di rispondere ai continui sviluppi tecnologici, di metodi e di algoritmi atti all’analisi.
        Il primo problema che si riscontra, è quello derivante delle richieste fisiche per la loro gestione; in particolare, la richiesta di storage capienti per il salvataggio e i backup dei dati e al contempo la necessità di mantenere un accesso veloce a tali informazioni durante il loro utilizzo.
        In questo contesto si inserisce l’infrastruttura di High Performance Computing realizzata in quanto presta particolare attenzione ai sistemi e alle tecniche per:
        - Installazione e provisioning dei servers
        - Gestione degli utenti e principali servizi di rete (DNS,NTP)
        - Gestione e mantenimento dei diversi Software

        Installazione e provisioning dei servers

        Per l’installazione del Sistema Operativo viene sfruttato il Preboot Execution Environment (PXE) che permette di eseguire il boot di un sistema operativo tramite rete ethernet automatizzandone il deployment distribuito.
        Successivamente la configurazione dei diversi sistemi è effettuata tramite un software di provisioning che si occupa di ​automatizzare le procedure di ​configurazione e gestione.
        Un server PXE permette ai client di avviare e installare un sistema in rete senza avere necessariamente un supporto fisico; a differenza dei tradizionali metodi di installazione, si può installare qualsiasi sistema nella rete senza dover usare l’unità CD-ROM o USB.
        L’ambiente PXE ha successivamente bisogno di un server DHCP che distribuisce gli indirizzi IP per i sistemi client e un server TFTP da dove scaricare i file di installazione nel queale vengono definite le prime impostazioni inerenti alla lingua di sistema, l’interfaccia di rete e l’accesso remoto per l’interazione con il server di automazione.
        Il Configuration Management è un processo automatico e prevedibile utilizzato per definire la configurazione dei server e dei servizi in modo consistente, possibilmente sotto controllo di versione. In particolare, nella realizzazione di questa infrastruttura è stato utilizzato Ansible.
        Ansible per sua definizione è configurato per essere idempotente, questo implica che applicando le regole di configurazione diverse volte il risultato finale è sempre lo stesso.
        La configurazione del provisioning tramite Ansible può essere racchiusa in 5 aspetti chiave:
        - Task: le operazioni che devono essere svolte sui diversi server per configurare il sistema
        - Moduli: piccoli programmi messi a disposizione da Ansible che permettono di effettuare e semplificare i task
        - Ruolo: rappresenta un insieme di task che permettono di configurare una funzione precisa
        - Playbook: organizza i vari ruoli per portare a termine il compito.
        - Inventory: è un file che contiene al suo interno dei gruppi che a loro volta contengono gli identificatori dei server. Questi server sono quelli che verranno influenzati durante l'esecuzione dalle istruzioni contenute nei playbook.

        Gestione degli utenti e principali servizi di rete

        Nell'infrastruttura si è deciso di implementare FreeIPA quale soluzione integrata nella gestione della sicurezza in quanto combina Linux, 389 Directory Server, MIT Kerberos, NTP, DNS e un sistema di certificati gestibile tramite command line o Web GUI.
        Nella gestione degli utenti un ruolo fondamentale è dato dall’autenticazione. Essa deve permettere di identificare in modo sicuro ed efficace i diversi utenti e permettere l’utilizzo dei soli servizi disponibili per lo specifico utente.
        L’autenticazione viene gestita tramite protocollo Kerberos che permette di autenticarsi nella rete provando la propria identità e cifrando i dati.
        Kerberos previene attacchi quali l'intercettazione e i replay attack ed assicura l'integrità dei dati. I componenti Kerberos KDC / Kadmin sono implementati utilizzando il software Kerberos MIT e forniscono i servizi di autenticazione per l'intero dominio di FreeIPA che è utilizzato per i servizi, per gli utenti e per le altre componenti del sistema.

        Gestione e mantenimento dei diversi Software

        Risulta poi importante l’installazione e la gestione dei software utilizzati. In particolare, è importante poter fornire le diverse versioni al fine di poter riprodurre le analisi con diverse configurazioni. Questo aspetto è molto cruciale perché spesso i software sono dipendenti dalle librerie di sistema e potrebbero suscitare conflitti tra differenti versioni.
        Per questa ragione è stato deciso di utilizzare una gestione basata su container che permette di isolare i diversi software; in particolare, è stato scelto di utilizzare Singularity, una piattaforma container open source progettata per essere semplice, veloce e sicura.
        La creazione dei container si basa sulla realizzazione di un file di recipes che contiene le istruzioni per la creazione e la realizzazione dell’applicazione.
        Per rendere le applicazioni ancora più facilmente utilizzabili ed intuitive è stato integrato il sistema Environment Modules. Questo sistema è uno strumento che aiuta gli utenti a gestire il proprio ambiente shell Unix o Linux, consentendo di creare o rimuovere dinamicamente gruppi di impostazioni relative alle variabili d'ambiente correlate. In particolare, vengono esposti i comandi presenti nei container singularity come alias e quindi richiamabili come comandi base del sistema operativo host.

        Conclusione

        L'infrastruttura descritta si basa sull'utilizzo di un sistema di provisioning per l'installazione dei diversi servizi, un sistema di identity Management in cui vengono immagazzinate e gestite le informazioni relative agli utenti e ai servizi e un sistema di Environment Modules in grado di fornire l'accesso a specifici software nascondendone la complessità di interazione con il sistema operativo.
        Questo rende l'infrastruttura eterogenea e modulare in quanto indipendente dalla tipologia di server e facilmente estendibile nel tempo.
        Inoltre, eventuali modifiche e aggiornamenti alle configurazioni della gestione dei sistemi operativo o dei servizi sono facilmente propagabili all'interno dell'intera infrastruttura senza creare disservizi agli utenti.

        Speaker: MARCO MOSCATELLI (CNR - ARMi4)
      • 10:10
        Q&A time 10m

        Domande e risposte sulla presentazione

      • 10:20
        Break 10m
    • 10:30 11:30
      Una gestione moderna delle infrastrutture di calcolo: Panel di discussione
    • 14:30 16:00
      Strumenti a supporto della ricerca: Presentazioni

      Strumenti a supporto della ricerca

      • 14:30
        Soluzioni opensource per la Comunicazione Scientifica e per la Formazione. 30m

        Uno dei compiti delle istituzioni pubbliche di ricerca è la divulgazione della conoscenza attraverso iniziative editoriali e corsi di formazione. Il progresso tecnologico, nel campo della comunicazione e l'ampia diffusione di internet, ha reso possibile alla comunità scientifica di produrre e distribuire in modo autonomo i propri prodotti editoriali. Questo avviene attraverso piattaforme informatiche dedicate alla produzione e alla distribuzione di riviste e monografie in formato digitale. A queste piattaforme si affiancano quelle per la scrittura collaborativa scientifica che completano il processo editoriale. Grazie alla comunità di sviluppatori e utilizzatori sono ora disponibili software opensource che consentono, in modo semplice, una produzione editoriale di alto livello con una affidabilità dei processi di gestione della revisione e archiviazione dei prodotti editoriali.

        Anche nell'ambito della formazione sono ora disponibili piattaforme informatiche opensource ad alta affidabilità con le quali è possibile realizzare e gestire corsi sia in modalità a distanza che blended. Tra questi prodotti quello più utilizzato è Moodle. Il successo di questo software sta nella sua ampia flessibilità di uso (sia sulla tipologia degli utilizzatori e sia sulla tipologia dei server) e nell'ampia comunità di sviluppatori e utilizzatori a supporto.

        Infine, anche l'organizzazione di un evento scientifico può essere affidata ad una piattaforma informatica opensource come quella prodotta dal CERN. Questa piattaforma svolge anche la funzione di archiviazione degli eventi svolti, funzione molto utile in fase di rendicontazione delle attività svolte per la terza missione.

        Nella comunicazione sarà discussa la realizzazione di un cluster di server virtuali per la gestione integrata delle attività di comunicazione e formazione di un istituzione scientifica sopra riportate.

        Sitografia dei software opensource

        1. Open Journal System https://pkp.sfu.ca/ojs/
        2. Overleaf https://www.overleaf.com/
        3. Moodle https://moodle.org
        4. Indico https://getindico.io/
        Speakers: Dr GUIDO RIGHINI (CNR - IC) , MARCO SIMONETTI (CNR)
      • 15:00
        Q&A time 10m

        Domande e risposte sulla presentazione

      • 15:10
        Il portale Centro Servizi: chi, come e perché 30m

        Da semplice request tracker “artigianale” a punto di collegamento tra il Centro Servizi e la rete scientifica del CNR: questa l’evoluzione del Portale Centro Servizi (https://centroservizirsi.cnr.it/) che, dal 2018 ad oggi, ha evaso oltre 1400 richieste (https://centroservizirsi.cnr.it/portale/reports/reports.php).

        Ma come funziona, chi lo gestisce, perché è nato e perché continuerà a crescere? E anche: può essere migliorato? Quali le criticità?

        La presentazione cerca di dare una risposta a queste domande illustrando i principi che hanno ispirato il portale, il suo funzionamento, le componenti esterne e la sua integrazione con i servizi CNR esistenti.

        Nel corso della presentazione verrà effettuata anche una demo del funzionamento del portale: dalla generazione di una richiesta alla sua lavorazione.

        Speaker: GIORGIO BARTOCCIONI (CNR)
      • 15:40
        Q&A time 10m

        Domande e risposte sulla presentazione

      • 15:50
        Break 10m
    • 16:00 17:00
      Collaboration tools for modern teams: Panel di discussione

      Collaboration tools for modern teams