Comment obtenir un site internet “bas carbone” ou énergétiquement sobre ?

Comment obtenir un site internet “bas carbone” ou énergétiquement sobre ?

Nous sommes de plus en plus incités à faire attention aux ressources que nous consommons et utilisons. L’internet est un consommateur certain de ces ressources (électricité … eau ..) et chacun des utilisateurs de cette technologie doit se sentir concerné par le bilan carbone mais tous les sites ne sont pas logés à la même enseigne. Comment obtenir un site internet à bas bilan carbone ?

En préambule

Pour rappel, un site internet est basé sur une série de technologies allant de la méthode utilisée pour l’héberger à la technologie utilisée pour le construire mais également à la façon dont il est conçu. Pour imager, il n’y a pas UNE recette de cuisine pour réaliser un site internet mais de multiples recettes et chaque recette donnera un résultat qui sera bon ou pas bon (un peu comme le gâteau au chocolat que nous pouvons trouver sur internet)

A chacune de ces étapes ou de ces couches, des choix technologiques vont avoir un impact sur le bilan carbone, en effet tout est lié. En effet, on peut voir un site internet ou une application comme un millefeuille ou une succession de couches et il faut agir sur chacune des couches pour optimiser le bilan au maximum.

Les langages de programmation

Chaque langage de programmation a ses avantages / inconvénients, ces avantages et inconvénients sont inhérents à la façon dont ils ont été conçus. Certain langage interprète le code du site internet à chaque requête (c’est grosso-modo le cas de PHP, on passe le fait que cette interprétation est mise en “cache”, un des langages les plus répandus et utilisés par les CMS et boutiques en ligne open-source), d’autres vont générer des livrables qui évitent cette phase, évitant, ainsi cette couteuse opération à chaque requête (même si des contremesures visant à limiter cette opération sont de plus en plus employées)

Chaque langage est plus ou moins optimisé à sa façon et régulièrement, des améliorations sont apportées. Dans le cas d’un langage interprété, il est très intéressant d’utiliser la version la plus récente pour profiter des avancées et des améliorations en terme de vitesse d’exécution et de consommation mémoire. Certaines fonctions développées comme  interprétées, se retrouvent embarquées dans le langage et profitent alors de la vitesse native du langage et non de la vitesse d’interprétation puis d’exécution (on économise une étape, celle de l’interprétation)

Un langage de programmation est vu comme une boite à outils, et cette boite à outils peut évoluer. Il est alors intéressant de profiter des améliorations et des nouveaux outils d’où la nécessité de faire évoluer et de rendre compatible votre application avec les évolutions de cette boite à outils.

La façon de développer

Le développeur a plusieurs recettes de cuisine pour réaliser la demande initiale et en fonction des chemins pris, le code sera plus ou moins efficient et ceci est directement dépendant de la logique du développeur. Certains développeurs vont surconsommer des ressources, d’autres, vont mettre des tactiques en place pour éviter de trop consommer et certains même vont aller chercher la moindre petite optimisation possible pour gagner en consommation mémoire ou CPU. Tout cela dépend de l’expérience du développeur et c’est cela qui fait son expertise.

Chaque langage de programmation a également des domaines de prédilection. Il sera plus facile de gérer beaucoup de requêtes concurrentielles par exemple avec du NodeJS ou du Go qu’en PHP (cela ne veut pas dire que cela n’est pas possible), mais le langage aura un coût plus élevé dans certains cas que dans d’autres cas et cela dépend surtout du besoin initiale.

Cette façon de développer évolue et chaque produit peut également en profiter. C’est pourquoi, tous les outils dits open-source comme un CMS relativement bien connu qu’est WordPress doit être régulièrement mis à jour pour profiter des améliorations en terme de code source que les développeurs ont pu apporter.

L’environnement d’exécution

Il existe plusieurs solutions pour faire exécuter une application ou un site internet, en effet, plusieurs systèmes d’exploitation existent, chacun avec ses avantages et inconvénients. Les sites internet développés à l’aide de WordPress sont par exemple exécutables sur Windows, FreeBSD, Linux.

Chaque système d’exploitation a ses caractéristiques et est plus ou moins énergivore. En effet, Windows n’est pas développé de la même façon que Linux ou bien que FreeBSD, et c’est valable pour chacun d’entre eux. Ceci est également valable en fonction de la version de ces systèmes d’exploitation. Au fur et à mesure de la progression de ceux-ci, de nouvelles fonctionnalités sont apportées permettant également des optimisations et qui dit optimisations, dit gains qui se transforment souvent en économies de ressources.

Aussi, chaque environnement a son langage de prédilection, il est beaucoup plus logique de vouloir faire exécuter une application ou site internet développé en ASP.net sur Windows que sous Linux, c’est également valable pour les applications écrites avec le langage de développement PHP.

L’hébergement

En fonction de la localisation de votre application ou site internet, celui-ci ou celle-ci sera plus ou moins respectueux(se) de la planète. En effet, certains pays utilisent du nucléaire, d’autres des énergies dites fossiles, certains une mixité entre toutes ces sources.

Quand certains vendent du “cloud”, il y a bien du matériel et du physique mais on a tendance à vite l’oublier …

Chaque hébergeur utilise également du matériel qui lui est propre, à discrétion. Certains hébergeurs utilisent du matériel d’occasion, d’autres du matériel systématiquement neuf et optimisent ainsi le rendement en mettant plus de choses sur le même matériel, ceci grâce aux progrès réalisés par les fabricants de composants électroniques.

Au delà du matériel, il est également bon de rappeler que chaque datacenter est plus ou moins énergivore en fonction de la conception de celui-ci. Certains climatisent qu’une partie des ressources (les cold coridor par exemple), d’autres plus anciens, climatisent l’ensemble d’une salle complète et la climatisation est très énergivore.

Choisir le bon outil en fonction du besoin

Quand un client nous sollicite pour un projet, nous écoutons son besoin principal et notre expertise / nos expériences nous amènent à choisir le meilleur compromis possible pour que ce soit évolutif, maintenable, le plus efficient possible, en quelques sortes, la meilleure recette de cuisine possible.

Si le besoin de notre client est de pouvoir avoir un site internet de quelques pages, où le contenu change que très peu, et souhaite avoir une interface simple, nous allons nous tourner vers les CMS Headless. Ce principe consiste à utiliser un CMS connu (WordPress par exemple) et à utiliser ce qui fait son fort : son interface d’administration (redévelopper une interface d’administration est chronophage et sans valeur ajoutée). A cela, nous adossons un outil de génération de page html (NextJS, GatsbyJS ou bien encore Hugo) qui va récupérer les données à la source (sur le WordPress), générer les pages statiques et les déployer sur le serveur où est hébergé le site internet du client. Cette solution a plein d’avantages et permet, entre autre, notamment d’avoir un site énergétiquement sobre. Les pages sont générées uniquement quand cela est nécessaire et l’internaute qui visite le site internet ne fera pas consommer de CPU puisque la page est déjà générée. Le serveur aura juste à la lire et à la renvoyer.

Cette façon de faire peut s’adapter tout à fait à un gros site internet en mixant des stratégies pour faire en sorte que la majorité des demandes ne consomment pas de ressources côté serveur. Cela permet une navigation fluide, une consommation très faibles de ressources, des utilisateurs contents, un cercle vertueux en quelque sorte