Dar el primer paso
Introducción
La integración de aplicaciones es un conjunto de servicios que permiten la comunicación entre componentes desacoplados en microservicios, sistemas distribuidos, y aplicaciones sin servidor. Amazon Web Services (AWS) ofrece más de media docena de servicios de integración de aplicaciones para soportar un conjunto diverso de cargas de trabajo que se ejecutan en la nube.
Elegir un servicio de integración que mejor se adapte a su organización y a sus cargas de trabajo puede resultar difícil. Esta guía de decisiones le ayudará a formular las preguntas correctas para descubrir sus requisitos y le proporcionará una guía clara sobre cómo evaluar y elegir los servicios de integración correctos para sus cargas de trabajo.
Este clip de ocho minutos y medio pertenece a una grabación de una hora de duración de una presentación del director de estrategia empresarial de AWS, Gregor Hohpe, en AWS re:Invent 2022. Proporciona una descripción general de los servicios de integración de aplicaciones de AWS disponibles.
Hora de leer
20 minutos
Objetivo
Ayude a determinar qué servicios de integración de aplicaciones de AWS son los más adecuados para sus cargas de trabajo.
Nivel
Principiante
Última actualización
31 de mayo de 2023
Servicios cubiertos
Más guías de decisión sobre
Comprensión
A medida que comience a explorar y comprender sus criterios, su entorno, y el conjunto de servicios de integración que ofrece AWS, le recomendamos que revise algunas prácticas recomendadas. Estas prácticas recomendadas se aplican independientemente del servicio (o conjunto de servicios) que elija.
Comprenda la integración en su entorno
Es habitual que algunas organizaciones dediquen más tiempo del que desearían a mantener las integraciones de código abierto. Le recomendamos que considere fuentes comunitarias y/o el respaldo de empresas o fundaciones al realizar estas inversiones. La inversión en estos proyectos no es solo financiera, sino también una inversión en capital de conocimiento y, potencialmente, en una deuda técnica, ya que estos componentes y las integraciones asociadas suelen necesitar una actualización. Para obtener más información, consulte el blog de código abierto de AWS.
Comprenda las características de su arquitectura
La capacidad de soportar una amplia gama de arquitecturas es importante. Le recomendamos que aproveche el AWS Well-Architected Framework como guía para ayudarle a comprender las decisiones que toma al crear sistemas en AWS. Además, el uso del Well-Architected Framework le permite aprender las mejores prácticas arquitectónicas para diseñar y operar sistemas confiables, escalables, seguros, eficientes y rentables en la nube.
Utilice una combinación de servicios de integración
Tenga en cuenta que, en el caso de los servicios diseñados específicamente, una combinación de servicios puede ser la mejor opción para su caso de uso. A continuación, se enumeran algunas maneras comunes en las que los clientes de AWS utilizan una combinación de servicios.
- Enrutar los eventos de Amazon EventBridge o Amazon Simple Notification Service (Amazon SNS) a una cola de Amazon Simple Queue Service (Amazon SQS) a modo de amortiguador para los consumidores posteriores.
- Extraer eventos directamente de una secuencia de datos (Kinesis Data Streams o Amazon Managed Streaming para Apache Kafka (Amazon MSK)) o de una cola (SQS o Amazon MQ) con EventBridge Pipes y enviarlos a un EventBridge Bus para enviarlos a los consumidores.
- Enrutar eventos de EventBridge o SNS a Kinesis Data Streams o Amazon MSK para la recopilación y visualización de datos analíticos.
Defina
Una vez que tenga una idea más clara de sus criterios, su entorno, la dirección estratégica, y los servicios disponibles (incluidas las modalidades de despliegue alojadas y gestionadas), deberá identificar sus requisitos de integración. Es posible que ya conozca algunos requisitos si está migrando a una plataforma de integración o un agente de mensajes existente. Sin embargo, debe establecer cómo cambiarían estos requisitos si se mudara a un entorno de nube, si es que lo hiciera.
Plataformas de mensajería o streaming
Se espera que estas plataformas cumplan con una determinada funcionalidad empresarial. Utilice los siguientes ejemplos de casos prácticos para considerar qué funcionalidades necesitará.
Ejemplo 1:
Considere una compañía de seguros que recibe diferentes reclamaciones como mensajes para diferentes tipos de reclamaciones (automóviles, viviendas, o vida), cada una con reglas comerciales diferentes. Esto puede significar que el consumidor del mensaje debe tener la funcionalidad de dirigir las reclamaciones a un destino diferente en función de las propiedades del encabezado del mensaje.
Ejemplo 2:
Considere una aerolínea en la que se debe notificar una actualización del estado de un vuelo a todos los sistemas conectados, tales como el equipaje o las operaciones de puerta de embarque, mediante un protocolo como el Advanced Messaging Queuing Protocol (AMQP). La gran pregunta con las primitivas de casos de uso funcional y empresarial es ¿qué constituye una plataforma de mensajería más adecuada? Tenemos varias opciones que pueden determinar la idoneidad de la plataforma en función del caso de uso.
Adopción en el mercado: Esta plataforma es ampliamente adoptada por una enorme comunidad de clientes y es lo suficientemente buena para la mayoría de los casos de uso. Se la ha probado y comprobado con una comunidad de soporte dinámica para detectar cualquier problema que pueda surgir. Es una decisión de bajo riesgo con suficiente capacitación disponible para los recursos de desarrollo.
La mejor opción para el caso de uso: estas plataformas se adaptarán a casos de uso específicos de la industria, como las aerolíneas, la logística, o la atención médica. Es posible que sean la mejor opción para esos casos de uso con plantillas listas para usar disponibles para su adopción. Estas plataformas pueden ser fáciles de poner en marcha, pero pueden carecer del nivel de adopción y de la flexibilidad en el mercado. La adopción de una plataforma de este tipo puede requerir mucho tiempo y recursos para la validación y la creación de experiencia interna.
Modernas: Se han creado estas plataformas con la arquitectura de la próxima generación para abordar los despliegues a escala de nube, la multitenencia, la recuperación de desastres, y los tipos de precios sin servidor. El uso de este tipo de plataforma puede requerir una cierta refactorización de las cargas de trabajo para garantizar su viabilidad a largo plazo. Utiliza una nube de
plataforma nativa y se centra en utilizar los principios bien diseñados de las aplicaciones modernas.
Ejemplo 3:
En el caso que la plataforma de mensajería forma parte de un flujo de trabajo de procesamiento de préstamos más amplio que debe ser multirregional, la plataforma de mensajería también debe apoyar los mismos requisitos empresariales. Si la empresa necesita la capacidad de recuperarse y volver a un estado previo en situaciones difíciles, la plataforma de mensajería o transmisión subyacente también necesita la capacidad de tomar instantáneas o reproducción a fin de recrear el estado del sistema.
La plataforma de integración que escoge usted debe facilitar el procesamiento asincrónico de las solicitudes de préstamo o actuar como canal de almacenamiento y reenvío para un flujo de trabajo de procesamiento de contenidos multimedia de varios pasos. La criticidad del proceso empresarial determinaría las capacidades necesarias de la plataforma de mensajería o de streaming.
Considere
Cuando se considera una arquitectura de integración importante en la nube, hay diferentes maneras de determinar los requisitos funcionales para cada uno de los puntos de integración.
Los siguientes son algunos de los criterios que se deben considerar al escoger una aplicación de servicio de integración.
-
Gastos generales de servicio y operación gestionados
-
Código abierto
-
Características de carga de trabajo
-
Rápida iteración y velocidad de características
-
Portabilidad de aplicaciones
-
Portabilidad de la automatización
-
Tamaño y habilidades de la organización
-
Considere la posibilidad de migrar a la nube para reducir los costos operativos mediante la normalización de los servicios gestionados que transfieran la carga operativa a AWS. Los niveles más altos de abstracción permiten a los desarrolladores y operadores centrarse en sus propias actividades únicas de valor agregado, en lugar de en tareas indiferenciadas.
-
Considere la posibilidad de normalizar las tecnologías de código abierto . El código abierto puede permitir a una organización encontrar las habilidades adecuadas y evitar algunos riesgos relacionados con la dependencia.
Tomar las decisiones equivocadas en un ecosistema de código abierto puede llevar a quedar atrapado en abstracciones e integraciones locales. Además, la responsabilidad de hacer que los diferentes componentes de código abierto trabajen juntos suele recaer en la organización que hace la elección. Esto puede llevar a las organizaciones a dedicar mucho tiempo a mantener las integraciones de código abierto. -
Al elegir el servicio de integración adecuado, es importante entender las características de los mensajes que deben enviarse entre las aplicaciones. Las características clave, como el formato, el tamaño, la retención y la prioridad del mensaje, pueden influir en la decisión del servicio de integración.
Algunos servicios de integración son más adecuados para mensajes pequeños basados en texto, mientras que otros están diseñados para admitir múltiples formatos, como texto y binario, y ofrecen mensajes de mayor tamaño. La necesidad de contar con una capacidad de reproducción también puede ser un factor importante junto con el orden de los mensajes en algunos escenarios.
Por ejemplo, el pedido de mensajes se puede desplegar mediante la funcionalidad FIFO que ofrecen Amazon SNS y Amazon SQS. También se considera tener una arquitectura basada en tirar o empujar, como EventBridge o SNS, que invoque una función Lambda de forma asincrónica.
Una arquitectura basada en extracciones podría utilizar servicios como SQS o Kinesis Data Streams, donde los mensajes se almacenan en una cola o un flujo y, luego, un sistema que los consume puede recuperarlos. Los servicios de mensajería como Amazon MQ ofrecen capacidades para cargas de mensajes más grandes y tienen una retención ilimitada. Sin embargo, no ofrecen la capacidad de reproducción. -
Si su objetivo principal es crear e iterar rápidamente, los servicios sin servidor pueden ofrecer el mejor valor. Los servicios sin servidor le permiten crear aplicaciones sin administrar la infraestructura. Ofrecen funcionalidades e integraciones gestionadas para reducir el tiempo dedicado a escribir código de programación.
Otro beneficio de la tecnología sin servidor a la hora de probar nuevas ideas es que estos servicios ofrecen precios basados en el uso. El código solo se ejecuta cuando se invoca el servicio, por lo que un experimento no requiere una inversión inicial.
-
Muchas aplicaciones utilizan ciertos protocolos, como Advanced Message Queuing Protocol (AMQP) o el MQ Telemetry Transport (MQTT), para conectarse a un servicio de mensajería. Alternativamente, tienen alguna dependencia de la biblioteca que usa un determinado protocolo de mensajería. Algunos ejemplos de estas bibliotecas o marcos incluyen Spring Boot, Celery o MassTransit.
Es posible que desee conservar estas aplicaciones por diferentes motivos. En estos casos, la elección de su servicio de integración también depende del soporte de los protocolos necesarios para tener portabilidad con sus aplicaciones. -
Es posible que necesite disponer de un servicio que ofrezca compatibilidad con su infraestructura y herramientas de despliegue, y ejecutar el mismo sistema de integración que aloja localmente (como Apache ActiveMQ, RabbitMQ y Apache Kafka).
Los servicios gestionados de código abierto (como Amazon MQ y Amazon MSK) ofrecen los beneficios de la nube y, al mismo tiempo, son compatibles con muchas herramientas de despliegue populares que se utilizan para los despliegues locales.
Si la refactorización de la aplicación es una opción, puede beneficiarse del uso de servicios sin servidor para proporcionar esta capacidad de forma nativa, así como de una integración completa con una variedad de servicios de AWS. -
Las habilidades de su organización son un factor importante a la hora de decidir cuál es el servicio de integración adecuado. Si sus equipos están familiarizados con un producto autogestionado y éste satisface sus necesidades, disponer de un servicio gestionado para el mismo es la opción de menor impacto. Hacerlo puede ayudarlo a aplicar las mejores prácticas para el servicio y a centrarse en las actividades de valor agregado.
Escoja
Ahora que conoce los criterios con los que evaluará sus necesidades de aplicaciones de integración, estará listo para elegir qué servicios de AWS son los apropiados para las cargas de trabajo en su entorno..
Un evento es cualquier cambio de estado o actualización de un sistema. Todos los servicios de esta categoría se pueden utilizar dentro de una arquitectura basada en eventos.
Amazon EventBridge proporciona un bus de eventos para enrutar eventos, así como canales para la integración punto a punto. Úselo para crear aplicaciones basadas en eventos a escala en AWS, sistemas existentes, o aplicaciones SaaS.
Amazon SNS proporciona la entrega de mensajes (publicación y suscripción) y, al hacerlo, ofrece un alto rendimiento confiable. Permite SMS, correo electrónico, y notificaciones push móviles.
Los servicios de mensajería permiten diferentes sistemas de software y dispositivos finales. A menudo utilizan diferentes lenguajes de programación en diferentes plataformas para comunicarse e intercambiar información.
Amazon SNS proporciona la entrega de mensajes (publicación y suscripción) y, al hacerlo, ofrece un alto rendimiento confiable. Permite SMS, correo electrónico, y notificaciones push móviles.
Amazon Simple Queue Service (Amazon SQS) ofrece una cola alojada segura, duradera y disponible. Está optimizado para almacenar eventos y mensajes persistentes y en memoria intermedia para los consumidores intermedios.
Los datos de streaming son datos que se generan continuamente por miles de orígenes de datos, que normalmente envían los registros de datos simultáneamente, y en tamaños pequeños (del orden de Kilobytes). Los datos de streaming incluyen una amplia variedad de datos, como archivos de registros generados por los clientes que utilizan sus aplicaciones móviles o web, compras en comercio electrónico, actividades de los jugadores en un juego, información de redes sociales, operaciones bursátiles, o servicios geoespaciales, así como telemetría de dispositivos conectados o instrumentación en centros de datos.
Kinesis Data Streams es un servicio de transmisión de datos sin servidor que recopila y procesa grandes secuencias de registros de datos en tiempo real.
Amazon MSK es un servicio completamente administrado que facilita la creación y ejecución de aplicaciones que utilizan Apache Kafka para procesar los datos de streaming. Proporciona las operaciones del plano de control, como las que se utilizan para crear, actualizar, y eliminar clústeres, y permite utilizar las operaciones del plano de datos de Apache Kafka, como las que se utilizan para producir y consumir datos.
Un flujo de trabajo describe cómo las personas llevan a cabo su trabajo de principio a fin. Los flujos de trabajo pueden aparecer como una serie de pasos en una lista de verificación o como un diagrama que visualiza esos pasos.
AWS Step Functions es un servicio de orquestación sin servidor que le permite integrarse con las funciones AWS Lambda y otros servicios de AWS para crear aplicaciones críticas para la empresa. A través de la consola gráfica de Step Functions, puede ver el flujo de trabajo de su aplicación como una serie de pasos basados en eventos.
Amazon Managed Workflows for Apache Airflow
Amazon Managed Workflows for Apache Airflow (Amazon MWAA) es un servicio de orquestación gestionado para Apache Airflow que puede utilizar para configurar y operar canalizaciones de datos en la nube a escala. Apache Airflow es una herramienta de código abierto que se utiliza para crear, programar, y monitorear mediante programación las secuencias de procesos y tareas denominadas como flujos de trabajo.
Usos
Ahora debería tener una idea clara de lo que hace cada servicio de integración de aplicaciones de AWS y cuál podría ser el adecuado para usted. Para explorar cómo usar y obtener más información sobre cada uno de los servicios de integración de aplicaciones de AWS disponibles, hemos proporcionado una vía para explorar cómo funciona cada uno de los servicios. La siguiente sección proporciona enlaces a documentación detallada, tutoriales prácticos y recursos para empezar.
-
Amazon SNS
-
Amazon SQS
-
Amazon EventBridge
-
Amazon MQ
-
Amazon Kinesis Data Streams
-
Amazon MSK
-
AWS Step Functions
-
Amazon MWAA
-
Amazon SNS
-
Introducción a Amazon SNS
Le mostramos cómo administrar temas, suscripciones y mensajes mediante la consola de Amazon SNS.Filtrar mensajes publicados en temas con Amazon SNS y Amazon SQS
Aprenda a utilizar la característica de filtrado de mensajes de Amazon SNS.
Presentamos la protección de datos de mensajes para Amazon SNS
En esta entrada de blog se explica qué es la protección de datos de mensajes y cómo funciona.Amazon SNS: solución de problemas
Aprenda a ver la información de configuración, supervisar los procesos y recopilar datos de diagnóstico sobre Amazon SNS.Cree un videojuego por turnos con Amazon DynamoDB y Amazon SNS
Aprenda a crear un juego multijugador por turnos con Amazon DynamoDB y Amazon SNS.
Creación de arquitecturas impulsadas por eventos
Descubra cómo crear un despliegue sencillo de pub/sub con Amazon SNS como nuestro servicio de publicación y Amazon SQS como suscriptor.
-
Amazon SQS
-
Introducción a Amazon SQS
Descripción general de alto nivel de Amazon Simple Queue Service (SQS) y las ventajas de utilizar un sistema de acoplamiento flexible.
Introducción a Amazon SQS
En esta guía se muestra cómo administrar las colas y los mensajes mediante la consola de Amazon SQS.
Enviar notificaciones de eventos de distribución ramificada
Descubra cómo desplegar un escenario de mensajería de distribución ramificada mediante Amazon SNS y Amazon SQS.
Organización de microservicios basados en cola
Aprenda a diseñar y ejecutar un flujo de trabajo sin servidor que orqueste un microservicio basado en colas de mensajes.
Enviar mensajes entre aplicaciones distribuidas
Utilice la consola de Amazon SQS para crear y configurar una cola de mensajes, enviar un mensaje, recibir y eliminar dicho mensaje y, a continuación, eliminar la cola.
-
Amazon EventBridge
-
Introducción a Amazon EventBridge
La base de EventBridge es crear reglas que dirijan los eventos a un objetivo. En esta guía, se crea una regla básica.
Tutoriales de introducción a Amazon EventBridge
Estos tutoriales le ayudarán a explorar las características de EventBridge y a utilizarlas.
Integración con otros servicios de AWS
Los siguientes tutoriales muestran cómo integrar EventBridge con otros servicios de AWS.
Cree arquitecturas impulsadas por eventos
Conozca los conceptos básicos del diseño basado en eventos, cómo elegir el servicio de AWS adecuado para cada tarea y cómo optimizar tanto el costo como el rendimiento.
Creación de aplicaciones impulsadas por eventos con Amazon EventBridge
Aprenda a crear aplicaciones basadas en eventos conectando varias aplicaciones, incluidas las aplicaciones SaaS y los servicios de AWS, mediante el bus de eventos sin servidor que proporciona Amazon EventBridge.
-
Amazon MQ
-
Aceleración de la modernización de mensajería
Le presentamos Amazon MQ y podrá participar en varios laboratorios prácticos para entenderlo mejor.
Crear un agente de mensajes conectado
Aprenda a configurar un agente de mensajes de Amazon MQ y conectar una aplicación Java sin necesidad de volver a escribir el código.
Crear y conectarse a un agente RabbitMQ
Descubra cómo puede utilizar la consola de administración de AWS para crear un agente RabbitMQ y adjuntarle su aplicación.
Crear y conectarse a un agente ActiveMQ
Descubra cómo puede utilizar la consola de administración de AWS para crear un agente básico.
Taller de ActiveMQ
Explore los conceptos de mensajería, como las colas, los temas y las características de Amazon MQ, como la conmutación por error y la red de agentes.
Despliegue y publique en un agente de Amazon MQ mediante AWS sin servidor
Le explicamos cómo desplegar un backend sin servidor y un agente de Amazon MQ en un solo paso con AWS SAM.
-
Amazon Kinesis Data Streams
-
Introducción a Amazon Kinesis Data Streams
Explicamos cómo se usa Amazon Kinesis Streams para recopilar, procesar y analizar datos de streaming en tiempo real a fin de crear información valiosa.Introducción a Amazon Kinesis Data Streams
Conozca los principios fundamentales del flujo de datos de Kinesis Data Streams y los pasos necesarios para colocar y obtener datos de una secuencia de datos de Kinesis.
Cree secuencias de alta disponibilidad con Amazon Kinesis Data Streams
Comparamos y contrastamos diferentes estrategias para crear una secuencia de datos de Kinesis de alta disponibilidad en caso de interrupciones, retrasos o interrupciones del servicio en la región de operación principal.
Tutoriales de ejemplo para Amazon Kinesis Data Streams
Estos tutoriales están diseñados para ayudarlo a comprender mejor los conceptos y la funcionalidad de Amazon Kinesis Data Streams.
Uso de AWS Lambda con Amazon Kinesis
Aprenda a crear una función Lambda para consumir eventos de una transmisión de Kinesis.
Streaming en tiempo real con Amazon Kinesis
Explore una serie de ejercicios de laboratorio que ayudan a los usuarios a crear una aplicación de análisis de streaming en AWS.
-
Amazon MSK
-
Introducción a usar Amazon MSK
Este tutorial muestra un ejemplo de cómo crear un clúster de MSK, producir y consumir datos y supervisar el estado del clúster mediante métricas.
Introducción a los clústeres sin servidor de MSK
Este tutorial muestra un ejemplo de cómo crear un clúster sin servidor de MSK, crear un equipo cliente que pueda acceder a él y utilizar el cliente para crear temas en el clúster y escribir datos en esos temas.
Laboratorios de Amazon MSK
Estos laboratorios pueden ejecutarse en cuentas de AWS personales o corporativas o en cuentas aprovisionadas por los equipos de cuentas de AWS para eventos que utilicen Workshop Studio.
-
AWS Step Functions
-
Introducción a AWS Step Functions
En estos tutoriales se describe cómo crear un flujo de trabajo básico para procesar las solicitudes de tarjetas de crédito.
Introducción a Step Functions
Este curso presenta los componentes clave de Step Functions para ayudarlo a comenzar a administrar los flujos de trabajo dentro de una aplicación.
Crear un patrón de distribución ramificada con solicitudes de tareas del “primero en responder”
Aprenda a coordinar un grupo de conductores que realizan las entregas para su empresa de comercio electrónico.
Patrones de diseño para AWS Step Functions
Aprenda a desplegar patrones de diseño en sus máquinas de estados de Step Functions y por qué usar cada una de ellas.
Programe un flujo de trabajo sin servidor con AWS Step Functions y Amazon EventBridge Scheduler
Le mostramos cómo invocar una máquina de estados mediante EventBridge Scheduler en función del cronograma que defina.
Taller de AWS Step Functions
Aprenda a utilizar las características principales de AWS Step Functions a través de una serie de módulos interactivos.
-
Amazon MWAA
-
Comience a utilizar Amazon Managed Workflows para Apache Airflow
En esta guía se describen los requisitos previos y los recursos de AWS necesarios para empezar a utilizar Amazon MWAA.
Configuración del aws-mwaa-local-runner en una canalización de CD
Este tutorial te guiará a través del proceso de creación de una canalización de entrega continua (CD) en GitHub mediante Amazon Managed Workflows for Apache Airflow, aws-mwaa-local-runner de Apache Airflow para probar tu código de Apache Airflow localmente.
Restringir el acceso de un usuario de Amazon MWAA a un subconjunto de DAG
Mostramos cómo puede restringir a los usuarios individuales de Amazon MWAA para que solo vean e interactúen con un DAG específico o un conjunto de DAG.
Taller sobre Amazon MWAA for Analytics
Aprenda a crear y orquestar canalizaciones de datos y aprendizaje automático que incluyan muchos de los servicios mencionados anteriormente y, con ello, se familiarizará y comprenderá mejor los enlaces y los operadores disponibles como parte de Airflow para gestionar sus canalizaciones o flujos de trabajo en AWS.
Explorar
Una vez que haya determinado qué enfoque se adapta mejor a la carga de trabajo de su entorno, le recomendamos que revise estos recursos para ayudarle a empezar a desplegar su enfoque. Puede encontrar recursos específicos del servicio en la sección anterior y recursos generales de arquitectura basada en eventos en la siguiente sección.
Explore los diagramas de arquitectura de referencia para ayudarlo a crear arquitecturas de alta disponibilidad, seguras, flexibles y rentables.
Explore los documentos técnicos que le ayudarán a empezar y conozca las mejores prácticas en torno a las arquitecturas basadas en eventos.
Explore los blogs que le ayudarán a mantenerse actualizado sobre las tecnologías más recientes y a modernizar sus aplicaciones.