Descubra los casos de uso de los flujos de trabajo de Step Functions - AWS Step Functions

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Descubra los casos de uso de los flujos de trabajo de Step Functions

Con él AWS Step Functions, puede crear flujos de trabajo que gestionen el estado a lo largo del tiempo, tomen decisiones en función de los datos entrantes y gestionen los errores y las excepciones.

Procesamiento de datos

A medida que aumenta el volumen de datos de diversas fuentes, las organizaciones necesitan procesar sus datos más rápido para poder tomar decisiones empresariales bien informadas con rapidez. Para procesar los datos a escala, las organizaciones deben aprovisionar recursos de manera elástica para gestionar la información que reciben de los dispositivos móviles, las aplicaciones, los satélites, el marketing y las ventas, los almacenes de datos operativos y la infraestructura, entre otros.

Con un escalado horizontal y flujos de trabajo tolerantes a errores, Step Functions puede ejecutar millones de ejecuciones simultáneas. Puede procesar sus datos más rápido mediante ejecuciones paralelas con Estado del flujo de trabajo paralelo estado. O bien, puede utilizar el paralelismo dinámico del Mapa del estado del flujo de trabajo estado para iterar sobre conjuntos de datos de gran tamaño en un almacén de datos, como los buckets de Amazon S3. Step Functions también ofrece la posibilidad de volver a intentar las ejecuciones fallidas o elegir una ruta específica para gestionar los errores sin gestionar procesos complejos de gestión de errores.

Step Functions se integra directamente con otros servicios de procesamiento de datos proporcionados por, por AWS ejemplo, AWS Batchpara el procesamiento por lotes, Amazon EMR para el procesamiento de macrodatos, AWS Gluepara la preparación de datos, Athena para el análisis de datos y AWS Lambdapara la computación.

Entre los ejemplos de los tipos de flujos de trabajo de procesamiento de datos para los que los clientes utilizan Step Functions se incluyen:

Procesamiento de archivos, vídeos e imágenes

  • Tome una conjunto de archivos de vídeo y conviértalos a otros tamaños o resoluciones que sean ideales para el dispositivo en el que se van a mostrar, como teléfonos móviles, ordenadores portátiles o televisiones.

  • Tome una gran colección de fotos subidas por los usuarios y conviértalas en miniaturas o imágenes de varias resoluciones que luego puedan mostrarse en los sitios web de los usuarios.

  • Tome datos semiestructurados, como un CSV archivo, y combínelos con datos no estructurados, como una factura, para producir un informe empresarial que se envíe mensualmente a las partes interesadas de la empresa.

  • Tome los datos de observación de la Tierra recopilados por los satélites, conviértalos en formatos que se alineen entre sí y, a continuación, agregue otros orígenes de datos recopilados en la Tierra para obtener información adicional.

  • Tome los registros de transporte de los distintos modos de transporte para los productos y busque optimizaciones mediante simulaciones Monte Carlo. Posteriormente, envíe los informes a las organizaciones y personas que confían en usted para enviar sus mercancías.

Coordine los trabajos de extracción, transformación y carga (ETL):

  • Combine los registros de oportunidades de venta con conjuntos de datos de métricas de marketing mediante una serie de pasos de preparación de datos y elabore informes de inteligencia empresarial que se puedan utilizar en toda la organización. AWS Glue

  • Cree, inicie y finalice un EMR clúster de Amazon para el procesamiento de macrodatos.

Cargas de trabajo de procesamiento por lotes y computación de alto rendimiento (HPC):

  • Cree canalizaciones de análisis secundarios de genómica que procesen secuencias genómicas completas sin procesar y las conviertan en llamadas variantes. Alinee archivos sin procesar con una secuencia de referencia y llame a variantes en una lista especificada de cromosomas mediante el paralelismo dinámico.

  • Encuentre eficiencias en la producción de su próximo dispositivo móvil u otros equipos electrónicos mediante la simulación de varios diseños con diferentes compuestos eléctricos y químicos. Proceso sus cargas de trabajo en grandes lotes mediante diversas simulaciones para obtener el diseño óptimo.

Machine learning

