Panoramica sui servizi di Platform as a Service

Panoramica sui servizi di Platform as a Service

In questo articolo vedremo cosa è e a cosa serve una Platform as a Service (comunemente denominate Paas) e daremo una breve disamina sui principali servizi disponibili online che le implementano. In successivi articoli entreremo nel dettaglio di alcuni di questi servizi. Una Paas è un tipo particolare di servizio Cloud tramite il quale un Provider fornisce, non solo il servizio hardware ed il Sistema Operativo, ma anche le piattaforme applicative e tutta la cosidetta "solution stack" per poter pubblicare le proprie applicazioni. Una solution stack è un particolare insieme di software in grado di poter fornire un servizio: ad esempio l'insieme di web server, database ed il supporto ad un linguaggio di programmazione. Un altro esempio di solution stack è l'unione di Sistema Operativo, middleware, database e applicativi.

iText: creare PDF in Java
Integrare Apache Tomcat in Eclipse
I cicli

In questo articolo vedremo cosa è e a cosa serve una Platform as a Service (comunemente denominate Paas) e daremo una breve disamina sui principali servizi disponibili online che le implementano. In successivi articoli entreremo nel dettaglio di alcuni di questi servizi.

Che cos’è una Platform as a Service

Una Paas è un tipo particolare di servizio Cloud tramite il quale un Provider fornisce, non solo il servizio hardware ed il Sistema Operativo, ma anche le piattaforme applicative e tutta la cosidetta “solution stack” per poter pubblicare le proprie applicazioni.

Una solution stack è un particolare insieme di software in grado di poter fornire un servizio: ad esempio l’insieme di web server, database ed il supporto ad un linguaggio di programmazione. Un altro esempio di solution stack è l’unione di Sistema Operativo, middleware, database e applicativi.

L’acquisto, la configurazione, l’ottimizzazione e la gestione dell’hardware e del software di base sono completamente demandate al Provider, di conseguenza si riduce il carico di lavoro del personale IT e conseguentemente anche i costi per lo startup ed il mantenimento delle applicazioni. Altro beneficio importante è la possibilità di rendere scalabili le applicazioni fornendo maggiori risorse on demand.

Relazione tra Iaas, Paas e Saas

Nella figura precedente sono raffigurati i tre modelli di servizio del Cloud Computing , la PaaS è una via di mezzo tra la IaaS e la SaaS e trova i maggiori fruitori nell’ambito degli Application Developers, i quali come detto in precedenza, utilizzano le risorse hardware e software offerte dal Provider per pubblicare le proprie applicazioni.

Differenze con IaaS e SaaS

La Infrastructure as a Service (IaaS)  è il servizio base del Cloud Computing, attraverso il quale vengono fornite le risorse fisiche quali i Server, le infrastrutture di rete e di backup, ma anche risorse virtuali tramite virtual machines.

La Software as a Service (SaaS) è il servizio di più alto livello ed il Provider fornisce direttamente le Applicazioni di cui gli utenti finali possono usufruire. Esempi di SaaS sono  Google Apps, Microsoft Office 365, e Onlive.

Tipologie di PaaS

All’interno della PaaS possiamo poi differenziare alcune tipologie:

  1. Stand Alone Business Application Platforms: è la “classica” PaaS, vengono forniti gli strumenti software sia di sviluppo che per il deploy di applicazioni;
  2. Social Application Development Platforms: questo tipo di Piattaforma permette di sviluppare Applicazioni per i siti Social quali Google+ e Facebook. Le Applicazioni sviluppate si integrano nell’ambiente Social scelto ed utilizzano le API fornite;
  3. Web-Based Application Add-On Platforms: questa Piattaforma consente di sviluppare particolari Addons (aggiuntà di funzionalità) di Applicazioni Web già preesistenti.

In questo contesto la Piattaforma Java ben si inserisce in quanto la JVM, l’Application Server e la gestione per Archivi dei file di Deployment (cioè i file War ed Ear) assicurano il giusto isolamento tra le Applicazioni permettendo agli Sviluppatori di distribuire più Applicazioni sulla medesima infrastruttura.

