Top Azure PaaS Services That Developers Love and Why

Il cloud Microsoft Azure offre un sacco di servizi per quasi tutti gli scenari di cui potresti aver bisogno. È possibile classificare questi servizi in tipi di cloud computing come IaaS, PaaS e SaaS per determinare la quantità di controllo e responsabilità che si ha rispetto al tempo che si può spendere per costruire le cose che contano.

Lascia che ti spieghi questi tipi un po’ più avanti:

IaaS (Infrastructure-as-a-Service)

I servizi IaaS tipici sono Container Service e Virtual Machines. Questi vi permettono di avere un sacco di controllo su come li eseguite, ma richiedono anche che siate responsabili di cose come il sistema operativo, l’antivirus e il bilanciamento del carico. A causa di questo, voi e il vostro team potete passare meno tempo a lavorare per aggiungere valore al business.

PaaS (Platform-as-a-Service)

Esempi di servizi PaaS sono App Services, Azure Search e Azure CDN. Non dovete preoccuparvi del sistema operativo o anche del server, potete solo eseguire la vostra applicazione. Sei responsabile di alcune configurazioni del server, come lo scaling, anche se per alcuni servizi, come Azure Functions, questo avviene automaticamente.

SaaS (Software-as-a-Service)

Esempi di servizi SaaS sono cose come Azure IoT Suite e Office 365. SaaS è il livello di astrazione più alto e ti permette di usare semplicemente l’applicazione, non devi nemmeno costruirla. Basta configurarla. Non c’è bisogno di preoccuparsi del sistema operativo o anche di scalare l’applicazione. Questo ti permette di lavorare sul valore del business, ma ti offre poco controllo sulla tua applicazione.

Per gli sviluppatori di software, PaaS è un ottimo tipo di cloud computing da usare. Avete abbastanza controllo per lavorare solo sulla vostra applicazione e modificarla per essere giusto e non dovete preoccuparvi di tutte le operazioni. Le cose vengono semplicemente eseguite senza preoccuparsi delle patch del sistema operativo o del bilanciamento del carico.

Azure ha un’offerta PaaS molto forte, che è molto attraente per gli sviluppatori. Questo articolo discuterà i migliori servizi PaaS di Azure per gli sviluppatori che possono rendere la tua applicazione migliore.

Top Azure PaaS Services

Uno dei servizi PaaS di Azure è Azure App Services. Azure App Services fornisce più tipi di servizi, ognuno orientato a ospitare la tua applicazione o la logica di business per un caso d’uso specifico. Inoltre, i tipi di App Service condividono capacità comuni come auto-scaling, autenticazione e autorizzazione e domini personalizzati e SSL.

Esaminiamo i tipi di App Service:

Web Apps

Azure App Service Web Apps sono essenziali se si vuole ospitare un’applicazione web standard ASP.NET. Le Web Apps sono un’astrazione di un server web come IIS o Tomcat e possono eseguire applicazioni scritte in .NET, PHP, Python, Node.js, Java e altro. Sono molto facili da configurare e ti forniscono molti vantaggi out-of-the-box, come il fatto che per impostazione predefinita, sono disponibili al 99,95% del tempo. Non c’è bisogno di preoccuparsi dei tempi di inattività. Gli App Services sono ora disponibili sia per Windows che per Linux.

Applicazioni mobili

Azure può anche aiutarvi quando create applicazioni mobili. Potete ospitare un backend per la vostra applicazione mobile in Azure App Services Mobile Apps. È possibile connettersi facilmente a questo backend utilizzando gli SDK per Azure Mobile Apps che sono disponibili per IOS, Android, Windows, Xamarin.IOS, Xamarin.Android e Xamarin.Forms.

Il backend mobile fornisce alcuni vantaggi unici. Uno di questi è la capacità di fare la sincronizzazione offline. Questo permette all’utente di continuare a lavorare con l’app se è offline e sincronizzare i dati con il backend quando torna online. Un’altra capacità sono le notifiche push. Questo ti permette di inviare notifiche sulla tua app al dispositivo dell’utente. Inoltre, le Mobile Apps hanno tutte le stesse capacità delle Web Apps, come l’auto-scaling e l’alta disponibilità.

Logic Apps

Azure App Service Le Logic Apps sono diverse dalle Web Apps e dalle Mobile Apps in quanto non ospitano un’applicazione, ma orchestrano la logica di business con essa. Pensa alle Logic App come un modo per automatizzare un processo di business semplicemente configurandolo.

