Metadatos: la clave para la agilidad y la seguridad

Find AI Tools
No difficulty
No complicated process
Find ai tools

Metadatos: la clave para la agilidad y la seguridad

Índice de contenidos:

  • Introducción
  • Naturaleza subyacente de los datos
  • Tipos fuertes y estáticos
  • Tipos de relaciones
  • Sistemas de tipos en plataformas
  • La elección de relaciones de tipos
  • Beneficios y desafíos de los sistemas de tipos en plataformas
  • Cambiando el enfoque a metadatos
  • ¿Qué son los metadatos?
  • Ventajas y desventajas de los metadatos
  • Entidades y tipos de campo en metadatos
  • Cómo cambiar los metadatos en el sistema
  • Desafíos de escalabilidad y crecimiento
  • Conclusiones y próximos pasos

✨Plataformas impulsadas por metadatos: una solución ágil y segura✨

En el mundo de las plataformas, hay una cuestión fundamental: ¿cómo podemos construir sistemas que sean ágiles y seguros al mismo tiempo? La elección entre tipos fuertes y estáticos, o relaciones de tipos, puede ser un desafío. En este artículo, exploraremos una nueva forma innovadora de abordar esta cuestión utilizando metadatos. ¡Descubramos cómo los metadatos pueden ayudarnos a lograr la agilidad y la seguridad que buscamos en nuestras plataformas!

Introducción

En el desarrollo de plataformas, es crucial comprender la naturaleza subyacente de los datos con los que estamos trabajando. La pregunta es: ¿qué es la mejor manera de pensar en ellos si vamos a construir un conjunto de servicios sobre ellos? ¿Son simplemente un grafo genérico o una colección de relaciones tipificadas?

Naturaleza subyacente de los datos

La elección de cómo pensar en los datos es arbitraria, pero necesitamos tomar una decisión al principio para avanzar en el desarrollo de la plataforma. Tenemos una fuerte inclinación hacia los tipos fuertes y estáticos, ya que nos encanta la seguridad y fiabilidad del tiempo de compilación que nos brindan. De hecho, hemos construido toda nuestra plataforma en Scala y estamos muy orgullosos de esta elección.

Sin embargo, al diseñar una plataforma, nos encontramos lidiando con la interfaz entre sistemas, donde nos enfrentamos nuevamente a la comprobación de tipos en tiempo de ejecución. Cuando alguien envía datos incorrectos, nos encontramos en una situación incómoda: ¿qué hacer con ellos?

Tipos fuertes y estáticos

Existen numerosos sistemas de tipos en el ámbito de las plataformas, como OpenAPI, Avro, Thrift y Protobuf. Nosotros elegimos relaciones de tipos desde el principio debido a nuestra preferencia por la seguridad a nivel de tipos. Queremos asegurarnos de que una persona sea tratada como una persona y no como una empresa, un evento o un inversor.

Para lograr esto, utilizamos generadores de código para crear clases de casos a partir de nuestras especificaciones de tipo, y luego propagamos estos tipos hacia atrás hasta el tiempo de compilación de nuestros servicios. Esto nos brinda un sistema sólido y robusto en el que podemos confiar.

La elección de relaciones de tipos

Con el objetivo de maximizar la seguridad en nuestra plataforma, incorporamos Avro en el lado de Kafka y OpenAPI para la API. Utilizamos un generador de código para obtener un cliente generado en TypeScript, lo que nos permite realizar búsquedas en el sitio sin enviar datos no válidos al backend.

Esto parece una configuración sólida y segura para las plataformas, especialmente en lo que respecta a la seguridad en el lado del cliente. Sin embargo, hay ciertos desafíos que aún debemos abordar.

Beneficios y desafíos de los sistemas de tipos en plataformas

Los sistemas de tipos en las plataformas brindan una serie de beneficios, como la seguridad en tiempo de compilación, la capacidad de generar casos de clase a partir de especificaciones de tipos y la separación clara entre el modelo de negocio y su representación en la red. A primera vista, parecen una solución perfecta para construir plataformas ágiles y seguras.

Sin embargo, hay desafíos inherentes a este enfoque. Uno de los desafíos es la necesidad de especificar el orden de implementación y gestionar las dependencias entre sistemas. Además, debemos asegurarnos de que los índices adecuados se construyan y desplieguen correctamente. También nos encontramos con el problema de un documento de especificación API sobrecargado, con numerosos tipos distintos definidos.

