Éco-conception de programmes informatiques

La mise en oeuvre d'une démarche d'éco-conception est une réponse aux exigences de réduction des émissions de gaz à effet de serre, à l'incertitude concernant la disponibilité des ressources énergétiques (quantité disponible fluctuante, prix volatiles...) et à l'incertitude légale (apparition de mesures contraignantes, nouvelles taxes...). Une organisation doit donc établir un bilan énergétique de son système informatique, calculer l'empreinte carbone de ce dernier et engager une décarbonation de son activité.

Appliquée à un système informatique, la sobriété numérique couvre plusieurs aspects allant des usages par les utilisateurs finaux aux choix des datacenters en passant par la manière d'écrire un programme. Après avoir présenté une méthode pour définir l'empreinte carbone d'un programme informatique, ce séminaire proposera un ensemble de pratiques de programmation et de déploiement qui permettent de réduire cette empreinte.

(14 heures)

En présentiel ou en classe virtuelle
En français ou en anglais
Public

Développeurs et développeuses, architectes

Accessible aux personnes en situation de handicap

Délai

Le cours peut être organisé à partir de septembre 2025.

Objectifs

A l'issue du cours vous saurez:

Prérequis

Ce cours demande une connaissance générale de la programmation d'applications d'entreprise.

Méthodes pédagogiques

Le cours alterne théorique et pratique: la mise en pratique prend la forme d'une application "démo" enrichie par le formateur tout au long du séminaire et dont les participants peuvent disposer à la fin du séminaire. Cette application "démo" peut être réalisée en Java ou .NET (à préciser lors de l'inscription) mais les principes sont transposables à d'autres langages.

Une forte interaction avec les participants permettra à chacun de rapprocher les sujets du cours de son travail quotidien.

Programme détaillé

Introduction
  • Rappel des objectifs de réduction d'émissions de gaz à effet de serre de l'accord de Paris.
  • Recensement des besoins énergétiques d'un système informatique.
  • Les sources d'énergie: disponibilité, volatilité des prix, émissions de gaz à effets de serre.
  • L'extraction des ressources abiotiques (terres rares notamment) comme prérequis pour le renouvellement des équipements.
  • L'effet Jevons et l'effet rebond.
  • Le choix des indicateurs (consommation d'électricité, d'eau, émissions de gaz à effet de serre, utilisation de ressource abiotiques).
  • Le référentiel général d'écoconception de services numériques (RGESN).
  • Les différents types de programmes: applications backend, interfaces utilisateurs, applications de calcul.
Les applications backend
Backend
  • Les sources d'émissions de gaz à effet de serre: serveurs, échanges réseau, etc...
  • La scalabilité pour adapter les ressources aux besoins, scalabilité horizontale et verticale.
  • Les applications stateless comme condition de la scalabilité horizontale.
  • La préférence pour l'exécution non bloquante des opérations I/O.
  • La mise en cache.
  • Les techniques d'accès aux données (ORM, mini-orm).
  • L'optimisation des échanges avec les applications clientes, présentation de GraphQL.

Mise en pratique: application des bonnes pratiques dans une API REST accédant à une base de données relationnelles et mesure de la performance environnementale.

Les applications frontend
Frontend
  • Différents types d'interface utilisateur: page web rendues côté serveur, single page application, applications mobiles.
  • La définition des objectifs: quantité de données échangées, nombre de requêtes.
  • Les techniques réduction du poids des pages: compression des assets, responsive design.
  • Bonnes pratiques ergonomiques (navigation, saisie de formulaire...).
  • Le choix des polices de caractères.
  • La hiérarchisation des informations, le principe du lazy loading.
  • La mise en cache.

Mise en pratique: application des bonnes pratiques à une single page application et mesure de la performance environnementale.

Livraison et déploiement
DevOps
  • La compilation native pour des livrables plus léger et démarrant plus rapidement.
  • La politique d'intégration continue.
  • La containerization comme solution pour limiter les ressources utilisées par une application.
  • L'autoscaling pour adapter les ressources allouées à la charge.
  • Le scale to zero et le serverless.
  • Le choix de l'hébergeur.

Mise en pratique: déploiement de l'API REST déployée précédemment sur un environnement Kubernetes, application d'une politique d'ajustement des ressources en fonction de la charge.

Prix et financements

2 12

Réduction de 50% pour les associations reconnues d'utilité publique.

Sources de financements pour les organisations françaises:

Contact

Questions, inscriptions, demande d'adaptation: