Platform as a service (PaaS) è un abilitatore per lo sviluppo di software in cui un fornitore di servizi di terze parti mette a disposizione una piattaforma ai clienti in modo che possano sviluppare, eseguire e gestire applicazioni software senza la necessità di creare e mantenere l’infrastruttura sottostante.

La maggior parte delle piattaforme come servizio include template o pacchetti che forniscono un’opinione su come dovrebbero essere costruiti determinati tipi di applicazioni. Questo è il motivo per cui le opzioni PaaS sono spesso etichettate come “opinioni” e sono più adatte per nuove applicazioni greenfield.

L’avvento del cloud computing ha aperto la porta ad aziende come Amazon, Microsoft e Google per mettere insieme gli elementi chiave necessari per avviare un’applicazione su una piattaforma, con l’obiettivo di semplificare molte delle attività più complesse e ripetitive necessarie per distribuire il codice fino al singolo comando o clic del mouse.

Questa semplificazione consente uno sviluppo software più rapido e semplice, oltre a ridurre l’ambito del lavoro di uno sviluppatore nascondendo le risorse di calcolo, archiviazione, database, sistema operativo e di rete sottostanti necessarie per eseguire l’applicazione. Un provider PaaS addebita l’utilizzo di queste risorse e talvolta l’utilizzo della piattaforma stessa per utente o per il numero di applicazioni ospitate.

Cosa costituisce un PaaS

Come per altri servizi cloud come l’infrastruttura come servizio (IaaS) e il software come servizio (SaaS), in genere si accede a un PaaS tramite Internet, ma questo modello può anche essere distribuito on premise o in modalità ibrida. Indipendentemente da ciò, l’infrastruttura sottostante su cui viene eseguita un’applicazione è gestita dal provider di servizi. In molti casi, il cliente può decidere dove è ospitata fisicamente la propria applicazione e può scegliere quanto sia performante o sicuro quell’ambiente, spesso a un costo aggiuntivo.

Gli elementi costitutivi di un tipico PaaS includono:

  • Infrastruttura gestita: il provider gestisce i server, l’archiviazione, i data center e le risorse di rete necessarie per eseguire l’applicazione
  • Strumenti di progettazione, test e sviluppo: un ambiente di sviluppo integrato riunisce gli strumenti necessari per creare effettivamente software, inclusi un editor del codice sorgente, un compilatore e un debugger. Alcuni provider includono anche strumenti di collaborazione che consentono agli sviluppatori di condividere e contribuire al lavoro degli altri
  • Middleware: un PaaS spesso include gli strumenti necessari per integrare vari sistemi operativi e applicazioni utente
  • Sistemi operativi e database: un PaaS fornisce i sistemi operativi per l’esecuzione delle applicazioni, nonché una varietà di opzioni di database gestiti.

PaaS contro IaaS

Per molte persone, il dibattito PaaS-vs.-IaaS è stato risolto direttamente dal mercato, ma la decisione tra il consumo degli stessi elementi costitutivi sottostanti (IaaS) rispetto a un PaaS è ancora una decisione che molti cercano di prendere oggi per accelerare l’arrivo delle loro applicazioni sul mercato. Come con qualsiasi cosa nello sviluppo del software, questa decisione è piena di compromessi e dipende da ciò che la vostra organizzazione sta cercando di ottenere.

cloud infrastructure mercato iaas paas hosted private cloud

Vantaggi del PaaS

Uno dei maggiori vantaggi dell’utilizzo di un PaaS è la capacità di creare e distribuire applicazioni rapidamente e senza il lavoro necessario per configurare e mantenere l’ambiente in cui verranno eseguite. Questo, in teoria, offre agli sviluppatori la possibilità di eseguire un’implementazione più rapida e regolare, oltre a concentrarsi su fattori di differenziazione piuttosto che su problemi come il provisioning dell’infrastruttura.

Poiché un PaaS è gestito da un fornitore di servizi, con accordi sul livello di servizio e altre garanzie, gli sviluppatori non devono preoccuparsi di attività noiose e ripetitive come l’applicazione di patch e gli aggiornamenti e possono essere sicuri che il loro ambiente sarà altamente disponibile e stabile, anche se si verificano interruzioni.

