Coturnix s’applique à elle-même ses propres principes de sobriété et d’utilisation responsable de l’énergie. Nous avons dû faire un certain nombre de choix pour cela, qui ont fortement contraint notre communication et notre accès à certains types de financements.
Nous présentons ici nos réponses à la version 1 du référentiel général d’écoconception de services numériques. Nous sommes concernés par toutes les questions, et répondons négativement à trois d’entre elles, les questions 6.2, 8.1 et 8.12, ce qui nous attribue un score de 96%.
Le service a été créé pour répondre à un problème concret et précis, initialement pour le cas particulier d’un bailleur social. Coturnix répond à un problème économique concret posé par le partage d’énergie local: le partage d’énergie et le passage de communautés à l’échelle de nombreux participants. Notre solution s’inscrit donc dans les objectifs de développement durable de l’ONU suivants:
Les questions 1.2 à 1.4 ont la même réponse: nous avons co-conçu Coturnix avec ses utilisateurs, en tenant compte de la notion de fracture numérique. En particulier, Coturnix est utilisable sans ordinateur ni smartphone une fois passé l’inscription (et ne demande qu’un navigateur standard et une adresse courriel pour cette inscription).
Notre site web n’utilise que des technologies standard et évite les développements récents. Notre application mobile, quant à elle, nécessite au minimum iOS 13 (donc au moins sur l’iPhone 6s, qui date de 2015), et l’API 20 d’Android, qui date de 2014, et l’attention à cette compatibilité est depuis le début un objectif explicite de notre travail, l’application mobile nous ayant été explicitement demandée par des utilisateurs peu fortunés.
L’application mobile comme le site web de Coturnix sont conçus pour l’accessibilité. Les deux sont disponibles à la fois en version sombre et en version claire en nous conformant aux standards des systèmes d’exploitation et du web. De plus, notre site web utilise les standards lui permettant d’être utilisable par des lecteurs d’écran.
Notre interface web se conforme intégralement aux standards du web. Il dépasse de plus cette exigence en utilisant le rendu côté serveur dès que c’est possible, ce qui permet de consulter presque toutes les pages sans javascript. Les seules exceptions sont les cartes interactives et le paiement par carte, qui utilisent les bibliothèques les plus standard possibles (Stripe pour le paiement, Leaflet; pour les cartes) et des données ouvertes (celles d’OpenStreetMap pour les cartes).
Nous suivons les conseils de Cosme Meunier sur la question, qui est accrédité Bilan Carbone (r) par l’ADEME, membre de l’Association pour la transition Bas Carbone, collège conseil et Audit. Il a été formé par l’Institut de Formation Carbone IFC et accompagne au quotidien des entreprises et entités publiques dans l’optimisation de leur impact carbone.
Nous mesurons quotidiennement l’utilisation de nos serveurs pour nous assurer de leur bon dimensionnement, et limitons la redondance au strict nécessaire. Les indicateurs sont l’utilisation CPU et mémoire, et le taux de remplissage des disques durs. De plus, nous surveillons la bande passante de notre serveur, en la surveillant directement, ainsi qu’en mesurant la taille des contenus échangés entre le serveur et les clients.
Notre objectif est d’avoir un impact inférieur de 80% aux moyennes constatées sur le marché (hors compensation) afin de respecter les accords et recommendations du GIEC pour la neutralité carbone en 2050. Nos prochaines étapes concernent la transition vers des processeurs moins consommateurs pour notre serveur, que nous n’avons pas encore faite parce que ces processeurs ne sont pas encore disponibles en France et ne nous permettraient pas encore d’effectuer les calculs de modèles statistiques (deep learning) dont Coturnix a besoin pour fonctionner.
Nous vérifions au début de chaque mois les infrastructures en place, notamment en vérifiant les différentes infrastructures cloud déployées. De plus, les nouvelles fonctionnalités sont systématiquement mesurées à l’aune de l’impact environnemental, notamment en termes de transfert de données.
Elle est disponible à l’adresse https://coturnix.fr/ecoconception (cette page!).
Oui. Nos objectifs de conception et nos processus de contrôle qualité incluent également la minimisation des interactions entre l’utilisateur·ice et notre interface mobile ou web, afin de lutter contre les phénomènes d’addiction aux écrans, ce qui permet également de réduire l’utilisation de terminaux numériques.
Cette stratégie repose sur un principe essentiel de Coturnix, qui est la minimisation du temps que nos utilisateurs passent sur notre application et notre site web. Ainsi, nous évitons au maximum les changements d’interface, et nos mises à jour sont systématiquement testées pour vérifier que les éventuels changements sont transparents pour nos utilisateurs. Les modalités de distribution de notre application mobile (via l’App Store et le Play Store) nous permettent de surveiller l’état des mises à jour sur les smartphones de nos utilisateur·ices.
Le fait que notre équipe technique soit restreinte nous impose une grande vigilance sur les aspects de dette technique. En plus d’utiliser des technologies modernes (notamment la programmation fonctionnelle) pour vérifier automatiquement notre code et notre infrastructure, nous auditons l’architecture de notre code et de notre base de données manuellement au moins une fois par mois pour éliminer les fonctionnalités superflues.
Nous réalisons l’intégralité de la conception et du développement des services numériques de Coturnix.
Nous avons tout d’abord peu de composants d’interface prêts à l’emploi, et sommes de plus particulièrement vigilants aux questions de leur minimisation, de leur compression et de leur mise en cache côté client. De plus, notre interface web est compilée, ce qui permet de minimiser le poids de ses différents composants statiques. Enfin, l’utilisation d’une application mobile permet de ne transférer que les données utiles. La plupart du temps, celles-ci sont transférées par des notifications push invisibles, qui permettent d’éviter «l’attente active» et de mutualiser les connexions à internet entre plusieurs applications.
Nos seuls fournisseurs externes sont liés à l’hébergement de serveurs et au paiement. Pour l’hébergement, nous utilisons AWS, signataire du «Climate Pledge» de l’ONG Global Optimism. Cette infrastructure mutualisée a de nombreux avantages sur le plan des économies d’énergie, et ce fournisseur développe de plus son propre processeur (Graviton) qui permet de réduire encore l’impact énergétique. Quant à notre prestataire de paiement, nous avons entamé une collaboration avec La Banque Postale, première banque à se désengager des énergies fossiles, pour remplacer notre prestataire actuel (Stripe), mais le retard technologique important de La Banque Postale ne nous permet pas encore de l’utiliser en remplacement de Stripe.
Nous utilisons systématiquement les technologies les plus efficaces possibles pour nos serveurs, en particulier en termes de langages de programmation. Ces technologies permettent de garantir non seulement la meilleure performance possible, mais aussi une grande souplesse de test et de prototypage, ce qui permet de tester davantage d’hypothèses de performance pour retenir les meilleures. Nos méthodes de déploiement utilisent des technologies issues de recherches récentes, afin d’éviter le téléchargement d’images lourdes et l’utilisation de machines virtuelles.
Pour l’application mobile, nous utilisons une technologie portable qui permet de développer une seule version pour toutes les plateformes (iOS, Android). Ce choix donne une application légèrement moins efficace que des applications natives (de 15% à 20% selon les sources), mais largement moins coûteuses à développer et à maintenir. Cette performance légèrement inférieure est toutefois à relativiser, étant donné que l’application mobile ne fait quasiment aucun calcul lorsqu’elle est active et n’utilise aucun cycle de processeur lorsqu’elle est en veille.
Nous utilisons le cloud d’AWS et des outils de déploiement rapides, qui permettent d’ajouter de nouvelles machines en quelques minutes au besoin. Nous avons pour l’instant fait le choix de privilégier l’optimisation de la performance de notre serveur web pour retarder l’utilisation d’outils spécifiques de scaling (Kubernetes), qui nous imposeraient d’ajouter de nombreux serveurs et disques durs supplémentaires et nuiraient à notre impact environnemental. Nos tests montrent que sans changer notre infrastructure, nous pourrions déjà gérer sans problème une charge plusieurs fois supérieure à l’intégralité de l’autoconsommation collective française actuelle.
Nous n’utilisons qu’IPv6 pour le développement et le contrôle de sécurité de Coturnix, en testant régulièrement l’accessibilité IPv4 pour garantir que tous nos utilisateur·ices aient accès à Coturnix, quel que soit leur fournisseur d’accès. De plus, nous redirigeons systématiquement notre port HTTP vers HTTPS, en utilisant HSTS pour éviter les problèmes de sécurité potentiels liés à cette redirection.
Le faible volume de données et les exigences de sécurité de Coturnix font de HTTPS un protocole particulièrement adapté. La plupart de nos contenus sont échangés en JSON. De plus, certains événements sont asynchrones, c’est-à-dire qu’ils ne sont pas déclenchés à l’initiative de l’utilisateur·ice. Dans ce cas, nous utilisons les notifications push invisibles, qui sont la manière la plus efficace de gérer ces événements.
Oui, et nos conditions d’utilisations vont même plus loin en promettant l’ouverture totale du code dans le cas où l’entreprise Coturnix venait à cesser ses activités. La disponibilité des mises à jour est aujourd’hui le principal point bloquant pour que nous utilisions les «stores» alternatifs rendus possibles par le Digital Market Act Européen.
C’est le cas sur notre backend, grâce à l’utilisation d’outil modernes de contrôle de version (Pijul).
Notre service est testé plusieurs fois par semaine depuis une connexion 4G, et même régulièrement développé avec ce type de connexion. Nos propres restrictions de débit et celles de nos utilisateurs en zone rurale ont même fait partie des raisons de notre choix de développer une application mobile. En effet, contrairement à une interface web, celle-ci permet de ne télécharger l’essentiel du code qu’une seule fois, puis de réduire largement les besoins pendant l’utilisation.
Ces questions ont la même réponse: Coturnix ne comporte pas de vidéos, d’animations ni de sons, à l’exception des sons de notification de l’application mobile qui sont ceux par défaut du système d’exploitation. C’est un choix qui contraint notre communication, mais nous sommes fiers de maintenir cette cohérence.
Notre service n’a aucune page de ce type, et comme nous l’avons expliqué en introduction de cette rubrique, l’un de nos objectifs est de limiter la nécessité d’interactions entre nos utilisateurs et notre application mobile ou notre site web.
Nous allons en réalité beaucoup plus loin, puisque l’une des métriques que nous utilisons dans la conception est le nombre d’interactions (champs de texte, boutons…) nécessaires pour effectuer chaque action. Notre objectif est évidemment de réduire ces interactions au maximum, y compris pour les fonctionnalités secondaires.
Nous n’avons recours à aucun service tiers, la question ne se pose donc pas.
Notre site internet utilise les composants standards des navigateurs, avec une couche de standardisation CSS pour offrir la même interface sur les différents navigateurs et plateformes. Cette couche est minimale et est mise en cache au premier chargement d’une page.
Notre application mobile, quant à elle, utilise une bibliothèque portable qui permet de traduire les différents composants (boutons, textes…) en composants natifs, à la fois dans un souci de taille d’exécutable et afin d’offrir une expérience «native» à nos utilisateurs.
C’est bien le cas pour notre application mobile. En revanche, nous avons fait le choix pour notre site web de standardiser la police de caractère entre les différents systèmes, afin d’uniformiser l’expérience utilisateur et donc d’améliorer l’accessibilité de notre site web. Cependant, nous ne téléchargeons qu’une seule police, compressée (seuls 111ko sont téléchargés) et mise en cache au premier chargement. De plus, notre feuille de style utilise la police par défaut du système comme police de substitution.
Nous n’utilisons pas de suggestion ni de vérification automatique. Dans certains de nos formulaires, nous avons choisi de dégrader légèrement l’expérience utilisateur pour minimiser nos requêtes. L’objectif est autant la sobriété côté client que la limitation de nos besoins serveurs.
Oui, autant dans un objectif de sobriété que parce que les informations que nous demandons à nos utilisateur·ices sont pour un certain nombre d’entre elles relativement techniques (numéros de compteur d’électricité, de contrat d’injection…) et qu’il est donc primordial de leur communiquer un format le plus clair possible.
Oui. Notons qu’un certain nombre de requêtes nécessitent une requête de notre part à un service externe (par exemple Enedis ou une base de données d’adresses) et ne peuvent donc pas vraiment être vérifiées côté client.
Nous ne proposons pas le téléchargement de fichiers volumineux. Les fichiers téléchargeables depuis Coturnix sont de petits fichiers Excel de comptabilité mensuelle, ou des factures au format PDF. Dans les deux cas, les fichiers dépassent rarement le méga-octet.
Oui, et cette limite est fixée à quelques méga-octets, avant tout pour des raisons de sécurité, afin d’éviter de saturer la mémoire de nos serveurs.
Aucune des fonctionnalités des services numériques de Coturnix n’a d’impact environnemental significatif.
Comme nous l’avons expliqué en introduction, l’un de nos objectifs est de réduire le temps passé sur notre application. Nous n’utilisons donc les notifications que lorsqu’elles sont nécessaires pour d’assurer le bon fonctionnement de la communauté et la bonne communication entre les membres d’une communauté, par exemple pour les informer de leur acceptation dans une communauté, de la disponibilité ou du paiement d’une facture.
Les notifications que nous envoyons peuvent être désactivées par l’utilisateur·ice à l’installation de l’application. Les mêmes informations (factures, paiements, modifications de communauté) sont alors envoyées par courriel.
Notre conception va même bien plus loin, en permettant aux utilisateur·ices d’utiliser Coturnix sans aucun terminal numérique. Les interactions avec notre serveur se font alors via les compteurs communicants.
Nous utilisons relativement peu d’images, aucune vidéo et aucun contenu audio, par choix de sobriété. De plus, l’essentiel de nos graphismes est en format vectoriel (SVG) ou parfois encore plus sobrement en CSS.
Coturnix propose de télécharger des PDF entièrement vectoriels pour les factures et les documents administratifs de la communauté, générés directement depuis nos serveurs. De plus, certains des relevés sont proposés sous la forme d’un fichier Excel, afin de permettre l’utilisation de logiciels hors-lignes, souvent bien plus puissants et sobres que leurs versions en ligne.
Une partie des fichiers de nos services sont générés à la volée, de manière déterministe et reproductible, à partir des informations de notre base de données. Les autres documents appartiennent aux utilisateur·ices et sont stockés dans une base de données qui suit notre politique de confidentialité, selon laquelle les contenus supprimés par les utilisateur·ices le ne sont plus stockés sur nos serveurs au maximum trente jours plus tard.
Nous dépassons même cette exigence, puisque notre site internet utilise le même code côté client et côté serveur pour générer les pages HTML. Cette technologie permet de télécharger une page générée côté serveur lorsque l’utilisateur arrive sur le site (avec n’importe quel chemin), puis de ne télécharger que les données nécessaires à la modification de la page (au format JSON) lors de la navigation. Ce système permet d’utiliser au mieux le cache côté client. La limite que nous nous fixons pour chacune des pages est de 1Mo lors de la première page affichée, puis de 100ko (avec cache) lors de la navigation habituelle, en particulier lorsque de nouveaux scripts (paiements, cartes géographiques…) doivent être téléchargés.
La méthode de minimisation de la taille des pages expliquée dans la réponse 6.1 ne permet pas un contrôle fin du nombre de requêtes, puisque les fichiers sont recomposés par un compilateur pour maximiser le chargement parallèle et minimiser ainsi la latence et le poids du site. Cependant, notre service est complètement compatible avec HTTP/2, qui permet de négliger l’impact des requêtes séparées.
Nous utilisons les headers HTTP de contrôle de cache et de compression (gzip2 et brotli) pour la totalité des contenus. De plus, nos serveurs mettent certains éléments en cache, comme par exemple des requêtes déjà compressées, afin de réduire les latences et d’éviter de gaspiller des ressources de calcul côté serveur.
Une très large proportion de nos contenus graphiques est en format vectoriel, mais tous les autres éléments graphiques sont en effet affichés dans leurs résolution native.
Nous ne servons aucun contenu concerné par cette question, par choix de sobriété.
Nous utilisons peu de bibliothèques externes, mais nous sélectionnons en effet les composants utiles, et utilisons des nettoyeurs de code automatiques sur les formats pertinents (CSS, JS, HTML).
Coturnix évite les téléchargements inutiles. Nous sommes aidés en cela par le mécanisme automatisé expliqué dans la réponse 6.1.
Notre application mobile utilise le stockage côté client, notamment pour faire face à l’intermittence du réseau mobile et la mise en veille du téléphone. En revanche, cette possibilité n’est pas pertinente pour notre interface web, notamment parce que notre site web est une interface de gestion, alors que notre application mobile est une interface d’utilisation quotidienne.
Notre service n’utilise des capteurs que pour l’application mobile, et ne les utilise que pour la géolocalisation et la lecture de cartes de crédits. Ils sont éteints le reste du temps.
Nous n’utilisons qu’un seul domaine pour service toutes nos ressources, coturnix.fr, et notre serveur est compatible avec HTTP/2. Nous réfléchissons également à une extension vers HTTP/3 pour réduire la latence.
Certaines données sont en effet mises en cache en mémoire. Si l’auteur de Coturnix a également écrit l’un des systèmes de cache les plus rapides du monde (Sanakirja), nos essais n’ont pas montré la pertinence de ce type de systèmes.
Nous avons écrit notre propre serveur HTTP pour ce service, et avons donc un grand contrôle sur ce type de paramètres. Notre serveur compresse toutes ses réponses pour les clients qui indiquent supporter les compressions GZip2 et Brotli (les plus utilisées par les navigateurs actuels).
Nos conditions d’utilisation et de confidentialité indiquent que les données sont supprimées dès qu’elles ne sont plus pertinentes. Comme nous stockons parfois des données administratives et comptables, les durées de stockage peuvent être de plusieurs années. Cependant, nos données les plus volumineuses sont de très loin les données d’historiques et de prévisions météo, ainsi que les données de compteurs électriques, et nous les supprimons dès qu’elles ne sont plus nécessaires à l’entraînement de nos modèles et à la comptabilité, c’est-à-dire après un an.
C’est le cas pour notre application mobile. Notre site web utilise quant à lui un système «à l’ancienne» pour traiter les interactions, avec des requêtes POST redirigées. Nos tests ont en effet montré que c’est le système le plus facile à maintenir et le plus accessible.
Notre hébergeur est AWS et n’est pas signataire, mais conduit l’un programme les plus ambitieux sur le sujet, puisque l’institut 451 Research a mesuré que les datacentres d’AWS utilisent 5 fois moins d’énergie que les datacentres européens médians. De plus, AWS est engagé dans un processus de R&D particulièrement innovant sur le sujet, en développant ses propres modèles de processeurs pour réduire la consommation d’énergie de ses datacentres, et en investissant dans les énergies renouvelables pour assurer dès maintenant un approvisionnement renouvelable de 100%.
AWS a étendu dès 2020 la durée de vie de ses serveurs à 5 ans et à 6 ans en 2022.
AWS fait auditer ses services par plusieurs instituts indépendants, dont l’institut 451 Research sur le sujet de l’énergie.
Le PUE des datacentres d’AWS sont communiqués sur le tableau de bord. Dans notre cas, il se situe entre 1.07 et 1.15.
Le WUE d’AWS est de 0.25, et est communiqué de façon agrégée par Amazon.
Le datacentre parisien d’AWS, qui héberge Coturnix, utilise depuis 2022 100% d’énergie renouvelable.
Nous utilisons un hébergement basé à Paris, qui permet de desservir la totalité du territoire français avec une latence minimale.
Les principales données froides que nous utilisons sont les données météo et les sauvegardes de la base de données, qui sont stockées sur un bucket AWS S3. En revanche, le volume de données que nous traitons n’est pas suffisamment élevé pour que l’ajoute de nouvelles infrastructures, machines et disques soit rentable en termes d’impact.
Comme nous l’avons expliqué à la question 3.1, l’efficacité de nos technologies nous permet de n’utiliser qu’un seul serveur pour gérer un grand nombre de communautés. En revanche, nous sauvegardons quotidiennement notre base de données, et supprimons manuellement les sauvegardes après quelques jours.
Nous n’utilisons pas de redondance pour l’instant, essentiellement parce que ce n’est pas pertinent pour ce service: nous testons en effet régulièrement le redémarrage Coturnix sur une autre machine voire un autre hébergeur pour simuler un incident grave.
Notre hébergeur, AWS, ne récupère pas la chaleur fatale.