Por otro lado, la falta de flexibilidad a la hora de modificar los tipos de campo y la dificultad de agregar nuevos tipos son desafíos a considerar. Además, el aprendizaje y la autoría de metadatos pueden ser complejos y requerir algún tiempo de adaptación.

Cambiar el enfoque a metadatos

Ante los desafíos y las limitaciones de los sistemas de tipos en plataformas, nos vimos obligados a replantear nuestra estrategia. Decidimos centrarnos en los metadatos como una nueva forma de abordar la agilidad y la seguridad en las plataformas.

¿Qué son los metadatos?

Los metadatos son una colección de definiciones de entidades y tipos de campo. Las definiciones de entidades nos dicen qué campos y relaciones se han definido en una entidad, qué tipos de campos estamos utilizando y cuál es la cardinalidad de una relación determinada. Por ejemplo, tenemos definiciones de entidad como organización, trabajo y persona, y tipos de campo como cadenas, identificadores UUID y fechas.

Los campos son elementos como el nombre de una persona o la fecha de inicio de un trabajo, y las relaciones son las conexiones entre ellos. Al tomar este enfoque basado en metadatos, podemos ampliar la seguridad y la agilidad a todas las áreas de nuestra plataforma.

Ventajas y desventajas de los metadatos

La principal ventaja de utilizar metadatos en una plataforma es que podemos abstraernos de los detalles de la normalización de datos. Cuando realizamos una búsqueda en CrunchBase, podemos hacerlo en términos de colecciones y metadatos. Las colecciones son el plural de las definiciones de entidad, como empresas, empleados, etc. Y los parámetros de la consulta son campos de la entidad objetivo, operadores y argumentos.

En lugar de lidiar con empresas y personas, nuestra plataforma se vuelve completamente orientada a gráficos gracias a los metadatos. Nuestro lenguaje de comandos está orientado a gráficos y nuestras consultas son más puras. Además, al no exponer los detalles de implementación, como las relaciones de tipos, podemos lograr una mayor seguridad y agilidad en el desarrollo de la plataforma.

Sin embargo, también existen desventajas en el uso de metadatos. Modificar los tipos de campo puede resultar complicado, por lo que es mejor evitar realizar dichos cambios. Además, el aprendizaje y la autoría de los metadatos requiere tiempo y experiencia. Pero a pesar de estas desventajas, creemos que hemos encontrado un equilibrio entre seguridad y agilidad al utilizar metadatos en nuestra plataforma.

Entidades y tipos de campo en metadatos

En nuestra plataforma, hemos logrado separar completamente los tipos de campo y las entidades del tiempo de ejecución de los servicios. Estos últimos actúan como intérpretes de metadatos hasta el momento de una solicitud. Antes de eso, no tienen idea de si van a servir empresas, personas o cualquier otro tipo de entidad. Esta capacidad de cambiar los metadatos y tener servicios flexibles es una gran ventaja.

¿Cómo cambiar los metadatos en el sistema?

El cambio de metadatos en nuestra plataforma se realiza a través de la asignación de roles y permisos. Los roles son diferentes de los permisos, ya que no tienen una jerarquía forzada. Si tiene los permisos necesarios, puede realizar cambios en los metadatos y, de esta manera, modificar las reglas y comportamientos de la plataforma.

Utilizamos diferentes tipos de roles y permisos para garantizar que los cambios en los metadatos sean seguros y controlados. Esto nos proporciona un alto nivel de granularidad en los permisos y nos permite ajustar las capacidades de los usuarios según sus necesidades.

Sin embargo, el cambio de metadatos también puede llevar a errores. En el caso de un error de permisos, en lugar de devolver un error de plataforma genérico, proporcionamos información de los permisos necesarios en la respuesta. Esto permite a los usuarios tomar decisiones informadas y nos brinda la oportunidad de ofrecer productos adicionales que pueden mejorar la forma en que utilizan nuestros metadatos.

Desafíos de escalabilidad y crecimiento

