Mise en place d'un environnement de travail avec R

De EduTech Wiki
Aller à la navigation Aller à la recherche

Introduction

La flexibilité de R fait ainsi que la mise en place d'un environnement de travail puisse se faire de nombreuses manières, comportant souvent des passages plus compliqués par rapport à l'installation d'un logiciel traditionnel. Dans cet article, nous illustrerons et analyserons les avantages et désavantages de trois types d'environnements possibles :

  1. Installation locale
    Cette option consiste dans l'installation d'un environnement sur son propre ordinateur. Il s'agit de l'environnement le plus fréquent, au moins à présent (2019), et implique le contrôle totale de la part de l'utilisateur.
  2. Installation sur un serveur
    Cette option consiste à mettre en place l'environnement sur un serveur partagé par plusieurs utilisateurs (e.g. un labo ou équipe de recherche). De cette manière, certaines des opérations nécessaires au fonctionnement et au maintient de l'environnement sont centralisées et effectuées souvent par une seule personne (e.g. administrateur du serveur).
  3. Utilisation dans le cloud
    Cette option consiste à utiliser une infrastructure qui a déjà été mise en place et pour laquelle le maintient est garantie par une entité externe (e.g. une entreprise). Des plans gratuits ou payants peuvent différer en fonction du nombre des projets ou puissance de calcule disponible, ainsi que du support.

Nous utiliserons l'installation locale en tant que référence pour illustrer les différents éléments nécessaires dans un environnement de travail fonctionnel à l'utilisation de R. On retrouve les mêmes éléments dans les environnements serveur et cloud, qui sont tout simplement une abstraction et optimisation de l'environnement local pour plusieurs utilisateurs.

Cette page propose en général des informations conceptuelles sur la mise en place de l'environnement de travail et renvoie aux pages individuelles des différents logiciels pour les opérations spécifiques d'installation et configuration qui, dans l'option en local, peuvent varier en fonction du système d'exploitation utilisé.

Environnement d'essai/test

Si vous découvrez R pour la première fois et vous désirez commencer avec de la pratique, sans passer du temps à mettre en place un environnement que vous n'êtes pas sûrs d'utiliser par la suite, nous vous conseillons de commencer directement par l'environnement cloud (voir plus bas dans la page). Vous aurez à tout moment la possibilité de passer à un autre environnement plus tard. De plus, les trois environnements peuvent être utilisés de manière interchangeable avec relativement peu d'effort.

Environnement local

Dans cette section, nous proposons l'illustration d'un environnement de travail typique, c'est-à-dire qui peut s'adapter à la plupart des cadres d'utilisation de R dans le contexte des sciences sociales. Dans un premier temps, nous illustrerons les éléments qui composent l'environnement et comment ils s'articulent entre eux. Ensuite, nous conseillons un ordre d'installation de ces composantes. Enfin, nous analyserons avantages et désavantages d'une installation en locale.

Composantes d'un environnement de travail typique

