Sustainability Checker

Modélisation, développement et déploiement d'une application Web Ruby on Rails

Introduction

  • Du 16 Septembre 2013 au 28 Mars 2014 à l'Université Autonome de Barcelone
  • Projet lié à la recherche environnementale et au thème de la soutenabilité

Plan

  • I. Contexte du projet
  • I-1. Le groupe de recherche IASTE
  • I-2. La méthodologie MuSIASEM
  • II. Le projet
  • II-1. Présentation
  • II-2. Environnement et mise en place
  • II-3. Développement

I. Contexte du projet

Le groupe de recherche IASTE et la méthodologie MuSIASEM

I-1. Le groupe de recherche IASTE

"Integrated Assessment: Society, Technology and the Environment"

  • Fondé en 2010 par Mario Giampietro
  • Comporte une trentaine de collaborateurs
  • Divisé en trois axes de recherche:
  • Métabolisme sociétal
  • Sociologie environnementale
  • Systèmes ruraux
  • Travaille en collaboration avec des organismes internationaux (FAO) et d'État (Afrique du Sud, Equateur)

I-2. La méthodologie MuSIASEM

"Multi-Scale Integrated Analysis of Societal and Ecosystem Metabolism"

  • Ensemble d'outils utilisant des variables techniques, économiques, sociales, démographiques et écologiques
  • Utilisée pour effectuer un diagnostic puis des simulations basées sur ce diagnostic

Diagnostic

Caractérisation d'un système:
  • Fonds (funds): main d'oeuvre, avancée technologique, répartition du territoire
  • Flots (flows): eau, nourriture, energie, richesse
  • Caractérisation de ces variables sur deux indicateurs: travail humain, occupation du territoire répartis sur les différents compartiments de la société

Simulation

Étude d'un scénario dans le système décrit:
  • Viabilité
  • Est-ce que le système dispose des ressources nécessaires pour répondre à ses besoins ou doit-il importer ?
  • Désirabilité
  • Reste-t'il suffisamment de ressources pour assurer le bon fonctionnement des secteurs dits "dissipatifs" (foyers, services publics...) ?
  • Faisabilité
  • Quel est l'impact sur l'environnement ? (sink capacity)

II. Le Projet

Un outil interactif pour comprendre et débattre sur la problématique de la soutenabilité

II-1. Présentation

La soutenabilité ?

    Soutenabilité: maintien des fonctions vitales de la société sans sur-exploitation des ressources terrestres, et sans apport de ressources extérieures.

Problématique du projet

Comment déterminer le rôle de chaque composant de notre société dans l'élaboration d'un système soutenable ? En appliquant la méthodologie MuSIASEM pour déterminer quels sont ces compartiments de la société, quels sont leurs besoins et comment y répondre.

Structure

  • Questions qui caractérisent les besoins du système (Demand)
  • Questions sur la façon dont les ressources naturelles sont exploitées (Supply)
  • Visualisation du niveau de soutenabilité du système créé


Trois niveaux de complexité pour la même structure:
  • Niveau 1: version simple ne présentant que les variables d'entrée et le résultat final
  • Niveau 2: visualisation des données brutes et des calculs effectués
  • Niveau 3: visualisation de toute les données, approche différente

II-2. Environnement et mise en place

  • Totalité des aspects technique du projet à ma charge:
  • Nécessité de planifier le travail
  • Déterminer les technologies les plus adaptées à la situation
  • Surveiller la qualité de son travail

Workflow

  • 1. Ciblage du projet : réunions, entretiens avec l’équipe
  • 2. Modélisation : prototypage, réalisation de maquettes
  • 3. Recherche et mise en place des composants de l’application (serveur, environnement de développement, de test et de production)
  • 4. Planification des itérations de développement
  • 5. Itérations de développement
  • 6. Revue du travail effectué, préparation de la maintenance

Technologies utilisées


  • Stack:
  • Linux, hébergé par Heroku
  • Ruby on Rails
  • PostgreSQL

  • Projet open-source:
  • Aspect collaboratif: Git et Github
  • Outils de test et de contrôle qualité: Travis, Code climate, Gemnasium

Ruby on Rails

  • Framework MVC basé sur le langage Ruby
  • Dispose d'une grande base d'utilisateurs actifs
  • Permet l'intégration de "gemmes"

Heroku

  • Hébergement scalable
  • N'héberge que des projets Rails et Node.js
  • Utilise Git pour gérer le déploiement de l'application

Testing et contrôle qualité

  • Travis se déclenche automatiquement à chaque mise à jour publiée sur Github et suit un ensemble de directives défini par le développeur
  • Code Climate parcourt le code et détecte les erreurs et les améliorations possibles
  • Gemnasium vérifie l'intégrité des gemmes utilisées dans le projet et gère leur mise à jour
  • Travis peut ensuite déclencher les procédures de test écrites pour l'application

II-3. Développement

  • Basé sur des itérations de 3 à 5 semaines
  • Feedback constant venant de l'équipe
  • Base de code perpétuellement en évolution en fonction des contraintes imposées par l'équipe

Organisation du code

  • Partie statique
  • Partie interactive séparé en trois niveaux

Démonstration

Conclusion

  • Un contexte original et un sujet passionant:
  • Un groupe de recherche multi-culturel, pionnier dans sa discipline et hébergé par le plus important pôle de recherche en Espagne, et une méthodologie permettant de modéliser et étudier l'ensemble des parties constituant notre société moderne

  • Acquisition et renforcement de compétences techniques:
  • La mise en place d'un projet informatique du début jusqu'à la fin et l'utilisation de nouvelles technologies

  • Des perspectives professionnelles:
  • Le métier d'ingénieur full-stack, sa versatilité et son lien étroit avec la veille technologique

Merci de votre attention!


Questions ?