Fourniture d'un dump de prod à des fins de tests : quelles informations dégager?

L'auteur de ce sujet a trouvé une solution à son problème.
Staff
Auteur du sujet

Hello les agrumes,

J'ai dans l'idée de fournir à qui veut un dump de prod à des fins de test pour qui veut - parce que bosser avec des données quasiment vides, c'est pas toujours pratique. Et bien évidemment je compte dégager les données personnelles.

Voici ce que je pense faire par rapport à un dump "brut" de prod :

  • Anonymisation de tous les emails
  • Anonymisation de toutes les adresses IP
  • Utilisation d'un même mot de passe pour tous les utilisateurs (un truc du genre "password")
  • Remplacer tous les titres et les contenus des MP par du faux texte
  • Remplacer tous les titres et les contenus des forums privés par du faux texte

J'ai hésité à dégager les MP, sauf que si on a environ 36 000 posts dans 1930 topics, on a aussi 22 000 MP dans 3100 discussions privées… en terme d'impact sur la base, c'est pas du tout négligeable !

Est-ce que j'oublie quelque chose ?

L'inconvénient que je vois, c'est qu'on saurait qui a un MP avec qui - sans savoir à quel sujet.

Il faudrait vider les galeries car sinon Django va grincer. Je crois aussi que les tutoriels et les articles sont à enlever, à moins que tu fournisses une archive des fichiers Markdown ?

L'inconvénient que je vois, c'est qu'on saurait qui a un MP avec qui - sans savoir à quel sujet.

Le mieux serait aussi d'anonymiser les pseudos (en en générant des faux aléatoirement).

Édité par Situphen

Médicament flemmard aux pul(p)sions imprécises. “Don’t wait for the perfect moment. Take the moment and make it perfect.”

+0 -0
Staff

Penser aussi à virer les articles et tutoriels en brouillons ainsi qu'un partie des alertes.

"I think that it’s extraordinarily important that we in computer science keep fun in computing." – Alan J. Perlis

+0 -0
Staff
Auteur du sujet

Basiquement, deux choses :

  1. La fonctionnalité dont tu parles n'est pas documentée. En tous cas on en parle pas dans la page ad hoc de la doc et la recherche ne dit rien. J'avais oublié qu'elle existait et ne l'ai pas retrouvée.
  2. Si j'en crois le code, le paramètre size=high donne une base de 3, donc 30 utilisateurs etc. C'est très loin des données réelles, en nombre et en proportions.

Si ces fixtures peuvent être pratiques dans bien des cas, il en est d'autres (exemples : tests des API, tous les travaux d'optimisation en cours) qui nécessitent des données réalistes (à défaut d'être réelles).

Staff

Basiquement, deux choses :

  1. La fonctionnalité dont tu parles n'est pas documentée. En tous cas on en parle pas dans la page ad hoc de la doc et la recherche ne dit rien. J'avais oublié qu'elle existait et ne l'ai pas retrouvée.
  2. Si j'en crois le code, le paramètre size=high donne une base de 3, donc 30 utilisateurs etc. C'est très loin des données réelles, en nombre et en proportions.

Si ces fixtures peuvent être pratiques dans bien des cas, il en est d'autres (exemples : tests des API, tous les travaux d'optimisation en cours) qui nécessitent des données réalistes (à défaut d'être réelles).

SpaceFox

Justement, je me demande ce qui serait plus efficace :

  1. Documenter le fonctionnalité, en sachant qu'actuellement lancer python manage.py load_fixtures module=member size=high plusieurs fois permet de rajouter une batterie d'utilisateurs par dessus l'existant. Et éventuellement rajouter une size avec un facteur 100 si besoin.
  2. Fournir un dump de la prod

La deuxième solution (si j'en crois le premier post) est quand même très couteuse et pas trop flexible pour les raisons suivantes :

  • il faut créer le dump à chaque modification du modèle de donnée (quid des différences de version entre la dev et la prod ?)
  • anonymiser le contenu (et donc se poser la question de savoir quoi anonymiser)
  • enlever certaines informations (comme les mps)
  • mettre a dispos les images de la prod (sans les images, les tutoriels n'ont pas beaucoup de valeur),
  • le mettre à disposition tout ceci sur un serveur
  • les données ne seront dispo que pour Mysql
  • documenter la procédure d'exploitation de ces données (parce que du coup ça ne sera plus de la vrai prod)
  • la procédure ne me semble pas Open (car il faut contacter à chaque fois quelqu'un pour avoir les bonnes informations, avec les délais de réponses et la perte de motivation qui peuvent s'en suivre)

Donc a vue de nez, j'ai du mal a voir l'intérêt, mais si tu veux mettre ça en place et le maintenir ça sera toujours mieux que rien :)

Staff
Auteur du sujet

Ben pourquoi pas, si on rétabli les contraintes pour que l'on puisse générer quelque chose de crédible.

Par contre il me semble avoir lu que rien qu'une génération de fixtures de taille "high" était déjà très longue. Est-ce raisonnable de faire un facteur 60 dessus ?

Je dois encore avoir une copie d'arduino qui est vraiment un cas pathologique mais j'aimerai tester sur d'autres.

artragis

Je sais pas comment je dois le prendre ca… :D (mais je te refais un dump quand tu veux si besoin)

Par contre il me semble avoir lu que rien qu'une génération de fixtures de taille "high" était déjà très longue. Est-ce raisonnable de faire un facteur 60 dessus ?

Cay moa :) (10 minutes pour la generation de base, donc pas high) : https://github.com/zestedesavoir/zds-site/pull/1737#issuecomment-64253672

Édité par Eskimon

ZdS, le best du Zeste ! Tuto Arduino, blog, etc

+0 -0
Staff

Par contre il me semble avoir lu que rien qu'une génération de fixtures de taille "high" était déjà très longue. Est-ce raisonnable de faire un facteur 60 dessus ?

Cay moa :) (10 minutes pour la generation de base, donc pas high) : https://github.com/zestedesavoir/zds-site/pull/1737#issuecomment-64253672

Eskimon

Visiblement, ça te prend 10 min en mode normal là ou Travis prend 55 secondes :) . Je suppose que tu dois pas avoir une machine de compète et que tu était sous SQLite là ou travis tourne avec MySQL.

En terme de ratio, les modules les plus longs sont les tutos (78% du temps), les membres (5% du temps) et les galléries (4.5% du temps).

Donc il y'a toujours moyen de s'en sortir en lançant juste la génération de 60 tutos (size=high) et le reste des modules en mode very-high.

Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte