Ces dernières années, on s'inquiète de plus en plus de l'impact environnemental de la tech. Les centres de données qui alimentent notre monde numérique consomment une quantité importante d'énergie (3% du total annuel), et les émissions résultant de cette consommation contribuent au changement climatique.
Un mouvement croissant vise à rendre l'informatique plus durable. Ce mouvement est connu sous le nom « Green IT » ou « informatique durable ». Cette approche verte de l’IT vise à réduire l'impact environnemental de l'informatique en utilisant moins d'énergie, d'eau et d'autres ressources.
Les data fournies par les providers cloud ne le sont pas toujours de façon claire et transparente et il manque une norme généralisée en la matière, ce qui empêche encore de pouvoir quantifier simplement son empreinte carbone IT et donc de la réduire. Il y a néanmoins déjà une approche vertueuse qui consiste à réduire sa consommation énergétique.
Une façon de rendre l'IT plus durable est ainsi d'utiliser Kubernetes et de passer au DevOps automatisé. Kubernetes est un système d'orchestration de conteneurs qui peut aider les entreprises qui codent à déployer et gérer leurs applications de manière plus efficace. L'automatisation DevOps peut les aider à automatiser leurs processus de développement et de déploiement dans un mode en continu, ce qui peut également contribuer à réduire leur empreinte carbone.
Comment Kubernetes peut aider à réduire son empreinte carbone
Tout d'abord, Kubernetes peut contribuer à améliorer l'efficacité des datacenters. En utilisant Kubernetes en mode micro-services, les entreprises IT peuvent regrouper davantage de conteneurs dans un pod et, avec la logique de side-car réduire le poids unitaire d’un pod, et donc réduire la quantité de ressources et par conséquent d'énergie utilisée par conteneur, par service et au total par l’entreprise.
Kubernetes peut également aider à réduire le temps que les applications passent dans un datacenter. En automatisant le déploiement et la mise à l'échelle des applications, Kubernetes peut contribuer à s'assurer que les applications ne fonctionnent que lorsqu'elles sont nécessaires. Cela pouvant contribuer à réduire la quantité d'énergie utilisée par les applications.
L'autoscaling au service du Green IT
L'autoscaling est une fonctionnalité de Kubernetes permettant de faire évoluer automatiquement le nombre de pods en cours d'exécution dans un cluster en fonction de la demande. Cela peut contribuer à réduire l'empreinte carbone des applications en veillant à ce qu'elles n'utilisent que les ressources dont elles ont besoin.
Par exemple, supposons que vous ayez une application utilisée par un grand nombre d'utilisateurs pendant les heures de pointe. Sans l'autoscaling, vous devriez faire évoluer manuellement le nombre de conteneurs pour répondre à la demande. Cela nécessiterait la fourniture de plus de ressources, ce qui augmenterait votre empreinte carbone.
Avec l'autoscaling, vous pouvez configurer Kubernetes pour faire évoluer automatiquement le nombre de conteneurs en fonction du nombre de requêtes envoyées à votre application. Cela signifie que vous avez seulement besoin de fournir les ressources dont vous avez réellement besoin, ce qui peut contribuer à réduire votre empreinte carbone.
En plus de réduire l'empreinte carbone de vos applications, l'autoscaling peut également contribuer à améliorer les performances et la disponibilité des applications. En faisant évoluer le nombre de conteneurs pendant les heures de pointe, vous pouvez vous assurer que vos applications peuvent faire face à la demande accrue. Cela peut contribuer à améliorer l'expérience utilisateur et réduire les risques de pannes.
Si vous recherchez un moyen de réduire l'empreinte carbone de votre infrastructure informatique, l'autoscale intégré à Kubernetes est une excellente option. C'est une fonctionnalité puissante qui peut aider à économiser des ressources et donc de l'argent, à améliorer l'évolutivité de vos applicatifs et à accroître leur fiabilité.
Une entreprise logistique utilise Kubernetes dans sa production pour déployer tous ses micro-services. Un micro-service unique nécessite environ 60 replicas. Si nous calculons l'empreinte carbone d'un micro-service unique sur 24 heures, elle serait d'environ 24 914 gCO₂eq. C'est la quantité de carbone émise par un seul micro-service pendant 24 heures, et il y a des milliers de micro-services dans une organisation bien établie qui fonctionnent 24h/24 et 7j/7.
Le trafic maximal qu'une application logistique de premier kilomètre/dernier kilomètre se produit pendant la journée lorsque les livraisons ont lieu. En général, à partir du matin vers 8h00, il y a une forte augmentation du trafic, et il atteint son pic dans l'après-midi. C'est à ce moment-là qu'il y aurait le plus grand nombre de répliques de pod et de nodes/instances. Ensuite, après 20h00, le trafic diminue spontanément. Pendant les heures creuses, lorsque le trafic diminue, le nombre de répliques passe également de 60 en moyenne pour chaque micro-service à 6, ce qui ne nécessite que 2 nœuds/instances. Le micro-service utilise des métriques de débit basées sur l'autoscale horizontal des pods.
Ce qui donne sans autoscale :
51,9 gCO₂eq x 20 (nodes) x 24 (heures sans autoscaling) = 24 912 gCO₂eq
Versus en mode autoscale :
51,9 gCO₂eq x 2 (nodes) x 12 (heures de 20h00 à 8h00, heures creuses) + 51,9 gCO₂eq x 20 (nodes) x 12 (heures de 8h00 à 20h00, heures de pointe de trafic) = 13 701,6 gCO₂eq
Cela représente une réduction spectaculaire de 11 211 gCO₂eq (45 %) des émissions de carbone ! Et cela ne concerne qu'un seul micro-service sur 24 heures. Imaginez de passer plusieurs dizaines voire centaines de micro-services en mode autoscale sur Kubernetes !
L'automatisation DevOps aide aussi à réduire l'empreinte carbone
Quand on parle de micro-services et de containerisation, le DevOps n’est jamais bien loin. L'automatisation DevOps peut en effet également aider les entreprises tech à réduire leur empreinte carbone, en réduisant notamment la quantité de travail manuel nécessaire pour le développement et le déploiement d'applications et par voie de conséquences, la quantité d’énergie associée.
La combinaison de Kubernetes et de l'automatisation DevOps est un moyen puissant de réduire l'empreinte carbone des entreprises su code. En utilisant ces technologies, les entreprises tech peuvent améliorer l'efficacité des ressources (CPU, mémoire, stockage) qu’elles utilisent et réduire le temps que les applications passent en mode ON. Cela peut entraîner des réductions significatives de leur consommation d'énergie et des émissions de carbone.
En conclusion, en utilisant ces technologies, tant Kubernetes et la logique micro-services & containerisation d’une part que l’utilisation d’une chaine DevOps automatisée et efficiente d’autre part, les entreprises tech peuvent avoir un impact positif sur l'environnement en contribuant à la réduction de leur empreinte carbone et en tentant de protéger notre planète pour les générations futures.
Quelques démarches innovantes et open source sur le sujet :
- Green Software Foundation (GSF) : un consortium multisectoriel qui construit un écosystème fiable de personnes, de normes, d'outils et de bonnes pratiques pour les logiciels verts.
- Software Carbon Intensity (SCI) mesure l'impact carbone des systèmes logiciels.
- Kit de développement logiciel open source carbon-aware-sdk qui permet aux logiciels de fonctionner quand et où l'énergie est plus propre. La combinaison des deux projets open source permet à chaque dev et à chaque organisation de la planète de décarboner leurs logiciels.



