Platform-as-a-service (PAAS) è uno dei modelli di servizio associati al cloud computing. In questo modello, l'ambiente software gioca un ruolo fondamentale nella creazione di una soluzione software personalizzata. Una piattaforma PAAS fornisce un ambiente di sviluppo integrato con tutti gli strumenti necessari per creare e distribuire una sofisticata applicazione Cloud. Questo articolo approfondisce le basi di questo modello mentre apprende il suo concetto in relazione ad altri modelli di servizio e strumenti disponibili.
Una panoramica
Esistono tre modelli di servizio cloud di base:IAAS, PAAS e SAAS. Tra questi, PAAS e IAAS sono strettamente correlati. La somiglianza sta nel loro obiettivo; entrambi cercano di risolvere il problema di gestire e pubblicare in modo efficace i servizi software per l'utente finale. La distinzione, tuttavia, sta nel modo in cui forniscono i loro servizi. Ad esempio, in IAAS l'obiettivo è fornire l'infrastruttura come risorsa primaria. Assimila diversi componenti infrastrutturali come macchine virtuali, container, rete e altri servizi correlati sotto la bandiera di un unico framework standard. L'amministratore e gli ingegneri implementano quindi le risorse sotto forma di applicazioni e servizi. La coesione intrinseca di questo modello ne semplifica la gestione e rende rapida la consegna dell'infrastruttura end-to-end.
PAAS, d'altra parte, utilizza il codice come primo approccio. Gli sviluppatori operativi e il programmatore utilizzano una serie di linguaggi di programmazione e framework per progettare la soluzione software e distribuirli alla fine del servizio. I tecnici dell'assistenza PaaS spesso non devono configurare o addirittura comprendere l'infrastruttura di basso livello sottostante perché è tutto gestito per loro conto. Questa è la distinzione in cui IAAS si occupa di questi componenti mentre PAAS si concentra sulla fornitura della piattaforma per i servizi software.
In effetti, la distinzione tra i modelli di servizio Cloud spesso sfuma perché i modelli sono strettamente legati tra loro in una struttura piramidale. I servizi software forniti da PAAS necessitano dell'infrastruttura della piattaforma per eseguire cose come spazio di archiviazione, memoria, potenza di elaborazione e così via. Senza questi, non possiamo ottenere una piattaforma (PAAS) e, senza la piattaforma pronta, non possiamo eseguire la soluzione software (SAAS). Pertanto, c'è una sottile differenza mentre ci addentriamo più a fondo nel modello di servizio Cloud. Questo può essere ben illustrato con una struttura piramidale, come mostrato nella Figura 1.
Figura 1: La piramide dei servizi software
Il modello di servizio PAAS
Questo modello descrive il software che fornisce l'ambiente di runtime, gli strumenti di sviluppo e distribuzione. Uno sviluppatore di software utilizza questo ambiente e strumenti per creare una soluzione software personalizzata. La piattaforma include una serie di linguaggi di sviluppo, framework applicativi e altri strumenti di costruzione, come punta e clicca strumenti che aiutano anche i non sviluppatori a creare una soluzione software. Lo strumento PAAS spesso fornisce un ambiente di sviluppo integrato completo per aiutarti, dallo sviluppo kickstart alla sua distribuzione come parte del suo servizio. Dispone inoltre di un supporto completo per la progettazione dell'interfaccia utente standard come HTML, JavaScript e altre tecnologie rich media.
Gli utenti finali in PAAS sono generalmente programmatori, sviluppatori, fanatici e persino persone semi-tecniche, oppure possono essere chiunque sappia come lavorare con la piattaforma e gli strumenti. Naturalmente, il grado di interazione varia dalla semplice alimentazione dei dati al loro recupero per creare una soluzione sofisticata completa. Ciò è determinato dal grado di libertà di funzionalità consentito dal provider della piattaforma. L'utente finale PAAS non è tenuto a mantenere o gestire né l'hardware né il software. L'unico ruolo svolto da loro è quello di utilizzare l'ambiente per lo sviluppo. In breve, il fornitore di servizi PAAS è quindi responsabile di tutte le attività operative, di manutenzione e di gestione del ciclo di vita del proprio prodotto.
Alcuni vantaggi chiave del modello PAAS sono i seguenti:
- Manutenzione ridotta e acquisto di hardware, server, spazio di archiviazione, potenza di elaborazione e così via costosi.
- Basso costo di manutenzione; il fornitore del servizio Cloud si assume la responsabilità dell'amministrazione.
- Il servizio può essere ampliato o ridotto rapidamente su richiesta.
Ci sono anche alcuni problemi con PAAS.
- A causa della dipendenza dalla piattaforma, la portabilità è un problema.
- Poiché i dati vengono mantenuti nello spazio di archiviazione cloud, la sicurezza è un problema.
Sviluppo PAAS
PAAS fornisce una serie di servizi che astraggono l'infrastruttura dell'applicazione, il sistema operativo e il middleware, insieme a un team di sviluppatori per creare, testare e distribuire una soluzione software con poca assistenza IT. Sono disponibili strumenti self-service e on-demand, risorse, automazione e contenitori di runtime della piattaforma che aiutano durante la gestione del ciclo di vita dell'applicazione (vedere la figura 2).
Figura 2: Il modello di servizio PAAS
Oltre alle funzionalità di scalabilità, la piattaforma offre un'elevata disponibilità insieme a strumenti automatici di configurazione, gestione e bilanciamento del carico.
PAAS espone le sue copie multiple nell'ambiente Cloud. Di conseguenza, può soddisfare un requisito aziendale isolato in modo distinto. Questo è fondamentale per le applicazioni che presentano problemi di conformità o come insiemi di applicazioni rivolti verso l'interno rispetto all'esterno. Gli strumenti e le norme di creazione delle applicazioni sono, tuttavia, comuni per gli sviluppatori che lavorano anche in copie separate di ambienti. Il servizio PAAS può unire risorse e dati locali per colorare l'applicazione con un tocco personalizzato per una varietà di servizi Web.
IAAS fornisce gli elementi costitutivi per un PAAS efficiente. Questo perché gli sviluppatori che costruiscono in un ambiente Cloud ottengono una maggiore flessibilità se hanno un accesso approfondito all'infrastruttura sottostante della piattaforma. L'accesso ai server delle applicazioni, ai server Web e ai database consente agli sviluppatori di aumentare o diminuire facilmente la capacità e la qualità del servizio fornito. Questo è vitale non solo per l'applicazione ma anche per la capacità PAAS complessiva.
Strumenti PAAS
Il motore di Google App è uno degli esempi popolari del modello di servizio PAAS Cloud. Pubblica le API utilizzate dai programmatori per creare una soluzione software. Google fornisce anche gli strumenti necessari, come framework di sviluppo, file system e archiviazione. I fornitori che creano una soluzione PAAS utilizzando le API di Google sono fondamentalmente sviluppatori che forniscono la soluzione completa al cliente. A questo proposito, Google agisce anche come fornitore PAAS che offre molti servizi Web agli sviluppatori. Inoltre, Google Maps, Google Earth, Gmail e simili sono alcuni dei servizi offerti ai clienti che sono giustamente chiamati servizi SAAS, ma nel complesso sono anche conformi al modello di servizio PAAS.
Il problema con il modello di servizio PAAS è che vincola lo sviluppatore e l'utente finale a una piattaforma specifica offerta dal fornitore. Ad esempio, un'applicazione creata utilizzando l'API di Google che funziona in Google App Engine è pensata per funzionare solo in quel particolare ambiente. Pertanto, la possibilità di estensibilità oltre il supporto di un fornitore specifico è piuttosto limitata.
Ci sono un numero crescente di fornitori di PAAS attualmente sul mercato. Offrono servizi sia come parte di servizi Cloud privati che pubblici. Ad esempio, Google, Amazon Web Services e Facebook si rivolgono agli utenti aziendali per offrire i loro servizi, OpenShift di Red Hat offre un data center privato, Jelastic offre servizi cloud per creare applicazioni Java e PHP con una codifica minima. Ha anche partner di hosting e data center internazionali. Alcuni altri nomi sono piattaforma Salesforce, IBM Bluemix, piattaforma Oracle Cloud, Windows Azure. Heroku, Ubuntu for Cloud, CloudBees, AppFog, Caspio, Cloud Foundry (open source), Iron Foundry (open source) e così via.
Conclusione
In questa era di Internet, PAAS è l'ideale per creare applicazioni compatibili con il cloud, non solo per computer ma anche per molti dispositivi palmari. Ciò sfrutta la tendenza crescente del supporto conveniente per i consumatori IT anche con i programmi BYOD (Bring Your Own Device). Un consumatore ha bisogno della stessa applicazione disponibile non solo nei propri computer ma anche in molti dispositivi palmari, come i telefoni cellulari. Il PAAS lo ha reso possibile ora e, negli anni a venire, la distinzione tra diversi modelli di servizio Cloud sarà del tutto irrilevante.