7 points par evisdrenova 2024-05-09 | Aucun commentaire pour le moment. | Partager sur WhatsApp

Bonjour à tous sur Hada News, nous sommes ravis de lancer Neosync !

Neosync est une plateforme open source qui aide les développeurs à créer des versions anonymisées et synthétiques des données de production afin d’améliorer les tests en local, le débogage et l’expérience développeur, sans risque pour la vie privée ni la sécurité.

La plupart des développeurs et des équipes disposent de scripts de seed de base de données pour générer quelques données fictives pour les bases locales et de staging. Le problème dont nous ont parlé les développeurs, c’est que les fonctionnalités semblent bien fonctionner en local, mais que des bugs et des cas limites apparaissent en production parce que les données de seed ne représentent pas les données de production. Le deuxième problème est qu’il n’existe pas de bonne manière d’obtenir des données proches de la production pour déboguer des erreurs en production.

Utiliser directement les données de production pourrait résoudre ces problèmes, mais la plupart des équipes ne le peuvent pas à cause 1. des problèmes de vie privée / sécurité et 2. de l’échelle.

C’est pourquoi nous avons entrepris de résoudre ces deux problèmes avec Neosync.

Nous résolvons les problèmes de vie privée et de sécurité grâce à l’anonymisation et aux données synthétiques. Avec plus de 40 transformeurs préconstruits (ou écrits directement en code), vous pouvez anonymiser les PII ou les données sensibles pour les utiliser en toute sécurité en local. Vous pouvez aussi, au lieu d’anonymiser des données existantes, générer à partir de zéro des données synthétiques qui ressemblent aux données de production, adaptées au schéma existant de la base de données.

Le deuxième problème est l’échelle. Certaines bases de données de production sont trop volumineuses pour tenir en local, ou contiennent plus de données que nécessaire. Il arrive aussi que vous vouliez déboguer les données d’un client précis et ayez besoin de ne filtrer que ses données. Nous résolvons cela avec le sous-ensemble de données. Vous fournissez une requête SQL pour filtrer les tables, et Neosync se charge de toute la complexité.

Au cœur de Neosync se trouve sa capacité à gérer l’intégrité référentielle. Lorsqu’on travaille avec des bases de données relationnelles, il y a les clés primaires, les clés étrangères, les contraintes d’unicité, les dépendances circulaires dans une table et entre plusieurs tables, les séquences, etc.

Ainsi, que vous anonymisiez les données ou génériez des données synthétiques, il faut un moyen de préserver ces contraintes et ces relations, sinon le schéma se casse.

Neosync gère cela de manière transparente. S’il rencontre des problèmes de contraintes, comme des clés étrangères cassées, de nouvelles colonnes nécessitant un mapping ou des clés étrangères non nulles, il vous en informe pour que vous puissiez intervenir et corriger la situation.

Voici comment cela fonctionne :

  1. Connectez la base de données source et la base de données cible.

  2. Définissez le type de job et décidez s’il doit s’exécuter selon un planning. Les jobs de synchronisation synchronisent les données de la source vers la cible, et les jobs de génération de données créent des données synthétiques à partir de zéro puis les envoient en streaming vers la cible.

  3. Définissez les schémas et les tables à synchroniser et à transformer. Au niveau des colonnes, choisissez des transformeurs qui définissent comment anonymiser les données ou générer des données synthétiques, ou utilisez des données synthétiques générées par IA pour créer les données de la base cible.

  4. Enfin, vous pouvez définir un sous-ensemble. C’est la manière de filtrer les données envoyées vers la cible. Pour cela, vous pouvez fournir une requête SQL personnalisée ou des filtres.

Et c’est tout ! Les jobs s’exécuteront selon le planning que vous avez défini. Nous gérons les tentatives, le backoff et l’intégrité référentielle à l’échelle de toute la base de données. Nous proposons aussi une API, une CLI et des actions Github, ce qui permet d’utiliser Neosync dans des pipelines CI pour remplir une base de données CI.

Neosync est un projet open source écrit en Go et TypeScript, et peut être exécuté avec Helm ou Docker compose. Nous proposons également une plateforme hébergée, avec un niveau gratuit généreux.

Nous attendons vos retours avec impatience et les contributions sont toujours les bienvenues.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.