Azure: guida ai servizi cloud di Microsoft
Microsoft ha lanciato il servizio Azure poco più di otto anni fa nel tentativo di sfidare ad armi pari Amazon Web Services. E ci è riuscita visto che Azure è al momento il servizio cloud numero due al mondo proprio dietro ad AWS. Quanto indietro sia rispetto al rivale di Amazon varia da una società di analisi a un’altra, ma il consenso generale è che si tratti ormai di una corsa a due per dominare il mercato mondiale del cloud.
Sia che serva per creare una nuova applicazione o per migrare un’applicazione esistente nel cloud, Azure gestisce le applicazioni indipendentemente dalla loro complessità, utilizzando strumenti di gestione tra cui il portale di Azure, le API PowerShell, Bash e REST. Azure fornisce inoltre supporto integrato per operazioni come monitoraggio, analisi dei log, patching, backup e ripristino del sito.
È facile pensare ad Azure come a un servizio di Windows e infatti fa un uso intenso di Windows Server e della piattaforma .Net. Ma Microsoft supporta più versioni di Linux aziendale e un terzo di tutte le migrazioni in Azure viene fatto proprio verso un ambiente Linux, a dimostrazione di come Azure abbia molte carte da giocare anche al di fuori del macrocosmo Windows. Consci di ciò, abbiamo deciso di elencare tutti i servizi offerti da Azure a seconda delle varie esigenze e necessità.
Servizi di Azure per container, serverless computing e microservizi
Sebbene Microsoft offra una piattaforma server ampiamente utilizzata in Windows Server e la offra tramite Azure, ha anche anticipato la rivoluzione dei container e del serverless computing, supportando Docker e Kubernetes. I partner e i consulenti Microsoft in genere collaborano con i clienti per fornire assistenza durante la migrazione, oppure è possibile caricare un’app in Docker Hub per lo sviluppo e il test e quindi inserirla nel servizio di container scelto in Azure.
Una delle sfide principali nel passare ai container è che non c’è una grande scelta di strumenti. Con Azure, Microsoft ha integrato Visual Studio e altri strumenti per lo sviluppo, il testing continuo e l’implementazione. L’integrazione di Docker Visual Studio 2017 con ASP.Net Core consente agli sviluppatori di progettare, costruire e containerizzare le applicazioni ed eseguirle su Azure sotto Linux o su Windows Server.
C’è anche l’integrazione con Azure per portare le immagini Docker in Azure Container Registry, in modo che un’app possa essere compilata e pubblicata con un singolo comando. Visual Studio 2017 supporta anche il debug locale e quindi in Azure non è necessario accedere al browser per il debug. Il risultato è che si paga solo per il tempo in cui il codice è in esecuzione.
Se state cercando di utilizzare Kubernetes, Azure Container Service (AKS) offre un’esperienza molto differenziata e supportata da servizi proprietari come Azure Container Instance (ACI), Azure Service Broker e progetti open source come Virtual Kubelet, Helm, Draft, Brigata e Kashti.
La piattaforma serverless di Microsoft fa un passo in avanti rispetto ai container verso la fornitura continua di piccole applicazioni monouso gestibili da un piccolo team di sviluppatori. Le Azure Logic Apps aiutano a creare, pianificare e automatizzare i processi come flussi di lavoro in modo da poter integrare app, dati, sistemi e servizi in tutta l’azienda. Poiché le Logic Apps sono progettate per gestire varie forme di integrazione dei dati, Microsoft offre oltre 150 connettori pronti all’uso, inclusi Salesforce, Office 365, Twitter, Dropbox e servizi Google.
Azure Service Fabric è stato progettato per semplificare la gestione dei microservizi, fornire scalabilità e bilanciamento del carico e connettersi all’infrastruttura e ai servizi Azure di base come Azure Cosmos DB, Database SQL di Azure, Azure Event Hubs e altro. È una piattaforma di sistemi distribuiti che serve per pacchettizzare, implementare e gestire microservizi e container scalabili e affidabili.
Servizi di Azure per ridimensionare le app su richiesta
Il cloud bursting è il punto in cui si utilizza il cloud pubblico, in questo caso Azure, per aggiungere capacità e/o attività aggiuntive in modo da migliorare le app locali, ma anche per testare una nuova build di un’app prima di distribuirla e non interrompere l’operazione corrente. I servizi di Azure per tutto ciò rientrano in due categorie: servizi cloud e gestione del traffico. I servizi cloud includono il nodo principale che funge da posizione principale in cui vengono eseguiti i servizi, insieme alle macchine virtuali, alla rete virtuale, ai servizi VPN e allo storage.
Traffic Manager di Microsoft fornisce invece il bilanciamento del carico tra i sistemi locali e Azure. Fornisce quattro metodi di bilanciamento del carico e routing del traffico: failover, prestazioni, geografia e round-robin ponderato. Può essere utilizzato per burst, migrazione o failover dal locale al cloud. Il livello Premium V2 di Microsoft offre possibilità di scale-up (più CPU, più memoria) e scale-out (più macchine virtuali) su richiesta per soddisfare la capacità. Ma è disponibile solo per le istanze di Windows; nessun supporto per Linux è ancora disponibile.
Servizi di Azure per devops
Azure semplifica l’implementazione degli strumenti di sviluppo end-to-end e integra le catene di strumenti esistenti. È possibile usufruire dei servizi devops di Azure come Visual Studio Team Services (VSTS) e Visual Studio App Center oppure utilizzare gli strumenti esistenti disponibili. Visual Studio Team Services è il servizio di devops basato su cloud di Microsoft che consente a singoli o team di condividere codice, tracciare il lavoro e creare e rilasciare software per qualsiasi app e qualsiasi piattaforma. Il servizio è completamente gestito da Microsoft e fornito ai clienti come un’offerta SaaS. Microsoft aggiunge nuove funzionalità a VSTS ogni tre settimane.
Per i clienti on-premises di Team Foundation Server (TFS) che desiderano trarre vantaggio da VSTS, Microsoft offre un servizio di migrazione da TFS a VSTS completamente gestito e supportato. App Center riunisce più servizi, comunemente usati dagli sviluppatori mobili, in un unico prodotto integrato. È possibile creare, testare, distribuire e monitorare le app mobili e implementare anche le notifiche push.
I clienti che utilizzano piattaforme end-to-end come Red Hat OpenShift o Pivotal Cloud Foundry possono trovare le risorse per i test-drive nel Marketplace di Azure, oltre a trovare architetture di riferimento complete. Uno dei casi di utilizzo più comuni per i clienti si rivolgono al cloud è sperimentare con carichi di lavoro di sviluppo/test. Azure offre un servizio chiamato DevTest Labs che consente di impostare policy sull’utilizzo, governare i costi e disporre di controlli granulari sulle risorse.
Servizi di Azure per la IoT
Microsoft sta facendo uno sforzo considerevole con Microsoft Azure IoT. Microsoft Azure IoT Central è un servizio SaaS IoT end-to-end completamente gestito per abilitare gli scenari IoT senza richiedere competenze a livello di cloud. Esistono acceleratori di soluzioni Azure IoT per creare applicazioni completamente personalizzabili da modelli per scenari IoT comuni, come il monitoraggio remoto, la manutenzione predittiva e le fabbriche connesse.
Per la gestione centralizzata e il coordinamento delle app IoT, Microsoft offre Azure IoT Hub e, per gestire i dispositivi periferici, dove viene eseguita una quantità crescente di elaborazione, Azure IoT Edge offre un servizio completamente gestito che fornisce cloud intelligence a livello locale. Microsoft offre inoltre Azure Sphere per la gestione sicura dei dispositivi MCU (Internet-connected microcontroller).
Servizi di Azure per gli analytics
Microsoft si è aggregata al settore analytics in grande stile, offrendo analisi dei big data con Hortonworks e Cloudera, nonché un’ampia gamma di progetti open source attraverso il suo programma HDInsight. Ciò include Hadoop, Spark per analisi in-memory e cluster R Server, HBase e Apache Storm. Hadoop tende a essere eseguito come un processo batch, mentre Spark è più in tempo reale perché viene eseguito in memoria. Per ulteriori analisi in tempo reale Microsoft offre Azure Stream Analytics e se volete accumulare enormi quantità di dati ma non volete memorizzarli localmente, Microsoft offre un data lake da cui potete archiviare dati.
L’anno scorso Microsoft ha introdotto Azure Databricks, un servizio progettato per impostare i lavori di analisi su Apache Spark. Il servizio promette di semplificare i flussi di lavoro su Spark analytics e ha un’integrazione nativa con una varietà di origini dati di Azure, tra cui Azure SQL Data Warehouse, Azure Storage, Azure Cosmos DB, Azure Active Directory e Power BI.
Servizi di Azure per la replica dei siti e il disaster recovery
Azure Stack è un’estensione di Azure che consente di eseguire una copia coerente di un sottoinsieme di servizi di Azure nel datacenter locale, cosa unica tra i provider di servizi cloud. Microsoft lo vende attraverso partner come HP Enterprise, Dell EMC e Lenovo.
Microsoft vede inoltre Azure Stack come un ambiente edge in cui Azure Stack si connette ad Azure per l’elaborazione dei dati. Poiché le API sono le stesse, le app possono essere scritte una volta e distribuite su Azure e Azure Stack; si applicano anche gli stessi strumenti di gestione, devops e automazione come Visual Studio, PowerShell e vari strumenti devops open source.
Il modello dell’applicazione è basato su Azure Resource Manager, in modo che sviluppatori possano adottare lo stesso approccio dichiarativo alle applicazioni per entrambe le piattaforme. Gli sviluppatori possono utilizzare i modelli di Azure Resource Manager esistenti per creare app Azure che possono essere eseguite in locale su Azure Stack. L’Azure Site Recovery di Microsoft ha due scopi: la migrazione di Windows Server e app e macchine virtuali di Linux su Azure. Consente inoltre di utilizzare Azure come backup nel caso in cui le strutture locali vengano interrotte. È possibile replicare app locali con Site Recovery e pagare solo quando lo si utilizza.