Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni50 pagine

AWS Lambda e Serverless Computing

Il documento descrive un percorso formativo avanzato su AWS Lambda e Serverless Computing, suddiviso in 8 moduli che coprono argomenti come architettura, sicurezza, operazioni e FinOps. Vengono esplorati i fondamenti del Serverless, l'anatomia delle funzioni Lambda, i modelli di invocazione e le migliori pratiche per l'implementazione. L'obiettivo è fornire ai partecipanti le competenze necessarie per diventare Cloud Architect, Serverless Developer e DevOps Engineer.

Caricato da

Samuel Motta
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
0 visualizzazioni50 pagine

AWS Lambda e Serverless Computing

Il documento descrive un percorso formativo avanzato su AWS Lambda e Serverless Computing, suddiviso in 8 moduli che coprono argomenti come architettura, sicurezza, operazioni e FinOps. Vengono esplorati i fondamenti del Serverless, l'anatomia delle funzioni Lambda, i modelli di invocazione e le migliori pratiche per l'implementazione. L'obiettivo è fornire ai partecipanti le competenze necessarie per diventare Cloud Architect, Serverless Developer e DevOps Engineer.

Caricato da

Samuel Motta
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

PERCORSO FORMATIVO AVANZATO

AWS Lambda e Serverless


Computing
Percorso formativo avanzato per Cloud Architect, Serverless Developer e DevOps
Engineer

50 slide · 8 moduli · Architettura, sicurezza, operations e FinOps


MODULO 1 · FONDAMENTI DEL SERVERLESS

Agenda del percorso

Modulo 1 · Slide 1-7 Modulo 5 · Slide 32-38

Introduzione e fondamenti del Serverless Computing Sviluppo, packaging e deployment moderni

Modulo 2 · Slide 8-16 Modulo 6 · Slide 39-44

Anatomia, runtime e ciclo di vita della funzione Orchestrazione e pattern architetturali

Modulo 3 · Slide 17-25 Modulo 7 · Slide 45-48

Event source e modelli di invocazione Monitoraggio, troubleshooting e osservabilità

Modulo 4 · Slide 26-31 Modulo 8 · Slide 49-50

Sicurezza, IAM e access management FinOps, pricing e best practices

AWS Lambda · Serverless Computing 2


MODULO 1 · FONDAMENTI DEL SERVERLESS

L'evoluzione del Cloud

1 2 3 4

On-Premise IaaS Container Serverless


Hardware Istanze virtuali on- Immagini portabili e Unità di deploy =
proprietario, demand: sparisce il orchestrazione: funzione. Nessun
capacity planning a datacenter, resta la densità elevata, ma server da gestire,
3-5 anni, utilizzo gestione del sistema cluster e nodi scalabilità e billing
medio sotto il 20%. operativo. restano da per uso reale.
governare.

Ogni passaggio sposta responsabilità operativa verso il provider e riduce il tempo tra codice e valore.

AWS Lambda · Serverless Computing 3


MODULO 1 · FONDAMENTI DEL SERVERLESS

Cos'è AWS Lambda

Definizione Filosofia FaaS

• Servizio di compute event-driven che • L'unità di deploy è la funzione, non il server


esegue codice in risposta a eventi. o il container.
• Nessuna istanza da fornire, patchare o • Modello event → handler → risultato,
scalare. intrinsecamente stateless.
• Costo proporzionale all'esecuzione effettiva,
• Esecuzione in ambienti isolati effimeri gestiti
non al tempo di accensione.
da AWS.

Obiettivo: massimizzare il tempo speso sulla logica di business, minimizzare quello speso sull'infrastruttura.

AWS Lambda · Serverless Computing 4


MODULO 1 · FONDAMENTI DEL SERVERLESS

Vantaggi chiave

Zero server management Scalabilità automatica Pagamento al millisecondo

• Provisioning, patching e • Da zero a migliaia di • Fatturazione su richieste


failover gestiti da AWS. esecuzioni concorrenti in e durata in GB-secondi,
secondi. arrotondata al
• Alta disponibilità multi-
AZ nativa. millisecondo.
• Un ambiente per ogni
richiesta concorrente. • Idle cost pari a zero.

Il vantaggio economico è massimo su carichi variabili, discontinui o imprevedibili.

