Manuel GreenSoftware -101

Quel est l’impact du développement de logiciels sur la planète ?

Depuis la révolution industrielle, les activités humaines ont libéré dans l’atmosphère de grandes quantités de dioxyde de carbone et d’autres gaz à effet de serre, ce qui a modifié le climat de la planète. Aujourd’hui, tout le monde ressent et voit les effets du réchauffement climatique, et des militants de différents domaines tentent de sensibiliser les gens à ce qui se passera si les choses restent comme elles sont et à la manière dont nous pouvons agir pour réduire notre contribution au réchauffement climatique.

Vous pensez peut-être : « Je suis développeur de logiciels/web, en quoi cela me concerne-t-il ? Mon domaine n’a aucun rapport avec la pollution ou l’industrie… Je ne fais qu’écrire du code et concevoir des choses ! » Eh bien, je suis heureux que vous lisiez ceci pour découvrir que vous avez tort :).

« Si Internet était un pays, il serait le quatrième plus grand pollueur. »

Le secteur du numérique contribue en général à hauteur de 4 % (2018) à 8% en 2025 des émissions mondiales de GES , ce qui équivaut aux émissions de CO2 de l’aviation civile (Source ADEME, The Shift Projet).

Lorsque nous pensons au développement de logiciels, nous pensons au codage , aux bases de données , aux serveurs et à la conception , qui sont tous des sources d’émissions de GES (GAZ à effet de serre). Les serveurs utilisent de l’électricité pour fonctionner et de l’eau pour se refroidir, donc notre façon non optimisée de travailler côté serveur entraîne une consommation d’énergie plus importante. De plus, un code complexe qui utilise de nombreuses boucles et des appels de base de données fréquents est une autre source d’émissions. De plus, de mauvaises pratiques de conception contribuent également, comme l’utilisation d’une carte de navigation complexe ou de fichiers vidéo/image volumineux.

C’est pourquoi nous parlons aujourd’hui de logiciels verts et de la manière.

Mais attention, le numérique n’impacte pas que sur les GES et l’un d’entre eux, le Co2eq qu’on évoque souvent.
Le numérique impactes également les 17 ODD de l’ONU, les 16 indicateurs du PEF, sans oublier les 9 limites planétaires.

Qu’est-ce qu’un logiciel vert ?

Les logiciels verts désignent la pratique consistant à concevoir, développer et déployer des applications logicielles de manière à minimiser leur impact environnemental. Cela implique d’optimiser le logiciel pour qu’il soit économe en énergie, de réduire l’empreinte carbone du processus de développement et de prendre en compte la durabilité tout au long du cycle de vie du logiciel.

Aspects clés des logiciels écologiques

  1. Efficacité énergétique : techniques permettant de réduire la consommation d’énergie lors de l’exécution d’un logiciel. Par exemple, optimisation des algorithmes, réduction des calculs inutiles, architectures et conceptions évolutives.
  2. Optimisation des ressources : utilisation efficace des ressources matérielles telles que le processeur, la mémoire et le stockage. Prise en compte de l’utilisation de ressources énergétiques renouvelables et promotion du travail à distance pour réduire les émissions liées aux déplacements.
  3. Optimisation des performances : équilibre entre performances et consommation d’énergie.
  4. Minimalisme : éviter les fonctionnalités inutiles qui consomment des ressources supplémentaires.
  5. Sensibilisation des utilisateurs : informer les utilisateurs sur la consommation énergétique du logiciel et leur proposer des options pour utiliser le logiciel de manière plus durable. Cela peut inclure des modes d’économie d’énergie ou des conseils sur les durées d’utilisation optimales.
  6. Gestion du cycle de vie : prise en compte de l’intégralité du cycle de vie du logiciel, du développement au déploiement jusqu’à la fin de vie. Cela comprend la planification de pratiques de déploiement efficaces, la surveillance de l’impact environnemental pendant l’exploitation et la mise au rebut responsable des systèmes obsolètes.

Avantages des logiciels écologiques

  1. Impact environnemental réduit : une consommation d’énergie moindre et des émissions de carbone réduites contribuent à une planète plus saine.
  2. Économies de coûts : les logiciels économes en énergie peuvent entraîner des économies de coûts importantes, en particulier dans les déploiements à grande échelle et les centres de données.
  3. Performances améliorées : l’optimisation des logiciels pour l’efficacité énergétique se traduit souvent par des applications plus rapides et plus réactives.
  4. Responsabilité d’entreprise : démontrer un engagement en faveur du développement durable peut améliorer la réputation d’une entreprise et s’aligner sur les objectifs de responsabilité sociale d’entreprise.
  5. Conformité réglementaire : alors que les gouvernements et les organismes de réglementation se concentrent de plus en plus sur les impacts environnementaux, les pratiques logicielles verts peuvent contribuer à garantir la conformité aux réglementations actuelles et futures.

Bonnes pratiques pour un développement logiciel plus écologique :

« Protégez la planète en adoptant des pratiques logicielles vertes »

