Cosa è un PaaS?

Un Platform as a Service, è un servizio che ci mette a disposizione una parte dello stack sul quale andare a implementare la nostra applicazione. La tipologia dello stack e le sue specifiche cambiano a seconda del PaaS utilizzato.
Per maggiore chiarezza, in riferimento allo stack globale della piattaforma tecnologica, già visto e presente in immagine

Rispetto alla IaaS abbiamo tre layer gestiti dal vendor:

  • sistema operativo
  • middleware
  • runtime

Ovviamente tutta la gestione delle installazioni e degli aggiornamenti di questi elementi, delle patch di sicurezza e quant’altro è a carico del vendor, questo comporta un costo relativamente maggiore rispetto ad una IaaS. Tuttavia questa maggiorazione permette di risparmiare in fase di setup della piattaforma e soprattutto permette di ereditare direttamente le SLA (service level agreement)del provider per quanto concerne questi aspetti.

Per semplificare ulteriormente, se non consideriamo la parte di gestione della scalabilità e della resilienza , possiamo sminuire il concetto di PaaS come un server virtuale simile a quelli acquistabili dai vari fornitori nazionali. Ed in questa maniera lo stiamo sminuendo davvero molto.

In merito alle SLA, quelle di Azure sono disponibili in italiano a questo link tuttavia personalmente trattandosi di servizio non nazionale ed essendo quelle soggette a traduttore preferisco attenermi a quelle originali in inglese presenti a questo link

 

I servizi PaaS su Windows Azure

La piattaforma Windows Azure mette a disposizione differenti PaaS alcuni rivolti esclusivamente a progetti enterprise, quelli di più comune utilizzo sono:

  • Cloud services
  • Mobile services
  • Web sites

In questo articolo ci concentreremo sui cloud services, per lasciare poi maggior spazio ai mobile services ed ai websites.

I Cloud Services sono stati i primi tra i PaaS ad essere disponibili su Azure, e rispecchiano in pieno quanto detto ad inizio articolo in merito ai servizi offerti. Inoltre entrare maggiormente nel dettaglio si hanno anche i seguenti servizi:

  • Un supporto a più piattaforme di sviluppo, tra le quali:
    • .Net Framework
    • Java
    • Php
    • Ruby
    • Python
    • Node.JS
  • Servizio di scalabilità automatica basato su uso effettivo dell’istanza, permette di mantenere il servizio sempre attivo e si adatta alle effettive necessità permettendo così di risparmiare risorse e costi.
  • Servizio di scalabilità manuale

Come faccio ad utilizzare un cloud service?

Essendo presenti dei sistemi di gestione della scalabilità, ed essendo possibile avere più istanze parallele del cloud service che ospita la nostra applicazione, è chiaro che l’utilizzo non è immediato e facile quanto pubblicare un’applicazione tramite ftp. Ma in realtà non è nemmeno difficilissimo.

Di fatto è necessario incapsulare la nostra applicazione in un package contenente sia i binari dell’applicazione sia informazioni e impostazioni della stessa. Tramite questo package i servizi che si occupano di gestire le istanze del nostro cloud service possono replicare per ogni istanza la stessa identica installazione della nostra applicazione, garantendone così la scalabilità.
Il package in genere è autogenerato da dei tool presenti nei nostri IDE.
Ad esempio in Visual Studio è presente l’opzione di pubblicazione su un cloud service che automatizza il processo.

Un piccolo suggerimento per concludere: Cloud Service per alcuni progetti, incluso ovviamente il mondo .NET supporta il debug remoto, vuol dire che se riscontrate un comportamento anomalo nella versione pubblicata sul cloud service, potete ripubblicare una versione in Debug ed in questo modo effettuare comodamente il debug dal vostro pc direttamente sul servizio.
Inoltre a seconda della piattaforma utilizzata, avrete a disposizione un “Emulatore Cloud” che vi permette di simulare una infrastruttura in locale, utile da usare prima di andare in produzione.

 

Alla prossima!

The following two tabs change content below.
Andrea Giunta

Andrea Giunta

Mi occupo di IT da differenti anni. Ho iniziato con il linguaggio C e con Asp per poi migrare a .Net, nell'arco dell'ultimo decennio ho avuto modo di lavorare con differenti tecnologie e piattaforme, open e non.
Ho collaborato per 6 anni con Microsoft in veste di Microsoft student partner, collaborazione nella quale nel 2014 sono stato lo speaker sull'Azure tour nelle università del sud Italia.
Dal 2012 sono un membro di OrangeDotNet, community IT siciliana, con la quale organizziamo eventi tecnici.
Ho partecipato come speaker a differenti eventi tecnici, sia della community sia di altre, come i Community Days ed il DotNetCampus, la mia area di expertise è Azure, per la quale ho ricevuto il Microsoft MVP Award 2015