AWS Lambda · Serverless Computing 5


MODULO 1 · FONDAMENTI DEL SERVERLESS

Responsabilità condivisa nel Serverless

AWS gestisce Il cliente gestisce

• Infrastruttura fisica, hypervisor e • Codice applicativo e dipendenze di


Firecracker microVM. terze parti (CVE incluse).
• Sistema operativo, patching e • Policy IAM, configurazione di rete e
aggiornamenti del runtime gestito. crittografia dei dati.
• Isolamento, scaling e disponibilità del • Gestione dei segreti, validazione degli
servizio. input e logica di retry.

Il perimetro si restringe ma non sparisce: la sicurezza applicativa e l'identità restano interamente del cliente.

AWS Lambda · Serverless Computing 6


MODULO 1 · FONDAMENTI DEL SERVERLESS

Quando usare Serverless

Casi d'uso ideali Anti-pattern

• Backend API event-driven con traffico • Elaborazioni oltre i 15 minuti o batch


variabile o a picchi. pesanti di lunga durata.
• Elaborazione asincrona di file, stream e • Carichi costanti 24/7 ad altissimo volume:
code. EC2 o Fargate costano meno.
• Automazioni, glue code e task di • Latenza ultra-bassa e deterministica
integrazione tra servizi AWS. sensibile ai cold start.
• Job schedulati e ETL a esecuzione breve. • Applicazioni stateful o con forte
dipendenza dal filesystem locale.

AWS Lambda · Serverless Computing 7


MODULO 2 · ANATOMIA, RUNTIME E CICLO DI VITA

Anatomia di una funzione Lambda

Handler Codice sorgente Dipendenze

• Punto di ingresso • Logica di business, • Librerie incluse nel


invocato dal runtime, es. preferibilmente pacchetto, nei Layer o
`[Link]`. disaccoppiata dall'handler. nell'immagine container.
• Minimizzarle riduce
• Riceve event e context e • Handler sottile →
restituisce la risposta. dimensione e tempo di
testabilità e portabilità
cold start.
migliori.

L'oggetto context espone requestId, tempo residuo e log stream: fondamentale per tracing e timeout guard.

AWS Lambda · Serverless Computing 8


MODULO 2 · ANATOMIA, RUNTIME E CICLO DI VITA

Runtime nativi e Custom Runtime

Runtime gestiti Custom Runtime

• [Link], Python, Java, Go, .NET, Ruby • Interfaccia Runtime API per qualsiasi
con versioni aggiornate da AWS. linguaggio (Rust, PHP, COBOL).
• Patching del runtime a carico del servizio. • Distribuito come Layer o immagine
container.
• Ogni runtime ha una data di fine supporto
da monitorare. • Il ciclo di vita del runtime diventa
responsabilità del team.

[Link] e Python offrono i cold start più rapidi; Java e .NET privilegiano throughput e ecosistema enterprise.

AWS Lambda · Serverless Computing 9


MODULO 2 · ANATOMIA, RUNTIME E CICLO DI VITA

Ciclo di vita di un'esecuzione

1 2 3

Init Phase Invoke Phase Shutdown Phase


Download del codice, Esecuzione dell'handler Al termine dell'inattività
avvio del runtime ed sull'evento ricevuto; l'ambiente viene
esecuzione del codice l'ambiente viene riusato terminato, con notifica alle
statico fuori dall'handler. per invocazioni successive. extension registrate.

Inizializzare client SDK e connessioni nella Init Phase permette di riusarli su tutte le invocazioni successive.

AWS Lambda · Serverless Computing 10


MODULO 2 · ANATOMIA, RUNTIME E CICLO DI VITA

Cold Start vs Warm Start

Cause del cold start Mitigazioni

• Prima invocazione, scale-out o nuova • Ridurre bundle e usare tree-shaking o


versione pubblicata. lazy loading.
• Pacchetti di deploy grandi e dipendenze • Riuso di connessioni e client fuori
pesanti. dall'handler.
• Attach di ENI in VPC e runtime a lunga • Provisioned Concurrency o SnapStart
inizializzazione. per i percorsi critici.

Su un'applicazione a regime i cold start restano tipicamente sotto l'1% delle invocazioni: ottimizzare dove la latenza è visibile all'utente.

