Open source
Cos’è l’open source?
L’open source è un software creato e distribuito con l’intento che più team e sviluppatori siano liberi di modificarlo e contribuirvi con nuove caratteristiche o correzioni per il suo continuo sviluppo e aggiornamento.
In che modo l’open source si differenzia dagli altri modelli?
Quando gli sviluppatori creano, rilasciano e aggiornano il software open source, l’intento progettuale è che la community degli sviluppatori in generale sia in grado di contribuire al suo continuo avanzamento. Il codice sorgente del software è liberamente disponibile nella sua forma non compilata consentendo a coloro che lo desiderano di prestare le loro competenze al suo sviluppo o alla sua evoluzione e quindi condividere i loro contributi.
Quali sono le aspettative inerenti l’open source?
Con l’open source gli utenti possono creare versioni che funzioneranno con diversi sistemi operativi o ambienti online. L’unica aspettativa per il software open source è data dal fatto che chi contribuisce al suo sviluppo renda disponibili gli aggiornamenti anche agli altri.
Storia dell’open source
Il software open source in realtà precede di decenni i titoli rilasciati a livello commerciale; possiamo far risalire le sue origini al sistema di compilazione A-2 del 1953. La filosofia prevalente fino agli anni ’70 era che l’hardware di elaborazione fosse la merce e non i programmi creati e caricati su di esso. Con il rilascio di software disponibili in commercio (spesso acquistati per corrispondenza come righe di testo stampate), l’open source è rimasto associato a un’idea prevalente di prodotto per computer commerciali, accademici e per dilettanti.
Distribuito per la prima volta da AT&T nei primi anni ’70, il sistema operativo UNIX ne è un esempio ben noto. Versioni commerciali, proprietarie e closed source di UNIX sarebbero state rilasciate in seguito, anche se il software per UNIX sarebbe stato creato e distribuito nell’ambito del Progetto GNU, nel 1983. Nel 1991, un nuovo kernel free e open source chiamato LINUX, dal nome del suo ideatore Linus Torvalds, divenne rapidamente (e continua a essere) lo standard pressoché universale.
La Open Software Foundation è nata nel 1988 come gruppo no profit per creare e gestire uno standard per lo sviluppo di UNIX. Nel frattempo, si è fusa con X/Open per diventare il cosiddetto The Open Group. Con quasi 1.000 membri che rappresentano una sezione trasversale di produttori di hardware e sviluppatori di software, l’Open Group offre certificazioni professionali e gestisce numerosi standard come il Single UNIX Specification (SUS) e l’Open Agile Architecture Standard.
Quali sono i vantaggi del modello open source?
A livello aziendale, lo sviluppo open source presenta numerosi vantaggi per i professionisti IT, gli utenti e gli sviluppatori stessi. La velocità e l’agilità dell’implementazione delle richieste di funzionalità, la capacità di scalare in verticale facilmente e l’efficienza dei costi sono enormi vantaggi.
Il modello di sviluppo open source è molto simile al cloud stesso. Le correzioni e le funzionalità possono essere distribuite tra più sviluppatori o team, quindi convalidate e compilate da altri. La quantità di risorse dedicate è flessibile ed è possibile aggiungere più team, se necessario. Molti esempi di software open source iniziano con un piccolo gruppo che si evolve fino a quando una community sempre più grande contribuisce al suo sviluppo continuo.
Questo attrae anche talenti di maggior calibro che possono fornire soluzioni diverse e innovative alle problematiche dello sviluppo. I gruppi che lavorano alla manutenzione del software open source non devono attendere che un fornitore contribuisca con correzioni o nuove funzionalità; sono semplicemente in grado di generarle in autonomia.
Il software open source offre anche notevoli efficienze e vantaggi in termini di costi. La maggior parte del software è distribuito gratuitamente. L’investimento in tempo e denaro necessari allo sviluppo continuo dell’open source è condiviso dall’intera community. La dipendenza da un fornitore non è più un problema, poiché gli utenti non sono vincolati da un contratto con una terza parte.
Probabilmente il vantaggio più importante è dato dal fatto che l’azienda può davvero muoversi alla velocità dell’innovazione. Con un migliore controllo dei costi, uno sviluppo e un’implementazione più rapidi e la capacità di esternalizzare in modo efficace la normale manutenzione, i vantaggi del software open source sono evidenti.
Software free, software closed source e software open source a confronto
Tutto il software attualmente disponibile, rilasciato a livello commerciale o di pubblico dominio, rientra in una delle tre definizioni. Il software "closed source" è probabilmente la definizione di più facile interpretazione, mentre “free” e “open source” vengono a volte utilizzati in modo intercambiabile nonostante alcune differenze fondamentali. Con un numero così elevato di aspetti in comune tra i due, il termine FOSS (Free and Open Source Software) è spesso usato con riferimento a un software free e open source.
Software closed source
Il software closed source è generalmente criptato e compilato in un formato protetto. Viene fornito con l’accordo specifico che il codice sorgente non potrà essere decompilato, modificato, ricompilato o ridistribuito senza un’autorizzazione esplicita. Un ottimo esempio di software closed source sono i sistemi operativi commerciali per computer come Microsoft Windows o Mac OS della Apple. Sono considerati proprietà intellettuale dello sviluppatore ed entrambe le aziende hanno fatto tutto il possibile per proteggere il loro lavoro.
Software free
Il software free è distribuito secondo la definizione delle "quattro libertà essenziali" definite dalla no profit Free Software Foundation. Le libertà consentono di eseguire il software come desiderato per qualsiasi scopo, studiare o modificare il codice sorgente, ridistribuire il software originale e la versione modificata. Il software “free” si riferisce a queste quattro libertà e non al prezzo effettivo: esistono molti esempi di titoli di software free source rilasciati a livello commerciale.
Software open source
Il software open source rientra nelle definizioni stabilite dalla Open Source Initiative fondata alla fine degli anni ’90 per affrontare quelle che la community degli sviluppatori percepiva come limitazioni del software free source. Come detto sopra, l’open source è tanto una filosofia dello sviluppatore, quanto la licenza che offre agli altri utenti. L’Open Source Initiative sostiene che il software può essere ridistribuito gratuitamente, il codice sorgente è disponibile al pubblico e può essere modificato e distribuito in un formato diverso, non discrimina persone o gruppi e non limita in alcun modo l’uso di altro software.
Cos’è il modello di sviluppo open source?
Il modello di sviluppo open source è definito dai processi e dai valori che lo differenziano dal modello tradizionale, anche se le organizzazioni di sviluppo tradizionali adottano sempre più spesso il modello open source. L’enfasi dello sviluppo open source è la collaborazione, la peer review e la filosofia "release early, release often", che consente aggiornamenti più frequenti.
Il processo di richiesta di funzionalità nello sviluppo open source è costante. Quando vengono suggerite funzionalità, correzioni e aggiornamenti, in base al processo di richiesta di funzionalità del modello open source, il suggerimento deve essere esaminato e convalidato a livello di gruppo prima di essere progettato e implementato. Quando si compila una nuova versione, viene condivisa in tutta la community come release alfa per il test, il feedback e ulteriori input.
Un principio fondamentale del modello open source è dato dal fatto che diversi soggetti o piccoli gruppi condividono la responsabilità della creazione e della manutenzione del codice sorgente. Questi aggiornamenti sono condivisi tra più gruppi per testare e convalidare il codice con la massima trasparenza in tutti i team. Quando tutti i progetti sono pronti per l’implementazione, il codice viene passato al team di manutenzione o al manager, che ha la responsabilità di garantire che tutto il nuovo codice presentato soddisfi gli standard del progetto.
Come vengono applicate le soluzioni software open source?
Abbiamo assistito a una migrazione quasi totale verso l’adozione di software open source, il 95% delle aziende IT utilizza l’open source per la modernizzazione dell’infrastruttura, lo sviluppo di applicazioni e DevOps.
Il sistema operativo LINUX è un perfetto esempio del modello open source e non solo per l’ambiente in sé, ma anche per le centinaia di applicazioni open source progettate per l’esecuzione al suo interno. Non è sicuramente l’unico esempio di infrastruttura: anche Xen, KVM e OpenStack sono open source.
Per i Big Data, la piattaforma Hadoop di Apache e l’analisi dati Spark e Atlas Database di MongoDB sono esempi di software sviluppato secondo il modello open source. Le applicazioni di machine learning comprendono Apache MXNet, PyTorch e TensorFlow.
Altri esempi di software open source utilizzati in modo quasi universale oggi comprendono tool di sviluppo web e framework come WordPress e PHP, jQuery, Angular e Ruby on Rails. Per le applicazioni mobili, il sistema operativo Android di Google è ampiamente adottato, mentre Apache Cordova è un framework open source diffuso per lo sviluppo di applicazioni mobili multipiattaforma.
Open source e HPE
La collaborazione aperta fa parte del DNA di HPE. Crediamo che le community e le tecnologie open source possano contribuire alla realizzazione di soluzioni innovative in modo sicuro e su vasta scala. HPE propone numerose soluzioni software open source in un’ampia gamma di applicazioni di livello enterprise. HPE è orgogliosa di supportare, utilizzare e contribuire a diversi progetti open source.
Chapel è un linguaggio di programmazione parallelo destinato all’elaborazione scalabile, portabile da desktop e laptop ai più elevati livelli di applicazioni di elaborazione ad alta potenza.
SmartSim abilita il machine learning (ML) e l’intelligenza artificiale (IA) per le tradizionali applicazioni di High Performance Computing fornendo ai ricercatori funzionalità aggiuntive per simulazioni quali l’analisi online, il model steering e la visualizzazione.
KubeDirector è un controller personalizzato open source per Kubernetes che semplifica la distribuzione di applicazioni stateful in cluster Kubernetes standard. Definisce le caratteristiche delle applicazioni tramite metadati e artefatti di configurazione, semplificando l’implementazione e l’aggiornamento delle applicazioni.
SPIFFE è un piano di controllo delle identità universale che fa parte della Cloud Native Computing Foundation. È essenzialmente un insieme di standard per l’autenticazione di servizi in ambienti eterogenei e dinamici attraverso l’uso di identità crittografiche indipendenti dalla piattaforma. SPIRE è un sistema open source che implementa la specifica SPIFFE in una vasta gamma di ambienti.