Qu'est-ce qu'un flux de travail ?
Un flux de travail décrit la façon dont des personnes accomplissent un travail, du début à la fin. Un flux de travail inclut les étapes et les états d'un processus. Il peut prendre la forme d'une série d'étapes dans une liste de contrôle, ou d'un diagramme donnant une représentation graphique de ces étapes.
Voici un exemple de flux de travail d'assistance simple :
- Carl, un client, lance une demande d'assistance.
- Le dossier ouvert est confié à Sasha, une représentante du service client.
- Sasha reçoit le cas attribué et demande des informations à Carl. En attendant la réponse, le statut du dossier est « En attente ».
- Une fois que Carl a fourni les informations demandées, Sasha répond avec une solution, puis met à jour le statut du dossier sur « Résolu ».
- Carl reçoit la réponse, ainsi qu'un lien de sondage où il peut fournir des commentaires sur sa demande d'assistance. Il est ravi de la réponse rapide de Sasha et donne des notes élevées dans l'enquête. Le statut du dossier est mis à jour et devient « Clos ».
Dans ce flux de travail, les étapes sont « démarrer », « affecter », « résoudre » et « fermer ». Les états sont « ouvert », « attribué », « en attente », « résolu » et « clos ». Les étapes font passer le processus d'un état à l'autre le long d'un chemin jusqu'à ce qu'il soit terminé.
Quels sont les avantages de l'utilisation des flux de travail ?
Les flux de travail fournissent un ensemble d'étapes et de tâches répétables que vous pouvez lancer, planifier et surveiller.
Vous pouvez visualiser les flux de travail à des fins d'observation, valider l'exactitude du flux de travail et surveiller les opérations dans le flux de travail.
Grâce aux flux de travail, les entreprises peuvent atteindre des niveaux de fiabilité améliorés pour les applications distribuées sans ajouter de complexité supplémentaire à leur code. Vous pouvez automatiser, optimiser et faire évoluer les flux de travail à un niveau granulaire.
Qu'est-ce que les flux de travail apportent à l'architecture des applications ?
Les flux de travail favorisent la séparation logique entre le flux de contrôle de la logique par étapes de votre travail et les unités de travail réelles qui contiennent la logique unique à votre entreprise. Avec cette division, vous pouvez gérer, entretenir et faire évoluer la machine à états de votre application indépendamment de la logique principale de votre entreprise.
À mesure que les besoins de votre entreprise évoluent, vous pouvez facilement modifier la logique d'application sans modifier la machine à états sous-jacente, la répartition des tâches et le contrôle des flux.
Comment les services de flux de travail améliorent-ils l'architecture des applications ?
Fiabilité
La séparation du suivi des états et du traitement des tâches apporte de la fiabilité à une architecture basée sur le cloud. À l'aide des services de flux de travail, vous pouvez répartir les tâches aux composants de l'application, suivre leur progression et connaître l'état le plus récent du système.
Simplicité
Les flux de travail remplacent la complexité des solutions locales codées sur mesure et du code d'automatisation des processus.
Les tâches qui régissent les étapes de traitement peuvent être de longue durée et peuvent échouer, ne pas s'effectuer à temps ou nécessiter un redémarrage. Ils se complètent souvent avec des débits et des latences variables. Dans tous ces cas, le suivi et la visualisation des tâches constituent non seulement un défi, mais aussi un travail indifférencié.
Grâce aux services de flux de travail, les développeurs peuvent éviter de gérer l'infrastructure de l'automatisation des processus. Ils peuvent ainsi concentrer leur énergie sur la fonctionnalité unique de leur application.
Capacité de mise à l'échelle
Les services de flux de travail sont conçus pour évoluer en toute transparence avec l'utilisation de votre application. À mesure que vous ajoutez des flux de travail supplémentaires à votre application ou que vous augmentez la complexité de vos flux de travail, vous pouvez automatiser l'administration du service de flux de travail.
Flexibilité
Les développeurs peuvent utiliser les services de flux de travail pour créer des composants d'application et une logique de coordination dans divers langages de programmation. Les développeurs peuvent ensuite se concentrer sur leur logique applicative différenciée.
Quels sont les exemples d'utilisation courants des flux de travail ?
Les flux de travail peuvent aider à résoudre tout problème informatique ou processus métier qui peut être divisé en une série d'étapes. Les flux de travail simplifient la gestion des tâches grâce aux interdépendances. Parmi les cas d'utilisation les plus courants, on trouve notamment les cas suivants :
- Orchestration des applications : coordonnez des microservices faiblement couplés, chacun s'exécutant dans son propre processus et déployé indépendamment, par le biais de la communication d'événements. Combinez des fonctions sans serveur pour créer une application web avec une étape d'approbation humaine asynchrone. Pour plus d'exemples de cas d'utilisation, consultez Microservice orchestration dans le manuel AWS Step Functions Developer Guide.
- Le traitement des données : il consiste à consolider des données présentes dans plusieurs jeux de données dans des rapports unifiés, à affiner et réduire d'importants jeux de données dans des formats utiles, ou à coordonner des analyses en plusieurs étapes et flux de travail d'apprentissage machine. Pour plus d'exemples de cas d'utilisation, consultez Data processing dans le manuel AWS Step Functions Developer Guide.
- L'automatisation DevOps et IT : permet de construire des outils pour une intégration et un déploiement, ou de créer des applications commandées par les événements qui répondent automatiquement aux modifications de l'infrastructure. Pour plus d'exemples de cas d'utilisation, consultez IT and Security Automation dans le manuel AWS Step Functions Developer Guide.
- E-commerce : automatisez des processus métiers critiques, tels que l'exécution des commandes et le suivi des stocks.
- Applications Web : mettez en œuvre des processus d'enregistrement et d'authentification des utilisateurs robustes, en intégrant éventuellement des étapes d'audit et de sécurité renforcée.
- Machine learning : exécutez des tâches d'extraction, de transformation et de chargement (ETL) pour créer, former et déployer un modèle de machine learning. Par exemple, la collecte et le traitement de données d'image pour détecter des objets dans un flux vidéo, pour ajouter des cadres de sélection ou pour fournir des informations visuelles et de métadonnées pour le catalogage des données. Pour plus d'exemples de cas d'utilisation, consultez Machine learning dans le manuel AWS Step Functions Developer Guide.
- Automatisation de la sécurité : analyse planifiée ou réponse aux incidents de sécurité initiée par des événements de ressources gérées, avec des flux de travail personnalisés qui appellent des étapes d'audit et de notification en fonction des règles métier.
- Traitement multimédia — Extrayez les données de documents PDF ou d'images pour les traiter. Séparez et transcodez la vidéo en utilisant une parallélisation massive. Pour plus d'exemples de cas d'utilisation, consultez Media Processing dans les cas d'utilisations AWS Step Functions.
Comment créer un flux de travail ?
Les développeurs peuvent initialement créer des solutions codées personnalisées et du code d'automatisation des processus. Ces solutions commencent simplement, mais ont tendance à devenir complexes et sont sources d'erreurs avec le temps et le développement. L'effort requis pour mettre à jour la logique métier augmente et le taux de changement ralentit au fil du temps.
Vous pouvez atténuer une partie de la complexité des solutions locales en adoptant des bibliothèques spécifiques aux flux de travail. Toutefois, la configuration de ces outils peut ajouter de nouvelles complexités au processus. Les étapes et les états du flux de travail peuvent encore être difficiles à visualiser.
La création et la surveillance avancées des flux de travail nécessitent des outils visuels pour organiser les états et les étapes du flux de travail. Dans ces outils, les règles de logique métier sont disponibles pour la gestion et la mise à jour. L'utilisation d'outils graphiques peut améliorer la productivité des développeurs et la visibilité du flux de travail, et peut réduire le risque d'erreur.
Pour un didacticiel pratique utilisant le concepteur visuel de flux de travail Workflow Studio, consultez How do I create a serverless workflow dans le centre de développement AWS.
Quels sont les modèles de flux de travail courants ?
À l'aide de flux de travail, vous pouvez vous concentrer sur la définition des interactions entre les composants, plutôt que sur l'écriture d'un logiciel pour faire fonctionner les interactions.
Les flux de travail peuvent orchestrer à la fois des microservices et des conteneurs. Les modèles courants pour les flux de travail incluent le chaînage de microservices, les réponses asynchrones ou synchrones, les interactions humaines, l'orchestration et la chorégraphie des conteneurs, le branchement et la gestion des erreurs.
Quels sont les services de flux de travail proposés par AWS ?
AWS Step Functions est un service de flux visuel à faible code servant à orchestrer les services AWS, automatiser les processus opérationnels et créer des applications sans serveur. Step Functions inclut Workflow Studio, un concepteur de flux de travail visuel par glisser-déposer à faible code. Cet outil génère automatiquement vos fonctions et votre configuration dans Amazon States Language, un langage structuré, basé sur JSON et utilisé pour définir les machines à états. Vous pouvez utiliser Amazon States Language dans la console Step Functions, ou bien l'exporter et le modifier.
Amazon Managed Workflows for Apache Airflow (Amazon MWAA) fournit la même expérience Apache Airflow open source, mais en tant que service entièrement géré. Utilisez Amazon MWAA pour déplacer vos solutions sur site existantes vers le cloud afin de réduire les coûts opérationnels et de les déployer à grande échelle. Les développeurs peuvent continuer à écrire des modèles de graphes acycliques dirigés (DAG) en Python, en déclarant des dépendances pour les tâches, tout en s'intégrant à d'autres services AWS.
Nous recommandons d'utiliser AWS Step Functions pour toutes les nouvelles applications, car il fournit une approche plus productive et plus agile pour la coordination des composants d'application à l'aide de flux de travail visuels. Pour un didacticiel pratique utilisant à la fois Step Functions Workflow Studio et Amazon States Language, consultez How do I create a serverless workflow dans le centre de développement AWS.
Prochaines étapes avec le flux de travail sur AWS
Créer des flux de travail avec plus de 200 services AWS et 9 000 actions d'API
Commencez à créer avec API Gateway dans la Console de gestion AWS.