AWS Lambda · Serverless Computing 11


MODULO 2 · ANATOMIA, RUNTIME E CICLO DI VITA

Provisioned Concurrency

Cosa fa mantiene un numero definito di ambienti già inizializzati e pronti a rispondere.

Effetto elimina la latenza di init per le invocazioni servite dalla capacità riservata.

Configurazione si applica a un alias o a una versione pubblicata, mai a $LATEST.

Scaling integrabile con Application Auto Scaling e schedule su finestre di traffico note.

Costo si paga la capacità mantenuta calda: usarla solo su funzioni latency-critical.

AWS Lambda · Serverless Computing 12


MODULO 2 · ANATOMIA, RUNTIME E CICLO DI VITA

SnapStart per Java

Come funziona Attenzioni

• Snapshot cifrato della memoria dopo • Attivo su versioni pubblicate, non su $LATEST.
l'inizializzazione (Firecracker).
• Unicità: rigenerare seed casuali e connessioni
• Le invocazioni successive ripristinano lo
dopo il restore.
snapshot invece di reinizializzare.
• Hook di runtime per gestire lo stato non
• Riduzione dei tempi di avvio fino a un ordine di riproducibile.
grandezza.

Ideale per Spring Boot e framework con inizializzazione pesante, a costo zero aggiuntivo sul servizio.

AWS Lambda · Serverless Computing 13


MODULO 2 · ANATOMIA, RUNTIME E CICLO DI VITA

Memoria e CPU

Range di memoria da 128 MB a 10.240 MB, configurabile in incrementi di 1 MB.

CPU proporzionale la potenza di calcolo cresce con la memoria; oltre ~1.769 MB si dispone di una vCPU piena.

Multi-core le funzioni multi-thread traggono beneficio solo con memoria elevata.

Tuning più memoria può ridurre il costo totale se la durata cala più di quanto cresce il prezzo unitario.

Metodo misurare con Lambda Power Tuning invece di procedere per tentativi.

AWS Lambda · Serverless Computing 14


MODULO 2 · ANATOMIA, RUNTIME E CICLO DI VITA

Timeout e storage temporaneo

Timeout Storage effimero

• Massimo 15 minuti, default 3 secondi. • Directory /tmp da 512 MB fino a 10.240 MB.
• Allinearlo al timeout del client a monte (es. • Persiste tra invocazioni nello stesso
API Gateway, 29 s). ambiente: utile come cache locale.
• Timeout troppo alti mascherano deadlock e • Per dati condivisi o persistenti usare S3, EFS
retry costosi. o DynamoDB.

Non assumere mai che /tmp sia vuoto: pulire i file temporanei e non fidarsi del contenuto residuo.

AWS Lambda · Serverless Computing 15


MODULO 2 · ANATOMIA, RUNTIME E CICLO DI VITA

Variabili d'ambiente e configurazione

Uso corretto endpoint, nomi di tabelle, feature flag e livelli di log per ambiente.

Crittografia cifratura a riposo con KMS; per valori sensibili abilitare l'helper di encryption in transit.

Limite 4 KB complessivi per tutte le variabili della funzione.

Segreti credenziali e token vanno in Secrets Manager o Parameter Store, mai nelle variabili in chiaro.

Governance separare configurazione e codice permette promozioni tra ambienti senza rebuild.

AWS Lambda · Serverless Computing 16


MODULO 3 · EVENT SOURCE E INVOCAZIONE

Modelli di invocazione

Sincrona Asincrona Event Source Mapping

• Il chiamante attende la • Evento accodato • Lambda esegue il polling


risposta. internamente da della sorgente.
Lambda.
• API Gateway, ALB, SDK, • SQS, Kinesis, DynamoDB
Function URL. • S3, SNS, EventBridge. Streams, MSK.
• Retry a carico del client. • Retry automatici e DLQ. • Elaborazione a batch.

Il modello di invocazione determina retry, ordinamento, gestione degli errori e strategia di idempotenza.

AWS Lambda · Serverless Computing 17


MODULO 3 · EVENT SOURCE E INVOCAZIONE

Invocazione sincrona

Flusso richiesta → esecuzione → risposta restituita al chiamante nello stesso ciclo.

