ELEPHANT technologies, l’ESN locale et à taille humaine spécialisée sur 2 métiers : le développement et le pilotage autour de 4 expertises : hardware, embarqué, software et web.

 

Et aujourd'hui, retrouvez Anne-Camille notre elephantgénieur développeuse full stack (java, angular) qui nous parle du Green IT et qui nous explique les bonnes pratiques de code à utiliser pour limiter notre consommation énergétique.

 

Let’s go !

 

 

Et si on protégeait ensemble l‘environnement

dans notre codage  ?

 

 

Aujourd’hui, l’écologie est au cœur des préoccupations des services du numérique. Le calcul et l’analyse des impacts environnementaux deviennent des enjeux majeurs pour les entreprises.

 

On estime que l’empreinte carbone liée aux activités numériques représente environ 5% du total des émissions mondiales : cela représente 2 gigatonnes de CO2.

 

Ces problématiques s’intègrent dans le cadre du « Green IT ». Le Green IT, Green ICT, ou Eco-TIC, est défini comme l’ensemble des technologies de l’information et de la communication dont l’empreinte économique, écologique, sociale et sociétale est volontairement réduite et / ou qui aide l’humanité à atteindre les objectifs du développement durable.

 

 

Mais concrètement, quelles sont les sources de consommation et comment limiter l’impact énergétique dans notre travail ?

 

 

L'impact du matériel informatique

On considère qu’actuellement 45 % des gaz à effet de serre générés par nos activités numériques sont liés à la fabrication de nos équipements informatiques.

Pour limiter ce coût, on peut choisir du matériel avec un label éco responsable, par exemple : Pour les écrans et les ordinateurs : Epeat, pour les imprimantes : Nordic ecolabel, pour les téléphones portables : Blauer engel, pour les tablettes : TCO.

 

Dépenses énergétiques du code au sein d’un projet

Bien que le choix du langage de programmation n’ait finalement pas tant d’impact sur le côté « Green », il faut être conscient que certains langages ont une consommation énergétique beaucoup plus important que d’autres, c’est notamment le cas de Python, avec une consommation énergétique 75,88 fois supérieure à la consommation du langage C. Il faut également savoir qu’un langage bas niveau consomme beaucoup moins qu’un langage haut niveau. (Source : tel.archives, tableau des dépenses des principaux langages de programmation).

 

➾ Des bonnes pratiques de code sont également à mettre en place pour limiter notre consommation énergétique.

 

 

 

  • Côté FRONT-END

 

L’importance des caches

Mettre en cache les réponses utilisées, le byte code et l’accès aux bases de données permettent d’optimiser les performances de l’application, et donc la quantité d’énergie nécessaire au fonctionnement côté serveur (émissions de gaz à effet de serre) ainsi que le nombre de serveurs nécessaires pour faire fonctionner le site (Facebook a divisé par 2 ses besoins en compilant son code PHP en C++).

 

L’importance des requêtes http

Ajouter une en-tête « if modified since » avec http 304 Not Modified, on envoie des données que si l’application n’est pas à jour, sinon on n’envoie aucun corps.

 

L’importance du CDN

En plus de compresser les données, l’utilisation d’un CDN, qui distribue localement le contenu des serveurs et garde en cache les fichiers qui ne nécessitent pas de mise à jour permanente, permet d’optimiser l’application et donc limiter les dépendances.

 

Les dépenses médias

Préférez les images vectorisées ou en jpeg, supprimez les médias inutilisés, prendre une bonne taille d’image et la compresser, préférez également les vidéos aux GIF.

 

Le CSS

Le CSS est automatiquement compilé, c’est donc une partie à optimiser qui n’est pas négligeable. La génération des spritesheets CSS, favoriser les polices standard et supprimer les JavaScript redondant.

 

Le code source

Selon le green code, on peut réduire les dépenses CO2 grâce à quelques pratiques telles que le traitement asynchrone lorsque c’est possible, la réduction des redirections, réduire la profondeur du DOM et minimiser le nombre d’Iframes.

 

 

 

  • Côté BACK-END

 

La minification des scripts

La minification permet d'alléger le poids d'une application grâce à la suppression de tout ce qui n'est pas indispensable à la compréhension du code. Ce qui permet également d’alléger la page web, de rendre les échanges plus rapides et de réduire la consommation réseau des clients comme des serveurs. Il y a donc une forte corrélation entre l’intérêt pour le client (et donc l’entreprise) et préserver l’environnement.

 

La désactivation de certains logs

Elle permet d’éviter d’autres interactions et affichages inutiles, donc de limiter la consommation énergétique.

 

Optimiser les requêtes en BDD

Minimiser le nombre de requêtes SQL permet de réduire le temps d’exécution et la consommation des ressources. Préciser la colonne de recherche permet une exécution plus rapide et plus directe, donc éviter de parcourir chaque donnée de chaque table. Ce qui nous permet gagner du temps et de limiter les consommations. Préciser également le nombre maximum de résultats que l’on souhaite obtenir, comme spécifier la colonne de recherche, permet d’éviter de parcourir chaque donnée de chaque table. On gagne donc également du temps et on limite les consommations.

 

Optimiser les conditions d’itération

Limiter la complexité cyclomatique et les conditions des boucles permet d’éviter les calculs du côté serveur et de limiter ainsi l’utilisation de CPU. En effet, plus les conditions sont complexes et plus le temps d’exécution sera important, tout comme la consommation énergétique.

 

Le score WEA

Le score WEA du site doit être supérieur ou égal à C Le nombre de requête ne doit pas dépasser le nombre moyen des sites du panel WEA (50).

 

 

 

  • Les outils existants

Les outils les plus utilisés pour mesurer l’impact des applications sont actuellement EcoIndex (http://www.ecoindex.fr/)  et EcoGrader (https://ecograder.com/), simples d’utilisation, il suffit de fournir l’URL de votre application pour obtenir un rapport détaillé. D’autres outils peuvent être utilisés en amont pour corriger les éventuelles redondances, c’est le cas de unused-css qui calcule le CSS utilisé, EasyVirt DCSCOPE et Java Profiler qui permettent de mesurer les lignes de codes sur lequel le processeur passe le plus de temps, NetBeans profiler qui mesure la consommation énergétique côté back, CDN OVH qui permet de garder en cache les informations, plus rapide et moins polluant …

 

Pour conclure, le passage à des infrastructures plus Green concerne tout le monde, il faut relocaliser les Cloud en France, l’électricité française est l’une des moins carbonées d'Europe, passer tous les serveurs d’AWS en France reviendrait à diviser par 6.5 les émissions de CO2 liées à l’électricité (source greenly.earth) et allonger la durée de vie des équipements informatiques. On n’oublie pas non plus de trier :https://sitetom.syctom-paris.fr/le-parcours-des-dechets/tom-trie.html:)

 

 


🐘 Nous remercions Anne-Camille pour son article et si vous souhaitez en découvrir davantage sur le Green Code, c’est par ici : https://www.elephant-technologies.fr/actualite/28