Jump to section

¿Qué son los registros de servicios?

Copiar URL

Los registros de servicios son bases de datos que posibilitan la comunicación entre las aplicaciones gracias a que almacenan sus estructuras de datos. Funcionan como ubicaciones centrales donde los desarrolladores pueden registrar y buscar los esquemas utilizados para ciertas aplicaciones.

El diseño de software moderno se basa en los microservicios distribuidos y sin conexión directa que intercambian datos a través de interfaces de programación de aplicaciones (API).

El intercambio entre las aplicaciones es fundamental tanto dentro como fuera de las grandes empresas, ya que les permite recibir y enviar datos cada segundo para mantener en marcha los negocios. Por eso es fundamental conservar la integridad de los datos, y una de las soluciones clave que garantiza que todas las aplicaciones estén preparadas para procesarlos es el registro de servicios.

Los sistemas de mensajería que transmiten datos, como Apache Kafka, no ofrecen una verificación inherente de los datos. Si, por ejemplo, el productor modifica su formato, o agrega o elimina un campo, y el usuario no está al tanto de los cambios, no podrá procesarlos correctamente y, en el peor de los casos, se podría producir una falla general en el sistema.

Antes de intercambiar datos, el usuario debe conocer la estructura (es decir, el esquema) que utiliza el productor, así como los cambios que se produzcan en él. Es necesario poder modificarlos sin causar interrupciones en el sistema de mensajería.

El productor puede enviar el esquema a los usuarios de forma manual (por ejemplo, a través de un correo electrónico con el archivo adjunto). Sin embargo, al igual que todos los procesos manuales, este procedimiento puede ser complejo, propenso a errores y difícil de auditar, así que podría generar una interrupción en el funcionamiento de los servicios, y no es sencillo descubrir la causa de la falla.

El registro de servicios brinda esta información a través de una plataforma accesible y funciona como una ubicación central donde los desarrolladores de aplicaciones que generan datos pueden registrar los esquemas que utilizan. Por su parte, los desarrolladores de aplicaciones que usan los datos pueden buscar los esquemas en el registro de servicios para permitir que estas los procesen. Algunos de los esquemas que pueden almacenarse en un registro de servicios son Apache Avro, JSON Schema y Google Protocol Buffer.

También se pueden almacenar otros recursos llamados artefactos, como las especificaciones de las API para la comunicación sincrónica entre las aplicaciones. Mientras más complejos y numerosos sean sus servicios, más útil resultará el registro.

El concepto de registro de servicios surgió hace varios años, pero se ha convertido en el centro de atención recientemente porque es ideal para satisfacer las necesidades en la era de los microservicios. Sirve como fuente única de información sobre la estructura de datos de una aplicación determinada, con la aprobación de los desarrolladores de los sistemas que los producen y utilizan. Además, respalda un enfoque que prioriza los contratos, ya que en vez de codificar la aplicación y luego ofrecer un acuerdo para que otras aplicaciones o empresas puedan comunicarse con ella, especifica el contrato en primer lugar, el cual incluye la entrada de información, los resultados, las especificaciones de carga y hasta las reglas de validación. Se exponen con claridad todos los aspectos para que no haya dudas sobre el funcionamiento de las interacciones.

A continuación se analiza el funcionamiento de un registro de servicios con Apache Kafka. El registro de servicios es ideal para este caso práctico en particular porque Kafka no brinda el esquema a los usuarios de forma automática ni verifica los datos. Tampoco utiliza recursos vitales, ya que no analiza ni lee los datos, por lo que puede distribuirlos directamente a los usuarios con rapidez. Si se tomara el tiempo de realizar una verificación, disminuiría su rendimiento en gran medida. Por eso, la falta de control no representa un problema con Kafka, sino que posibilita una de sus principales ventajas: el alto rendimiento.

Sin embargo, es importante implementar algún tipo de control en la estructura de los datos para garantizar que las aplicaciones que los utilizan puedan procesarlos correctamente. La solución es un registro de servicios que determina las normas y exige su cumplimiento.

Los usuarios y los productores intercambian datos por medio de Kafka, y el registro de servicios les permite documentar, compartir y acordar los metadatos que definen el tráfico desde el primer momento, para evitar que se produzcan errores relacionados con ellos más adelante. Los metadatos se proporcionan como esquemas almacenados en el registro de servicios.

