Microsoft <3 Open Source & … Openness

Microsoft non è la prima società a cui si pensa quando si parla di Open Source.

In questo post vorrei però raccontarvi cosa abbiamo fatto e cosa abbiamo intenzione di fare sul tema Openness, sia per quanto riguarda i temi d’interoperabilità, sia relativamente a quello che ci piacerebbe fare con le comunità Open Source (e non solo) italiane.

Vorrei che queste mie note fornissero degli spunti di riflessione e di discussione. Commentate, condividete le vostre idee e suggerimenti, sia direttamente in questo post, sia attraverso il nostro account Twitter. Se volete scrivermi direttamente il mio alias Twitter è @robandre.

Negli ultimi anni abbiamo intrapreso una strada fortemente orientata all’Openness.

Openness vuol dire Open Source, ma non solo! Parlare di Open Source solamente sarebbe infatti molto limitativo rispetto a quello che viene richiesto dagli sviluppatori ed in generale dal mercato del software.

Openness vuol dire anche Interoperabilità, Supporto agli Standard e Volontà di Collaborare con le Comunità per raccogliere feedback e suggerimenti per migliorare sempre di più il Software.

Questa visione è stata spiegata molto bene da Gianugo Rabellino , Senior Director of Open Source Communities di Microsoft Open Technologies, durante un’intervista intitolata Il volto della svolta open source di Microsoft (autore: Luca Annunziata di Punto Informatico).

La missione di Microsoft Open Technologies riassume molto bene il concetto di Openness:

“Building bridges between Microsoft

and non-Microsoft technologies.

Powering Interoperability

through Open Standards and Open Source.”

La “trasformazione” verso un approccio Openness, è avvenuta gradualmente.

In molti contesti era “la cosa giusta da fare”, visto che il mercato stava cambiando e andava in una direzione dove l’eterogeneità era un valore sempre più importante.

Non basta “fare la cosa giusta”, bisogna farla anche “nel modo giusto”

Microsoft si è approcciata al mondo di Linux (prima per l’integrazione con Hyper-V e successivamente con Azure) nel modo in cui i principali attori del mondo Open Source percepiscono come “giusto”. Microsoft non ha “semplicemente” realizzato i driver per Linux per Hyper-V o Azure e li ha resi disponibili in binario sul proprio sito, o magari anche con i sorgenti, come fanno in tanti. No, la scelta è stata quella di partecipare alle attività della mailing list dove si discute il kernel di Linux, proporre l’integrazione dei propri driver nel kernel, e seguire tutto l’iter per vederli finalmente integrati quasi due anni dopo, con il contributo anche degli sviluppatori della Community.

Da quel momento tante cose sono successe, la nascita della .NET Foundation prima (con il contributo importante del team di Mono) e l’apertura di .NET al mondo Open Source col supporto anche per Linux e Mac OS X poi, con il rilascio di moltissime librerie anche non Core della piattaforma e la possibilità di integrare codice proposto dalla communty all’interno dei futuri rilasci. Anche la scelta di usare GitHub per tutti i propri rilasci di codice Open Source va nella direzione di “fare la cosa giusta, nel modo giusto”, visto che per la community Open Source è un riferimento quasi obbligato in questo momento.

Per permettere agli sviluppatori di usare Visual Studio per tutti i tipi di progetti, è nata la Community Edition, che estende e supera le limitazioni delle versioni Express del passato e che può essere usato gratuitamente dagli sviluppatori, dagli studenti, dai ricercatori, etc… (a meno che non lavorino per società con più di cinque sviluppatori, ma anche in quel caso può essere comunque usato per realizzare e supportare progetti Open Source).

Nel mondo dello sviluppo App su Github trovate tantissimi strumenti Open Source di Microsoft, nati per semplificare il porting e l’integrazione con altre piattaforme. Grazie a Microsoft Open Technologies, trovate anche una serie di strumenti come JUniversal, un modo per scrivere applicazioni cross platform partendo da codice Java e in grado di andare su iOS, Windows e Android, nato dal lavoro di alcuni ingegneri Nokia.