Différents professionnels interviennent dans le cycle de développement d’un logiciel, chacun avec son propre ensemble de pratiques. À titre d’exemple, concentrons nous sur le processus de développement d’une application Web et explorons quelques bonnes pratiques à adopter pour créer une application Web verte et durable :

  1. Optimiser les tailles des vidéos et des images : compressez et optimisez les images et les vidéos pour réduire la taille des fichiers et l’utilisation de la bande passante
  2. Rendez le modulaire : utilisez la conception modulaire pour charger uniquement les composants nécessaires, réduisant ainsi la consommation de ressources.
  3. Choisissez un fournisseur d’hébergement Web ou de cloud computing durable : Choisissez des fournisseurs d’hébergement alimentés par des énergies renouvelables ou engagés dans la durabilité.
  4. Créez une conception simple, facile à parcourir et utilisez des polices et des couleurs optimisées : concevez une interface propre et conviviale avec des polices optimisées et des couleurs économes en énergie.
  5. Pratiques de code efficaces : réduisez le code, utilisez des algorithmes efficaces et chargez les scripts de manière asynchrone pour améliorer les performances et réduire la consommation d’énergie.
  6. Optimisation côté serveur : implémentez la mise en cache, optimisez les requêtes de base de données et utilisez l’équilibrage de charge pour réduire la charge du serveur et améliorer l’efficacité.
  7. Suivi et amélioration continue : surveillez régulièrement les performances et la consommation énergétique et optimisez en permanence votre application.
  8. Éduquer et impliquer les utilisateurs : fournissez des informations sur la consommation d’énergie et des conseils pour réduire leur empreinte, et proposez des fonctionnalités telles que le mode sombre et des options d’économie d’énergie.

Exemples de codes :

« Alors que les logiciels continuent de démontrer leur contribution à des niveaux sans précédent d’émissions de gaz à effet de serre, le codage vert deviendra de plus en plus impératif pour rendre notre utilisation habituelle de la technologie plus durable – car le monde ne va pas cesser complètement d’utiliser les logiciels ou la technologie. »

Vous trouverez ci-dessous des exemples de pratiques courantes de consommation d’énergie et leurs alternatives plus durables et plus écologiques. Tous les exemples sont fournis en PHP et servent uniquement à montrer une idée :

  • Exemple 1 : Interrogation efficace de bases de données
    Cas non soutenable :
<?php 
  // Fetching all records and then filtering in PHP 
  $results = $db->query("SELECT * FROM users"); 
  $activeUsers = []; 
  while ($row = $results->fetch_assoc()) 
    { 
     if ($row['status'] == 'active') 
        { 
         $activeUsers[] = $row;
        } 
    } 
?>

Voie verte :

<?php 
 $activeUsers = $db->query("SELECT id FROM users WHERE status = 'active'"); 
?>

-> En filtrant les enregistrements directement dans la requête SQL &, le serveur de base de données effectue moins de travail et moins de données sont transférées vers l’application, ce qui réduit à la fois la puissance de traitement et la consommation d’énergie. La spécification des colonnes nécessaires est également une partie très importante de l’optimisation d’une requête.

  • Exemple 2 : Utilisation efficace des boucles et des fonctions
    Cas non soutenable :
<?php 
  // Inefficient loop with repeated function calls for 
     for ($i = 0; $i < strlen($string); $i++) 
         { 
          echo $string[$i];  
         } 
?>

Voie verte :

<?php 
  // Calculating string length once outside the loop 
     $length = strlen($string); 
     for ($i = 0; $i < $length; $i++) 
         { echo $string[$i]; } 
?>

-> Le calcul de la longueur de la chaîne à l’intérieur de la boucle appelle la fonction plusieurs fois. Le calcul une fois en dehors de la boucle réduit les cycles du processeur, ce qui entraîne une consommation d’énergie moindre.

  • Exemple 3 : Utilisation efficace des fonctions de tableau
    Cas non soutenable :
<?php 
  // Filtering an array using a loop 
  $filtered = []; 
  foreach ($array as $item) 
     { 
      if($item['value'] > 10) 
        {
         $filtered[] = $item; 
        } 
     } 
?>

Voie verte :

<?php 
  // Using array_filter for efficient & faster filtering 
  $filtered = array_filter($array, function($item) { return $item['value'] > 10; }); 
?>

-> L’utilisation de fonctions de tableau intégrées comme array_filter est plus efficace que la lecture manuelle des tableaux. Ces fonctions sont optimisées dans le cœur de PHP, réduisant ainsi les cycles CPU et la consommation d’énergie.

  • Exemple 4 : Minimiser les appels à la base de données
    Cas non soutenable :
<?php 
  // Making multiple database calls in a loop 
  $userIds = [1, 2, 3]; 
  foreach ($userIds as $userId) 
   { $stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id"); 
     $stmt->execute([':id' => $userId]); 
     $user = $stmt->fetch(PDO::FETCH_ASSOC); 
     echo $user['username'] . '<br>'; 
    } 
?>

Voie verte :

<?php 
  // Using a single query with an IN clause to fetch multiple rows 
  $userIds = [1, 2, 3]; 
  $placeholders = implode(',', array_fill(0, count($userIds), '?')); 
  $stmt = $pdo->prepare("SELECT * FROM users WHERE id IN ($placeholders)");
  $stmt->execute($userIds); 
  $users = $stmt->fetchAll(PDO::FETCH_ASSOC); 
  foreach ($users as $user) { echo $user['username'] . '<br>'; } 
?>

-> La réduction du nombre d’appels de base de données minimise le traitement côté serveur et la surcharge du réseau, ce qui entraîne une réduction de la consommation d’énergie et une amélioration des performances des applications.

« Pensez à la durabilité avant de vous lancer dans la recherche de solutions, et non après. »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *