Eco-conception du code : pour en finir avec les applications energivores
Du commun des mortels, toujours préoccupé du niveau de batterie de son smartphone, à la multinationale, dont les data centers engloutissent des quantités colossales d’électricité, l’énergie s’impose comme un enjeu IT de première importance.
Son coût et son empreinte environnementale ne sauraient être minimisés alors que les data centers représentent déjà près de 10 % de l’énergie consommée en France et 2 % des émissions de CO2 dans le monde. Souvent abordée du point de vue du matériel et des infrastructures, l’efficacité énergétique passe aussi par l’éco-conception des applications, qui s’appuie désormais sur des pratiques et des outils éprouvés.
L'expérience utilisateur est devenue une priorité absolue
Avec des utilisateurs exigeants au point de désinstaller 95 % des applications dans le mois de leur téléchargement, l’expérience est devenue une priorité absolue. Or, elle ne repose pas seulement sur l’élégance et la simplicité de l’interface, mais aussi sur la performance de l’application au sens large : sa rapidité d’exécution, son volume, son impact sur l’autonomie du téléphone… Autant d’aspects qui dépendent en grande partie de la façon dont a été écrit le code.
De nombreux bénéfices pour l'entreprise
Optimiser ses développements du point de vue énergétique participe donc directement à une stratégie UX mais, les bénéfices ne s’arrêtent pas là pour l’entreprise. En effet, des applications plus sobres vont engendrer, au niveau du data center, d’importantes économies directes (moindre consommation) et indirectes (moindre sollicitation du matériel, donc prolongation de sa durée de vie). Enfin, à ce double bénéfice économique s’ajoute la réduction de l’impact environnemental, contribuant de façon significative aux objectifs RSE de l’entreprise.
L’éco-conception des applications permet de concrétiser ces bénéfices en intégrant dès l’origine la problématique énergétique : comment alléger le fonctionnement, comment respecter les ressources, comment cohabiter avec les autres applications… – et des bonnes pratiques de développement. Par exemple, positionner les ressources nécessaires aux processus récurrents en RAM plutôt que de systématiquement les créer puis les supprimer, ce qui est très énergivore.
L'éco-conception : un état d'esprit
L’éco-conception est aussi un état d’esprit à retrouver chez les développeurs : sous l’effet conjugué de l’explosion des capacités matérielles et de l’urgence des projets, la culture de l’économie de moyen n’a plus été prioritaire pendant de longues années.
Enfin, l’éco-conception peut depuis peu s’appuyer sur des outils qui, à l’image de celui de la startup nantaise Greenspector, s’intègrent aux environnements de développement et permettent de mesurer, grâce à des sondes, la consommation d’une portion de code ou d’une fonctionnalité.
« Atos a notamment utilisé Greenspector dans le cadre du projet Auxylium, une solution de communication tactique duale développée en collaboration avec la DGA. »
Basée sur un smartphone Android, Auxylium est une application on ne peut plus critique pour les soldats en opération puisqu’elle constitue leur seul lien avec le commandement et leur permet de communiquer entre eux. En maximiser l’autonomie était donc absolument prioritaire.
Grâce à ses mesures, Greenspector permet en particulier d’objectiver les décisions d’éco-design. Par exemple, il est apparu sur Auxylium qu’un écran « nuit » (écriture verte sur fond noir) consommait 3 % à 20 % moins d’énergie qu’un écran « jour » (écriture noire sur fond blanc), ce qui a conduit à l’abandon de ce dernier. Mais l’outil permet d’aller encore plus loin avec la détection de « bugs énergétiques » : des portions de code inutiles qui n’entraînent aucun dysfonctionnement fonctionnel mais génèrent en revanche une activité consommatrice d’énergie. Dans le cas du prototype Auxylium, éliminer une boucle qui créait puis supprimait indéfiniment un tableau inutile en mémoire a permis de gagner 1 heure journalière ! Au final, l’éco-conception, outillée par Greenspector, a permis de porter à plus de 8 heures l’autonomie d’Auxylium contre 4 heures tout au plus si elle avait été développée de façon ordinaire.
À l’image de la démarche DevOps, qui intègre les contraintes d’exploitation dès le développement, l’éco-conception réconcilie le logiciel et ressources matérielles dans une approche économe et vertueuse, dont les résultats sont à la fois tangibles et bénéfiques tant pour l’entreprise et les utilisateurs finaux que pour l’environnement.