Sorgenti tipiche API Gateway, Application Load Balancer, Function URL, invocazione diretta via SDK.

Vincoli payload fino a 6 MB e limite di timeout imposto dal servizio a monte.

Errori l'eccezione risale al client: gestione e retry restano a carico del chiamante.

Latenza è il percorso dove i cold start incidono di più sull'esperienza utente.

AWS Lambda · Serverless Computing 18


MODULO 3 · EVENT SOURCE E INVOCAZIONE

Invocazione asincrona

Coda interna Lambda accetta l'evento, risponde 202 e lo elabora in modo indipendente.

Retry automatici due tentativi aggiuntivi con backoff esponenziale in caso di errore.

Event age gli eventi possono restare in coda fino a 6 ore prima di essere scartati.

DLQ gli eventi definitivamente falliti vengono inoltrati a una coda SQS o a un topic SNS.

Idempotenza obbligatoria: la stessa richiesta può essere elaborata più di una volta.

AWS Lambda · Serverless Computing 19


MODULO 3 · EVENT SOURCE E INVOCAZIONE

Lambda Destinations

Cosa offrono Vantaggi sulla DLQ

• Instradamento dichiarativo dell'esito di • Il record include evento, risposta ed errore,


un'invocazione asincrona. non solo il payload originale.
• Destinazioni separate per successo e • Cattura anche gli esiti positivi, abilitando
fallimento. pipeline di post-elaborazione.
• Target: SQS, SNS, EventBridge o un'altra • Meno codice di plumbing all'interno della
funzione Lambda. funzione.

Le Destinations sono l'approccio raccomandato; la DLQ resta valida per scenari legacy o di sola cattura errori.

AWS Lambda · Serverless Computing 20


MODULO 3 · EVENT SOURCE E INVOCAZIONE

Event Source Mapping

Amazon SQS Kinesis DynamoDB Streams

• Polling gestito con scaling • Elaborazione ordinata per • Reazione alle modifiche delle
automatico dei poller. shard. tabelle.
• Parallelization factor per
• Batch size e batching window • Ordine garantito per chiave di
aumentare il throughput.
configurabili. partizione.
• Bisect on error per isolare i
• Coda DLQ e partial batch • Base per CQRS ed Event
record velenosi.
response. Sourcing.

Nel poll-based è Lambda a leggere la sorgente: il tuning di batch, concorrenza e retry determina throughput e costi.

AWS Lambda · Serverless Computing 21


MODULO 3 · EVENT SOURCE E INVOCAZIONE

Integrazione con Amazon S3

Trigger notifiche su creazione, rimozione, ripristino o replica degli oggetti.

Filtri selezione per prefisso e suffisso per evitare invocazioni inutili.

Casi d'uso generazione di thumbnail, validazione e antivirus, ingestion e indicizzazione.

Ricorsione mai scrivere l'output nello stesso prefisso di input: si generano loop infiniti.

Consegna invocazione asincrona at-least-once: progettare handler idempotenti.

AWS Lambda · Serverless Computing 22


MODULO 3 · EVENT SOURCE E INVOCAZIONE

EventBridge e Lambda

Event bus e regole Architetture event-driven

• Bus default, custom e partner per • Publisher e consumer completamente


separare i domini. disaccoppiati.
• Regole basate su pattern JSON sul • Schema Registry per contratti di evento
contenuto dell'evento. versionati.
• Schedule expression per job periodici e • Archive e replay degli eventi per audit e
cron. recovery.

EventBridge sostituisce le integrazioni punto-punto con un router centrale governabile e osservabile.

AWS Lambda · Serverless Computing 23


MODULO 3 · EVENT SOURCE E INVOCAZIONE

Function URLs

Cosa sono endpoint HTTPS dedicato e permanente esposto direttamente dalla funzione.

Auth modalità AWS_IAM con SigV4 oppure NONE per endpoint pubblici.

CORS configurazione nativa di origini, header e metodi consentiti.

Streaming supporto al response streaming per payload progressivi e time-to-first-byte ridotto.

Limiti niente API key, usage plan, WAF nativo o routing multi-risorsa: per questi serve API Gateway.

AWS Lambda · Serverless Computing 24


MODULO 3 · EVENT SOURCE E INVOCAZIONE

WebSocket con API Gateway

Route e connessioni Comunicazione bidirezionale

• Route riservate $connect, $disconnect e • Push verso il client tramite l'API


$default. @connections.
• Ogni route può invocare una funzione • Casi d'uso: chat, notifiche live, dashboard
Lambda dedicata. real-time, collaborazione.
• Connection ID persistito su DynamoDB per • Gestire la pulizia delle connessioni scadute
il routing. o interrotte.

Il modello resta stateless: lo stato della sessione vive in un datastore esterno, non nella funzione.

AWS Lambda · Serverless Computing 25


MODULO 4 · SICUREZZA, IAM E ACCESS MANAGEMENT

Execution Role e minimo privilegio

Execution Role ruolo IAM assunto dalla funzione per accedere ai servizi AWS.

Credenziali temporanee, ruotate automaticamente ed esposte al runtime: nessuna chiave statica.

Minimo privilegio una policy per funzione, con azioni e ARN di risorsa espliciti.

Anti-pattern policy gestite ampie o wildcard su azioni e risorse.

Verifica IAM Access Analyzer e Access Advisor per rimuovere i permessi inutilizzati.

AWS Lambda · Serverless Computing 26


MODULO 4 · SICUREZZA, IAM E ACCESS MANAGEMENT

Resource-based policies

A cosa servono Buone pratiche

• Policy applicata alla funzione, non • Vincolare SourceArn e SourceAccount


all'identità chiamante. per evitare il confused deputy.
• Autorizza servizi AWS (S3, SNS, • Un permission statement per ogni
EventBridge) a invocarla. sorgente, con ID parlante.
• Abilita l'invocazione cross-account senza • Applicare la policy ad alias o versione per
ruoli condivisi. isolare gli ambienti.

Identity-based e resource-based policy si combinano: l'accesso è concesso solo se entrambe lo permettono.

AWS Lambda · Serverless Computing 27


MODULO 4 · SICUREZZA, IAM E ACCESS MANAGEMENT

Secrets Manager e Parameter Store

AWS Secrets Manager SSM Parameter Store

• Rotazione automatica di credenziali di • Parametri standard e SecureString cifrati


database e API key. con KMS.
• Integrazione nativa con RDS e Aurora. • Gerarchia per ambiente e applicazione.

• Costo per segreto e per chiamata API. • Tier standard gratuito: ideale per
configurazione non critica.

Usare l'extension Lambda per il caching locale dei segreti: meno latenza, meno chiamate API, meno costi.

AWS Lambda · Serverless Computing 28


MODULO 4 · SICUREZZA, IAM E ACCESS MANAGEMENT

Crittografia con AWS KMS

Ambito variabili d'ambiente, codice a riposo, log e snapshot SnapStart cifrati di default.

AWS managed key chiave gestita da AWS, senza costi di gestione e senza controllo sulla policy.

Customer managed key policy, rotazione e audit trail sotto il controllo del cliente.

Envelope encryption data key locale protetta dalla chiave master: crittografia efficiente su payload grandi.

Governance separare le chiavi per ambiente e tracciare l'uso via CloudTrail.

AWS Lambda · Serverless Computing 29


MODULO 4 · SICUREZZA, IAM E ACCESS MANAGEMENT

VPC Integration

Quando serve Come configurarla

• Accesso a RDS, ElastiCache o servizi • Subnet private su almeno due AZ e security


interni in subnet private. group dedicato.
• Requisiti di conformità sul traffico privato. • Uscita verso Internet solo tramite NAT
Gateway.
• Integrazione con reti on-premise via Direct
Connect o VPN. • VPC Endpoint per raggiungere S3,
DynamoDB e KMS senza uscire dalla rete.

Una funzione in VPC senza NAT o endpoint non raggiunge i servizi AWS pubblici: causa frequente di timeout silenziosi.

AWS Lambda · Serverless Computing 30


MODULO 4 · SICUREZZA, IAM E ACCESS MANAGEMENT

Hyperplane ENI

Cosa sono ENI condivise e gestite da AWS Hyperplane per l'accesso di Lambda alla VPC.

Beneficio le ENI vengono create una sola volta per combinazione di subnet e security group.