Una Logic App viene avviata da un Trigger. Questo può essere un tempo (ogni 15 minuti) o una fonte esterna, come un nuovo messaggio in una coda. Il Trigger passa valori nel flusso di lavoro (come il contenuto del messaggio della coda), che possono essere usati in tutta la Logic App. Il resto del flusso della Logic App consiste nel chiamare i Connettori, che sono API per servizi di terze parti, come Office365 o Twitter o le proprie API.

Le Logic App scalano automaticamente e si paga solo quando vengono eseguite. Questo è talvolta chiamato “serverless” perché significa che ci si può concentrare completamente sulla propria applicazione o logica e non sull’infrastruttura sottostante.

Azure Functions

Azure App Services Function Apps può ospitare una o più Azure Functions. Si usano le Azure Functions per ospitare piccole applicazioni, come lavori in background o un microservizio che viene eseguito solo per un breve periodo di tempo.

Le Azure Functions possono essere attivate da timer configurabili, come in una pianificazione (ogni 15 minuti) o da un servizio esterno, come quando un nuovo Blob viene aggiunto ad Azure Blob Storage. Quando viene attivato, il codice nella funzione Azure può utilizzare il valore dal trigger, come il Blob che è stato aggiunto. Si possono anche aggiungere binding di output a una Azure Function per emettere un valore a un servizio esterno, senza scrivere alcun impianto idraulico. Questo potrebbe essere, per esempio, un output di Blob Storage dove si restituisce semplicemente un Blob senza dover scrivere codice per connettersi ad Azure Storage.

Proprio come Logic Apps, le Azure Functions sono “serverless”, perché scalano automaticamente e si paga solo quando vengono eseguite.

Azure WebJobs

Un altro modo per eseguire attività in background è di eseguirle in Azure WebJobs. I WebJobs fanno parte degli App Services e vengono eseguiti all’interno di un App Service come una Web App o una Mobile App. È possibile scrivere e ospitare codice in WebJobs che viene avviato da un trigger, come un timer (ogni 15 minuti) o un servizio esterno, come un nuovo messaggio in una coda.

I WebJobs funzionano in modo simile a Azure Functions in quanto eseguono piccoli pezzi di codice che possono essere attivati da fonti esterne che non richiedono alcun codice idraulico da impostare.

Sono diversi da Azure Functions in quanto è necessario scalarli manualmente. Si paga per l’App Service che ospita il tuo Web Job, che è una tassa mensile, indipendentemente dal fatto che il WebJob venga eseguito o meno.

Leggi di più: Confronta Azure Functions vs Azure WebJobs

Cosa usare quando

Quindi quale App Service dovresti usare quando? Questa tabella potrebbe aiutarti:

Web Apps Mobile Apps Logic Apps Funzioni WebJobs
Host web applications and APIs X
Host backend per applicazioni mobili X
Host flussi di lavoro di logica aziendale X
Host compiti in background X X
Scala automaticamente e paga solo quando viene eseguito X X X
Controlla lo scaling e paga un canone mensile X X X X

App Services condivide caratteristiche

Azure App Services condivide alcune fantastiche caratteristiche, che li rendono molto interessanti da usare. Eccone alcune:

  • Facile autenticazione e autorizzazione
  • Consegna continua
  • Domini personalizzati
  • Connessioni ibride
    • Consente di connettersi a risorse on-premises, come servizi web o database
  • Scaling (automatico) e bilanciamento del carico
  • Slot di distribuzione
    • Questi vi permettono di testare la nuova versione della vostra applicazione e distribuirla in produzione senza tempi morti. Ti permettono anche di instradare parte del tuo traffico di produzione alla nuova versione della tua applicazione, per vedere se funziona come previsto.
    • Per saperne di più sugli slot di distribuzione qui

Deploying services

Creare una nuova Web App o Logic App è semplice attraverso Azure Portal, ma dovresti davvero automatizzare le tue implementazioni in modo da poterle ripetere in diversi ambienti ed eseguire esattamente la stessa configurazione. Puoi farlo creando modelli Azure Resource Manager (ARM) che distribuisci da Visual Studio o in una pipeline di consegna continua utilizzando un servizio come Visual Studio Team Services.

I modelli ARM descrivono le tue risorse come Web App, Azure SQL Databases e gruppi di risorse in documenti JSON. Puoi crearli usando il modello di progetto Azure Resource Group in Visual Studio e prendere ispirazione cliccando sul pulsante Automation Script su qualsiasi risorsa in Azure Portal.