Le PaaS, fino a poco tempo, fa erano compatibili quasi esclusivamente per linguaggi quali Ruby on Rails e Python, mentre per la Piattaforma Java era disponibile il solo Google App Engine il quale non era privo di limitazioni, a volte anche considerevoli. Negli ultimi anni però la situazione è nettamente migliorata e ci sono diverse compagnie che offrono PaaS adatte alla maggior parte degli sviluppatori Java, talvolta anche in modo gratuito.

Platform as a Service per Java

Elenchiamo ora alcune PaaS  per il mondo Java:

  • Google App Engine (GAE): non potevamo che partire dal servizio capostipite delle PaaS per il mondo Java. Uno dei maggior pregi riconosciuti al servizio è quello di poter scalare autonomamente: la piattaforma aumenta dinamicamente le risorse disponibili per una particolare App quando questa ne ha bisogno;
  • Heroku: essa è una sussidiaria della nota salesforce.com (leader nei servizi di Cloud Computing e CRM) ed è una delle PaaS comparse sul mercato. In precedenza offriva solo servizi per linguaggio Ruby e Python. E’ possibile utilizzare Heroku gratuitamente in quanto ogni applicazione ha accesso a 750 dyno-ora al mese gratis dove una dyno-ora è un singolo processo web che risponde alle richieste HTTP e le passa alla vostra applicazione. Per quanto riguarda il database, utilizzando il piano dev all’interno dello Starter Tier, è possibile utilizzare gratis  fino a 10 mila righe di database per massimo 20 connessioni e senza caching in-memory;
  • CloudBees: è un’offerta PaaS esclusivamente per il mondo Java (sono supportati anche Grails e JRuby). La particolarità di questa soluzione è che si basa per la parte infrastruttura sui Server Amazon o meglio su Amazon EC2. CloudBees fornisce un piano gratuito con la possibilità di utilizzare max 2 Gigabyte per il codice (sia binario che sorgente) e di usare max 300 ore al mese su instanze M1 di tipo Small (una istanza M1.small è una delle istanze offerte dal servizio Amazon, per maggiori info visualizzare questo link). Per quanto riguarda il database offerto, esso si basa MySql con max 5 MegaByte di spazio disponibili;
  • Jelastic: è uno degli ultimi servizi di PaaS ad essere attivato e promette di poter scalare ogni applicazione Java senza cambiare alcuna riga di codice ed in modo indipendente dalla Piattaforma sottostante scelta. Infatti Jelastic offre anche un servizio IaaS permettendo al Developer di poter scegliere la architettura Software che più gli aggrada: ad esempio è possibile scegliere quale Application Server usare tra Tomcat, JBoss e Glassfish e quanti Cloudlet e/o Istanze utilizzare, inoltre si può selezionare il servizio SSL e quali tra i vari database SQL (MySql e Postgres) o NoSQL (MangoDB, MariaDB, ecc…) utilizzare. E’ possibile provare il servizio ma è limitato nel tempo;
  • Cloud Foundry: è una iniziativa Open Source di VMware ed oltre a Java sono supportati i linguaggi Ruby (in realtà per poter utilizzare il servizio Ruby è indispensabile) Node.js e Scala, mentre lato framework sono supportati Spring (è un prodotto di VMware) , RabbitMQ, Redis, MySql e Postgres. Per poter utilizzare il servizio va scaricato un client denominato vmc (VMware Cloud CLI), che può essere anche installato sotto forma di gemma per Ruby, quindi il tutto è gestibile tramite una sorta di shell;
  • Windows Azure: è l’offerta PaaS di Microsoft; consente di pubblicare le proprie applicazioni nei data-center Microsoft e presenta diversi piani che coprono le diverse esigenze (è possibile anche utilizzare macchine Linux). Esiste anche una versione di prova gratuita mentre tra quelli a pagamento si può scegliere tra piani orari o fissi semestrali o annuali.

Nei prossimi articoli vedremo nel dettaglio alcuni di questi servizi.

Riferimenti

COMMENTS

WORDPRESS: 1
  • comment-avatar

    Come sempre spiegazione molto chiara e interessante