L’éco-conception
chez MobileThinking

Architecture et Green Code

05.08.2025

Troisième défi : repenser les fondations

Après avoir allégé les médias et mieux réparti les traitements entre le front et le back, notre troisième défi d’éco-conception s’est attaqué à un terrain moins visible mais tout aussi essentiel : l’architecture technique et la façon dont le code est structuré.

Et qui de mieux que Vincent, en binôme avec Mipam, pour explorer les bons gestes à adopter en matière de conception et de développement ?

Parce que parfois, coder de manière plus sobre, c’est d’abord penser différemment. 

Constat initial 🔎

Derrière chaque site web, il y a une “infrastructure” qui permet à tout de fonctionner : des serveurs, des bases de données, des fichiers stockés, des protocoles de communication…

Des éléments souvent invisibles en surface, mais qui consomment beaucoup d’énergie.

Comme aurait pu le dire Neil Armstrong : un petit clic pour un utilisateur, un grand impact pour les serveurs.

Les problématiques identifiées 🤔

Notre duo s’est penché sur plusieurs niveaux de cette “machine” numérique : 
  • Infrastructure : est-elle bien dimensionnée ou trop lourde pour le besoin réel ?
  • Communication entre les éléments du système : peut-on éviter certains échanges inutiles ?
  • Base de données : les requêtes sont-elles optimisées ou trop gourmandes par défaut ?
  • Organisation des services (orchestration) : mutualise-t-on les ressources intelligemment, ou gaspille-t-on ?
  • Stockage : conserve-t-on tout sur des serveurs “chauds” énergivores, même quand ce n’est pas nécessaire ?
  • Protocole HTTP/3 : apporte-t-il vraiment des gains d’efficacité, notamment sur mobile ?

Ce qu’on a testé 🧪

Pour avancer, l’équipe s’est appuyée sur des cas concrets et des outils de mesure : 
  • Scaphandre pour estimer la consommation énergétique réelle de certaines opérations.
  • Tests comparés de bases de données : MariaDB, PostgreSQL, SQLite, MySQL selon les volumes de données et la complexité des requêtes.
  • Comparaison de protocoles : HTTP/2 vs HTTP/3, surtout dans un usage mobile.
  • Audit complet du code backend (Laravel + PHP) : allègement des requêtes, gestion du cache, activation des optimisations comme OPcache.
  • Analyse des types de stockage : données “actives” vs données archivées.
  • Tests entre environnement de test (staging) et production pour évaluer les vrais écarts de performance énergétique.

Nos pistes d’amélioration

Voici quelques décisions déjà mises en œuvre ou prévues :
  • Rester sur un hébergeur engagé (comme Infomaniak) et rapprocher les éléments techniques pour limiter les distances réseau.
  • Utiliser des CDN (réseaux de diffusion) pour servir plus efficacement les fichiers, selon la localisation.
  • Activer HTTP/3 uniquement sur mobile, là où ça a du sens.
  • Repenser la structure des bases de données : éviter les requêtes trop lourdes, utiliser le cache, anticiper les besoins.
  • Alléger les containers Docker et suivre leur consommation avec des outils adaptés.
  • Activer toutes les optimisations de PHP (OPcache, JIT), nettoyer les modules Laravel inutiles, répartir mieux les traitements.

Ce qu’on retient

Ce défi nous a montré que l’impact environnemental d’un service numérique ne se joue pas uniquement dans les choix visibles, mais aussi, et surtout, dans les fondations techniques qu’on pose dès le départ.

Réfléchir à l’architecture, c’est passer d’une logique de performance immédiate à une vision long terme, où chaque composant a une raison d’être et chaque traitement une vraie utilité.

Et ce n’est pas qu’une affaire de développeurs backend ou de DevOps : c’est une responsabilité collective, qui commence dès les premiers schémas de conception.

À suivre… ✨

Nous avons optimisé les médias, équilibré les traitements, repensé l’architecture… mais un autre chantier nous attend : les langages et les frameworks.
  • Côté backend : Laravel, Express, d’autres alternatives ? Tous les frameworks se valent-ils ?
  • Côté frontend : React, Vue, Svelte… quelle est leur consommation réelle ?
  • Et comment mesurer concrètement l’impact d’un langage ou d’un framework, entre les requêtes, le traitement des données et l’affichage ? 
👉 On vous partage toutes nos réflexions et solutions dans le prochain article !