Impatto la penalità di cold start dovuta al networking scende da decine di secondi a pochi millisecondi.

Condivisione molte esecuzioni concorrenti riusano lo stesso set di interfacce di rete.

Progettazione limitare le combinazioni subnet/security group e dimensionare gli IP disponibili nelle subnet.

AWS Lambda · Serverless Computing 31


MODULO 5 · SVILUPPO, PACKAGING E DEPLOYMENT

Packaging: ZIP vs Container

ZIP archive Container image

• Fino a 50 MB compressi e 250 MB • Immagine OCI fino a 10 GB su Amazon


decompressi. ECR.
• Deploy rapido, supporto ai Layer e • Toolchain e processo di build identici al
all'editor in console. resto della piattaforma.
• Percorso più semplice e con cold start • Ideale per dipendenze pesanti come ML
generalmente inferiori. e librerie native.

Il container non è più lento per definizione: caching a livelli e ottimizzazione dell'immagine riducono l'avvio.

AWS Lambda · Serverless Computing 32


MODULO 5 · SVILUPPO, PACKAGING E DEPLOYMENT

Lambda Layers

Cosa sono archivi ZIP versionati con librerie, runtime custom o file di configurazione condivisi.

Limite fino a 5 layer per funzione, entro i 250 MB decompressi complessivi.

Vantaggi riuso tra funzioni, pacchetti di deploy più snelli e aggiornamenti centralizzati.

Condivisione distribuibili cross-account o pubblicamente tramite resource policy.

Attenzione i layer sono immutabili e versionati: gestirne il ciclo di vita come artefatti di build.

AWS Lambda · Serverless Computing 33


MODULO 5 · SVILUPPO, PACKAGING E DEPLOYMENT

AWS SAM

Infrastructure as Code Sviluppo locale

• Estensione di CloudFormation con sintassi • `sam local invoke` e `start-api` per


sintetica per il serverless. l'esecuzione in container.
• Risorse `AWS::Serverless::Function`, `Api`, • `sam sync` per iterazioni rapide
`StateMachine`. sull'ambiente di sviluppo.
• Deploy guidato, versionamento e rollback • Generazione di eventi di test per le
nativi. sorgenti più comuni.

Alternativa idiomatica per team che preferiscono un linguaggio di programmazione: AWS CDK.

AWS Lambda · Serverless Computing 34


MODULO 5 · SVILUPPO, PACKAGING E DEPLOYMENT

Serverless Framework e Terraform

Serverless Framework Terraform

• Configurazione YAML orientata alle • Multi-cloud e coerente con il resto


funzioni e agli eventi. dell'infrastruttura aziendale.
• Ecosistema ricco di plugin per packaging • State file, moduli riusabili e piano di
e ottimizzazione. modifica esplicito.

• Astrae comunque CloudFormation sotto • Più verboso sul serverless, ma


il cofano. governance uniforme.

Il criterio di scelta è organizzativo: chi possiede l'infrastruttura e con quale toolchain la gestisce già.

AWS Lambda · Serverless Computing 35


MODULO 5 · SVILUPPO, PACKAGING E DEPLOYMENT

CI/CD per Lambda

1 2 3 4

Build Test Deploy Release


Compilazione, Unit test, analisi Pubblicazione di Traffic shifting
installazione delle statica, scansione una nuova versione canary o lineare
dipendenze e delle dipendenze e e aggiornamento con CodeDeploy e
creazione policy check IaC. dell'alias di rollback su allarme.
dell'artefatto ambiente.
versionato.

Versioni immutabili e alias sono la base per deploy progressivi sicuri e reversibili in secondi.

AWS Lambda · Serverless Computing 36


MODULO 5 · SVILUPPO, PACKAGING E DEPLOYMENT

Lambda Extensions

Come funzionano Casi d'uso

• Processi che affiancano il runtime nello • Agent di observability, APM e tracing di


stesso ambiente di esecuzione. terze parti.
• Internal: nello stesso processo del • Caching di parametri e segreti a bassa
runtime. latenza.
• External: processo separato, con accesso • Controlli di sicurezza runtime e telemetria
alle fasi di init e shutdown.
custom.

Le extension consumano memoria e possono incidere sulla durata: misurarne sempre l'impatto sui costi.

