Orchestrazione - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Orchestrazione

In questo approccio, un singolo orchestratore è responsabile della chiamata di ogni microservizio, della determinazione se effettuare chiamate in sequenza o in parallelo, della manipolazione delle risposte dei singoli servizi lungo il percorso e della compilazione del risultato finale. Un orchestratore può combinare chiamate sincrone e asincrone.

AWS Step Functionse Amazon Managed Workflows for Apache Airflow (Amazon MWAA) sono ottime scelte per gli orchestratori di flussi di lavoro.

L'orchestrazione è una buona scelta quando ci sono rami logici nel processo e hai bisogno di un unico posto per incapsulare tale logica. È utile anche quando si desidera implementare il modello asincrono di controllo dei reclami. Ad esempio, i flussi di lavoro standard in Step Functions possono mettere in pausa un flusso di lavoro e attendere una richiamata da un altro servizio. L'uso di un orchestratore migliora anche il monitoraggio e l'osservabilità di un processo.

Esempio: Step Functions

Puoi usare Step Functions per coordinare più funzioni Lambda e altre Servizi AWS, per creare flussi di lavoro complessi per l'integrazione di microservizi. Questa opzione è particolarmente utile per processi di lunga durata e in più fasi che coinvolgono diversi microservizi.

Dovresti prendere in considerazione l'utilizzo di Step Functions se:

  • L'integrazione dei microservizi implica processi complessi e in più fasi.

  • È necessario mantenere lo stato durante le operazioni di lunga durata.

  • Desiderate implementare la gestione degli errori e la logica dei tentativi a livello di flusso di lavoro.

  • È necessario coordinare le operazioni sincrone e asincrone.

Step Functions offre un editor visivo per la progettazione di flussi di lavoro complessi, che semplifica il processo di creazione e gestione di macchine a stati. Fornisce meccanismi integrati di gestione degli errori, tra cui la logica dei tentativi e la gestione dello stato di errore, che migliorano l'affidabilità e la robustezza delle applicazioni. I flussi di lavoro standard supportano processi di lunga durata fino a un anno, il che è adatto per flussi di lavoro che si estendono per periodi prolungati. Questa opzione separa la logica di orchestrazione dal codice dell'applicazione, in modo da ridurre significativamente la complessità del codice. Ciò significa che gli sviluppatori possono concentrarsi sulla logica aziendale principale mentre Step Functions gestisce il controllo del flusso e il coordinamento dei componenti distribuiti.

Ad esempio, si consideri un processo di approvazione di un prestito in un'applicazione di servizi finanziari, illustrato nel diagramma seguente. Il processo inizia quando viene presentata una richiesta di prestito.

Viene utilizzato AWS Step Functions per creare flussi di lavoro complessi per l'integrazione di microservizi.

Nella macchina a stati illustrata nel diagramma precedente, Step Functions orchestra i seguenti passaggi:

  • Convalida dei dati dell'applicazione (funzione Lambda)

  • Verifica il punteggio di credito (funzione Lambda che richiama un'API esterna)

  • Valutazione del rischio (funzione Lambda)

  • Se il rischio è elevato, passa alla revisione manuale (attività di approvazione umana)

  • Se approvato, avvia l'erogazione del prestito (funzione Lambda)

  • Invia una notifica al richiedente (Amazon SNS)

Puoi utilizzare questo approccio per gestire in modo affidabile un processo complesso e potenzialmente di lunga durata, con una gestione degli errori integrata e la possibilità di includere passaggi automatici e manuali.

Considerazioni:

  • Progetta attentamente la tua macchina a stati per gestire tutti gli scenari possibili.

  • Esegui i passaggi in parallelo ove possibile.

  • Utilizza i meccanismi integrati di gestione degli errori e riprova in Step Functions per errori permanenti e temporanei.

  • Prendi in considerazione l'utilizzo di flussi di lavoro standard o rapidi in base al tuo caso d'uso. I flussi di lavoro rapidi potrebbero essere preferibili per flussi di lavoro di breve durata o ad alto volume.

  • Monitora le metriche di esecuzione per ottimizzare il flusso di lavoro.

  • Utilizza flussi di lavoro annidati per incapsulare e riutilizzare le funzionalità su più macchine a stati.

  • Per flussi di lavoro complessi, prendi in considerazione l'utilizzo di Amazon Bedrock Agents come alternativa a Step Functions.

Per ulteriori informazioni, consulta la documentazione di Step Functions.

Esempio: Amazon MWAA

Se la tua organizzazione utilizza già Apache Airflow, Amazon MWAA è una scelta naturale come orchestratore di flussi di lavoro. In Apache Airflow, puoi creare flussi di lavoro come grafici aciclici diretti () usando Python. DAGs La rappresentazione DAG della macchina a stati illustrata nella sezione Step Functions potrebbe avere il seguente aspetto:

Utilizzo di Amazon MWAA e creazione di flussi DAGs di lavoro complessi per l'integrazione di microservizi.

Per informazioni su come lavorare DAGs, consulta la documentazione di Amazon MWAA.

Principali differenze tra Step Functions e Amazon MWAA

  • Step Functions è un servizio serverless completamente gestito, quindi non è necessario predisporre alcuna infrastruttura e non è necessario pianificare una finestra di manutenzione. Amazon MWAA deve essere distribuito in anticipo e sei tu a scegliere la dimensione e il numero di nodi nel cluster.

  • In Step Functions, è possibile creare macchine a stati in vari modi, tra cui Workflow Studio, direttamente come JSON o utilizzando. AWS Cloud Development Kit (AWS CDK) Apache DAGs Airflow è scritto in Python.

  • Con Step Functions, non è previsto alcun costo in assenza di flussi di lavoro in esecuzione. Con Amazon MWAA, dovrai sostenere dei costi anche quando non è in esecuzione. DAGs