Un environnement de travail typique se compose des éléments suivants. Pour chaque élément, nous proposons une brève description qui sera ensuite approfondie dans la page dédiée (veuillez noter que l'ordre avec lequel les éléments sont présentés ne correspond pas à l'ordre conseillé pour l'installation qui est illustré dans la section suivante) :

  • R
    Il s'agit de l'élément essentiel de l'environnement, sans lequel rien ne serait possible. L'installation de R permet à l'ordinateur de disposer de l'interprète capable de lire et exécuter le code.
  • RStudio
    Environnement de développement intégré (ou IDE depuis l'anglais Integrated Development Environment) qui fait de collant entre l'interprète du code et les opérations nécessaires à l'utilisateur pour mener à bien ses projets (écriture des scripts, aide à la syntaxe, output graphiques, organisation des fichiers, etc.).
  • Git
    Système de gestion de versions qui permet de tracer l'historique des changements de fichiers à différents moments dans l'évolution d'un projet.
  • LaTeX
    Système de préparation de documents techniques et scientifiques qui permet la mise en page d'éléments complexes (e.g. formules, layout en colonnes, ...). La connaissance de LaTeX n'est souvent pas nécessaire, mais l'installation est indispensable surtout pour la création de report en PDF. La création de report dans d'autres formats (e.g. HTML, Microsoft Word, ...) et par contre gérée par un autre outil, Pandoc, qui est installé automatiquement avec RStudio.

Conceptuellement, ces composantes s'articulent de la manière suivante :

Articulation des composantes d'un environnement de travail typique en R

Ordre d'installation conseillé

Les éléments peuvent être installés plus ou moins de manière indépendante et sans un ordre précis, cependant, nous conseillons de procéder de la manière suivante :

  1. Installez et configurez d'abord Git
  2. Installez R ensuite
  3. Installez et configurez RStudio
  4. Installez LaTeX

Avantages et désavantages de l'installation en locale

L'installation en locale représente l'installation traditionnelle à laquelle la plupart des utilisateurs sont habitués. Elle présente les avantages suivants :

  • Contrôle totale de l'utilisateur sur la version à installer et la position du logiciel sur l'ordinateur (même s'il est souvent conseillé d'accepter la position suggérée par le programme d'installation)
  • Décider si et quand mettre à jour à une nouvelle version
  • Possibilité de travailler hors ligne
  • Disponibilité des fichiers sur son propre ordinateur, ce qui permet d'y accéder plus facilement avec d'autres logiciels

Par contre, il faut prévoir les désavantages suivants :

  • L'installation des différents logiciels nécessite de temps et certains opérations peuvent être plus ou moins difficiles en fonction des connaissances informatiques de l'utilisateur
  • Même si peu probable, la mise à jour d'un logiciel peut comporter un problème de compatibilité avec un autre
  • Les logiciels qui composent l'environnement dépendent l'un de l'autre et doivent donc connaître la position des autres (ce qu'on appelle le parcours ou PATH en anglais). Parfois, il est nécessaire de spécifier le parcours d'un autre logiciel (e.g. Git) à l'intérieur d'un deuxième (e.g. RStudio) pour que les deux puissent communiquer
  • Pour travailler sur différents postes de travail (e.g. portable, fixe au bureau, ...) il est nécessaire de trouver un système de synchronisation des fichiers. Des solutions comme Dropbox, Google drive ou OneDrive, pour l'instant, ne sont pas idéales, surtout si utilisées avec les projets de RStudio (voir la page dédiée pour plus d'informations à ce propos)

Environnement serveur

Dans l'environnement serveur, l'environnement typique est centralisé sur un serveur et l'accès se fait à travers un navigateur web. Dans cette section, nous allons proposer un type d'installation basée sur RStudio server, Open Source Edition (il existe également un version commerciale). Les passages techniques pour la mise en place de ce type d'environnement sont bien expliqués dans la documentation officielle, donc dans cette page nous proposons plutôt quelques informations sur les cadres d'utilisation possibles, ainsi que les avantages et désavantages.

RStudio server Open Source Edition

RStudio server Open Source Edition permet d'installer l'environnement typique sur un serveur Linux et d'accéder à l'interface graphique de RStudio à travers un navigateur web.

Installation

Se référer à la documentation officielle pour les détails de l'installation. En synthèse pour les intéressés :

  • Il faut d'abord installer R
  • Ensuite installer RStudio server
  • Le serveur doit disposer d'un URL/IP sur le réseau local ou public pour pouvoir y accéder depuis intranet/internet
  • Pour répliquer l'environnement typique il faudra également installer Git et LaTeX

Gestion des utilisateurs

La gestion des utilisateurs est faite à travers les utilisateurs du serveur Linux sous-jacent. Ils doivent disposer d'un dossier home. L'authentification est faite avec le même nom d'utilisateur et mot de passe du serveur.

Coûts

La version Open Source Edition est gratuite, mais il faut prévoir les coûts pour l'infrastructure (e.g. serveur, bande passante, ...).

Avantages et désavantages de l'environnement serveur

L'environnement de type serveur permet de mettre à disposition l'environnement typique à tous les utilisateurs d'un serveur, ce qui peut être intéressante par exemple pour une équipe ou un laboratoire de recherche. En effet, cette option permet de :

  • Avoir les données et les analyses au même endroit centralisé (e.g. question de sécurité, privacy, etc.)
  • Accès au même projet depuis différentes postes de travail, sans besoin d'un système de synchronisation
  • Un administrateur s'occupe de la mise à jour des différents éléments
  • Possibilité de partager les projets au sein de la même équipe
  • Lancer des analyses de manière régulière (e.g. analyse d'une page web chaque jour à un heure précise, etc.) ou qui nécessitent de long temps de computation (e.g. machine learning, etc.)

En revanche, ce type d'environnement présente les désavantages suivants :

  • Connexion à internet/réseau local indispensable
  • Interface peut être moins réactive par rapport à l'environnement local à cause des temps de latence pour la communication à travers le navigateur, selon la qualité de la connexion
  • Selon le type d'analyse prévue par les utilisateurs, le serveur doit être suffisamment puissant et disposer d'assez d'espace de stockage
  • La mise à jour dépend de l'administrateur du système
  • L'accès aux fichiers et aux données avec un autre logiciel est plus difficile par rapport à l'environnement local

Environnement cloud

L'environnement cloud permet d'utiliser un environnement complet dont la gestion est externalisée à une autre entité, par exemple une entreprise, qui s'occupe de mettre à disposition à la fois l'infrastructure (i.e. le hardware) et les logiciels (i.e. software). Ce type de solution peut être indiquée notamment pour les cadres d'utilisation suivants :

  • Découverte de l'environnement typique sans la nécessité d'installer et configurer tous les logiciels nécessaires
  • Utilisation dans le cadre de la formation et de l'enseignement :
    • Encore une fois, les apprenants peuvent tout de suite commencer à explorer et utiliser l'environnement, sans les étapes (et les problèmes) d'installation
    • Il est possible de partager des environnements, par exemple avec des données ou des scripts d'exemples déjà disponibles, afin que tous les apprenants puissent démarrer avec les mêmes conditions
  • Utilisation dans le cadre de la recherche :
    • Création d'environnement inter-institutionnels qui peuvent résoudre des problèmes de limitation d'accès selon l'institution d'appartenance
    • Location de ressources computationnelles intensives pour une durée limitée (e.g. correspondante à la durée du projet de recherche)

Voir la liste des avantages et désavantages plus bas pour plus de détails à ce propos.

RStudio cloud

Pour l'instant voir RStudio cloud.

Il s'agit d'une version beta (voir versionnage sémantique), donc encore en phase de développement

Code Ocean

Code Ocean est une plateforme collaborative pensée principalement pour des chercheurs et qui propose plusieurs type d'environnements souvent utilisés dans la recherche, parmi lesquels figure également R.

Avantages et désavantages de l'environnement cloud

Les avantages et désavantages de l'environnement cloud ressemblent à ceux pour l'environnement serveur, avec les différences suivantes. Au niveau des avantages :

  • Infrastructure et logiciel sont gérés directement par le fournisseur du service
  • Possibilité de s'inscrire au service sans passer par un administrateur
  • Environnement pris en charge par des spécialistes
  • Possibilité de collaboration avec personnes d'autres institutions, labo, etc.

Au niveau des désavantages :

  • Les données et scripts résident dans des serveur distants. Même si protégés par des politiques de confidentialité, selon le degrés de sensibilité des données cela peut représenter un problème
  • Des fonctionnalités plus avancées (e.g. puissance de calcul, nombre de projets, nombre de personnes qui peuvent collaborer, etc.) peuvent nécessiter d'un payement
  • La durée des projets/services informatiques externalisés est souvent difficile à prévoir