AWS Lambda · Serverless Computing 37


MODULO 5 · SVILUPPO, PACKAGING E DEPLOYMENT

Testing locale e unit testing

Separazione logica di business fuori dall'handler: test veloci e senza dipendenze AWS.

Mocking eventi payload realistici generati da SAM o da librerie di event fixture.

Test di integrazione eseguire contro risorse cloud reali in un ambiente effimero dedicato.

Emulazione container di emulazione locale utile ma non fedele su IAM, limiti e latenze.

Regola pratica testare la logica in locale, testare le integrazioni nel cloud.

AWS Lambda · Serverless Computing 38


MODULO 6 · ORCHESTRAZIONE E PATTERN

Architetture serverless scalabili

Disaccoppiamento Idempotenza Osservabilità

• Code e bus tra i • Consegna at-least-once • Correlation ID


componenti per come assunzione di propagato lungo tutto
assorbire i picchi. base. il flusso.
• Guasti isolati anziché • Chiavi di deduplica e • Tracing distribuito fin
propagati. store di idempotenza. dal primo giorno.

Nel serverless l'architettura si sposta dal codice alla configurazione delle integrazioni tra servizi gestiti.

AWS Lambda · Serverless Computing 39


MODULO 6 · ORCHESTRAZIONE E PATTERN

AWS Step Functions

Orchestrazione Standard vs Express

• Macchine a stati con Task, Choice, • Standard: esecuzioni lunghe, exactly-


Parallel, Map e Wait. once, storico completo.
• Retry, catch e timeout dichiarativi, fuori • Express: alto volume, breve durata, costo
dal codice. inferiore.
• Workflow fino a un anno di durata. • Integrazione diretta con oltre 200 servizi
AWS.

Preferire l'orchestrazione dichiarativa alle catene di funzioni che si invocano a vicenda.

AWS Lambda · Serverless Computing 40


MODULO 6 · ORCHESTRAZIONE E PATTERN

Fan-out e Fan-in

1 2 3 4

Publish Fan-out Process Fan-in


Un evento viene Più code SQS Le funzioni I risultati
pubblicato su un sottoscritte Lambda confluiscono in
topic SNS o su un ricevono una elaborano i batch uno store comune
bus EventBridge. copia dell'evento in modo o in uno stato
in parallelo. indipendente e aggregato.
concorrente.

Il pattern SNS + SQS + Lambda aggiunge buffering, retry indipendenti e DLQ per ogni consumer.

AWS Lambda · Serverless Computing 41


MODULO 6 · ORCHESTRAZIONE E PATTERN

CQRS ed Event Sourcing

CQRS Event Sourcing

• Separazione tra modello di scrittura e • Lo stato è la proiezione di una sequenza


modelli di lettura. immutabile di eventi.
• Read model materializzati e ottimizzati • DynamoDB Streams o Kinesis come log
per query specifiche. degli eventi.
• Scalabilità indipendente dei due percorsi.
• Audit trail completo e replay dello stato
storico.

Prezzo da pagare: consistenza eventuale, versionamento degli eventi e maggiore complessità operativa.

AWS Lambda · Serverless Computing 42


MODULO 6 · ORCHESTRAZIONE E PATTERN

Stateless e persistenza esterna

DynamoDB Aurora Serverless v2 S3 ed ElastiCache

• Latenza costante e • Scaling granulare della • S3 per oggetti e data


scaling on-demand. capacità. lake.
• Modello di consumo • RDS Proxy per il • Cache condivisa per
affine al serverless. pooling delle stato a bassa latenza.
connessioni.

Le connessioni a database relazionali sono la risorsa scarsa: senza pooling la concorrenza satura il database.

AWS Lambda · Serverless Computing 43


MODULO 6 · ORCHESTRAZIONE E PATTERN

Architetture reali

Web backend Elaborazione immagini Data ingestion

• CloudFront e S3 per il • Upload su S3 come • Kinesis Data Streams


frontend statico. trigger dell'evento. come punto di ingresso.
• API Gateway, Lambda e • Lambda per resize, • Lambda per
DynamoDB per le API. watermark e metadati. trasformazione e
arricchimento.
• Cognito per • Step Functions per
l'autenticazione. pipeline multi-step. • Firehose verso S3, poi
Athena.

