Le green dev
Ou l'écologie dans notre métier
L'ONU nous met en garde : la numérisation de nos activités humaines a un coût écologique considérable !
Les millions de serveurs fonctionnant H24 pour nous fournir tous ces services consomment autant d'énergie que de grands pays émergents. Ça pique !
Quel est notre responsabilité ?
Elle est simple : nos choix techniques et notre manière de coder.
Le choix technique
Avez-vous vraiment besoin d'une base Redis (ou autre service de cache) entre votre API et sa base de données, pour gagner 10 ms sur les quelques milliers de requêtes par jour ?
Honnêtement, ce n'est pas sûr. Évidemment, on cherche à ce que le client ait l'information qu'il cherche le plus rapidement possible.
Mais la consommation énergétique et les ressources hardware nécessaires pour gagner quelques millisecondes valent-elles vraiment le coup ?
Évidemment, si vous avez des millions d'utilisateurs, de connexions, de requêtes par jour, la question ne se pose pas trop...
Mais est-ce votre cas ? Si ce n'est pas le cas, autant vous en passer. Vous pourrez alors utiliser un serveur un peu mieux dimensionné, ce qui vous fera également faire des économies financières 😇. Et surtout, vous pouvez ajouter un service de cache le jour où cela sera nécessaire...
Je prends ici l'exemple du cache, mais c'est valable pour les clusters MongoDB, Kubernetes et bien d'autres services...
Faite simple et dimensionnez par rapport à l'usage existant, pas à ce que vous ciblez dans 1 ou 2 ans.
Du code écolo
Pour le développement, le sujet est bien plus compliqué. Il dépend non seulement de la manière dont vous rédigez votre code mais aussi du langage et du runtime que vous utilisez.
Mais si l'on veut faire simple, on peut déjà essayer de respecter quelques règles :
- Un langage compilé sera moins gourmand qu'un langage interprété.
- Utilisez un switch plutôt qu'une cascade de conditions lorsque c'est possible.
- Sortez (return) le plus tôt possible dans vos méthodes (plus rapide votre algo accompli sa tâche, moins vous consommez).
- Minimisez les scripts lorsque vous travaillez sur des langages interprétés.
- Utilisez des streams pour ne pas charger l'intégralité d'un dataset d'un coup, donc alléger la consommation mémoire et ainsi la consommation énergétique.
Tout ceci semble futile, mais c'est petit à petit que l'on devient moins gourmand 😜 Si tous les programmes sur tous les serveurs du monde suivaient un développement vert, cela aurait un impact non négligeable.
Je vous laisse avec cette pensée.