Perché e come scegliere un orchestratore
L’orchestrazione coordina l’esecuzione dei task di una pipeline dati: ordine, dipendenze, retry, gestione degli errori e schedulazione. Nell’esame DEA-C01 la domanda ricorrente non è “come si configura”, ma “quale servizio scegliere” dato uno scenario con vincoli di costo, latenza, complessità delle dipendenze e livello di gestione (serverless vs provisioned). I criteri chiave da tenere a mente: numero e complessità delle dipendenze, necessità di portabilità, se il trigger è basato su tempo (schedule) o su eventi (event-driven), tolleranza al costo fisso e competenze già presenti nel team.
AWS Step Functions
AWS Step Functions è un orchestratore serverless a state machine: si definisce un workflow come sequenza di stati con branching, parallelismo (Map/Parallel) e retry/catch nativi per la gestione degli errori. Si integra direttamente con molti servizi AWS (AWS Glue, AWS Lambda, Amazon EMR, Amazon Redshift Data API, Amazon SNS/SQS) senza scrivere codice di collante. Esistono due tipi di workflow: Standard, a lunga durata, con pricing per state transition, ideale per pipeline ETL durature e con esigenze di audit; Express, ottimizzato per alto volume e breve durata, con pricing basato su numero di esecuzioni e durata, adatto a stream processing e workload event-driven ad alta frequenza. Scegli Step Functions quando vuoi orchestrazione serverless con retry robusti e integrazione diretta con i servizi AWS, senza infrastruttura da gestire.
Amazon MWAA e Glue workflows
Amazon MWAA (Managed Workflows for Apache Airflow) è Airflow gestito: definisci le pipeline come DAG in Python, con l’ecosistema di operator e provider di Airflow. È la scelta quando hai dipendenze complesse, vuoi portabilità (DAG riusabili on-prem o multi-cloud), disponi già di competenze Airflow, oppure devi orchestrare sistemi eterogenei oltre ad AWS. Attenzione al modello di costo: MWAA è provisioned, gli environment (scheduler e worker) generano costo anche a pipeline idle, a differenza del serverless di Step Functions.
I Glue workflows orchestrano nativamente componenti AWS Glue — crawler e job — tramite trigger schedulati, on-demand o event-based. Sono la scelta più semplice quando la pipeline vive interamente dentro Glue e non serve coordinare servizi esterni: meno flessibili di Step Functions o Airflow, ma senza infrastruttura aggiuntiva da amministrare.
Orchestrazione event-driven con EventBridge
Amazon EventBridge abilita architetture event-driven: le rule instradano eventi (da servizi AWS, applicazioni custom o sorgenti SaaS) verso target come Step Functions, Lambda o Glue, disaccoppiando produttore e consumatore. Un pattern tipico d’esame: l’arrivo di un file su Amazon S3 genera una event notification che, tramite EventBridge, avvia la pipeline — trigger event-driven, non a polling. Per la schedulazione ricorrente si usa EventBridge Scheduler (o le scheduled rule con espressione cron/rate), utile ad avviare una state machine Step Functions o un DAG a orari fissi. Concetto chiave: EventBridge non “esegue” la pipeline, la innesca. La logica di orchestrazione vera e propria resta a Step Functions, MWAA o Glue.
Trappole tipiche d’esame
- Dipendenze complesse + portabilità o competenze Airflow esistenti → Amazon MWAA: se lo scenario cita DAG, Airflow o riuso multi-cloud, la risposta è MWAA, non Step Functions.
- Minimo overhead operativo e serverless → Step Functions o Glue workflows: MWAA è provisioned e costa anche da fermo; se il vincolo è “nessuna infrastruttura da gestire”, scarta MWAA.
- Trigger sull’arrivo di un file in S3 → EventBridge (event-driven), non uno schedule: se lo scenario dice “appena arriva il file”, la soluzione è event-driven, non una scheduled rule ogni N minuti.
- Alto volume, breve durata, event-driven → Step Functions Express, non Standard: Standard costa per state transition ed è pensato per workflow lunghi; Express regge throughput elevato a costi inferiori.
- Pipeline interamente in AWS Glue (crawler + job) → Glue workflows: non introdurre Step Functions o MWAA se non ci sono servizi esterni da coordinare.
- “Schedulare” un’esecuzione ricorrente → EventBridge Scheduler: EventBridge gestisce l’innesco a orario ma non sostituisce la logica di workflow di Step Functions, MWAA o Glue.