AWS Lambda · Serverless Computing 44


MODULO 7 · MONITORAGGIO E OSSERVABILITÀ

CloudWatch Logs e metriche

Metriche native Logging

• Invocations, Errors, Duration, Throttles. • Un log group per funzione, con retention
• ConcurrentExecutions, IteratorAge e esplicita.
DestinationDeliveryFailures.
• Log strutturati in JSON interrogabili con
• Allarmi su tasso di errore e percentili di Logs Insights.
durata (p95, p99). • Livelli di log controllati da variabile
d'ambiente.

La retention di default è infinita: impostarla è una delle ottimizzazioni di costo più immediate.

AWS Lambda · Serverless Computing 45


MODULO 7 · MONITORAGGIO E OSSERVABILITÀ

AWS Lambda Powertools

Logger Metrics Tracer

• Log JSON strutturati • Metriche custom in • Annotazioni e


con contesto della formato EMF, senza subsegmenti X-Ray con
funzione. chiamate API sincrone. poche righe.
• Correlation ID • Dimensioni di business • Idempotency e batch
propagato già pronte. processing inclusi nel
automaticamente. toolkit.

Disponibile per Python, TypeScript, Java e .NET: standardizza l'osservabilità tra team e linguaggi.

AWS Lambda · Serverless Computing 46


MODULO 7 · MONITORAGGIO E OSSERVABILITÀ

Distributed Tracing

AWS X-Ray OpenTelemetry

• Service map end-to-end di API, funzioni • Standard vendor-neutral tramite ADOT


e datastore. Lambda Layer.
• Segmenti e subsegmenti per isolare i colli • Export verso X-Ray o backend di terze
di bottiglia. parti.

• Attivabile con il tracing attivo e i • Traccia unica su architetture ibride e


permessi IAM dedicati. multi-cloud.

Tracciare l'intero percorso della richiesta: nelle architetture event-driven la latenza si nasconde nelle integrazioni.

AWS Lambda · Serverless Computing 47


MODULO 7 · MONITORAGGIO E OSSERVABILITÀ

Concorrenza e throttling

Limiti di concorrenza Gestione del throttling

• Account concurrency: 1.000 di default, • Errore 429 TooManyRequestsException


incrementabile su richiesta. al superamento del limite.
• Reserved concurrency: quota garantita • Sincrono: errore al client. Asincrono: retry
e tetto massimo per funzione. automatici.
• Burst iniziale, poi crescita progressiva • Allarmi sulla metrica Throttles e buffering
della capacità. tramite SQS.

Riservare concorrenza a una funzione la sottrae al pool comune: governare la ripartizione a livello di account.

AWS Lambda · Serverless Computing 48


MODULO 8 · FINOPS, PRICING E BEST PRACTICE

Modello di pricing

Componenti di costo Free Tier e ottimizzazione

• Richieste: costo per milione di invocazioni. • 1 milione di richieste e 400.000 GB-secondi al


• Durata: GB-secondi, calcolati su memoria e mese, sempre gratuiti.
tempo al millisecondo.
• Right-sizing della memoria per ridurre il costo
• Voci aggiuntive: Provisioned Concurrency,
totale.
storage effimero e traffico dati.
• Attenzione ai costi indiretti: log, NAT Gateway
e chiamate API a valle.

Il costo di Lambda è spesso minore di quello dei servizi che la circondano: modellare l'intera architettura.

AWS Lambda · Serverless Computing 49


MODULO 8 · FINOPS, PRICING E BEST PRACTICE

Checklist finale delle best practice

Performance Sicurezza Costi e operations

• Handler sottile e • Un ruolo per funzione, • Retention dei log e right-


dipendenze minime. minimo privilegio. sizing.
• Riuso di client e • Segreti in Secrets Manager, • Idempotenza, DLQ e
connessioni. mai nel codice. allarmi attivi.
• Memoria calibrata con • VPC ed endpoint solo dove • Deploy canary con rollback
misure reali. servono. automatico.

Il serverless premia la disciplina architetturale: automazione, osservabilità e revisione continua dei costi.

AWS Lambda · Serverless Computing 50

Potrebbero piacerti anche