Basta fai da te, ecco le App che fanno crescere l'azienda

I servizi online per lo sviluppo delle applicazioni per Web e dispositivi mobili forniscono strumenti e infrastrutture, accelerando i processi di creazione, messa in esercizio e integrazione con le risorse esistenti

Avatar di Tom's Hardware

a cura di Tom's Hardware

È ormai consolidato che la base per la comunicazione con clienti, partner e fornitori sia rappresentata da app per dispositivi mobili e/o siti Web, senza dimenticare, ovviamente gli account social network e i progetti marketing che su di essi fanno leva.

È altresì chiaro a tutti i manager aziendali che i tempi per implementare nuove app o servizi online devono essere rapidi: pochi giorni e non più mesi, come avveniva in passato, prima dell'avvento del cloud.

A dare una fondamentale accelerazione è stata innanzitutto la virtualizzazione, che ha consentito di abbattere i tempi per il provisioning di hardware (server e storage) e software, permettendo di accelerare lo sviluppo e le operazioni connesse con la messa in esercizio delle nuove applicazioni e relativi servizi/processi di business.

Le componenti di Microsoft Azure

Le componenti di Microsoft Azure

Oggi, però, si sta assistendo a una vera e propria rivoluzione, favorita dalla App Economy, cioè dalla crescita esponenziale di codice riutilizzabile. Non si parla semplicemente di librerie che consentono di trovare funzionalità chiavi in mano, ma della "componibilità" delle stesse. API (Application Programming Interface) e SDK (Software Development kit) consentono di integrare rapidamente applicazioni esistenti, non solo proprietarie, ma anche di terze parti.

Si pensi, per esempio, all'apporto innovativo fornito da Facebook che mette a disposizione diverse API, fornendo anche la federazione dell'autenticazione. Per miriadi di piccole e medie imprese si tratta di poter risolvere rapidamente molte delle complicazioni tecniche legate al delicato processo di identity e access management dei clienti.

Tutti i processi di DevOps (Development e Operations) sono potenziati e accelerati dalla disponibilità in cloud di tutte le componenti necessarie per sviluppare rapidamente e più facilmente applicazioni, potendo contare su servizi di Platform as a Service (PaaS) e Infrastructure as a Service (IaaS) particolarmente articolati.

Il Servizio App di Microsoft Azure

Microsoft mette a disposizione il cloud Azure, che comprende un'estesa e granulare gamma di servizi per ogni esigenza. Più precisamente, il Servizio App raggruppa e integra, in un'unica cornice, una serie di funzionalità, molte disponibili sin dal varo della piattaforma e altre aggiunge di recente. Così il servizio permette di accelerare il processo di sviluppo e distribuzione delle applicazioni Web e per dispositivi mobili, di accedere ai dati ovunque si trovino, di integrarsi con i sistemi aziendali esistenti e di poter sfruttare un'ampia gamma di servizi, il tutto a costi "controllabili" e, soprattutto, senza doversi preoccupare dei dettagli relativi all'infrastruttura sottostante.

In questo modo, grazie alle capacità d'integrazione profonda tra le varie funzionalità disponibili, è più semplice combinare i diversi servizi in un'unica soluzione altamente scalabile, sicura e affidabile.

Chi avesse ancora qualche dubbio sull'opportunità di passare al cloud, dovrebbe immediatamente ricredersi affrontando lo sviluppo con i servizi di Microsoft Azure, a cominciare dall'immediato vantaggio derivante dall'utilizzo del Servizio App di Microsoft per connettersi a qualsiasi tipo di servizio: per esempio un'app (sia essa per Web o per dispositivi mobili) può facilmente essere collegata a sistemi aziendali on-premises, servizi SaaS e servizi Internet in pochi minuti, grazie a una serie di connettori predefiniti.

È possibile scegliere tra oltre 50 connettori per sistemi aziendali quali SAP, Siebel e Oracle, per servizi aziendali SaaS come Salesforce e Office 365, e per i più popolari servizi Internet come Facebook, Twitter e Dropbox.