A medida que nuestra organización de ingeniería crece y se expande, nos enfrentamos al desafío de escalar este enfoque basado en metadatos. Con la adición de nuevos ingenieros, recibiremos nuevas ideas y solicitudes de características. Necesitamos encontrar formas creativas de aprovechar al máximo estas contribuciones sin comprometer los objetivos originales de diseño.

Además, estamos explorando la posibilidad de implementar una funcionalidad de multiinquilinato en nuestro grafo de datos. Esto requerirá nuevas formas de expresar conceptos mediante metadatos y nos desafiará aún más en términos de escalabilidad.

Conclusiones y próximos pasos

En resumen, hemos encontrado un equilibrio entre la agilidad y la seguridad al utilizar metadatos en nuestras plataformas en lugar de sistemas de tipos estáticos. Los metadatos nos permiten ser flexibles y seguros al mismo tiempo, lo que nos ha llevado a lograr resultados prometedores en los primeros meses después del lanzamiento de nuestra plataforma.

Sin embargo, aún hay desafíos por delante. Además de resolver problemas técnicos, como la modificación de los tipos de campo, debemos abordar cuestiones sociales, como la curva de aprendizaje y la autoría de metadatos. Además, debemos encontrar formas de escalar este enfoque basado en metadatos a medida que nuestra organización crece y enfrenta nuevos desafíos.

En cuanto a los próximos pasos, nos estamos planteando la implementación de una funcionalidad de multiinquilinato y la mejora de nuestras capacidades de autoría y validación de metadatos. También estamos considerando cómo gestionar pruebas A/B en un entorno basado en metadatos. En general, estamos emocionados por las posibilidades que los metadatos ofrecen y estamos ansiosos por enfrentar los desafíos que se avecinan.

Recursos recomendados:

Destacados:

  • ¡Un enfoque innovador para plataformas ágiles y seguras!
  • Metadatos: la clave para la agilidad y la seguridad
  • Tipos fuertes y estáticos vs. Relaciones de tipos: ¿cuál es la mejor elección?
  • Beneficios y desafíos de los sistemas de tipos en plataformas
  • Descubre cómo los metadatos pueden revolucionar tu plataforma

Preguntas frecuentes (FAQ)

Q: ¿Cómo se valida y prueba la corrección de los metadatos ingresados? A: Validar y probar los metadatos puede ser un desafío. Hemos implementado pruebas de integración para asegurarnos de que los metadatos sean coherentes y estén libres de errores de integridad referencial. Además, realizamos pruebas de extremo a extremo para verificar que los metadatos funcionen como se espera.

Q: ¿Cómo se puede garantizar que los metadatos ingresados cumplan con los requisitos y reglas de negocio? A: Validar los metadatos en términos de requisitos y reglas de negocio es un proceso que requiere intervención humana. Utilizamos pruebas unitarias y revisiones de código para asegurarnos de que los metadatos cumplan con los estándares y requisitos establecidos.

Q: ¿Existe algún límite en cuanto a la cantidad de metadatos que se pueden ingresar en la plataforma? A: No existe un límite estricto en cuanto a la cantidad de metadatos que se pueden ingresar en la plataforma. Sin embargo, como los metadatos pueden volverse complejos, es importante mantenerlos en un nivel manejable y comprensible para evitar confusiones y problemas de rendimiento.

Q: ¿Cuáles son los próximos pasos en cuanto al desarrollo de la plataforma basada en metadatos? A: Estamos enfocados en mejorar nuestras capacidades de autoría y validación de metadatos, así como en explorar la implementación de la funcionalidad de multiinquilinato. También estamos considerando formas de mejorar las pruebas A/B en un entorno basado en metadatos. Estamos emocionados por las posibilidades futuras y por seguir haciendo crecer nuestra plataforma.

Q: ¿Están contratando personal para trabajar en el desarrollo de la plataforma basada en metadatos? A: ¡Sí, estamos contratando! Si estás interesado en unirte a nuestro equipo y ser parte de esta emocionante iniciativa, no dudes en ponerte en contacto con nosotros en el stand de reclutamiento. ¡Esperamos conocerte pronto!

Most people like

Are you spending too much time looking for ai tools?
App rating
4.9
AI Tools
100k+
Trusted Users
5000+
WHY YOU SHOULD CHOOSE TOOLIFY

TOOLIFY is the best ai tool source.