Azure Event Grid

Un servizio relativamente nuovo, Azure Event Grid, funge da collante tra i servizi. Azure Event Grid può instradare eventi da qualsiasi fonte a qualsiasi destinazione.

Quasi ogni servizio Azure può pubblicare eventi che Azure Event Grid può ricevere e utilizzare per attivare la tua applicazione. Puoi anche avere le tue applicazioni e i tuoi servizi che pubblicano eventi che Azure Event Grid può utilizzare per instradare altri servizi.

Azure Event Grid è scalabile automaticamente e paghi solo per il numero di operazioni che usi.

Azure Event Grid elimina la necessità del polling. Le tue applicazioni possono ascoltare e reagire agli eventi da qualsiasi servizio abbia pubblicato eventi in Azure Event Grid.

Puoi, per esempio, avere Azure Event Grid che ascolta i cambiamenti nella tua mailing list e attiva una Azure Logic App quando qualcosa cambia.

Azure Service Bus

Uno dei servizi più vecchi, usati e affidabili in Azure è Azure Service Bus. Consiste di più servizi, in particolare Azure Service Bus Queues e Azure Service Bus Topics.

Un’applicazione può mettere messaggi su una Azure Service Bus Queue. Ogni messaggio viene letto dalla coda ed elaborato da un’applicazione. Le code di Azure Service Bus hanno alcune capacità avanzate che si ottengono out-of-the-box come il rilevamento dei duplicati e una sotto-coda di lettere morte in cui vengono spostati i messaggi che non possono essere elaborati.

I topic di Azure Service Bus sono un po’ diversi. Le applicazioni possono mettere messaggi su un Azure Service Bus Topic e più applicazioni possono leggere ed elaborare il messaggio. Ricevono i messaggi che hanno gli attributi a cui sono interessati. Si iscrivono agli “argomenti” sulla coda. Gli Azure Service Bus Topics hanno le stesse capacità avanzate delle code.

Entrambi questi servizi permettono di disaccoppiare l’applicazione che mette i messaggi in coda dall’applicazione che elabora i messaggi. Questo modello permette all’applicazione che elabora i compiti al proprio ritmo senza far aspettare l’utente. Questo è utile quando l’elaborazione può richiedere un po’ di tempo e non si vuole che l’utente debba aspettare, per esempio quando si sta elaborando una richiesta d’ordine che può richiedere 5 minuti.

Azure Storage

Un blocco di base in qualsiasi applicazione è la memorizzazione dei dati. Azure Storage fornisce diverse opzioni per l’archiviazione dei dati, come file o file di dati. Offre diversi servizi che sono tutti relativamente poco costosi, scalano quasi all’infinito e attraverso le regioni geografiche e offrono caratteristiche come la crittografia e l’autenticazione. Si ottiene tutto questo out-of-the-box, semplicemente avviando un account Azure Storage. Discutiamo i vari tipi di Azure Storage:

Blob Storage

Si memorizzano file di grandi dimensioni, o ‘blob’ in Azure Blob Storage. Questi possono essere cose come file VHD o file audio o video o backup di database.

È possibile scegliere un livello di archiviazione Blob che determina le prestazioni e i costi. C’è il livello Hot, per i Blob a cui si accede frequentemente. C’è anche il Cool tier, che si usa per i blob a cui non si accede spesso, forse una volta al mese. E poi c’è l’Archive tier, per i Blob che non usi quasi mai. Quando richiedi un Blob dall’Archive tier, potrebbero passare ore prima che tu possa accedervi.

Table Storage

Puoi memorizzare dati semi-relazionali in righe e colonne usando Azure Table Storage. Questo è perfetto per cose come i dati di registrazione. Si memorizzano i dati in tabelle che sono simili a quelle di SQL Server, ma sono meno rigide in quanto non hanno relazioni tra loro. Azure Table Storage è veloce e relativamente poco costoso, proprio come gli altri tipi di Azure Storage.

Queue Storage

È possibile memorizzare piccoli messaggi che possono essere raccolti ed elaborati successivamente in Azure Storage Queues, proprio come le Azure Service Bus Queues. Questa è un’offerta un po’ strana perché si sovrappone alle code di Azure Service Bus. Sono diverse in quanto le code del Service Bus hanno il rilevamento dei duplicati e le code di stoccaggio no. Inoltre, i messaggi della Service Bus Queue rimangono disponibili dopo 7 giorni, mentre i messaggi della Storage Queue possono essere memorizzati solo per 7 giorni.

