Gli utenti di oggi si aspettano che l’intera Internet sia a portata di mano, indipendentemente da dove si trovino o dal dispositivo in uso. Ma questa capacità è stata difficile da fornire per gli sviluppatori di applicazioni fino a poco tempo fa. Negli ultimi anni, smartphone, browser e dispositivi embedded sono progrediti così tanto da funzionare come client mobili distribuiti a livello globale. Possono offrire esperienze utente remote paragonabili a quelle che si sperimenterebbero se si utilizzasse una connessione locale o dedicata ad alta velocità.

Questo risultato è in parte dovuto all’ascesa dell’architettura serverless, dei microservizi e dei servizi cloud-native e al modo in cui queste innovazioni consentono agli sviluppatori di creare applicazioni web scalabili e affidabili ovunque sul pianeta.

Un nuovo paradigma rich client per lo sviluppo di app

Con l’intensificarsi di questa tendenza, è emerso un nuovo paradigma di applicazioni Internet connesse. Questo approccio è noto come client-serverless computing ed è in grado di offrire esperienze applicative costantemente dinamiche e interattive da qualsiasi smartphone o dispositivo periferico, indipendentemente da dove si trovi un utente o da dove vengono servite le risorse a cui accede.

L’adozione diffusa di dispositivi rich client e la disponibilità globale di servizi cloud distribuiti hanno alimentato ancora di più la tendenza dell’elaborazione client-serverless, ma tutto ciò richiede qualcosa di più dagli sviluppatori, che non possono più presumere che il loro codice di programma accederà principalmente a database, server di app e server Web che si trovano all’interno di un singolo data center o regione cloud.

Al contrario, gli sviluppatori devono creare markup e logica aziendale lato server, nonché JavaScript lato client per l’interfaccia utente su una miriade di dispositivi client. Devono anche codificare applicazioni ottimizzate per l’interattività lato browser di alta qualità su interfacce standard del settore come REST (per API remote) o JSON (per formati di dati).

Sviluppo rapido di app cloud

Il client-serverless computing ha radici nelle architetture applicative a tre livelli della vecchia guardia che sono sorte attorno a PC e reti locali che collegavano una GUI lato client a un database SQL back-end. Ma questo nuovo paradigma è molto più adatto alle piattaforme di elaborazione multicloud del 21° secolo.

Questo perché client-serverless:

  • Fornisce funzioni componibili a bassa latenza tramite un’API web-native coerente e sicura che può essere chiamata da qualsiasi applicazione client e con pagamento in base al consumo
  • Consente alle applicazioni di essere facilmente servite, composte e utilizzate su richiesta da ogni parte dell’infrastruttura informatica ovunque
  • Consente agli sviluppatori di distribuire funzioni in modo rapido e scalabile in ambienti cloud-to-edge
  • Assicura che le prestazioni delle applicazioni non si degradino anche se la logica di business sottostante viene distribuita in lungo e in largo
  • Estrae le posizioni fisiche e le piattaforme operative da cui viene servita la logica dell’applicazione back-end
  • Elimina la necessità per i programmatori di scrivere la logica che gestisce container, macchine virtuali e altri motori di runtime back-end a cui verrà allocata dinamicamente l’esecuzione della logica dell’applicazione
  • Aumenta la densità, l’efficienza e l’utilizzo della capacità di CPU, memoria, archiviazione e altro utilizzo dell’hardware sulle piattaforme cloud back-end

Serverless computing

Nessun vincolo di elaborazione serverless

La componente serverless di questo approccio si riferisce a un modello di utility computing in cui il provider di servizi cloud gestisce dinamicamente l’allocazione delle risorse della macchina back-end per l’esecuzione della logica di business dell’applicazione.

“L’ascesa dell’architettura Jamstack (JavaScript, API, Markup) ha sicuramente promosso l’uso di app serverless e ha reso la creazione di queste accessibili a innumerevoli più sviluppatori” ha dichiarato Evan Weaver, CTO di Fauna (fornitore di database transazionale serverless). “Ma ci sono molte altre architetture, come l’esplosione dei microservizi, che fanno uso di questo nuovo modo di elaborazione. Lo sviluppatore di oggi ha più opzioni che mai quando decide come creare app”.

L’infrastruttura e gli strumenti client-serverless consentono agli sviluppatori di creare app cloud client-serverless con molte funzionalità. Queste applicazioni sono generalmente:

  • Componibili: gli strumenti client-serverless sfruttano le API compatibili con Internet per utilizzare le funzioni di back-end a cui si accede come microservizi su cloud SaaS
  • Flessibili: i livelli di astrazione client-serverless possono supportare lo sviluppo di applicazioni cloud distribuite di qualsiasi scala, complessità e funzionalità. Gli sviluppatori possono distribuire la logica client come microservizi ad applicazioni server, motori di flusso di lavoro e altri componenti dell’infrastruttura.
  • Robuste: gli ambienti client-serverless consentono lo sviluppo di applicazioni sicure, affidabili, stateful e coerenti. Le applicazioni utilizzano database protetti che sono disponibili ovunque all’interno di un ambiente distribuito tramite tramite API di dati serverless
  • Dinamiche: il client-serverless favorisce l’adozione dell’infrastruttura cloud che si evolve dal modello di macchina virtuale gestita e container, con il suo provisioning statico intrinseco, lo spreco di risorse, il sovraccarico operativo e le sfide di sicurezza. L’infrastruttura cloud sta passando al modello API, che è dinamico, infinitamente scalabile e onnipresente senza alcun onere operativo per il cliente. Sempre più spesso, le funzioni aziendali accessibili tramite API, come i pagamenti Stripe o la messaggistica di Twilio, verranno introdotte in ambienti client-serverless senza alcun incremento operativo.

Previsioni di crescita

Tutti i segnali indicano che strumenti e piattaforme client-serverless avranno un impatto enorme sull’IT e sul mondo dello sviluppo di applicazioni nel 2021 e oltre. Sempre più aziende stanno infatti fondando le loro pratiche di sviluppo di applicazioni cloud su piattaforme e strumenti client-serverless e stanno iniziando a passare a sofisticate piattaforme di dati serverless, back-end di elaborazione serverless come AWS Lambda e Cloudflare Workers, offerte di data warehousing serverless come Snowflake e framework di sviluppo serverless come Next.js e RedwoodJS.

Le tecnologie client-serverless pure come Jamstack, GraphQL e il database Fauna non hanno ancora raggiunto l’adozione universale tra i professionisti dello sviluppo enterprise. Tuttavia, le aziende utilizzano back-end serverless per scalare la propria infrastruttura applicativa in modo indipendente dalla posizione e completamente disaccoppiata da qualsiasi infrastruttura fisica.

Con l’accelerazione della rivoluzione client-serverless, gli ambienti di elaborazione serverless si sposteranno sempre più verso un’enfasi su applicazioni mobili ed edge avanzate. Infine, l’ascesa degli ambienti client-serverless genererà quasi sicuramente il prossimo Uber o Twitter, poiché i team di sviluppo piccoli ma focalizzati attingeranno sempre più spesso al potenziale di trasformazione di questo nuovo paradigma applicativo.