Quest’anno, per la prima volta, abbiamo avuto il piacere di partecipare alla LinuxCon 2017 China, la più importante conferenza Linux organizzata dalla Linux Foundation che si è svolta il 19-20 Giugno 2017 presso il China National Convention Center a Pechino, China.
La Conferenza è stato il più importante evento dell’anno per la community Cinese, e grazie a questa speciale occasione sviluppatori, project leader e lead maintainer da tutto il mondo hanno avuto l’opportunità di lavorare insieme per portare avanti l’ecosistema Linux.
Il primo giorno ha visto circa 2.000 partecipanti che hanno potuto condividere le proprie conoscenze, collaborare a nuove tecnologie ed apprendere le ultime novità sulle tecnologie Open Source e GNU/Linux, in particolare in ambito cloud, container, microservizi e networking.
La General Session del primo giorno è iniziata con un ringraziamento alle aziende Cinesi che hanno supportato il Linux project: c’è stato un incremento del contributo da parte della Cina del +400%.
Linux è il software che ha conosciuto il maggior successo nella storia. Qui sotto dei numeri incredibili esposti durante la Conf, che ne testimoniano la fama:
- 000 file sorgente nel Linux kernel
- 21+ M linee di codice sorgente
- 900+ sviluppatori in tutto il mondo
- $ 10.3B è il valore medio del sistema operativo Linux
- 99,4% delle migliori performance al mondo
- presente sul 64,8% degli smartphone, tablet, handheld, smart TV, wearable computer
- su di esso avviene il 90% degli scambi azionari mondiali
Linux è stato uno dei primi e migliori esempi di software Open Source: i nuovi player hanno emulato e hanno preso spunto da software proprietari (come Linux) per poi creare nuove tecnologie come Docker, Hadoop, Tensorflow, etc…
Ci sono milioni di progetti opensource in tutto il mondo (si pensi che solo su GitHub ci sono 64 miloni di OS repository), e la Linux Foundation permette a questo ecosistema di prodotti e servizi di sussistere.
Durante la keynote vi è stata la consegna di un premio alla carriera al professor Lu Shouqun, per aver promosso e spinto l’Open Source in Cina fin dal 1991.
E’ seguito, durante la keynote, l’intervento di Quanyi Ma, Senior Architect, Beijing Huawei Digital Technologies, che ha spiegato che siamo nel bel mezzo di una container revolution, e il modo di applicare la continuous integration e il continuous deployment (CI/CD) è in continua trasformazione grazie ai container. Il ContainerOps non si basa solamente su tool di CI - CD e pipeline, ma è un insieme di nuovi concetti che abbracciano il meccanismo del DevOps workflow e tutte le relative componenti.
Durante la Keynote abbiamo avuto l’occasione di ascoltare inoltre gli speech di Jonathan Bryce, executive director dell’Openstack foundation, e di Gebi Liang, Partner Director of Cloud and Enterprise Engineering China presso Microsoft Asia-Pacific Research and Development Group. Gebi ha raccontato la storia di Microsoft legata all’open source, ha annunciato la partnership di Microsoft con la Linux community e con altre community, il tutto orientato ad abbracciare sempre più lo scenario open source. Ha anche spiegato la strategia di Microsoft in tal senso e ha fatto qualche esempio che ha testimoniato quanto l’azienda voglia fare innovazione sulla base di tecnologie Open Source.
Durante il primo giorno di conferenza abbiamo avuto inoltre l’onore di conoscere Linus Torvalds, il creatore di Linux e Git. Questa è una foto fatta con lui :-)
Proprio Linus Torvalds, ha iniziato poi la General session del secondo giorno di conferenza. Ha parlato del suo lavoro come Top Maintainer di Linux kernel: egli fa questo lavoro, che ama, da 25 anni, in particolare dal 1991. Si dedica interamente ed esclusivamente al progetto Linux, in quanto non ha altro tempo da poter dedicare ad altri progetti Open Source.
Ha menzionato e ringraziato la community Linux ed ha spiegato quanto sia complesso ed impegnativo passare da contributor a top maintainer, ruolo che egli ricopre attualmente; è tutta una questione di dedizione al lavoro. Ora in Linux c’è un team forte di 10 top maintainer, grande risultato considerando che si tratta di un progetto open source. Linus ha inoltre dichiarato “Se dovessi ricominciare oggi lavorerei sull’hardware”.
Nella mattinata del day 2 il nostro DevOps Expert, Lorenzo Fontana, ha preso parte ad un Panel dal titolo “Containers and Networking: A Symbiotic Relationship”, durante il quale è stato spiegato come, al continuo aumento dell’adozione del cloud, i container siano sempre più utilizzati per semplificare lo sviluppo delle applicazioni distribuite. Lorenzo e Rajat Chopra, Red Hat Engineer, moderati da Sheng Liang, co-founder e CEO di Rancher Labs, hanno discusso su come il mix di modelli di sviluppo basati su container spazino dalle Virtual Machine al bare metal, e sulla necessità di gestire le sovrapposizioni di container network in modo indipendente ma simultaneo partendo dalla base, creando un nuovo insieme di complessità di networking da esplorare.
Nel pomeriggio Lorenzo ha poi tenuto uno speech dal titolo “Practical Container Network Interface”, durante il quale ha approfondito il progetto PCNI, un’interfaccia network creata da più aziende e progetti tra cui CoreOS, Red Hat OpenShift, Apache Mesos, Cloud Foundry, Kubernetes, Kurma e rkt. Inizialmente proposto da CoreOS per definire un’interfaccia comune tra network plugin e l’esecuzione di container, CNI è stato creato per essere una specifica minimale riguardante la connettività di rete dei container e la rimozione delle risorse allocate quando il container viene cancellato. Ciò che CNI offre è un’interfaccia molto semplice sulla quale sviluppare nuovi plugin.
CNI ha tre componenti princiali:
- CNI Specification: che definisce un API tra i runtime ed i network plugin per il setup di un container network.
- Plugin:che forniscono il network setup per una grande varietà di use case; essi servono come esempio di riferimento di plugin conformi alle specifiche del CNI.
- Library:che fornisce un’implementazione Go della CNI specification che i runtime possono utilizzare per eseguire facilmente il CNI.
Le CNI specification e le library esistono per scrivere i plugin al fine di configurare le interfacce network nei container Linux.
I plugin supportano l’aggiunta di interfacce container network in rete e allo stesso tempo la rimozione delle stesse. Definito da uno schema JSON, il suo template di codice lo rende perfetto ai fini della creazione di un plugin CNI per un progetto esistente di container networking o un ottimo framework per l’implementazione di un nuovo progetto di container networking.
Questo progetto ha ridefinito il modo in cui connettiamo i container e in cui pensiamo ai network quando utilizziamo i container runtime che hanno implementato le specification; tuttavia queste ultime nascondono molti dettagli interessanti relativi all’implementazione indirizzati dal progetto stesso o da un plugin esterno. Durante il talk, Lorenzo ha voluto affrontare questa questione in modo pratico mostrando ciò che sta sotto la CNI e mostrando sfide e possibili scenari di utilizzo.
Lorenzo ha poi menzionato il NetCAN Project, un nuovo progetto sponsorizzato da Kiratech che ha l’obiettivo di aiutare nell’analisi delle interfacce di networking e dei link che si creano tra i ponti locali o distribuiti.
I principali obiettivi del progetto NetCAN sono:
- fornire un'interfaccia web standalone che mostra la configurazione di rete corrente all'interno dell'host o del cluster (più indipendente possibile rispetto al cluster manager o al container engine)
- fornire un insieme di tool per analizzare il traffico di rete che si crea all’interno dei container applicando filtri e catturando i pacchetti.
- Fornire un modo di esportare i dati NetCAN su tool esterni come Elastic.
Partecipare a questo importante evento a Pechino è stata un’esperienza unica! A presto per la prossima conferenza!