El aprendizaje automático permite a las organizaciones analizar rápidamente los datos recopilados para identificar patrones y tomar decisiones con una mínima intervención humana. El aprendizaje automático comienza con un conjunto inicial de datos, conocido como datos de entrenamiento. Los datos de entrenamiento aumentan la precisión de las predicciones de un modelo de aprendizaje automático y actúan como la base a través de la cual el modelo aprende. Una vez que el modelo entrenado se considere lo suficientemente preciso como para satisfacer las necesidades empresariales, puede implementarlo en producción. El proyecto de ciencia de datos de AWS Step Functions en Github es una biblioteca de código abierto que proporciona flujos de trabajo para preprocesar datos, entrenar y luego publicar sus modelos con Amazon SageMaker y Step Functions.

El preprocesamiento de los conjuntos de datos existentes es la forma en que una organización suele crear los datos de entrenamiento. Este método de preprocesamiento agrega información, por ejemplo, etiquetando objetos en una imagen, anotando texto o procesando audio. Para preprocesar los datos AWS Glue, puede utilizar o crear una instancia de bloc de notas que se ejecute en un SageMaker cuaderno de Jupyter. Una vez que los datos estén listos, podrá cargarlos en Amazon S3 para acceder a ellos. A medida que se entrenan los modelos de aprendizaje automático, puede realizar ajustes en los parámetros de cada modelo para mejorar la precisión.

Step Functions proporciona una forma de organizar los flujos de trabajo end-to-end de aprendizaje automático en SageMaker. Estos flujos de trabajo pueden incluir el preprocesamiento y el posprocesamiento de datos, la ingeniería de características, la validación de datos y la evaluación de modelos. Una vez que el modelo se haya implementado en la producción, puede refinar y probar nuevos enfoques para mejorar continuamente los resultados empresariales. Puede crear flujos de trabajo listos para la producción directamente en Python, o puede usar Step Functions Data Science SDK para copiar ese flujo de trabajo, experimentar con nuevas opciones y colocar el flujo de trabajo refinado en producción.

Algunos tipos de flujos de trabajo de machine learning para los que los clientes utilizan Step Functions incluyen:

Detección del fraude

  • Identifique y evite que se produzcan transacciones fraudulentas, como el fraude crediticio.

  • Detecte y evite la apropiación de cuentas mediante modelos de machine learning entrenados.

  • Identifique el abuso promocional, incluida la creación de cuentas falsas, para que pueda tomar medidas con rapidez.

Personalización y recomendaciones

  • Recomiende productos a clientes objetivo en función de lo que se prevé que atraiga su interés.

  • Prediga si un cliente actualizará su cuenta de un nivel gratuito a una suscripción de pago.

Enriquecimiento de datos

  • Utilice el enriquecimiento de datos como parte del preprocesamiento para proporcionar mejores datos de entrenamiento para modelos de machine learning más precisos.

  • Anote fragmentos de texto y audio para agregar información sintáctica, como sarcasmo y jerga.

  • Etiquete objetos adicionales en las imágenes para proporcionar información crítica de la que pueda aprender el modelo, por ejemplo, si se trata de una manzana, un balón de baloncesto, una roca o un animal.

Orquestación de microservicios

Step Functions le ofrece opciones para gestionar sus flujos de trabajo de microservicios.

La arquitectura de microservicios divide las aplicaciones en servicios con acoplamiento flexible. Entre las ventajas se incluyen una escalabilidad mejorada, una mayor resiliencia y un tiempo de comercialización más rápido. Cada microservicio es independiente, de modo que resulta sencillo escalar verticalmente un único servicio o función sin necesidad de escalar toda la aplicación. Los servicios individuales están acoplados de forma flexible, de modo que los equipos independientes pueden centrarse en un único proceso empresarial, sin necesidad de entender toda la aplicación.

Los microservicios también proporcionan componentes individuales que se adaptan a las necesidades de su empresa, lo que le proporciona flexibilidad sin tener que reescribir todo su flujo de trabajo. Los diferentes equipos pueden usar los lenguajes y marcos de programación que prefieran para trabajar con su microservicio.

