From 2fc93674118f6b614d3a3b341a69391bbef1cbd7 Mon Sep 17 00:00:00 2001 From: Louis-Claude Canon Date: Sat, 15 Feb 2014 15:56:13 +0100 Subject: [PATCH] Add previous reflexions on data-analysis workflow and virtual environments --- data-workflow.md | 25 ++++++++++++++++++ environment.md | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) create mode 100644 data-workflow.md create mode 100644 environment.md diff --git a/data-workflow.md b/data-workflow.md new file mode 100644 index 0000000..5415796 --- /dev/null +++ b/data-workflow.md @@ -0,0 +1,25 @@ +Workflow pour l'analyse de données +================================== + +Créer un dossier qui contiendra les scripts, les notes et les données (ou un +lien vers les données). + +- versionner le dossier avec git +- RStudio pour le traitement des données +- knitr + Markdown pour les notes + +Pas besoin de dater ou signer le document (Rpubs et git contiennent déjà ces +informations). + +Externaliser le code du Rmd dans un fichier source qui pourra être +implicitement (`echo=FALSE`) inclus dans un futur rapport. + +Toujours fixer la graine. + +Ne jamais revenir en arrière sans commiter le Rmd. Lorsque l'analyse a atteint +une étape importante (pas forcément le jour-même mais lorsque des conclusions +sont déjà disponibles), commiter, publier le rapport sur Rpubs et commencer une +nouvelle analyse. + +Générer les figures finales avec un second device en pdf en plus du png (sauf +si leur taille est prohibitive). diff --git a/environment.md b/environment.md new file mode 100644 index 0000000..07e95cf --- /dev/null +++ b/environment.md @@ -0,0 +1,77 @@ +Gestion des environnements de travail +===================================== + +Plusieurs enjeux : + +- fournir des environnements reproductibles pour les expériences de recherche +- fournir des environnements adaptés aux besoins pédagogiques +- fournir des environnements facilitant le prototypage de solutions pour les + besoins administratifs + +Plusieurs solutions populaires : + +- `veewee` : production automatisée d'images virtuelles + - développement actif par un développeur principal (25%) depuis 2011 + - prend en entrée une iso d'install et un fichier de conf + - produit des images VirtualBox, KVM et VMWare + - fournit de nombreux exemples de configuration +- `vagrant` : automatise et facilite la configuration et l'exécution d'une VM + - développement actif par un développeur principal (75%) depuis 2010 + - nécessite une image (boîte) + - prend un fichier de configuration pour finaliser la configuration de l'image + - nécessite une machine virtuelle (VirtualBox, VMWare, AWS pour Amazon, KVM + avec `vagrant-kvm`) + - s'interface entre l'image et la machine virtuelle pour automatiser + l'étape de configuration (commune à toutes les VM) + - facilite la configuration réseau et la synchronisation des données + (peut-être VirtualBox le fait-il déjà) +- `chef`, `puppet` : configuration et administration automatisée + - développement actif par plusieurs développeurs depuis 2008 + - au coude à coude, tous les deux en ruby + +Veewee +------ + + +-------------+ +--------+ + |Configuration|->| Veewee | + +-------------+ | | + | | + +---+ | | +-----------+ + |Iso|----------->| |->|Box (image)| + +---+ | | +-----------+ + | | + +-------------+ | | + |Provider (VM)|->| | + +-------------+ +--------+ + +Intérêts : + +- ABD + - environnement root plus proche d'une situation classique (outils plus + faciles à déployer et plus formateur pour les étudiants) + - diffuser des images contenant déjà les serveurs configurés avec les + données nécessaires + - possibilité d'avoir plusieurs serveurs + +Vagrant +------- + + +-------------+ +-----------------------------------+ + |Configuration|->| Vagrant : exécution/provisioning | + +-------------+ | | + | +----------+ +------+ +---+ +---+ | + +-----------+ | |VirtualBox| |VMWare| |AWS| |...| | + |Box (image)|--->| +----------+ +------+ +---+ +---+ | + +-----------+ +-----------------------------------+ + +Intérêts : + +- ABD + - facilite la configuration de VirtualBox (à vérifier) : copie de + `Vagrantfile` dans le dossier local et deux commandes (`init` et `up`) + - permet de rajouter `italc`, mais le résultat peut être trop lent si les + outils clients (graphiques) sont exécutés dans la VM + - démarrage d'un SGBD rapide pour des tests +- prototypage pour les besoins administratifs + - mise en place d'une solution fonctionnelle facile + - `gitlab` provides an installation guide for `vagrant` -- 1.7.10.4