Comment obtenir un environnement IT plus durable avec les technologies open source ?
Comprendre comment l'open source et le cloud peuvent aider les entreprises dans leur démarche de durabilité liée à leur système informatique.
L’intérêt que les entreprises portent, aujourd’hui, à l’enjeu de durabilité écologique est réel et grandissant ; toutefois, pour concrétiser ces objectifs, il ne suffit pas seulement de réduire les voyages d’affaires ou de mettre en place des mesures au sein du lieu de travail. Les outils logiciels ont, eux aussi, une grande influence sur la quantité d’émissions de CO2 générées. Le secteur IT est déjà mobilisé pour améliorer au maximum le bilan environnemental lors de la fabrication et l’exploitation de ses produits. Les entreprises doivent également développer une conscience sur l’impact de leur infrastructure informatique sur le changement climatique et sur les bonnes pratiques et changements qu’elles peuvent appliquer pour améliorer leur bilan carbone. Voici quelques mesures pratiques que les organisations peuvent envisager pour les aider à mettre en place une infrastructure informatique plus durable.
Déploiement, utilisation et mise à l'échelle des plateformes
La question du déploiement, de l'utilisation et de la mise à l'échelle est compliquée, car elle implique des décisions dédiées concernant l'architecture. Les technologies open source axées sur l'utilisation et la mise à l'échelle, telles que Knative (architecture serverless en environnement Kubernetes), viennent à l'esprit. Un environnement Kubernetes courant fonctionne souvent selon le principe "un cluster par application", parfois aussi "plusieurs clusters (staging/prod/dev) par application". Dans certains cas, la charge de travail dans ces clusters peut être faible. Cela signifie que même si un déploiement évolue jusqu’à atteindre un usage de ressources nul, les entreprises ont toujours une charge liée au fonctionnement du cluster Kubernetes, à laquelle s’ajoute l'empreinte carbone de tout le matériel. Certes, cela permet de diminuer la consommation électrique de la charge de travail, mais l’impact positif de cette mesure sur le bilan climatique global demeure marginal. Les entreprises doivent donc examiner de près leur configuration globale avant d'acquérir des technologies supplémentaires pour une application donnée.
L'idéal est de minimiser l’empreinte de la plateforme pour des applications représentatives, en incluant les environnements de développement, tests, production, etc... Il est également conseillé d'optimiser la conception de ces environnements avec, par exemple, l’usage systématique de l'automatisation afin d’en maximiser l'utilisation.
Les technologies permettant de gérer les pics de charges présentent un autre avantage de taille. Il est notamment possible de gérer les pipelines de déploiement et d’intégration continue de manière “statique” - en pré-provisionnant les ressources nécessaires - ou de manière “élastique” - en s’adaptant de façon dynamique aux pics de charge ou aux tâches - avec des technologies de type Tekton.
Il peut aussi être opportun d’adapter l’architecture matérielle en fonction du type de charge, afin de minimiser ou d’optimiser l’empreinte énergétique - par exemple en migrant du x86 vers ARM, ou en utilisant des FPU/GPU pour les calculs/rendements intensifs.
L'efficacité du code
Comme le résume très bien la Green Software Foundation : "Le code le plus efficace est celui qui n’a pas besoin d’être écrit. Et le meilleur moment pour identifier les charges de travail inutiles est le plus tôt possible dans le processus de conception".
Cependant, les nouvelles architectures applicatives - notamment à base de micro-services, possiblement en serverless - permettent d’optimiser la consommation des ressources matérielles de manière non négligeable. Le changement ou la mise à jour des runtimes et/ou des langages de programmation peut également avoir des impacts positifs, en limitant la consommation CPU, mémoire voire disque pour une charge de travail équivalente - par exemple avec Quarkus dans le contexte de modernisation des applications Java legacy.
Les avantages du cloud
La possibilité de pouvoir déployer plateformes et applications sur l’ensemble des fournisseurs de cloud computing permet de bénéficier d’un modèle par définition élastique et scalable, qui s’adapte dynamiquement à l’usage - limitant la problématique de surconsommation liée aux pics de charge. Il devient aussi possible de privilégier le fournisseur cloud proposant la meilleure empreinte énergétique par rapport à une période et à un contexte géographique donné. Afin de placer l’application sur la plateforme la plus adaptée, il devient nécessaire de disposer d’outils de mesure qui améliorent l’aide à la décision.
En soutien à cette tendance, de plus en plus de projets open source se créent, pour aider les entreprises à atteindre leurs objectifs de durabilité : ils interviennent par exemple au niveau du recueil de mesures de consommation énergétique des plateformes utilisées par les entreprises pour leur donner une meilleure visibilité et compréhension de leur impact. Ces mesures doivent être suffisamment précises et granulaires (si possible avec une fréquence de collecte élevée, au niveau d’une application ou d’un container) tout en n’introduisant pas de surcharge liée à la prise d’information - comme peut le faire par exemple le projet open source Kepler. Certains projets, en s’appuyant sur ces mesures peuvent par exemple automatiser l’arrêt des ressources durant les moments où elles ne sont pas utiles afin d’économiser de l’énergie. En effet, au stade actuel, chaque économie compte. Une chose est sûre : pour qu’une mesure soit efficace, il faut au préalable définir les objectifs et choisir des métriques de mesure pertinentes pour les vérifier.