Cos'è un flusso di lavoro?
Un flusso di lavoro descrive come un lavoro viene svolto dall'inizio alla fine. ed è costituito dai passaggi e dagli stati di un processo. I flussi di lavoro possono apparire come una serie di passaggi in un elenco di controllo o come un diagramma che visualizza tali passaggi.
Di seguito è riportato un esempio di flusso di lavoro di supporto semplice:
- Carl, un cliente, invia una richiesta di supporto.
- Il caso aperto è assegnato a Sasha, un rappresentante dell'assistenza.
- Sasha riceve il caso assegnato e chiede informazioni a Carl. In attesa della risposta, lo stato del caso è in sospeso.
- Dopo che Carl ha fornito le informazioni richieste, Sasha risponde con una soluzione e quindi aggiorna lo stato del caso su risolto.
- Carl riceve la risposta e un link al sondaggio in cui può fornire feedback sulla sua richiesta di assistenza. È contento della rapida risposta di Sasha e dà valutazioni elevate nel sondaggio. Lo stato del caso viene aggiornato a chiuso.
In questo flusso di lavoro, i passaggi sono "inizio", "assegnazione", "risoluzione" e "chiusura". Gli stati sono "aperto", "assegnato", "in sospeso", "risolto" e "chiuso". I passaggi spostano il processo da uno stato all'altro lungo un percorso fino al completamento del flusso di lavoro.
Quali sono i vantaggi di utilizzare i flussi di lavoro?
I flussi di lavoro forniscono una serie di passaggi e attività ripetibili che è possibile avviare, pianificare e monitorare.
Puoi visualizzare i flussi di lavoro per l'osservazione, convalidare la correttezza del flusso di lavoro e monitorare le operazioni nel flusso di lavoro.
Con i flussi di lavoro, le aziende possono raggiungere livelli migliori di affidabilità per le applicazioni distribuite senza aggiungere ulteriore complessità al loro codice. Puoi automatizzare, ottimizzare e scalare i flussi di lavoro a livello granulare.
Cosa apportano i flussi di lavoro all'architettura delle applicazioni?
I flussi di lavoro promuovono una separazione tra la logica graduale del flusso di controllo del lavoro in background e le unità reali di lavoro che contengono la logica aziendale propria di ogni impresa. Con questa divisione, puoi gestire, mantenere e scalare la macchina a stati della tua applicazione in maniera separata dalla logica aziendale principale.
Al cambiare dei tuoi requisiti aziendali, puoi cambiare la logica dell’applicazione senza doverti preoccupare della macchina a stati, della distribuzione delle attività e del controllo dei flussi sottostanti.
In che modo i servizi dei flussi di lavoro migliorano l'architettura delle applicazioni?
Affidabilità
La separazione tra il monitoraggio dello stato e l'elaborazione delle attività conferisce affidabilità a un'architettura basata su cloud. Utilizzando i servizi dei flussi di lavoro, è possibile inviare attività ai componenti dell'applicazione, monitorarne lo stato di avanzamento e conoscere lo stato più recente del sistema.
Semplicità
I flussi di lavoro sostituiscono la complessità delle soluzioni personalizzate e del codice di automazione dei processi.
Le attività che promuovono le fasi di elaborazione possono essere a lunga esecuzione e possono restituire errori, esaurire il tempo o richiedere riavvii. Sono spesso completate da throughput e latenze variabili. In tutti questi casi, il monitoraggio e la visualizzazione delle attività non sono solo un lavoro difficoltoso, ma anche non differenziato.
Con i servizi dei flussi di lavoro, gli sviluppatori possono evitare di gestire l'impianto idraulico dell'infrastruttura dell'automazione dei processi. Di conseguenza, possono concentrare le loro energie sulla funzionalità unica della loro applicazione.
Scalabilità
I servizi per i flussi di lavoro sono progettati per adattarsi perfettamente all'utilizzo dell'applicazione. Non è necessaria amministrazione manuale del servizio per i flussi di lavoro ed è possibile aggiungere più flussi di lavoro all’applicazione o aumentarne la complessità.
Flessibilità
Gli sviluppatori possono utilizzare i servizi dei flussi di lavoro per creare componenti applicativi e logica di coordinamento in vari linguaggi di programmazione. Gli sviluppatori possono quindi concentrarsi sulla loro logica applicativa differenziata.
Quali sono alcuni casi d'uso comuni del flusso di lavoro?
I flussi di lavoro possono aiutare con qualsiasi problema computazionale o processo aziendale che può essere suddiviso in una serie di passaggi. I flussi di lavoro semplificano la gestione dei lavori con interdipendenze. I casi d’uso più comuni sono:
- Orchestrazione delle applicazioni: coordinamento di microservizi liberamente accoppiati, ognuno in esecuzione nel proprio processo e distribuito in modo indipendente, attraverso la comunicazione degli eventi. Combina le funzioni serverless per creare un'applicazione Web con una fase di approvazione umana asincrona. Per altri esempi di use case, consulta l'orchestrazione dei microservizi nella Guida per sviluppatori di AWS Step Functions.
- Elaborazione dati: consolida i dati da vari database in report unificati, perfezionare e ridurre set di dati large in formati utili, o coordinare analisi multi-step e flussi di lavoro machine learning Per altri esempi di casi d'uso, consulta Elaborazione dei dati nella Guida per sviluppatori di AWS Step Functions.
- DevOps e automazione IT: costruire strumenti per integrazione continua e distribuzione continua, o creare un’applicazione guidata dagli eventi che risponde automaticamente ai cambi nell’infrastruttura. Per altri esempi di casi d'uso, consulta IT e automazione della sicurezza nella Guida per sviluppatori di AWS Step Functions.
- E-commerce: automatizza processi di business mission-critical, come l’evasione degli ordini e il monitoraggio dell’inventario.
- Applicazioni Web: implementano solidi processi di registrazione e autenticazione degli utenti, integrando facoltativamente passaggi per il controllo e una maggiore sicurezza.
- Machine learning: esegue processi di estrazione, trasformazione e caricamento (ETL) per creare, addestrare e distribuire un modello di machine learning. Ad esempio, la raccolta e l'elaborazione di dati immagine per rilevare oggetti all'interno di un flusso video, aggiungere riquadri di selezione o fornire informazioni visive e sui metadati per la catalogazione dei dati. Per altri esempi di casi d'uso, consulta Machine learning nella Guida per sviluppatori di AWS Step Functions.
- Automazione della sicurezza: analisi pianificata o risposta agli incidenti di sicurezza avviata da eventi di risorse gestiti, con flussi di lavoro personalizzati che richiamano passaggi di controllo e notifica a seconda delle regole aziendali.
- Elaborazione multimediale: consente di estrarre dati da documenti o immagini PDF per l'elaborazione. Divisione e transcodifica video utilizzando una parallelizzazione massiva. Per altri esempi di casi d'uso, consulta Elaborazione dei supporti nei casi d’uso di AWS Step Functions.
Come si crea un flusso di lavoro?
Gli sviluppatori possono inizialmente creare soluzioni con codice personalizzato e codice di automazione dei processi. Queste soluzioni iniziano semplicemente, ma tendono a diventare complesse e soggette a errori con il tempo e lo sviluppo. Lo sforzo necessario per aggiornare la logica di business aumenta e il tasso di cambiamento rallenta nel tempo.
È possibile ridurre parte della complessità delle soluzioni sviluppate internamente adottando librerie specifiche per i flussi di lavoro. Tuttavia, la configurazione di questi strumenti può aggiungere nuove complessità al processo. Le fasi e gli stati del flusso di lavoro potrebbero essere ancora difficili da visualizzare.
La creazione e il monitoraggio avanzati dei flussi di lavoro richiedono strumenti visivi per organizzare stati e passaggi del flusso di lavoro. In questi strumenti, le regole della logica aziendale sono disponibili per la gestione e l'aggiornamento. L'utilizzo di strumenti grafici può migliorare la produttività degli sviluppatori e la visibilità del flusso di lavoro e ridurre il rischio di errori.
Per un'esercitazione pratica sull'utilizzo dello strumento di progettazione visiva del flusso di lavoro Workflow Studio, consulta Come creare un flusso di lavoro serverless nel Centro per sviluppatori AWS.
Quali sono i modelli per i flussi di lavoro più comuni?
Utilizzando i flussi di lavoro, puoi concentrarti sulla definizione delle interazioni dei componenti, piuttosto che sulla scrittura di software per far funzionare le interazioni.
I flussi di lavoro possono orchestrare sia microservizi che container. I modelli comuni per i flussi di lavoro includono concatenamento di microservizi, risposte asincrone o sincrone, interazioni umane, orchestrazione e coreografia dei container, ramificazione e gestione degli errori.
Quali servizi di flusso di lavoro fornisce AWS?
AWS Step Functions è un servizio di flusso di lavoro visivo a basso codice utilizzato per gestire i servizi AWS, automatizzare i processi aziendali e creare applicazioni serverless. Step Functions include Workflow Studio, un progettista visivo di workflow a basso codice con trascinamento della selezione Questo strumento genera automaticamente le funzioni e la configurazione in Amazon States Language, un linguaggio strutturato basato su JSON utilizzato per definire le macchine a stati. Puoi utilizzare Amazon States Language nella console Step Functions oppure esportarlo e modificarlo.
Flusso di lavoro gestito da Amazon per Apache Airflow (Amazon MWAA) offre la stessa esperienza open source di Apache Airflow ma come servizio completamente gestito. Usa Amazon MWAA per spostare le tue soluzioni on-premise esistenti nel cloud per ridurre i costi operativi e distribuirle su larga scala. Gli sviluppatori possono continuare a scrivere modelli di grafi aciclici diretti (DAG) in Python, dichiarando le dipendenze per le attività e integrandosi con altri servizi AWS.
AWS Step Functions dovrebbe essere preso in considerazione per tutte le nuove applicazioni, in quanto offre un approccio più produttivo e agile per il coordinamento dei componenti dell’applicazione grazie alla presenza di flussi di lavoro visivi. Per un tutorial pratico che utilizza Step Functions Workflow Studio e Amazon States Language, consulta Come creare un flusso di lavoro serverless nel Centro per sviluppatori AWS.
Passaggi successivi con il flusso di lavoro su AWS
Costruisci flussi di lavoro con più di 200 servizi AWS e 9.000 operazioni API
Inizia subito a costruire con API Gateway nella console di gestione AWS.