PaaS è uno degli acronimi più ricorrenti del lessico del Cloud Computing è indica il Platform as a Service, (in arrivo una straordinaria Academy Microsoft proprio dedicata al Paas) generalmente un insieme di servizi offerti da un provider cloud, che consente agli ISV e alle software house, qui una guida sulla migrazione in cloud degli sviluppatori, di sviluppare applicazioni in maniera molto più semplice ed agile rispetto a quanto avviene sulle architetture IT on premise tradizionali.
I servizi PaaS hanno un obiettivo molto semplice da delineare, in quanto sono modellati per assistere gli sviluppatori nella creazione del software. Potremmo fermarci qui. Se un PaaS fa bene il suo lavoro, lo sviluppatore non deve preoccuparsi di null’altro se non di creare la miglior applicazione possibile per i suoi clienti.
Qualsiasi onere relativo ai server, ai data storage, ad ogni sorta di hardware utile, ai sistemi operativi, agli aggiornamenti software e quant’altro non sia strettamente legato all’ambiente di programmazione viene infatti assolto dal provider. Tutto ciò non esiste più, né on premise né in cloud, come avverrebbe nel caso in cui un ISV decidesse di avere il totale controllo delle operazioni, optando per un modello IaaS (Infrastructure as a Service).
Per focalizzare ancora meglio questi semplici concetti è possibile fare un salto indietro del tempo, quando ancora il cloud non esisteva, o le sue applicazioni erano talmente di nicchia da non fare praticamente testo nell’universo IT.
[Quali sono le nozioni necessarie ad un ISV per sviluppare le proprie applicazioni in Microsoft 365 e nei servizi PaaS di Azure? Scoprilo al prossimo appuntamento con la PaaS Academy di Microsoft il prossimo 27 aprile dalle 10:00. Una giornata al servizio degli sviluppatori e delle straordinarie opportunità del cloud e le funzionalità dell’Artificial Intelligence. Tutti i dettagli sul programma e le informazioni per iscrivervi li trovate qui.]
In una configurazione tradizionale, per così dire pre cloud, il reparto IT di un’azienda doveva occuparsi letteralmente di tutto. Dall’acquisto dei server e dell’hardware necessario, dei sistemi operativi e dei software applicativi indispensabili. Inoltre, si procedeva ad installare e configurare il tutto.
Una situazione spesso ostica, per il fatto che ogni ambiente software aveva le proprie logiche e le proprie procedure.
Molto era condizionato da scelte soggettive, per cui era sufficiente un ricambio forzato nel personale IT per far scivolare rapidamente la situazione nel dramma, con larghe sfere di inefficienza.
Il passaggio al cloud fa di tutte queste tribolazioni un lontano ricordo, da rievocare quasi con tenerezza, dal momento che tutti quei processi si esauriscono con un paio di click sul pannello di controllo dei servizi acquistati da uno o più provider. Il PaaS appare subito pronto all’uso.
Una volta definiti i settaggi basilari, gli sviluppatori possono accedere agli ambienti di sviluppo ed essere immediatamente operativi, senza nemmeno doversi preoccupare di aggiornamenti da installare su ogni macchina in locale o altre noie incredibilmente dispendiose in termini di tempo per il reparto IT.
Per essere operativi è sufficiente accedere via web alla piattaforma ed avviare le applicazioni di cui si necessita per progredire lo sviluppo dei propri progetti.
PaaS: la piattaforma ideale per la migrazione e il cloud native
Se sviluppare una nuova applicazione, con logiche in grado di sfruttare appieno l’architettura e i servizi offerti dal cloud, costituisce senz’altro la soluzione ottimale in qualsiasi contesto, è tuttavia ricorrente che si presenti la possibilità o la convenienza di migrare alcune delle applicazioni legacy esistenti nella pipeline aziendale.
Senza entrare nel merito dell’opportunità di scegliere tra la migrazione o lo sviluppo di un’applicazione totalmente nuova, è piuttosto interessante sottolineare come i servizi PaaS dei principali provider siano in grado di assistere gli sviluppatori nel complesso percorso migratorio, per portare in cloud quelle applicazioni on premise che magari per molti anni hanno costituito la fortuna di un’azienda, e che avrebbe poco senso pensionare in virtù di un’onda emotiva verso l’innovazione, quando con alcuni accorgimenti consentirebbe di conservare ad esempio uno storico di dati, piuttosto che un workflow operativo ancora del tutto valido.
La migrazione al cloud offre infatti una serie di vantaggi generici, che prescindono dalle valutazioni caso per caso che vanno effettuare sull’opportunità di migrare o meno una risorsa digitale:
- Riduzione dei costi legati all’acquisto di infrastrutture hardware / software e alla loro manutenzione;
- Scalabilità totale e provisioning di nuove risorse computazionali, di rete e di storage estremamente rapido;
- Gestione centralizzata delle policy e dei dati di utilizzo;
- Sicurezza dagli attacchi nella rete, con protezione automatizzata e ridondante dei dati per una resilienza informatica totale.
In questo contesto, grazie alla sua configurazione a servizi, il PaaS costituisce la scelta più flessibile per qualsiasi strategia migratoria che non sia il lift-and-shift, che necessita per forze di cose del controllo totale che soltanto un modello IaaS è in grado di garantire, a fronte di un impegno di gestione IT ben superiore.
I servizi per gli sviluppatori offerti dal PaaS
Un servizio PaaS (qui per esempio la guida per sapere un Paas come Microsoft Azure cos’è) consente agli ISV di creare, integrare, distribuire e aggiornare un software sviluppato su interfacce web o mobile. Il PaaS costituisce quindi l’ambiente ideale per i team che adottano logiche DevOps, metodologie Agile o altri approcci allo sviluppo software basati sulla distribuzione continua basata su modelli iterativi.
Tra i principali servizi che un PaaS è in grado di supportare, ritroviamo:
- Ambienti di sviluppo delle applicazioni con supporto a tutti i principali linguaggi di programmazione;
- Applicazioni già pronte per risolvere task specifici;
- Container e Kubernetes;
- Integrazione /gestione API;
- Supporto e integrazione SDK;
- Preset e configurazioni per app mobile;
- Componenti e Applicazioni per sistemi IoT/Edge;
- Funzioni AI e Machine Learning per l’analisi avanzata dei dati;
- Funzioni Chatbot, NLP, text to speech;
- Funzioni di Business Intelligence;
- Funzioni blockchain;
- Funzioni di sicurezza avanzata;
- Gestione e manutenzione database;
- Gestione archiviazione e backup dei dati delle applicazioni.
È evidente come molte delle funzionalità descritte siano altamente innovative, se calate nel contesto della maggior parte delle applicazioni attuali. Presto o tardi, le aziende saranno costrette ad integrare nei loro software molte funzioni che i servizi PaaS sono sin d’ora in grado di garantire con un notevole livello di maturità, dato dal fatto che i principali provider PaaS vantano un know how ormai basato su milioni di applicazioni. L’esperienza applicativa consente alle piattaforme PaaS di migliorare progressivamente il livello dei servizi offerti agli ISV che decidono di avvalersene.
Un altro aspetto fondamentale deriva dall’incentivo a sperimentare nuove soluzioni. Dal momento che il provider cloud assolve tutto ciò che non sia lo sviluppo duro e puro dell’applicazione, gli ISV possono dedicare il tempo risparmiato alla ricerca di feature innovative, capaci di integrare tecnologie emergenti, mai provate fino ad allora.
Sia sul profilo tecnologico che quale abilitatore all’innovazione, il PaaS rappresenta per le aziende una win-win situation, dal momento che le soluzioni ready-to-use dei servizi offerti costituisce una ulteriore facilitazione alla novità.
Obiettivo Serverless: la dimensione ottima del cloud native
La condizione ideale per rendere assolutamente trasparente lo sviluppo delle applicazioni in ambiente cloud è offerta dal modello Serverless, che potremmo contestualizzare come la versione più modernizzata del PaaS. A scanso di equivoci, l’etimologia di questo modello di servizio cloud non indica l’assenza di un server. Anzi, i server ci sono e sono disponibili a volontà, per offrire ogni risorsa necessaria. Semplicemente viene meno la sua tangibilità per lo sviluppatore che utilizza il servizio. Se una configurazione PaaS standard parte dalla configurazione delle risorse hardware/software su cui impostare il servizio, un’interfaccia di gestione serverless offrirà soltanto la possibilità di scegliere direttamente i servizi utili alle proprie esigenze in fase di sviluppo.
In ambiente serverless, le applicazioni sono containerizzate e lo scaling delle risorse viene attuato in modo totalmente automatico e dinamico dal provider. Questo vuol dire che se le risorse non vengono utilizzate, il loro consumo è pari a zero, non è condizionato da aver acquistato una precisa quota di risorse hardware per un certo periodo. Il serverless rappresenta qundi la condizione perfetta per un modello di business basato sul pagamento a consumo.
Serverless garantisce un ambiente ottimale per le nuove applicazioni, dichiaratamente cloud native. Nel caso di una strategia migratoria, le fasi previste molto spesso prevedono il porting dell’applicazione legacy su un PaaS adeguatamente configurato a livello di servizi, previa l’eventuale riscrittura di certe parti del software per ottimizzare l’integrazione. Una volta che i carichi di lavoro sono a regime, è auspicabile iniziare a portarli sul serverless, per godere di un ambiente di sviluppo al 100% cloud native.
I vantaggi del PaaS per gli ISV
Al di là dei vantaggi generici che il cloud è in grado di garantire ad ISV ed aziende, esistono degli indubbi punti di forza che rende un modello PaaS sempre più irrinunciabile per chi si occupa di sviluppo software. La classica situazione che una volta che la provi non torni più indietro, tale è la comodità e la convenienza all’utilizzo che ne deriva.
Tra i molti vantaggi che un PaaS è in grado di assicurare agli sviluppatori, ritroviamo:
- Vantaggi in termini di efficienza generale per un team di sviluppo, grazie all’elevato livello di automazione, di rapidità del provisioning, della standardizzazione degli ambienti di sviluppo, oltre ad un livello generalmente molto elevato in termini di scalabilità.
- Vantaggi in termini di contenimento dei rischi e degli effetti derivanti da possibili imprevisti, grazie al generale livello di sicurezza che un provider è in grado di garantire, sia verso le minacce dalla rete, sia in termine di protezione dei dati caricati sui loro server. Anche nei casi più gravi, la resilienza è assicurata dalla possibilità di risalire immediatamente ad uno dei backup pianificati o eseguire istantaneamente uno snapshot delle macchine virtuali avviate sui server del provider.
- Vantaggi in termini di innovazione nello sviluppo, a tutto vantaggio del raggiungimento di nuovi ed ambiziosi obiettivi di business. Questo aspetto è possibile grazie alla possibilità di integrare nei software le funzioni offerte dai servizi basate sulle tecnologie emergenti: dalle funzioni di intelligenza artificiale per l’analisi e l’elaborazione dei dati, alla possibilità di integrare un chatbot per migliorare il coinvolgimento degli utenti, fino alle funzioni di pagamento e gestione dei contratti offerte dalla blockchain. Oltre, ovviamente, a tutte le questioni tecniche legate nello specifico alla programmazione, come la possibilità di utilizzare container e API per rendere molto più rapide le fasi dello sviluppo, testing, rilascio e aggiornamento del software lungo tutto il suo percorso di vita.
- Un ulteriore fattore positivo è caratterizzato dalla possibilità di offrire agli utenti degli ambienti di editing e sviluppo coding-free, grazie ad interfacce drag-and-drop e punta-e-clicca che consentono di configurare le applicazioni più semplici attraverso dei blocchi visuali, senza richiedere l’intervento di un programmatore esperto, che può dedicarsi a funzioni strategicamente più rilevanti per l’azienda.
Per molti versi non si tratta di una vera e propria rivoluzione, nel senso che lo sviluppo di nuove applicazioni si è sempre basato su concetti innovativi, atti a risolvere in maniera sempre più efficace i problemi per cui è stata richiesta l’azione degli ISV. La portata dirompente del cloud, ed in particolare delle piattaforme PaaS è rappresentato dall’incredibile facilitazione nel portare avanti e finalizzare con successo qualsiasi progetto di sviluppo.
[Il prossimo 27 aprile dalle 10:00 parte la Paas Acedmy di Microsoft. Una maratona digitale al servizio degli sviluppatori e della straordinaria opportunità delle nuvole. Qui tutti i dettagli per partecipare]
La soluzione giusta al momento giusto: è ora di scegliere il PaaS
Quando si tratta di valutare il passaggio al cloud, uno degli aspetti che preoccupa le aziende è determinato dalla governance, ovvero la capacità di avere il totale controllo dell’ecosistema di sviluppo cui si affidano di fatto le sorti della crescita e del successo dell’azienda stessa. Si tratta di una perplessità più che legittima, ma la standardizzazione dei servizi non andrebbe vista come la privazione di una libertà di controllo, anche per il fatto che il PaaS è organizzato a servizi, proprio per offrire la maggior flessibilità possibile in funzione di un ambiente di sviluppo il più possibile pronto all’uso. Quello che sulla carta potrebbe apparire uno dei limiti del cloud, ne rappresenta in realtà uno dei principali punti di forza, a condizione di avvalersi di cloud architect competenti, capaci di configurare la strategia più funzionale alle specifiche esigenze di ciascuna azienda.
Nel malaugurato caso in cui le scelte di sviluppo di un provider si rivelino poco congeniali al mantenimento dei software di un’azienda, è opportuno considerare come l’organizzazione dei carichi di lavoro di un software cloud native si adatti facilmente al trasferimento sul servizio PaaS di altri provider, piuttosto che a soluzioni ibride e multicloud, capaci di scongiurare qualsiasi rischio di lock-in. Questo aspetto, più che una garanzia tecnica, dovrebbe caratterizzare un driver di rassicurazione psicologica verso i rischi derivanti dal cambiamento.
Oggi il PaaS garantisce pertanto l’ambiente di sviluppo più efficace per gli ISV, per la coincidenza di molti fattori maturati nel tempo, anche in maniera probabilmente inconsapevole. In primis, vi è la maturità di servizi che vantano ormai diversi anni di utilizzo per tutti i principali linguaggi di programmazione, con cui sono state sviluppate molti milioni di applicazioni. Un ambiente di sviluppo PaaS è il risultato della costante applicazione di un know-how molto profondo.
Un altro aspetto fondamentale è caratterizzato dalla flessibilità e dalle opzioni di innovazione che le centinaia di servizi disponibili su un PaaS sono in grado di garantire, così come tutti i tool per migrare e ammodernare con successo le applicazioni legacy ancora operative nelle varie aziende. Per certe soluzioni, in particolare le applicazioni mobile, il PaaS è in grado di garantire ambienti di sviluppo già preconfigurati, rapidamente aggiornati sulla base dei continui rilasci dei framework dei vari ecosistemi, oltre alla certezza di testare le condizioni responsive su tutti i device. In questo caso, anche se non ci sono scelte obbligate, possiamo parlare di un’opzione altamente consigliabile, in quanto gestire internamente la varietà e la rapidità con cui evolvono le tecnologie mobile risulterebbe oltremodo oneroso e complesso da giustificare nel conto economico generale, oltre a ridurre la marginalità dei progetti.