Serverless computing

Guido Mazza

di Guido Mazza

Modalità di esecuzione serverless all'interno di architetture IT complesse, sta trovando sempre maggior spazio tra organizzazioni di ogni dimensione. Con un bacino di interesse maggiore, anche la nostra infrastruttura IDEA Cloud evolve per rispondere alle sfide e ai bisogni di business emergenti:  aziende, incubatori e grandi Corporate che stanno rivolgendo particolare attenzione alla sostenibilità dei propri servizi digitali.

In questo post combineremo gli accorgimenti apportati nella nostra architettura con i particolari studi condotti da Datadog, che hanno sottolineato l'incremento nell' adozione di queste modalità di esecuzione tra organizzazioni di tutto il mondo.

Oggi infatti, milioni di funzioni serverless alimentano il business di migliaia di aziende che ne hanno fatto il core dello stack di sviluppo e fonte di vantaggio competitivo.

In media si osserva come il carico serverless sia aumentato di oltre il 300% rispetto a due anni precedenti.

Lo studio rivela come gli Amazon Web Services guidi la classifica del settore. AWS Lambda è oggi il prodotto più maturo e più largamente utilizzato, ma anche come altri grandi player stiano recuperando terreno con servizi come Azure Functions e Google Cloud Functions.

Conoscere lo stato dell'arte delle tecnologie non è un aspetto secondario, come avviene in altri mercati, la concorrenza favorisce chi conosce questi strumenti.

Tra i fattori di successo e la crescente adozione da business di ogni tipo, sicuramente la capacità di aver ridotto drasticamente la durata di esecuzione delle funzioni. In questo modo le applicazioni ottengono bassi tempi di latenza e vengono progettate per essere altamente specifiche per i proprio carichi di lavoro, non general purpose.

Progettare una esecuzione specifica per lo scopo è uno dei fattori determinanti per gli obiettivi di sostenibilità.

Question time

Le lambda possono risolvere solo problemi semplici?

Assolutamente no, le funzioni sono utilizzate dai team di sviluppatori anche in workload computazionalmente intensivi. Questo avviene attraverso servizi di orchestrazione, ovvero strumenti che coordinano le esecuzioni delle funzioni in ambiente distribuito. Questi strumenti di orchestrazione, Step Functions nel mondo AWS, consentono di costruire piattaforme event-driven che coinvolgono anche centinaia di funzioni e altri servizi esterni.

Come i trend di adozione favoriscono il lavoro di ITER IDEA?

Come spesso sottolineamo, ITER IDEA ha strutturato la propria piattaforma verso l’orchestrazione di quei servizi di storage, computing, analysis che privilegiassero un approccio serverless in contrasto con approcci cloud-hosted o servizi basati su istanze dedicate.

Introducendo nelle architetture notevoli accorgimenti, volti ad efficientare l’utilizzo e delle componenti interne ed esterne. Alcuni esempi di come raggiungiamo questo:

  • progettazione di soluzioni event-driven asincrone, non soggette ai tipici limiti dettati da esecuzioni sequenziali o concomitanti.
  • realizzazione di specifici framework, software e procedurali, per il controllo di risorse cloud modulari e indipendenti all’interno di sistemi complessi.
  • utilizzo di strumenti di code scanning automatici per l’ottimizzazione delle dipendenze tra pacchetti (proprietari e di terze parti) e l’individuazione di rischi di sicurezza.
  • monitoraggio, modulare ed end-to-end, di architetture cloud che coinvolgono molteplici servizi di varia natura; conseguenti ottimizzazioni in termini di configurazioni e provisioning.
  • ampio utilizzo di diverse forme di Infrastructure as Code per mantenere pieno controllo delle risorse cloud, evitare sprechi o entità fantasma, e riprodurre al bisogno interi ambienti “copia” per testing o obiettivi di scalabilità.
  • implementazione di pipeline di CD/CI per l’efficientamento del processo di sviluppo e integrazione, che garantisce rilasci più rapidi, precisi e consapevoli.
  • avvantaggiamento di diversi tipi di protocolli di comunicazione e messaging (HTTPS, socket, MQTT, stream, ecc.) che si adattino al contesto degli specifici applicativi, assicurando una comunicazione sufficiente, ma non sovradimensionata o ridondante.
  • miglioramento continuo dei processi dev-ops interni in linea con gli standard più recenti e innovativi.

In chiusura vorremmo fornire nuovi stimoli per le nuove generazioni di sviluppatori nello scegliere la loro prossima specializzazione in cloud.

Partendo da questo illuminante articolo proposto da Dev.to, che sottolinea come
la maggior parte delle applicazioni mobile stanno migrando le proprie strutture di backend in modo serverless, i motivi principali sono semplici: le app risultano più leggere e manutenibili.

Come abbracciare questo cambiamento e come potranno i developers di domani essere pronti alle prossime sfide tecnologiche?

Per Dev.to è importante conoscere la terminologia del cloud computing, partendo ovviamente da uno dei termini che ci sta particolarmente a cuore: Cloud Native.

Le soluzioni Cloud Native sono quelle applicazioni appositamente progettate e distribuite per ottenere il massimo del vantaggio competitivo dei provider di servizi cloud. Queste applicazioni sono quelle che in termini assoluti consentono di essere resilienti, sostenibili, scalabili e flessibili ai futuri aggiornamenti.

L'esecuzione Serverless consente di ottenere la piena scalabilità delle soluzioni decentralizzate ma anche  il modo migliore per velocizzare lo sviluppo delle applicazioni cloud-native in quanto consente ai developers e ai team IT di concentrarsi maggiormente sul valore della soluzione. Riprendendo le analisi di Datadog, padroneggiare queste tecnologie consentirà ai team uno speed-up sensazionale e una generale riduzione dello stress dovuto alla gestione delle architetture sottostanti.

Queste pratiche in futuro verranno percepite come commodity, a basso valore aggiunto.

Parlando del modello Serverless, importante approfondire un concetto già introdotto in questo articolo, ovvero il FaaS (Function-as-a-Code).

Si può definire come un servizio cloud  che consente di eseguire codice in risposta ad eventi o trigger ricevuti. Questo permette tramite di ottenere modalità economicamente e ambientalmente sostenibili per distribuire ed eseguire codice flessibile e scalabile.  

Nel mondo del cloud computing, il panorama serverless rappresenta la tendenza del prossimo futuro, IDEA Cloud a suo volta si propone come un valido strumento per iniziare il proprio percorso di specializzazione per giovani sviluppatori.

Consulta la pagina lavora con noi per candidarti alle posizioni aperte.