File Storage

È possibile utilizzare Azure File Storage come un disco rigido extra che si monta sul computer o su una VM. Questo è un ottimo servizio per iniziare con il cloud migrandovi i vostri file. Puoi fare in modo che le applicazioni lo usino semplicemente puntando ad Azure File Storage invece che al proprio disco rigido. Questo ti permette di iniziare a passare al cloud.

Disk Storage

Azure Disk Storage è una funzione premium ed è altamente performante e utile per quando è necessario eseguire un lavoro intensivo di I/O, come su un disco rigido primario di una VM. Agisce come un disco scalabile e ad alte prestazioni che puoi montare su una VM.

Azure Cosmos DB

La nuova versione e nome di Azure DocumentDB è Azure Cosmos DB. Azure Cosmos DB è un’offerta di database che si adatta perfettamente al cloud. Come servizio PaaS, basta far girare un Cosmos DB e si è pronti a partire. Se stavate usando Azure DocumentDB, ora state usando automaticamente Azure Cosmos DB. Il vostro codice non deve essere cambiato.

Ci sono un paio di cose che rendono Cosmos DB straordinario:

  • È possibile programmare contro di esso utilizzando diverse ‘API’, come SQL, JavaScript, MongoDB, Gremlin e Table Storage. Non devi più scegliere un tipo di database, devi solo scegliere il modo in cui vuoi parlare con esso, Cosmos DB si prende cura del resto
  • Non è più necessario creare indici, Cosmos DB lo fa automaticamente per te
  • Cosmos DB è altamente performante. Garantisce persino una bassa latenza nel suo SLA
  • Hai la scalabilità geografica out-of-the-box. Basta indicare dove vuoi che i tuoi dati siano nel mondo e vengono replicati in tempo reale. In questo modo, puoi assicurarti che i tuoi dati siano vicini ai tuoi utenti

Impara come iniziare con Azure Cosmos DB in questi tutorial di 5 minuti.

Cosmos DB è più adatto per dati non relazionali o semi-relazionali.

Azure Cognitive Services

Aggiungere intelligenza alle tue applicazioni non è mai stato così facile come con Azure Cognitive Services. Si tratta di un insieme di API che forniscono capacità quasi magiche, alimentate da AI e Machine Learning. Ci sono circa 30 servizi cognitivi e altri stanno arrivando. Ecco alcuni esempi:

  • Emotion API, che analizza i volti in foto e video per rilevare emozioni come felicità, tristezza, disgusto e così via
  • Language Understanding Intelligent Service (o LUIS), che può effettivamente comprendere il contesto linguistico in più di 12 lingue. Potete usarlo per creare un bot intelligente che capisca effettivamente ciò che gli state dicendo
  • Speaker Recognition API, che identifica i parlanti in base al discorso. Puoi usarla per autenticarti usando la voce o per identificare le persone in base alla loro voce
  • Computer Vision API, che può rilevare informazioni sul contenuto visivo trovato nelle immagini, come ad esempio che lo sfondo è acqua e cielo o la giacca che la persona indossa è nera

I Cognitive Services sono molto facili da usare in quanto basta usarli dal cloud e non è necessario gestire alcuna infrastruttura o configurazione.

Puoi usare i tuoi dati per allenare i servizi per migliorare i tuoi risultati. Facendo questo, l’API Face potrebbe, per esempio, restituire i nomi e le età dei vostri colleghi. Inoltre, i servizi cognitivi imparano al volo, dai dati che gli fornite. Questo li rende più intelligenti e più accurati.

Per utilizzare un servizio cognitivo, è sufficiente chiamare l’endpoint API, come https://westcentralus.api.cognitive.microsoft.com/face/v1.0/detect con una chiave di sottoscrizione che si ottiene quando ci si iscrive e gli si forniscono i parametri necessari, come un array di byte di un’immagine, nel caso della Face API. Questo restituisce una risposta JSON come questa (alcune righe sono omesse per risparmiare spazio):

Risultato del rilevamento del volto:

 }, "smile": 0.826, "headPose": { "pitch": 0.0, "roll": -16.9, "yaw": 21.3 }, "gender": "female", "age": 23.8, "facialHair": { "moustache": 0.0, "beard": 0.0, "sideburns": 0.0 }, "glasses": "ReadingGlasses", "makeup": { "eyeMakeup": true, "lipMakeup": true }, "emotion": { "anger": 0.103, "contempt": 0.003, "disgust": 0.038, "fear": 0.003, "happiness": 0.826, "neutral": 0.006, "sadness": 0.001, "surprise": 0.02 }, … }]