Nel mondo cloud l’utilizzo e l’integrazione di tecnologie Open è fondamentale, e in questo momento Microsoft Azure è all’avanguardia in tal senso. Infatti, fin dagli albori della nostra piattaforma Cloud, Microsoft Azure è stato progettato per ospitare diversi stack, framework e linguaggi Open Source per dare agli sviluppatori e ai professionisti IT la maggiore libertà nella scelta dei propri componenti applicativi e infrastrutturali.

image

Questo risultato è frutto di una continua e crescente collaborazione tra le diverse comunità Open Source e Microsoft che ha permesso la creazione e il continuo aggiornamento di diversi SDK per i principali linguaggi di programmazione oltre al supporto delle distribuzioni linux più usate.

Anche alcuni servizi nativi della piattaforma Azure utilizzano ed impementano componenti Open Source come ad esempio

HDInsight (Apache Hadoop) e il servizio di cache Redis Cache mentre nuovi servizi della piattaforma, come ad esempio gli Azure Mobile Services, sono già predisposti per interoperare con qualsiasi dispositivo.

image

Infine, la partership con terze parti specializzate nella creazione di macchine virtuali già preconfigurate con diversi stack Open Source, come ad esempio BitNami, dà la possibilità ai developer fino agli IT manager delle grandi aziende di gestire, configurare ed automatizzare il deployment abbattendo notevolmente i tempi di realizzazione.

image

 

Cosa possiamo fare insieme?

Una domanda che spesso ci viene posta dalle persone che hanno sempre vissuto nel mondo Open Source è se è possibile collaborare, se siamo disposti al confronto, o se invece “l’apertura di Microsoft” è solo qualcosa di facciata e riguarda solo il fatto di “aver fatto qualche bella maglietta”.

image

Tutte le Persone del mio team di Technical Evangelism che lavorano all’interno della divisione Developer eXperience ed in particolare @mariofontana e @_geniodelmale (che seguono, oltre a tanti altri temi, la relazione con il mondo Open, le Community e le Startup) sono a disposizione per organizzare incontri, collaborazioni, materiale o supporto …. oppure semplicemente per mettere in contatto le Community appassionate di tecnologie Microsoft con quelle Open Source.

Sono convinto che ora sia arrivato il momento di creare collaborazione tra questi due “universi” – se avete letto bene questo post vi accorgerete che probabilmente non sono due universi molto distanti :)

Vorrei vedere realizzato concretamente un progetto che mi piace classificare come Extended Community.

Quello che ci interessa di più è ascoltare cosa avete da dirci, come abbiamo fatto in moltissime occasioni (conferenze, meetup, etc…) e capire come lavorare insieme. Non abbiamo una ricetta universale, ne vogliamo crearla. Ogni gruppo, ogni community è un mondo diverso, e noi vogliamo interagire senza stravolgere nulla.

Abbiamo partecipato con piacere moltissime edizioni di Codemotion (a Milano, Roma, Venezia, etc…), ai PHP Day, JS Day, Alt.NET conference, startup weekend, Maker Faire, … ma anche agli eventi più vicini a noi come Community Days e .NET Campus, dove sviluppatori, professionisti IT, studenti e startup erano incuriositi dal “nuovo” modo di porsi di Microsoft e dove abbiamo incontrato tantissime Persone interessanti e collaborative.

Approfitto di questo post per invitare tutti voi all’AZURE OPEN DAY - che che si terrà a Milano, presso il Museo nazionale della Scienza e della Tecnologia, il 25 febbraio 2015.

L’evento sarà interamente dedicato ad alcune tecnologie del mondo Open Source, tra cui Node.Js, PHP, MongoDB e Hadoop. In particolare durante le sessioni potrete vedere come sono state utilizzate, e continuano ad esserlo, in progetti reali con Microsoft Azure.

Potrete assistere a demo su come utilizzare i servizi Microsoft Azure con le tecnologie Open, ascoltare casi reali di Startup che devono il loro successo a queste tecnologie utilizzate in combinazione con la nostra piattaforma Cloud, vedere come gestire i dati in cluster Hadoop sul cloud in modalità IaaS utilizzando PowerShell e anche un esempio di come è stata realizzata l'architettura di un videogame su stack LAMP.

Non perdete questa opportunità, i posti sono limitati: iscrivetevi subito!

Ho voglia di leggere i vostri commenti, di conoscervi. Mi piacerebbe tantissimo potervi incontrare di persona a Milano durante l’Azure Open Day.

Ci conto!

Roberto