3 bonnes pratiques pour coder "vert"
Trois voies peuvent contribuer à décarboner le numérique : le serverless pour mieux mutualiser les serveurs, la conception durable pour éviter le superflu, et la conception d'applications performantes pour retarder l'achat de nouveaux devices.
Selon le Think thank "The Shift Project", l'empreinte carbone du numérique devrait atteindre 7,5% des émissions mondiales dès 2025, si le secteur suit la tendance actuelle. Pour décarboner le numérique, une première option consiste à réduire la fabrication de terminaux et serveurs (45% des émissions). Une deuxième option implique d’abaisser la consommation électrique nécessaire au fonctionnement de tous les terminaux qui totalisent 55% des émissions. Enfin, agir sur le code est un levier important pour rendre le numérique moins énergivore.
Le serverless
L’agence internationale de l’énergie (IEA) prévoit que la consommation globale des data centers devrait rester stable à environ 200 TWh/an en 2022, un chiffre étonnamment stable depuis 2010.
En plus de l’amélioration des performances énergétiques des serveurs, la migration vers des machines virtuelles dans le cloud d’une large partie des data centers traditionnels durant la dernière décennie est à l’origine de cette stabilité. En effet, cela a permis d’augmenter la mutualisation des usages des serveurs permettant de couvrir plus de besoins avec moins de serveurs.
Les technologies serverless des cloud providers viennent à nouveau augmenter cette mutualisation des serveurs ouvrant la voie à de nouvelles économies d’énergie. Cette mutualisation est rendue possible par le fait que les serveurs sont sollicités uniquement lors de l'exécution du code serverless là où traditionnellement il fallait toujours mobiliser une partie d’un serveur en attente de la prochaine exécution du code.
Le serverless comporte d’autres avantages comme le fait de permettre aux développeurs de s’affranchir de la gestion de leur serveur (mise à jour, patch de sécurité, etc.), celle-ci étant complètement prise en charge par les cloud providers. Un autre avantage est que les architectures serverless s’adaptent à tous les pics de trafic de manière transparente, à la hausse comme au moment des soldes pour un site e-commerce et à la baisse comme la nuit quand le trafic est moindre. Ce qui permet également de faire des économies en ne payant que ce qui est utilisé.
La conception durable
La conception durable d’une application web ou mobile consiste à créer une application avec uniquement les fonctionnalités indispensables et une architecture qui va résister le plus possible à l’épreuve du temps. Les fonctionnalités dites gadget sont supprimées pour éviter les temps de programmation inutiles et la consommation excessive de ressources. Blablacar utilise par exemple la méthode CORSE pour alléger son site.
Pour les applications mobiles, un des buts est de garder au maximum la compatibilité avec les anciennes versions des systèmes d’exploitation, ce qui permet aux personnes avec des téléphones anciens de continuer à les utiliser. Cela oblige parfois à certains compromis comme la non utilisation de nouvelles capacités disponibles sur les versions les plus récentes.
Des applications performantes
Une façon de limiter la fabrication de nouveaux téléphones consiste à permettre à un maximum de téléphones existants - notamment les plus anciens - à continuer à utiliser les applications que vous développez. L’usage d’une application devient compliqué quand elle est lente sur son device. Il faut donc coder pour optimiser la vitesse sur deux niveaux : diminuer au maximum les données à télécharger et faire en sorte que le code à exécuter sur les téléphones soit le plus léger possible.
Pour aider la communauté, Google a développé Lighthouse, un outil open source populaire qui permet d’évaluer la performance de son site et d’obtenir des conseils à mettre en place pour l’améliorer. Un site plus performant sollicitera également moins la batterie des téléphones qui est la cause de remplacement de 40% des téléphones.