Administración de estados y orquestación - Implementación de microservicios en AWS

Administración de estados y orquestación

El carácter distribuido de los microservicios dificulta la orquestación de flujos de trabajo cuando existen varios microservicios involucrados. Los desarrolladores pueden sentirse tentados a agregar código de orquestación directamente en sus servicios. Esto debe evitarse porque introduce un acoplamiento más estrecho y dificulta el reemplazo rápido de los servicios individuales.

Puede usar AWS Step Functions para crear aplicaciones a partir de componentes individuales, cada uno de los cuales realiza una función separada. Step Functions proporciona una máquina de estados que oculta las complejidades de la organización del servicio, como el manejo de errores, la serialización y la paralelización. Esto le permite escalar y cambiar aplicaciones rápidamente evitando códigos de coordinación adicionales dentro de los servicios.

Step Functions es una manera fiable de coordinar los componentes y procesar las funciones de su aplicación. Step Functions proporciona una consola gráfica con la que ordenar y visualizar los componentes de su aplicación en varios pasos. De este modo, crear y ejecutar servicios distribuidos resulta fácil.

Step Functions inicia y sigue cada paso de manera automática, y realiza reintentos cuando se producen errores, por lo que su aplicación se ejecuta en orden y según lo previsto. Step Functions registra el estado de cada paso, de manera que, cuando algo sale mal, puede diagnosticar y depurar los problemas con rapidez. Puede cambiar y agregar pasos sin escribir código para que la aplicación evolucione con facilidad e innovar con mayor velocidad.

Step Functions forma parte de la plataforma sin servidor de AWS y admite la orquestación de funciones de Lambda, así como también aplicaciones basadas en recursos de cómputo, como Amazon EC2, Amazon EKS, Amazon ECS, y servicios adicionales como Amazon SageMaker y AWS Glue. Step Functions administra las operaciones y la infraestructura subyacente para ayudarle a garantizar que su aplicación esté disponible en cualquier escala.

Para crear flujos de trabajo, Step Functions usa el lenguaje de estados de Amazon. Los flujos de trabajo pueden contener pasos secuenciales o paralelos, así como pasos que se bifurcan.

La siguiente figura muestra un ejemplo de flujo de trabajo para una arquitectura de microservicios que combina pasos secuenciales y paralelos. La invocación de dicho flujo de trabajo se puede hacer a través de la API de Step Functions o con API Gateway.

Un ejemplo de un flujo de trabajo de microservicios invocado por Step Functions