Altri vantaggi concretizzabili con l'utilizzo di Microsoft Azure sono:

Sviluppo multi-piattaforma - È possibile sviluppare applicazioni Web, API e app per dispositivi mobili utilizzando i linguaggi e le piattaforme più diffusi, quali .NET, NodeJS, Python e Java; sfruttare i vantaggi dell'integrazione continua grazie a Visual Studio Team Services e Github; creare rapidamente applicazioni iOS, Android e Windows native o applicazioni mobili multi-piattaforma con Xamarin e Cordova (PhoneGap), e accedere alle funzionalità del Servizio app tramite SDK nativi.

Integrazione semplificata- è possibile integrare la logica in qualsiasi applicazione (sia per Web sia per dispositivi mobili) grazie ad API REST standard. Si può, quindi, arrivare a un avanzato livello d'integrazione tra le applicazioni aziendali e realizzare soluzioni B2B basate sulla piattaforma BizTalk di Microsoft.

Integrazione con le API

Integrazione con le API

Massimo controllo- Il servizio App di Azure non trascura la sicurezza, fornendo protezione e gestione sicura dei dati scambiati dalle applicazioni per dispositivi mobili. A questo si aggiunge la protezione degli asset, garantita da funzionalità di backup e ripristino, controllo completo grazie ad ambienti dedicati e dalla possibilità di distribuzione in cloud sia pubblici sia privati.

Nel seguito, entriamo un po' più nel dettaglio dei servizi disponibili per lo sviluppo delle applicazioni.

Il Servizio App Web

Il servizio "Siti Web di Azure" è evoluto in un tipico servizio PaaS, che abbina i vantaggi del cloud, come la scalabilità basata sui workload, il load balancing automatizzato, l'alta disponibilità e via dicendo, con le potenzialità fornite dalla semplicità di gestione e dalla facilità d'integrazione delle funzionalità messe a disposizione dal Servizio app.

Questo, in altre parole, come accennato, permette di andare oltre il beneficio fornito dalle macchine virtuali: App Web offre un completo isolamento dall'infrastruttura fisica e virtuale su cui le applicazioni sono in esecuzione, permettendo di concentrarsi unicamente sullo sviluppo, il test e la distribuzione delle proprie soluzioni.

A seconda del piano di servizio è possibile distribuire la propria applicazione Web in un ambiente di staging (definito slot di gestione temporanea) per testare l'app prima di rilasciarla in produzione; una volta che l'applicazione è pronta, è sufficiente un semplice click del mouse per invertire in tempo reale gli ambienti di staging e produzione.

App Web permette inoltre di sfruttare l'integrazione continua con Visual Studio Team System, GitHub, TeamCity, Hudson o BitBucket, per compilare, testare e distribuire automaticamente l'applicazione. Non è necessario realizzare la propria applicazione Web da zero, perché sono disponibili modelli di applicazione ed è inoltre possibile installare con un singolo click "pacchetti" completi messi a disposizione dalle community, come ASP.NET, WordPress, Joomla, Drupal, Django e CakePHP. Pacchetti che possono comprendere anche l'integrazione con un database (per esempio SQL Azure o MySql).

Azure App Service Migration Assistant, inoltre, consente di spostare facilmente nel cloud siti esistenti ospitati su server Windows o Linux (database inclusi).

Il servizio App per dispositivi mobili

Il nuovo servizio App per dispositivi mobili, che sostituisce il precedente "Servizio mobile", (il quale continuerà a essere supportato) fornisce una piattaforma PaaS per lo sviluppo di soluzioni back-end scalabile e accessibile da qualunque dispositivo mobile, dotata di nuove e numerose funzionalità, tra cui, per esempio: hosting, accesso ai dati locali tramite reti virtuali, scalabilità automatica (a seconda dei diversi piani di servizio).

Il servizio permette, come accennato, l'uso di API REST standard per il back-end ed SDK nativi per ciascun client, consentendo di possibile sviluppare rapidamente app per iOS, Android e Windows, nonché applicazioni multi-piattaforma basate su Xamarin e Cordova (Phonegap).

Viene semplificata anche la creazione di applicazioni mobili che possano operare offline e di sincronizzarsi con i sistemi back-end aziendali non appena i dispositivi tornano online. Tali funzionalità di sincronizzazione sono supportate in tutte le piattaforme client e funzionano con qualsiasi sorgente dati, come SQL, Archivio tabelle, Mongo o DocumentDB e qualsiasi API SaaS come Office 365, Salesforce, Dynamics, o database locali.

Una sincronizzazione che rileva i conflitti, quando lo stesso record viene modificato nel client e nel back-end, e consente di gestirli sul server o sul client.App dev

Il Servizio app mette anche a disposizione funzionalità di autenticazione/autorizzazione, per consentire all'app di sfruttare i meccanismi di single sing-on forniti da provider di terze parti (per esempio Azure Active Directory, Facebook, Google, Twitter e Account Microsoft) oppure di altri provider o, ancora di una soluzione di identità personalizzata. Il tutto senza dover modificare il codice della soluzione backend.

È anche disponibile un motore di notifica push, in grado di inviare milioni di notifiche push personalizzate verso dispositivi iOS, Android e Windows nel giro di pochi secondi.

Il servizio App per le API

Per facilitare l'utilizzo delle API da parte di client diversi, il servizio offre il supporto integrato ai metadati dell'API Swagger, un framework per la documentazione e per l'individuazione di API RESTful. Questo permette, tra l'altro, di generare automaticamente il codice lato client per accedere alle API in diversi linguaggi, inclusi C#, Java e Javascript.

Inoltre, il servizio supporta la condivisione di risorse tra le origini (CORS), che consente ai client JavaScript di eseguire chiamate tra domini alle App per le API (per esempio quando il client JavaScript viene eseguito in un'app Web, mentre l'API viene eseguita in un'App per le API).

Le App per le API prevedono un controllo di accesso semplificato per proteggere un'applicazione da accessi non autenticati,

Come per i servizi precedenti sono supportati tutti i provider e tutti i linguaggi e framework.

Il servizio App per la logica

Microsoft considera App per la logica quelle applicazioni che permettono di automatizzare il flusso di lavoro nei processi aziendali (in pratica definiti come una serie di passaggi) tramite una finestra di progettazione visiva semplice da usare, senza che sia necessario scrivere codice. Un esempio è la creazione, nel software di CRM di un'attività basata sulle azioni operate nei propri account di Facebook o Twitter. Un altro esempio è la connessione tra la propria soluzione di marketing ospitata sul cloud e il sistema di fatturazione on premise.

Il concetto centrale nelle App per la logica è rappresentato dalle API gestite. A ogni passaggio, infatti, l'app per la logica ha bisogno di poter accedere a dati e servizi e, contemporaneamente, gestire in modo sicuro processi come l'autenticazione e l'impostazione di un punto di controllo.

Il tutto viene semplificato grazie alla disponibilità di, appunto, API gestite, che permettono di connettere ciascun passaggio del workflow con dati e servizi specifici, i cui input verranno poi elaborati dall'app per portare a termine i singoli passaggi.

Queste API predefinite che consentono di accedere ai dati e alle funzionalità esposti da servizi come, per esempio Facebook, Dropbox, Twitter, OneDrive, Database SQL, Office 365, Sharepoint Online, e così via.

È altresì possibile utilizzare queste API per automatizzare eventi, al superamento di una soglia o al verificarsi di altre condizioni, innescando l'avvio di un flusso di lavoro, per esempio all'arrivo di un messaggio di posta elettronica oppure in seguito a una modifica nell'account di archiviazione di Azure.

È comunque facile realizzare API gestite personalizzate. Sono, infine, previste anche API gestite specifiche per i servizi BizTalk.