Un’approfondita analisi condotta da Giulio Destri su come affrontare le problematiche di gestione di infrastrutture IT basate su software open source

[section_title title=La soluzione è open source? Parte 3]

Il mondo open source oggi

Con open source oggi si intende un vasto insieme di software, composto da tante categorie. Un elenco non esaustivo, redatto secondo la stratificazione del parametro precedente, consta di:

  • Software applicativo: Suite Office, CRM, gestionali, applicazioni multimediali…
  • Librerie: grafica, crittografia, compressione, logging, UI Web…
  • Software infrastrutturale
    • Container: Tomcat, JBoss, Drupal…
    • DBMS: MySQL, PostgreSQL…
    • Web server: Apache
  • Sistema operativo: Linux, OpenBSD, FreeBSD…
  • Hardware: Arduino…

Anche i software open source sono soggetti ad un ciclo di vita. Lo sviluppo può essere gestito da aziende (ad esempio Red Hat per la propria distribuzione Linux), da fondazioni (ad esempio, la Mozilla Foundation per il browser Firefox), da consorzi (ad esempio, l’Apache Consortium per Apache Web Server) e da gruppi “informali” o singoli sviluppatori.

I rilasci vengono fatti secondo propri calendari e roadmap. Le nuove caratteristiche e funzionalità sono aggiunte sulla base delle necessità o delle richieste degli utenti/clienti. Ma molti prodotti si appoggiano su librerie sviluppate da altri gruppi. Deve essere garantita, entro certi limiti una retro compatibilità. In sostanza quindi ecco una catena di dipendenze che i vari software devono avere fra loro.

Vediamo un esempio: il pacchetto OpenSSH, insieme di moduli software che implementa tutte le funzioni previste dal protocollo standardizzato SSH per la comunicazione sicura in rete.

OpenSSH è sviluppato dal Progetto OpenBSD, lo stesso che gestisce la omonima distribuzione dello UNIX libero BSD. OpenSSH si basa, internamente, su due componenti non gestiti da OpenBSD:  la libreria di crittografia OpenSSL, sviluppata dal Progetto OpenSSL, e la libreria di compressione ZLib, sviluppata dal gruppo di sviluppo della suite GZip.

Nuove versioni delle componenti su cui OpenSSH si basa devono essere testate in compilazione. Inoltre potrebbero sorgere problemi di sicurezza dovuti a debolezze di tali componenti interne e non al codice sorgente del pacchetto principale.

Un altro esempio: Il software Samba per l’integrazione Linux-Windows consente di integrare validamente sia un controller Linux a gestire un intero dominio di computer Windows, sia un server Linux a fare parte di un dominio Windows. La configurazione di reti di questo genere richiede molto sforzo ma ottiene sistemi molto robusti. In passato alcuni cambi di versione di Samba hanno portato a notevoli problemi sui sistemi di produzione.

Su scala più grande, le distribuzioni Linux sono aggregazioni di kernel, librerie run-time, librerie applicative e software applicativi, ciascuno dei quali ha il suo proprio ciclo di vita. Il valore aggiunto della distribuzione sta nel fornire una piattaforma collaudata nel suo insieme. Questo è il motivo per cui la maggior parte delle aziende che usano Linux preferiscono pagare un canone per una distribuzione “garantita” come la Red Hat rispetto a distribuzioni gratuite. Per tali distribuzioni i produttori rilasciano aggiornamenti periodici scaricabili attraverso la rete e (entro certi limiti) garantiti come mantenenti la stabilità della distribuzione stessa.

Ma una distribuzione è sempre adeguatamente aggiornata?

Vediamo ora alcuni esempi nella pagina successiva