Green Software Maturity Matrix - Evaluez où vous en êtes dans le développement de logiciel durable
Vous voulez que les logiciels que vous développez soient plus durables, mais vous ne savez pas où commencer entre mesurer votre impact, optimiser votre code ou encore le fonctionnement de votre datacenter ? Ou peut-être que vous êtes déjà engagé, mais que vous ne savez pas comment continuer à vous améliorer ? Aujourd’hui je vous présente un outil qui vous permettra de répondre à ces questions, la Green Software Maturiy Matrix.
La Green Software Maturiy Matrix
Les modèles de maturité sont souvent utilisés en développement de logiciel, que ce soit des modèles plutôt généraux comme le Capability Maturity Model Integration (CMMI), ou alors des modèles plus spécifiques par exemple sur la cybersécurité. Ces modèles ont deux buts. Le premier est de pouvoir voir où en est son organisation et de pouvoir se comparer à d’autres organisations. Le deuxième est de fournir une sorte de guide permettant de définir les prochaines étapes à mettre en place pour s’améliorer.
La Green Software Foundation a développé la Green Software Maturity Matrix (GSMM). Elle permet aux organisations de savoir où elles se situent sur le sujet du logiciel durable, et leur donne des pistes sur comment s’améliorer. Elle est découpée en 5 niveaux et 9 axes.
La Green Software Maturity Matrix.
Niveaux
Les niveaux sont définis comme ceci:
Niveau 1 - Aspiring: Pas ou peu de procesus défini et de suivi.
Niveau 2 - Aware: Certains projets ont des processus défini, mais ce n’est pas encore appliqué à toute l’organisation.
Niveau 3- Acting: Les processus sont standardisés et documentés.
Niveau 4 - Awesome: Vous pouvez suivre votre évolution avec des données de bonne qualité.
Niveau 5 - Inspiring: Vous êtes un leader dans le domaine.
Axes
Voici les 9 axes de la matrice, avec une description du premier et dernier niveau pour chaque axe.
Engagements: Cet axe décrit les engagements que prend votre organisation pour réduire ses émissions de co2. Au premier niveau, vous n’avez pas d’objectif de réduction de vos émissions ou vous prévoyez d’atteindre l’objectif de zéro émission nette en 2050. Au dernier niveau, vous êtes déjà neutre en carbone sur les scope 1, 2 et 3 en utilisant peu de compensation. Vous consommez que des énergies bas carbone.
Empreinte: Au premier niveau, vous ne connaissez pas l’empreinte carbone de votre organisation. Au dernier niveau, vous la connaissez et elle est proche de zéro.
Mesure: Au premier niveau, vous n’avez aucune mesure de vos émissions de co2. Au dernier niveau, vous les mesurez en temps réel et vous pouvez prédire vos émissions futures.
Efficacité opérationelle: Au premier niveau, vous n’adaptez pas la taille de vos instance aux besoins réels et vous ne savez pas quels sont les serveurs “zombies” (des systèmes qui ne sont plus utilisés). Au dernier niveau, la taille des instances est adaptée automatiquement et vous n’avez plus de serveurs zombies. Vous avez un budget carbone qui est suivi par vos SRE, de la même manière que votre budget d’erreurs.
Energie: Au premier niveau, vos système sont toujours allumé et vous réfléchissez pas à votre utilisation d’électricité. Au dernier niveau, vous alimentez les serveurs seulement avec des énergies bas carbone. Vos systèmes s’adaptent automatiquement à la production d’énergie renouvellables en déplaceant vos workloads dans le temps et en adaptant la qualité du service (par exemple la définition d’un flux vidéo) en fonction de l’intensité carbone de l’électricité.
Terminaux utilisateurs: Au premier niveau, vous n’avez pas d’objectif de longévité pour les terminaux de vos utilisateurs. Au dernier niveau, vous avez des processus automatiques pour garantir la compatibilité et les patchs de sécurité pour tous les terminaux utilisateurs, peu importe leur âge.
Serveurs: Au premier niveau vous n’avez pas d’objectif d’utilisation des serveurs. Au dernier niveau, vous utilisez de manière optimale tous vos serveurs et vous les utilisez pendant au moins 10 ans. Vous minimisez vos besoins en serveurs en utilisant la puissance de calcul des terminaux utilisateurs quand c’est approprié.
Produit: Au premier niveau, vos équipes de gestion de produit ne suivent pas les émissions de co2. Au dernier niveau, l’impact de chaque fonctionnalité est suivi et vous avez un budget carbone défini.
Education: Au premier niveau, les personnes apprennent chacun de leur côté. Au dernier niveau, vous avez un tel niveau d’expertise que vous formez également les personnes d’autres organisations.
Exemple
Comment utiliser la GSMM en pratique pour améliorer vos services ? Dans cet exemple, on va regarder comment améliorer l’axe d’efficacité opérationelle.
Niveau 1 → Niveau 2
Si vous êtes au premier niveau, vous pouvez commencer par identifier et éteindre les services zombies. Les services zombies sont des services qui fonctionnent mais qui n’ont aucune utilité, ou alors une utilité très faible. Ils étaient utilisés à un moment, mais ce n’est plus le cas. Des services avec une basse utilisation du CPU ou du réseau ont de grande chance d’être des services zombies. Vous pouvez également supprimer ou archiver les données qui ne sont plus utilisées.
Niveau 2 → Niveau 3
A cet niveau, vous pouvez mettre en place la technique appelée LightSwitchOps. L’objectif est de rendre le fait d’éteindre ou d’allumer un serveur aussi facile que d’allumer une lampe. En pratique, vous pouvez appliquer les pratiques DevOps pour déployer automatiquement vos applications. Pourquoi faire ça ? C’est notamment pratique quand vous éteignez des services zombie. Si vous avez fait une erreur et que vous avez éteint un service encore utilisé, alors vous pouvez facilement le redémarrer. Une fois que vous avez ce système en place, vous pouvez éteindre les derniers serveurs zombies avec une plus grande confiance.
Vous pouvez aussi mettre en place un processus pour trouver la bonne taille pour vos serveurs ou VMs, pour utiliser efficacement vos ressources. Ce processus devrait utiliser les metrics que vous avez, notamment la consommation de CPU et de DRAM, vos SLA et SLO. Vous pouvez également passer en revue les données que vous stockez, et arrêter de stocker les données qui ne sont pas utilisées.
Niveau 3 → Niveau 4
A ce niveau, vous pouvez automatiser les processus pour trouver la bonne taille de serveur ou VM pour les services, et les appliquer automatiquement. Vous pouvez aussi mettre en place des systèmes pour automatiquement supprimer les données qui ne sont plus utiles après un certain temps, plutôt que de les conserver indéfiniment.
Niveau 4 → Niveau 5
Vous pouvez définir un budget carbone pour vos services. Vos SRE le suivent de la même façon qu’un budget d’erreur et vous respectez ce budget.
Limitations
La GSMM prend seulement en compte les émissions de co2, et ne prend pas en compte d’autres indicateurs environnementaux tel que l’utilisation de métaux. Baser toute sa stratégie sur un seul indicateur d’impact environnemental risque de déplacer les impacts environnementaux. Un exemple typique est l’achat de serveurs avec une plus grande efficacité énergétique. Bien que les émission de co2 seront réduites dans ce cas, plus de métaux auront été extraits que si on avait gardé les serveurs existants. Pour une prochaine version de cette matrice, j’espère qu’elle intégrera d’autres critères environnementaux.
Un point controversé est l’encouragement à l’utilistion des techniques de demand shifting dans l’axe énergie. Cette technique consiste à changer le moment ou le lieu d’exécution des workloads pour s’adapter à la production d’énergie renouvelable, qui varie en fonction du soleil et du vent. Bien que la technique soit intéressante, avec le fonctionnement existant des réseaux électrique le bénéfice est nul.
Un outil très utile
La GSMM est un outil très intéressant pour les organisations qui veulent savoir où elles en sont sur le développement et l’hébergement de logiciel durable. Elle permet de se comparer à d’autres organisations et de planifier son évolution sur les différents axes.