El desarrollador de la aplicación que produce los datos registra el esquema, lo cual garantiza que se adhiere a sus especificaciones; el registro de servicios incluso rechazará los datos que no correspondan al esquema indicado.

Las empresas también pueden incorporar esquemas para el uso general por parte del equipo de desarrollo. En este caso, el registro de servicios funciona como una biblioteca para los desarrolladores de aplicaciones que producen y utilizan los datos.

A su vez, ellos pueden recuperar los esquemas para diseñar las aplicaciones que procesarán los datos. Cuando se realicen modificaciones en el esquema, el registro de servicios pondrá las actualizaciones a disposición de los usuarios.

Los registros de servicios ofrecen las siguientes ventajas para la empresa y el equipo de desarrollo:

Posibilidad de separar la estructura de datos de las aplicaciones

Puede utilizar un registro de servicios para separar la estructura de datos de las aplicaciones, así como para compartir y gestionar los esquemas y las descripciones de las API durante el tiempo de ejecución con una interfaz de REST.

Calidad superior de los datos

El registro de servicios valida el esquema y detecta errores en los datos para garantizar su integridad. Puede incluir normas para comprobar que el contenido cargado sea válido en cuanto a la sintaxis y la semántica, así como para garantizar que sea compatible con otras versiones anteriores y posteriores. También evitará que un productor envíe datos que no se correspondan con ese esquema.

Fuente única de información documentada

El registro de servicios funciona como una fuente única de información, que cuenta con la validación y aprobación de todas las partes involucradas.

Aumento en la productividad de los desarrolladores

El registro de servicios posibilita la reutilización uniforme de los esquemas y los diseños de las API, lo cual permite que los desarrolladores ahorren tiempo al diseñar una aplicación que produzca o utilice datos.

Ahorro de costos

La posibilidad de detectar los errores en el ciclo de vida del desarrollo, en lugar de hacerlo durante la ejecución, permite un mayor ahorro de los costos que surgen de corregir los fallos en las etapas más avanzadas del proceso.

Artículos relacionados

Artículo

¿Qué es la integración?

¿Desea saber qué es la integración? Obtenga información acerca de qué es, cómo incorporarla y por qué es mucho mejor con un enfoque open source.

Artículo

¿Qué es Apache Kafka?

Apache Kafka es una plataforma distribuida de transmisión de datos que permite publicar, almacenar y procesar flujos de registros, así como suscribirse a ellos, de forma inmediata.

Artículo

¿Qué es una API?

Una API o interfaz de programación de aplicaciones es un conjunto de definiciones y protocolos que se usa para diseñar e integrar el software de las aplicaciones.

Más información sobre la integración

Productos

Conjunto completo de tecnologías de integración y mensajería para conectar aplicaciones y datos a través de infraestructuras híbridas. Incluye Red Hat 3scale API Management, Red Hat AMQ, Red Hat Runtimes, registro de datos modificados y un registro de servicios.

Conjunto de tecnologías de integración y tiempos de ejecución diseñados para ayudar a crear, implementar y operar aplicaciones de manera segura y a escala a través de la nube híbrida.

Conjunto de productos, herramientas y elementos que permiten desarrollar y mantener las aplicaciones directamente en la nube. Incluye Red Hat AMQ, Red Hat Data Grid, Red Hat JBoss® Enterprise Application Platform, Red Hat JBoss Web Server, una compilación de OpenJDK de Red Hat, una compilación de Quarkus de Red Hat, un grupo de tiempos de ejecución de nube, Migration Toolkit for Applications, inicio de sesión único y un servicio para lanzamientos .

Los servicios de nube de Red Hat® incluyen aplicaciones, plataformas y servicios de datos alojados y gestionados que optimizan la experiencia en la nube híbrida reduciendo los costos operacionales y simplificando la entrega de aplicaciones nativas de la nube.

Contenido adicional

Ebook

Integración ágil: el plano técnico de la arquitectura empresarial

VISION GENERAL

Red Hat Cloud Services

Servicios gestionados para el desarrollo en la nube

Capacitación

Curso de capacitación gratuito

Red Hat Agile Integration Technical Overview