GUEST POST: L’interoperabilità tra Microsoft e Open Source: cos’è e come è possibile sfruttarla
Questo post è stato scritto da IvanFioravanti , co-founder e CTO 4ward Srl
Punto di partenza...
Che ne penso della nuova Microsoft e della sua “Openness” Vision? DIROMPENTE!
Per me che ho mosso i miei primi passi nel mondo del lavoro sotto il segno del mondo Open, che ho provato di tutto dal Commodore VIC20 in poi, l’idea di poter finalmente coniugare il meglio dell’IT senza fanatismi e senza preclusioni su un’unica piattaforma come Microsoft Azure è un sogno che si avvera: un vero cloud per tutto e tutti, con alle spalle una società dedicata anima e corpo a supportare questa Cloud Vision con persone, servizi e supporto senza eguali nel mercato.
Microsoft Azure è la base per qualunque cosa vi passi per la testa e la facilità con cui potete creare architetture ai confini della realtà è incredibile, così come lo sono i prodotti finali che potete costruire e il mercato che potrete raggiungere in un lampo: il mondo.
Questo è stato il punto di partenza su cui si è basata la nuova cloud vision della nostra 4ward e anche lo spunto per l’evento live del 12 maggio su Microsoft Virtual Academy con Paola Presutto.
Un viaggio insieme con Azure e l’Open Source
Il mio obiettivo in questo articolo è quello di trasmettere a tutti la potenza e la semplicità di Microsoft Azure e la sua totale e reale integrazione col mondo Open Source. Il tutto mostrando un esempio reale e in produzione.
Per dimostare la mia tesi ho preparato qualche “magia”, basata sulle macchine virtuali di tipo “G”, che come dico io “vanno a cannone”. Potrete ripetere voi stessi tutto il procedimento seguendo i passi su GitHub:
https://github.com/ivanfioravanti/easy-azure-opensource
Gli unici prerequisiti sono:
- OS Windows, Linux o MacOS
- Azure Command Line
- Una sottoscrizione Azure (potete attivarne una trial a questo link)
Prima magia: ReplicaSet MongoDB su Azure in 5 minuti
Un ReplicaSet è un cluster con almeno 3 server dove uno fa da primario e gli altri da secondario e con Azure Command Line potrete installarlo in un lampo partendo da macchine Ubuntu di base. Potete creare tutte le macchine che volete semplicemente impostando i vostri parametri nel file common.conf ed eseguendo successivamente il comando
initAzure.sh
Il vero trucco sta tutto nell’ultima parte del comando che segue
azure vm create … --custom-data ./configureMongoDB.sh
Questo parametro vi consente di sfruttare cloud-init, che è un processo nativo nelle immagini Ubuntu, per eseguire i comandi che volete sulla macchina virtuale creata. Per maggiori informazioni potete leggere questo articolo (in inglese).
Per terminare la configurazione del cluster vi basterà collegarvi al servizio MMS di MongoDB e vedrete tutti i vostri server già pronti per essere inseriti in qualunque configurazione voi vogliate.
Seconda magia: MongoDB Sharded Cluster in anche meno
Questo secondo trucco vi aiuta a creare un cluster di più nodi MongoDB con singolo server su Azure. Molto utile per sviluppo e testing delle vostre applicazioni in ambienti con sharding (suddivisione dei dati su più nodi). Questo cluster lo uso spesso per mostrare la vera potenza delle macchine G dal vivo e per farlo utilizzo i dati di Siope, che sono alla base del sito http://soldipubblici.gov.it e che rappresentano entrate e uscite di tutti gli enti d’Italia dal 2013 ad oggi.
Ho trasformato i dati da relazionali a documento e successivamente li ho messi in Time Series raggruppando entrate e uscite per ente e per mese, li carico sullo sharded cluster MongoDB creato e faccio qualche query come:
- 2,5 secondi per vedere la classifica degli
enti che hanno speso di più in Servizi Scolastici nel 2014 - 1,6 secondi per raggruppare di tutti i
costi di tutti gli enti per il 2014 per ente e vedere chi ha speso di piu' - 65 ms. per raggruppare tutte le spese del Comune di Milano nel
2014 per categoria.
La potenza delle macchine G consente un’analisi in tempo reale dei dati di Siope da qualunque punto di vista! Questi dati non li ho ancora resi pubblici perché voglio prima ultimare la procedura automatica di import settimanale degli stessi. Appena pronti potrete usarli per giocare un po’ anche voi con la potenza reale unita ad OpenData di grande interesse.Sarebbe bello collegarci anche la parte di Azure Machine Learning, ma questo lo lasciamo per talk futuri.
Esempio reale: 4ward365
4ward365 è il prodotto 4ward su cui abbiamo concentrato tutto quello che abbiamo imparato negli ultimi anni, che unito ad Azure ci ha consentito di creare una piattaforma con una scalabilità infinita e soprattutto fruibile da un mercato globale. Nel mio ultimo talk agli Azure Open Day Microsoft che esortava il pubblico a vedere in Azure un modo per spingere il business delle proprie aziende al di là dei confini italiani e vi assicuro che in quel momento ho pensato: “è proprio vero, spero di riuscire a dimostrarlo durante il talk". E’ questa la vera potenza di Microsoft Azure, dovete vedere Microsoft come il vostro partner tecnologico e commerciale che vi supporta nella creazione e distribuzione delle vostre idee in tutto il mondo!
4ward365 è una piattaforma per la gestione, il monitoraggio e l’analisi di Office 365 dove abbiamo usato tutto quello che Azure mette a disposizione:
- Web/Worker Role
- WebJobs
- VM Linux e Windows
- Virtual Network
- Traffic Manager
- CDN
- Service Bus
- Storage (Blob e Queue)
- Redis Cache (Prodotto spettacolare Made in Italy!)
- Scheduler
- Machine Learning
- Azure Market Place
Per provarla sul vostro Office 365 chiedete al Microsoft Partner che vi segue o registratevi direttamente su http://www.4ward365.com/signup/
Vi aspetto insieme a Paola il 12 maggio per parlarne insieme live!
Ivan Fioravanti