Azure è la piattaforma Cloud di Microsoft che mette a disposizione una serie di strumenti avanzati per la programmazione e lo sviluppo di applicazioni in diversi linguaggi, la gestione dei dati e l'amministrazione di sistemi e Web server. Grazie al supporto per il modello IaaS, alle API e agli strumenti per App Service e Data Service, gli sviluppatori e in generale i professionisti IT hanno a disposizione un ambiente completo per la realizzazione dei propri progetti.
In questa guida approfondiremo proprio questi aspetti e vedremo come Azure, come prodotto, sembri rappresentare la sintesi della nuova filosofia aziendale adottata dalla Casa di Redmond caratterizzata da:
- massima interoperabilità tra tecnologie di diversa natura;
- un inedito livello di apertura nei confronti di un ecosistema tipicamente lontano dai vincoli del software proprietario come quello che ruota intorno all'OpenSource.
L'internet-based computing del Cloud di Azure, infatti, offre ora un'infrastruttura server, storaging e networking on demand tramite risorse virtualizzate che favorisce l'adozione di un approccio multipiattaforma.
Sia che vogliamo sviluppare Web Apps o mobile Apps, anche con un IDE della stessa Microsoft come per esempio Visual Studio, sia che si desideri affidare i propri dati a strumenti di terze parti come MySQL, MongoDB o Cloudera (su Apache Hadoop), e ancora se abbiamo bisogno di grande potenza di calcolo e capacità per progetti incentrati su IoT e Big Data, Azure non porrà dei limiti alle soluzioni utilizzabili, siano esse Windows based o Linux based.
Microsoft Azure e Linux
Azure ha reso possibile ciò che fino a qualche anno fa sembrava inconcepibile o, se non altro, imprevedibile: il kernel Linux e le diverse distribuzioni sono diventate strumenti di lavoro accessibili anche per chi sceglie l'infrastruttura tecnica targata Redmond. Oggi possiamo installare sulle macchine virtuali di Azure le soluzioni più diffuse come Ubuntu, Debian, CentOS, SUSE Linux Enterprise Server e openSUSE, CoreOS, Oracle Linux e persino una piattaforma libera di tipo UNIX come FreeBSD.
Per i sistemi operativi Linux supportati da Azure viene offerta assistenza e documentazione per le procedure di setup e configurazione, in alcuni casi il supporto è messo a disposizione in collaborazione con gli stessi team che si occupano dell'implementazione delle distro; un OS Linux che opera in ambiente virtualizzato funzionerà in modo analogo ad un'installazione nativa, motivo per il quale le abitudini di lavoro non richiederanno particolari adattamenti.
Grazie a questa apertura a Linux potranno beneficiare dei servizi di Azure anche chi adotta applicazioni appositamente concepite per queste piattaforme o quelle aziende che hanno già investito su strutture composte da sviluppatori, DBA e i sysadmin che già operano con linguaggi, Database Manager e server engine in ambienti OpenSource.
Microsoft e Red Hat per Azure
Per garantire un livello di interoperabilità quanto più elevato possibile tra tecnologie di diversa natura Microsoft ha dato vita ad una partnership per l'impiego delle soluzioni di Red Hat in Azure, ciò permetterà di sfruttare la scalabilità della piattaforma Cloud di Redmond per distribuire le proprie applicazioni, anche localmente. Entrando a far parte del programma Red Hat Certified Cloud & Service Provider, Microsoft consentirà di impiegare Red Hat Cloud Access per spostare sottoscrizioni da Red Hat Enterprise Linux, Red Hat Enterprise Linux Atomic Host, Red Hat JBoss Enterprise Application Server, Red Hat JBoss Enterprise Web Server, Red Hat Gluster Storage e Red Hat OpenShift.
Si tratta di una collaborazione destinata ad andare ben oltre la sola esecuzione delle macchine virtuali Red Hat Linux in Azure, per il futuro infatti sono state già programmate features addizionali come per esempio la migrazione in Azure delle macchine virtuali Red Hat e l'utilizzo di immagini Red Hat on demand nelle raccolte di Azure; si potranno poi realizzare e distribuire applicazioni sviluppate con .NET in Red Hat Linux attraverso il supporto per il framework di Microsoft. Vi sarà inoltre l'opportunità di gestire le virtual machines di Azure in associazione alla propria distribuzione locale di applicazioni Red Hat con Red Hat Cloud Forms.
Azure e lo sviluppo con strumenti Open Source
Oggi gli svluppatori possono quindi operare in un ambiente Microsoft continuando ad utilizzare il framework .NET, oppure sfruttando il supporto offerto da Azure per le più diffuse tecnologie OpenSource per la realizzazione di applicazioni Web e mobili. I developer Java potranno sfruttare le immagini per l'installazione dei necessari JDK, ivi compreso quello per Java 8, utilizzare l'Azure Java SDK per il Service Management, conservare le proprie abitudini per il coding con l'Azure Toolkit for Eclipse per Java e impiegare soluzioni a corredo come gli application server WebLogic e WebSphere.
Chi crea Web application con PHP disporrà di un Software Development Kit e della possibilità di operare su piattaforma LAMP continuando a lavorare con uno stack famigliare anche su una Azure Virtual Machine; allo stesso modo saranno disponibili SDK per lo sviluppo con soluzioni alternative, anch'esse libere e aperte, come per esempio GO, Ruby (e il framework Ruby on Rails) nonché Python (compreso il framework Django) e l'environment server-side JavaScript NodeJS.
Per quanto riguarda la gestione dei dati, i DBA hanno l'opportunità di utilizzare le più diffuse soluzioni relazionali, basti pensare al già citato DBMS MySQL (o al suo fork MariaDB), così come di tecnologie ormai affermate quali NoSQL come MongoDB, CouchDB, Cassandra, RavenHQ (variante hosted di RavenDB) e Redis. Che si desideri implementare un Database-as-a-Service con CouchDB, NodeJS e Grunt, realizzare una NodeJS Application con MongoDB su una macchina virtuale Azure o sfruttare il Redis Cache Service per il miglioramento delle prestazioni, Azure metterà a disposizioni le librerie, le API e i servizi necessari.
Non manca il supporto per soluzioni ormai irrinunciabili per lo sviluppo, come per esempio il container di Docker (altro progetto OpenSource), con cui automatizzare il deployment delle applicazioni in un ambiente isolato, o del Container Cluster Manager Kubernetes. Azure consente inoltre il multi-VM deployment per operare su più macchine virtuali e strumenti come Compose permetteranno di definire e lanciare applicazioni multi-container con Docker.
Le risorse per l'interoperabilità con le tecnologie OpenSource per Microsoft Azure saranno disponibili attraverso uno strumento largamente utilizzato per ospitare soluzioni libere e aperte come il code Hosting di GitHub, l'MSOpenTech VM Depot per le immagini delle macchine virtuali fornite dalla community e il Docker Hub che funge da registro per le immagini dei container.
Azure come soluzione Paas
Azure rappresenta una soluzione PaaS (Platform as a Service) avanzata che si propone nel contempo come IaaS (Infrastructure as a Service) per la distribuzione di piattaforme e risorse; gli strumenti offerti consentiranno di sviluppare, ivi comprese le fasi di testing, implementare, nonché gestire applicazioni anche in ambito enterprise limitando i costi di esercizio e le procedure per la configurazione e l'ottimizzazione del proprio ambiente di produzione, anche in un contesto collaborativo.
Che si lavori su Windows o su Linux, saranno disponibili funzionalità per la gestione di quantità di dati elevate grazie al supporto di piattaforme per il Big Data come HDInsight, una distribuzione di Apache Hadoop basata sul Cloud e finalizzata alla semplificazione dei processi per l'elaborazione di dati strutturati e semistrutturati accessibili via Web, media sociali, server log, device e sensori.
Da questo punto di vista vi sarà ampia libertà per quanto riguarda la scelta degli strumenti per lo sviluppo, HDInsight presenta infatti delle estensioni per la programmazione in diversi linguaggi tra cui C#, Java e .NET. L'integrazione con Excel permetterà poi di analizzare i dati forniti da Hadoop adottando uno strumento già ampiamente conosciuto presso l'utenza e la clientela aziendale. Eventualmente, gli utilizzatori di Excel potranno scegliere lo stesso HDInsight come sorgente per i dati.
HDInsight è integrato con Hortonworks per lo spostamento di dati Hadoop da locale a Cloud Azure, per esempio in operazioni di backup o sviluppo; si potranno poi eseguire query sia nei cluster Hadoop locali che in quelli su Cloud, anche simultaneamente. I DBA disporranno del database NoSQL Apache HBase per elaborazione transazionali di grandi volumi di dati senza dover ricorrete a soluzioni relazionali, mentre Apache Spark consentirà di eseguire applicazioni per la loro analisi e di affidare ad Apache Storm l'analisi di flussi per la gestione di eventi in tempo reale.
Azure, cominciamo!
Nel corso di questa guida osserveremo da vicino alcune di queste tecnologie e per farlo insieme il suggerimento è quello di utilizzare una sottoscrizione. Ecco come ottenerne una per chi non dovesse averla già attiva.
La piattaforma offre la possibilità di effettuare un'iscrizione per una prova gratuita della durata di 30 giorni; per questo scopo ci si dovrà recare sull'Home page del sito ufficiale di Azure, clickare sul collegamento "Prova gratuitamente >" e poi su "Prova subito >". Il servizio richiederà di autenticarsi tramite il proprio Microsoft Account, ad esempio "tuo_nome@outlook.it", motivo per il quale chi non lo avesse già fatto dovrà crearne uno senza alcuna spesa.
Superata la fase per l'autenticazione si dovrà completare un breve modulo di iscrizione inserendo i propri dati; l'identità dell'iscritto potrà essere verificata tramite un numero di telefono al quale far pervenire un messaggio di testo o una chiamata e attraverso un numero di carta di credito; nel caso di quest'ultima modalità le informazioni verranno raccolte solo ai fini della verifica dell'identità e non verrà effettuato alcun addebito a meno che non si effettui l'aggiornamento in modo esplicito a un'offerta a pagamento.
Una volta accettato il contratto di sottoscrizione e completata la fase di registrazione clickando sul pulsante "Iscriviti" avrà inizio il periodo di prova gratuita e, clickando sul pulsante "Portale" ci si ritroverà di fronte all'interfaccia per la gestione del servizio.
Siete pronti a scoprire gli strumenti forniti da Azure per incrementare la produttività del vostro lavoro? Seguiteci nel corso di questa guida alle funzionalità principali della piattaforma.