Si può vedere nell’output che questo particolare servizio restituisce un sacco di dati. Rileva persino dove si trovano i tratti del viso nella foto e se la persona è truccata. Penso che sia davvero sorprendente.

Azure CDN

Puoi accelerare le tue applicazioni scaricando il traffico su Azure CDN. Azure CDN (Content Delivery Network) funge da endpoint per i tuoi contenuti statici come video, immagini, JavaScript e file CSS. Facendo servire questi file da Azure CDN, la sua applicazione non deve farlo e ha più risorse per gestire più richieste. Inoltre, Azure CDN replica il contenuto statico ai Point-of-Presence (PoP) in tutto il mondo, posizionando così il contenuto statico vicino a dove sono i vostri utenti e limitando la latenza, il che è positivo per le prestazioni.

È possibile utilizzare Azure CDN creando un Azure CDN Endpoint, accoppiandolo a una fonte, come Azure Storage e caricare i file su Azure Storage. Azure CDN replica automaticamente i file ai PoP di tutto il mondo ed è possibile collegarsi ai file attraverso un URL come https://custom.azureedge.net/cd/myimag.png. Puoi anche usare un nome di dominio personalizzato per l’URL.

Azure Redis Cache

Un altro modo per accelerare le tue applicazioni è il caching dei dati usando Azure Redis Cache. Quando si ottengono dati da una cache invece che da un altro archivio di dati, come un database, si velocizza l’applicazione.

Questo perché una cache come Azure Redis Cache tiene i dati in-memoria e li memorizza in un semplice formato chiave/valore. A causa di questo, i dati possono essere serviti più velocemente in quanto non devono essere recuperati dal disco e non devono essere recuperati eseguendo una query complessa.

Azure Redis Cache fornisce una cache-as-a-service e fornisce capacità avanzate, come il clustering e la geo-replicazione. Si basa sul popolare open-source Redis Cache ed è ora supportato da Microsoft SLA e supporto aziendale. Azure Redis Cache è l’opzione di caching per le applicazioni in Azure.

Azure API Management

Puoi usare Azure API Management per migliorare le tue API o le API di terzi che usi. Azure API Management agisce come un gateway tra la tua API e il mondo esterno. Questo ti permette di migliorare la tua API.

Con API Management, puoi creare un portale dove gli utenti della tua API possono andare per gestire le loro sottoscrizioni e per testare l’applicazione. Un esempio di tale portale per sviluppatori è il sito web di uno dei Cognitive Services, che usa anche API Management:

Puoi controllare l’uso dell’API impostando limiti per utente o tipo di abbonamento. Questo è un buon modo per monetizzare la tua API, offrendo per esempio un tier di utilizzo gratuito fino a 10 richieste al giorno, e se hai bisogno di più, inizi a pagare. Se gli utenti cercano di usare di più, senza il giusto abbonamento, le loro richieste vengono strozzate.

Inoltre, è possibile migliorare le API rendendole più performanti. Potete mettere in cache le risposte delle API in modo che non debbano ottenere le risposte facendo calcoli o componendo dati da una fonte di dati.

E potete proteggere le vostre API con chiavi, password, certificati e filtro IP. Oltre a questo, potete trasformare l’input e l’output da e verso le vostre API. Potreste, per esempio, trasformare XML in entrata in JSON o fare lo stesso con le risposte.

Azure API Management è davvero potente e aumenta il controllo che avete sulle vostre API (e sulle API di terzi che esponete attraverso API Management). E ti permette di farlo senza cambiare le API.

Conclusione

I servizi in questo articolo sono tutti esempi di servizi Azure PaaS. Sono tutti molto facili da avviare e richiedono una manutenzione minima. Rimarranno attivi e funzionanti, sono autorigeneranti e fondamentalmente ‘funzionano e basta’.

Il valore che questi servizi possono fornire è enorme e facile da incorporare nelle vostre applicazioni. Questo si prende veramente cura di molti dei compiti idraulici e ripetitivi che eravamo soliti costruire e fare da soli.

Azure PaaS ci permette di concentrarci sulla costruzione di cose che contano. Ricordatevi di concentrarvi sempre sul miglioramento delle vostre applicazioni utilizzando uno strumento APM a ciclo di vita completo come Stackify Retrace. Per saperne di più.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.