Un PaaS può anche essere un pratico gateway per nuove tecniche di sviluppo e linguaggi di programmazione nativi del cloud, senza l’investimento iniziale per creare un nuovo ambiente.

Rischi del PaaS

La maggior parte dei rischi associati all’utilizzo di un PaaS si riduce alla perdita di controllo che gli sviluppatori professionisti devono consentire cedendo le proprie applicazioni a un provider di terze parti. Questi rischi includono problemi di sicurezza delle informazioni e di residenza dei dati, timori di lock-in del fornitore e interruzioni non programmate. Con un PaaS, gli sviluppatori hanno un margine limitato per cambiare il loro ambiente di sviluppo, il che può portare alcuni membri del team a sentirsi intrappolati.

Esempi di PaaS

Tra i principali fornitori di PaaS ci sono Amazon Web Services (AWS), Google Cloud, Microsoft Azure, Red Hat e Heroku di Saleforce. Ecco le loro offerte.

  • AWS Elastic Beanstalk. Tra le prime opzioni PaaS in assoluto, AWS Elastic Beanstalk consente una rapida distribuzione e gestione delle applicazioni cloud senza dover conoscere l’infrastruttura sottostante. Elastic Beanstalk gestisce automaticamente i dettagli del provisioning della capacità, del bilanciamento del carico, della scalabilità e del monitoraggio dell’integrità delle applicazioni.
  • Cloud Fundry. Cloud Foundry è un PaaS open source governato dalla Cloud Foundry Foundation (CFF). È stato originariamente sviluppato da VMware e poi trasferito a Pivotal Software, una joint venture di EMC, VMware e General Electric, prima di essere trasferito a CFF nel 2015. Come OpenShift, Cloud Foundry è progettato per creare ed eseguire applicazioni basate su container, utilizzando Kubernetes per l’orchestrazione.
  • Google App Engine. Google App Engine è un’offerta PaaS per lo sviluppo e l’hosting di applicazioni web nei data center gestiti da Google. Le applicazioni sono in modalità sandbox, eseguite e ridimensionate automaticamente su più server.
  • Microsoft Azure App Service. Microsoft Azure App Service è un PaaS completamente gestito che combina vari servizi di Azure in un’unica piattaforma.
  • Red Hat OpenShift. Red Hat OpenShift è una famiglia di offerte PaaS che possono essere ospitate nel cloud o implementate in locale, per la creazione e l’implementazione di applicazioni containerizzate. Il prodotto di punta è OpenShift Container Platform, un PaaS on-premise basato su container Docker e gestito da Kubernetes su una base di Red Hat Enterprise Linux.
  • Salesforce Heroku. Heroku potrebbe aver perso un po’ di smalto da quando è stato acquisito dal gigante SaaS Salesforce nel 2010. Oggi, Heroku fa comunque parte della più ampia piattaforma Salesforce di strumenti per sviluppatori, che supporta un’ampia gamma di lingue e migliaia di sviluppatori che eseguire applicazioni su di esso.

L’evoluzione del PaaS

La piattaforma come servizio è diventata una categoria significativa di servizi cloud a sé stante, ma è sempre più a rischio di essere superata dai container (e dalle opzioni di container-as-a-service (CaaS) sviluppate dai principali fornitori), dal serverless computing e dalle opzioni FaaS (funzione come servizio), che offrono molti degli stessi vantaggi di un PaaS ma promettono anche una maggiore portabilità, flessibilità e, nel caso dell’elaborazione serverless, un ambiente in cui si paga davvero solo per quello che si usa.

PaaS è stato ampiamente assorbito dall’idea di gestione e automazione dei container, con i principali fornitori come Red Hat, VMware e i Big Three del cloud che negli ultimi anni si sono orientati nella direzione di facilitare l’adozione di container e Kubernetes.

Ciò non significa necessariamente che il PaaS sia morto, ma solo che si è evoluto man mano che l’industria si è spostata verso applicazioni containerizzate orchestrate da Kubernetes. Ci sarà sempre un mercato per semplificare lo sviluppo del software, ma la piattaforma sottostante per farlo è indubbiamente cambiata con il tempo.