Tag: serverless, aws, lambda, faas, cloud
Livello: intermedio
TL;DR: Il modello serverless permette di eseguire codice senza gestire l'infrastruttura, delegando scalabilità e manutenzione al cloud provider. Si paga esclusivamente per il tempo di esecuzione e il numero di invocazioni.
-
FaaS (Function as a Service): unità di calcolo effimere ed event-driven.
-
Stateless design: le funzioni non conservano stato locale; l'archiviazione avviene su database o storage esterni.
-
Cold Start: la latenza iniziale che si verifica quando una funzione inattiva viene invocata e necessita di avviare un nuovo container.
-
Event-driven architecture: le funzioni reagiscono a trigger come richieste HTTP, code di messaggi o variazioni nello storage.
-
BaaS (Backend as a Service): utilizzo combinato di servizi gestiti di terze parti per database, autenticazione e storage.
-
Pay-as-you-go: fatturazione granulare basata sui millisecondi di esecuzione reale.
-
Vendor Lock-in: rischio architetturale legato alla forte dipendenza da API e servizi proprietari del cloud provider.
-
Concorrenza: le funzioni scalano orizzontalmente in modo automatico per gestire picchi di traffico.
-
Q: Come affronti il problema del Cold Start nelle funzioni serverless?R: Ottimizzo il pacchetto di deploy riducendo le dipendenze, scelgo runtime leggeri o configuro la Provisioned Concurrency per mantenere container caldi in AWS Lambda.
-
Q: Quali sono le differenze principali tra un'infrastruttura a container (es. Kubernetes) e un approccio Serverless puro?R: Kubernetes mi dà controllo totale sull'ambiente ma richiede manutenzione dei nodi; con serverless delego l'operatività al provider e sfrutto lo scale-to-zero per ottimizzare i costi.
-
Progettare funzioni monolitiche invece di suddividere la logica in microfunzioni focalizzate.
-
Non impostare correttamente i timeout, causando esecuzioni pendenti all'infinito e picchi di fatturazione.
-
Esaurire i connection pool del database relazionale a causa della rapida scalabilità orizzontale delle funzioni.
-
Sottovalutare la complessità di monitoring e debugging distribuito in sistemi pesantemente event-driven.
# Serverless Framework - Deploy del servizio completo
sls deploy
# Deploy di una singola funzione per velocizzare i cicli di sviluppo
sls deploy function -f authHandler
# Visualizzare i log di una funzione in streaming
sls logs -f authHandler -t
-
[ ] Pattern di integrazione asincrona (SQS, SNS, EventBridge).
-
[ ] Strategie di gestione degli errori e configurazione delle Dead Letter Queues (DLQ).
-
[x] Principi di calcolo stateless.
-
AWS Lambda Best Practices
-
Serverless Framework Documentation
-
AWS Well-Architected Framework: Serverless Lens