Para flujos de trabajo de larga duración, puede utilizar los flujos de trabajo estándar con AWS Fargate integración para organizar las aplicaciones que se ejecutan en contenedores. Para flujos de trabajo de corta duración y gran volumen que requieren una respuesta inmediata, los flujos de trabajo express sincrónicos son ideales. Un ejemplo son las aplicaciones móviles o basadas en la web, que requieren completar una serie de pasos antes de obtener una respuesta. Puede activar directamente un flujo de trabajo exprés sincrónico desde Amazon API Gateway y la conexión se mantendrá abierta hasta que se complete el flujo de trabajo o se agote el tiempo de espera. Para flujos de trabajo de corta duración que no requieren una respuesta inmediata, Step Functions ofrece flujos de trabajo rápidos asincrónicos.

Algunos ejemplos de algunas API orquestaciones que utilizan Step Functions son:

Flujos de trabajo sincrónicos o en tiempo real

  • Cambiar un valor de un registro; por ejemplo, actualizar el apellido de un empleado y hacer que el cambio sea visible de inmediato.

  • Actualiza un pedido durante el proceso de pago, por ejemplo, añadiendo, quitando o cambiando la cantidad de un artículo y, a continuación, muestra inmediatamente el carrito actualizado al cliente.

  • Ejecute un trabajo de procesamiento rápido y devuelva inmediatamente el resultado al solicitante.

Orquestación de contenedores

  • Ejecute trabajos en Kubernetes con Amazon Elastic Kubernetes Service o en Amazon Elastic Container ECS Service () con Fargate e intégrelos con otros servicios, como el envío de notificaciones AWS SNS con Amazon, como parte del mismo flujo de trabajo.

Automatización de TI y seguridad

Con Step Functions, puede crear flujos de trabajo que se escalan automáticamente y reaccionan ante los errores de su flujo de trabajo. Sus flujos de trabajo pueden reintentar automáticamente las tareas fallidas y utilizar un retraso exponencial para gestionar los errores.

La gestión de errores es esencial en los escenarios de automatización de la TI para gestionar operaciones complejas y lentas, como actualizar y aplicar parches al software, implementar actualizaciones de seguridad para corregir las vulnerabilidades, seleccionar la infraestructura, sincronizar los datos y enrutar los tickets de soporte. Al automatizar las tareas repetitivas y que requieren mucho tiempo, su organización puede completar las operaciones de rutina de forma rápida y coherente a gran escala. Puede centrarse en los esfuerzos estratégicos, como el desarrollo de funciones, las solicitudes de soporte complejas y la innovación, y, al mismo tiempo, satisfacer sus demandas operativas.

Cuando se requiere la intervención humana para que el flujo de trabajo continúe, por ejemplo, para aprobar un aumento sustancial de crédito, puede definir una lógica de ramificación en Step Functions, de modo que las solicitudes por debajo de un límite se aprueben automáticamente y las solicitudes con ese límite requieran la aprobación humana. Cuando se requiere la aprobación humana, Step Functions puede pausar el flujo de trabajo, esperar una respuesta humana y continuar con el flujo de trabajo una vez recibida la respuesta.

Algunos ejemplos de flujos de trabajo de automatización son los siguientes:

Automatización de TI

  • Corrija automáticamente incidentes como SSH puertos abiertos, poco espacio en disco o cuando se concede acceso público a un bucket de Amazon S3.

  • Automatice la implementación de. AWS CloudFormation StackSets

Automatización de seguridad

  • Automatice la respuesta a un escenario en el que un usuario y su clave de acceso estén expuestos.

  • Remedie automáticamente las respuestas a los incidentes de seguridad de acuerdo con las acciones políticas, como restringir las acciones a áreas específicas. ARNs

  • Advierta a los empleados de los correos electrónicos de suplantación de identidad en cuestión de segundos después de recibirlos.

Aprobación humana

  • Automatice el entrenamiento del modelo de aprendizaje automático y, a continuación, obtenga la aprobación del modelo por parte de un científico de datos antes de implementar el modelo actualizado.

  • Automatice el enrutamiento de los comentarios de los clientes en función del análisis de las opiniones, de modo que los comentarios negativos se envíen rápidamente para su revisión.