Donnez votre avis !
                   Depuis votre smartphone, sur :
                    http://notes.mstechdays.fr

    De nombreux lots à gagner toutes les heures !!!
               Claviers, souris et jeux Microsoft…

       Merci de nous aider à améliorer les TechDays

http://notes.mstechdays.fr
Eco Conception logicielle :

           Jean-Philippe Gouigoux jp.gouigoux@free.fr
                Olivier Philippot ophilippot@kaliterre.fr
                Eric Mittelette ericmitt@microsoft.com




Green IT
Agenda
        • Définition et vision / Etat de l’art
        • Des exemples concrets pour le Web
        • Des exemples concrets pour .Net




Green
Présentation
               Groupe d'utilisateurs qui souhaite rendre le développement logiciel plus
               durable et plus vertueux http://greencodelab.fr/



                Jean-Philippe GOUIGOUX jp.gouigoux@free.fr
                Responsable Architecture / Formation / Innovation


               Olivier PHILIPPOT ophilippot@kaliterre.fr            06 63 09 06 90
               Consultant éco-conception


                Eric MITTELETTE         ericmitt@microsoft.com
                Relation Technique Développeur & IT
L’innocent Chat potté
     – 70 Millions d’heure de calcul, 25 TJoules
     – http://dwave.wordpress.com/2011/11/20/fun-with-puss-n-boots/




If you could eat 500 bananas per day,
                                              23 minutes
it would take you 327 years
Analyse du cycle de vie du matériel




Source
Constat sur l’empreinte des technologies




                                      Source ADEME
L’éco-conception des logiciels ?

Limiter l’empreinte
environnementale et
sociale tout au long du
cycle de vie du logiciel


                                   Source KALITERRE
Un peu de lecture
Des travaux de R&D en cours
• Projet Code Vert
  – Mise en place d’un référentiel JAVA et WEB
  – Outil de détection de « dirty » pattern
• Reflexion de normalisation
  – AFNOR / ISO
• Green Software Engineering
  – Mesure du web
• Travaux des ‘major’
  – Microsoft Google FaceBook..
Des retours d’expériences des « grands »
• Facebook
   – Hip Hop for PHP
   – passage d'une technologie PHP vers C++ côté serveur




• Linked In
   – Changement d’architecture
   – Réduction de 30 à 3 serveurs
Des retours d’expériences des « plus petits »
• Banque cantonale de Fribourg
   – Mise en place d’un référentiel WEB
• Audits de sites web
   – Nombreuses améliorations identifiées


                                            Des actions simples à la porté
                                            de tous les acteurs

                                            Un ROI probant
Exemple d’un pattern sur le besoin




         A-t-on besoin de tout cela ?
Comment mesure t’on l’impact du logiciel ?
« Ce qui ne peut pas être mesuré ne peut pas être géré».
Peter Drucker



• Mesure physique
    – Wattmètre nécessaire mais pas suffisant
    – Green Plugwise


• Mesure logicielle
    – Intel Energy Checker
    – INRIA Power API
Exemple d’un pattern qui peut rapporter

                                     +1W !
Impact des bonnes pratiques de développement

RÉDUIRE L’IMPACT DU WEB
Méthodologie de mesure
    Informations
    plateforme




     Modélisation
     énergétique
Démo – 1: Power API



                Sera réalisé
                  en live
Démo – 1: WEB Energy Archive



                Sera réalisé
                  en live
Version 1 : Images un peu lourde
Version 2 : Images et CSS optimisées
                       Réduction de la taille des images
                       Compression avec Yahoo SmushIT
                       Minification du CSS
Version 1 et 2 : Comparaison




            Même rendu
            30% de gain sur l’énergie
            15% de gain sur la mémoire
Version 3 : Page statique
                        Passade de Drupal à une page
                        statique
Version 1 et 3 : Comparaison




            Même rendu
            45% de gain sur l’énergie
            44% de gain sur la mémoire
Analyse d’une page lourde
Analyse d’une page lourde
                      1 000 000 pages par jours

                      Soit pour la partie client sur 1 an

                      200 MWh
                      Ou 30   teq CO²
                      154 000 kM voiture
Suppression des images
                     • Suppression des images
                     • Suppression des publicités

                     • Avec (sur Chrome et Firefox)
                         – 56 Wh pour 1000 pages
                          vues
                     • Sans
                         – 30 Wh pour 1000 pages
                           vues
Au final sur 60 sites mesuré par WEA
• Meilleur site mesuré : 5Wh pour 1000p
• Pire site mesuré : 250 Wh pour 1000p

• Une marge de manœuvre importante
• Un gain d’échelle énorme
Save the date !



Sortie de Web Energy Archive imminente !

Pour vous tenir, informé allez sur
http://webenergyarchive.com/
Impact des bonnes pratiques de développement

SUIVI DE LA CONSOMMATION
Démo – 0: Le matériel… simplissime



                 Sera réalisé
                   en live
Démo – 1: Plugwize et l’enregistreur shell



                   Sera réalisé
                     en live
Démo – 2: Wizard KST



                Sera réalisé
                  en live
Démo – 3: Attendre le point idle



                  Sera réalisé
                    en live
Démo – 4: Application PROFI - Personnes



                 Sera réalisé
                   en live
Démo – 5: Application PROFI - Contrats



                 Sera réalisé
                   en live
Démo – 6: Résultats dans KST



                 Sera réalisé
                   en live
Démo – 7: Rejeu de test du pauvre



                 Sera réalisé
                   en live
Portabilité… et efficience énergétique !
On passe à l’arme lourde…
L’heure de vérité
Avant profilage     Après profilage
Effet de temps
Avant profilage                 Après profilage




                  11 secondes                     6 secondes
Effet de puissance
Avant profilage      Après profilage




         20 W                  6W
Un peu de calcul intégral
• 45% gain de temps
• 70% gain de puissance
• En tout, 83% gain de consommation
  – (1 – 0.45) x (1 – 0.70) = 0.165
• Calcul automatique
Un peu de calcul
• Economie de 0.051 Wh
  – 14 W sur 6 secondes
  – 20 W sur les 5 secondes non utilisées
• Electricité à 0.1211 € le KWh
• Scénario répété
  –   100 fois par jour
  –   200 jours ouvrés
  –   par ~100 gestionnaires
  –   par ~50 clients
• 5100 KWh/an, soit 618 €/an
Et ça vaut le coup ?
•   Durée de vie applicative de 5 ans
•   ~3000 € gagnés
•   Inutile s’il faut une semaine de formation
•   Mais…
Différences de code – 1: gestion des chaînes
Concaténation de chaînes   Utilisation du StringBuilder
Différences de code – 2: services web / BD
Appels multiples (chatty)   Appels regroupés (chunky)
Différences de code – 3: gestion des boucles
      • Early break




Appels multiples (chatty)
Différences de code – 4: seulement si besoin
      • Lazy execution




Appels multiples (chatty)
Différences de code – 5: exceptions
      • Une exception porte bien son nom !




Appels multiples (chatty)
Au final
• Pareto sur les pratiques
  – 5 bonnes pratiques montrées
  – 97% de l’amélioration constatée
• Suivi simplissime
• Performance²  Consommation !
Remarque sur l’efficience énergétique
Moustique                      Gorille
• Pic de conso : 13.5 W        • Pic de conso : 250 W
• Durée du scénario : 9 s      • Durée du scénario : 6 s
• Coût énergétique : 121 W.s   • Coût énergétique : 1500 W.s
Synthèse/ouverture
Prendre du recul                    Pourquoi le code
• ACV globale                       • Le code permet d’agir sur tout
• Rapport entre construction fin      la chaine
  de vie et conso endurant sa vie      – Clim
• 80%                                  – Conso
• Facteur d’échelle des                – Nb machine
  datacenter ou des parcs              – (PUE)
  machines                          • Corrélation Perf et Green
En conclusion, l’éco-conception
  Est simple
  Apporte des gains   immédiats sur l’énergie
  et l’obésiciel
  Permet d’agir sur toute la chaine (Clim, serveur…)
  Est applicable pour tout type de logiciel ou
  site web

Eco Conception logicielle : Comment réduire par deux la consommation d’énergie d’une application ou d’un site web

  • 1.
    Donnez votre avis! Depuis votre smartphone, sur : http://notes.mstechdays.fr De nombreux lots à gagner toutes les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les TechDays http://notes.mstechdays.fr
  • 2.
    Eco Conception logicielle: Jean-Philippe Gouigoux jp.gouigoux@free.fr Olivier Philippot ophilippot@kaliterre.fr Eric Mittelette ericmitt@microsoft.com Green IT
  • 3.
    Agenda • Définition et vision / Etat de l’art • Des exemples concrets pour le Web • Des exemples concrets pour .Net Green
  • 4.
    Présentation Groupe d'utilisateurs qui souhaite rendre le développement logiciel plus durable et plus vertueux http://greencodelab.fr/ Jean-Philippe GOUIGOUX jp.gouigoux@free.fr Responsable Architecture / Formation / Innovation Olivier PHILIPPOT ophilippot@kaliterre.fr 06 63 09 06 90 Consultant éco-conception Eric MITTELETTE ericmitt@microsoft.com Relation Technique Développeur & IT
  • 5.
    L’innocent Chat potté – 70 Millions d’heure de calcul, 25 TJoules – http://dwave.wordpress.com/2011/11/20/fun-with-puss-n-boots/ If you could eat 500 bananas per day, 23 minutes it would take you 327 years
  • 6.
    Analyse du cyclede vie du matériel Source
  • 7.
    Constat sur l’empreintedes technologies Source ADEME
  • 8.
    L’éco-conception des logiciels? Limiter l’empreinte environnementale et sociale tout au long du cycle de vie du logiciel Source KALITERRE
  • 9.
    Un peu delecture
  • 10.
    Des travaux deR&D en cours • Projet Code Vert – Mise en place d’un référentiel JAVA et WEB – Outil de détection de « dirty » pattern • Reflexion de normalisation – AFNOR / ISO • Green Software Engineering – Mesure du web • Travaux des ‘major’ – Microsoft Google FaceBook..
  • 11.
    Des retours d’expériencesdes « grands » • Facebook – Hip Hop for PHP – passage d'une technologie PHP vers C++ côté serveur • Linked In – Changement d’architecture – Réduction de 30 à 3 serveurs
  • 12.
    Des retours d’expériencesdes « plus petits » • Banque cantonale de Fribourg – Mise en place d’un référentiel WEB • Audits de sites web – Nombreuses améliorations identifiées Des actions simples à la porté de tous les acteurs Un ROI probant
  • 13.
    Exemple d’un patternsur le besoin A-t-on besoin de tout cela ?
  • 14.
    Comment mesure t’onl’impact du logiciel ? « Ce qui ne peut pas être mesuré ne peut pas être géré». Peter Drucker • Mesure physique – Wattmètre nécessaire mais pas suffisant – Green Plugwise • Mesure logicielle – Intel Energy Checker – INRIA Power API
  • 15.
    Exemple d’un patternqui peut rapporter +1W !
  • 16.
    Impact des bonnespratiques de développement RÉDUIRE L’IMPACT DU WEB
  • 17.
    Méthodologie de mesure Informations plateforme Modélisation énergétique
  • 18.
    Démo – 1:Power API Sera réalisé en live
  • 19.
    Démo – 1:WEB Energy Archive Sera réalisé en live
  • 20.
    Version 1 :Images un peu lourde
  • 21.
    Version 2 :Images et CSS optimisées Réduction de la taille des images Compression avec Yahoo SmushIT Minification du CSS
  • 22.
    Version 1 et2 : Comparaison Même rendu 30% de gain sur l’énergie 15% de gain sur la mémoire
  • 23.
    Version 3 :Page statique Passade de Drupal à une page statique
  • 24.
    Version 1 et3 : Comparaison Même rendu 45% de gain sur l’énergie 44% de gain sur la mémoire
  • 25.
  • 26.
    Analyse d’une pagelourde 1 000 000 pages par jours Soit pour la partie client sur 1 an 200 MWh Ou 30 teq CO² 154 000 kM voiture
  • 27.
    Suppression des images • Suppression des images • Suppression des publicités • Avec (sur Chrome et Firefox) – 56 Wh pour 1000 pages vues • Sans – 30 Wh pour 1000 pages vues
  • 28.
    Au final sur60 sites mesuré par WEA • Meilleur site mesuré : 5Wh pour 1000p • Pire site mesuré : 250 Wh pour 1000p • Une marge de manœuvre importante • Un gain d’échelle énorme
  • 29.
    Save the date! Sortie de Web Energy Archive imminente ! Pour vous tenir, informé allez sur http://webenergyarchive.com/
  • 30.
    Impact des bonnespratiques de développement SUIVI DE LA CONSOMMATION
  • 31.
    Démo – 0:Le matériel… simplissime Sera réalisé en live
  • 32.
    Démo – 1:Plugwize et l’enregistreur shell Sera réalisé en live
  • 33.
    Démo – 2:Wizard KST Sera réalisé en live
  • 34.
    Démo – 3:Attendre le point idle Sera réalisé en live
  • 35.
    Démo – 4:Application PROFI - Personnes Sera réalisé en live
  • 36.
    Démo – 5:Application PROFI - Contrats Sera réalisé en live
  • 37.
    Démo – 6:Résultats dans KST Sera réalisé en live
  • 38.
    Démo – 7:Rejeu de test du pauvre Sera réalisé en live
  • 39.
  • 40.
    On passe àl’arme lourde…
  • 41.
    L’heure de vérité Avantprofilage Après profilage
  • 42.
    Effet de temps Avantprofilage Après profilage 11 secondes 6 secondes
  • 43.
    Effet de puissance Avantprofilage Après profilage 20 W 6W
  • 44.
    Un peu decalcul intégral • 45% gain de temps • 70% gain de puissance • En tout, 83% gain de consommation – (1 – 0.45) x (1 – 0.70) = 0.165 • Calcul automatique
  • 45.
    Un peu decalcul • Economie de 0.051 Wh – 14 W sur 6 secondes – 20 W sur les 5 secondes non utilisées • Electricité à 0.1211 € le KWh • Scénario répété – 100 fois par jour – 200 jours ouvrés – par ~100 gestionnaires – par ~50 clients • 5100 KWh/an, soit 618 €/an
  • 46.
    Et ça vautle coup ? • Durée de vie applicative de 5 ans • ~3000 € gagnés • Inutile s’il faut une semaine de formation • Mais…
  • 47.
    Différences de code– 1: gestion des chaînes Concaténation de chaînes Utilisation du StringBuilder
  • 48.
    Différences de code– 2: services web / BD Appels multiples (chatty) Appels regroupés (chunky)
  • 49.
    Différences de code– 3: gestion des boucles • Early break Appels multiples (chatty)
  • 50.
    Différences de code– 4: seulement si besoin • Lazy execution Appels multiples (chatty)
  • 51.
    Différences de code– 5: exceptions • Une exception porte bien son nom ! Appels multiples (chatty)
  • 52.
    Au final • Paretosur les pratiques – 5 bonnes pratiques montrées – 97% de l’amélioration constatée • Suivi simplissime • Performance²  Consommation !
  • 53.
    Remarque sur l’efficienceénergétique Moustique Gorille • Pic de conso : 13.5 W • Pic de conso : 250 W • Durée du scénario : 9 s • Durée du scénario : 6 s • Coût énergétique : 121 W.s • Coût énergétique : 1500 W.s
  • 54.
    Synthèse/ouverture Prendre du recul Pourquoi le code • ACV globale • Le code permet d’agir sur tout • Rapport entre construction fin la chaine de vie et conso endurant sa vie – Clim • 80% – Conso • Facteur d’échelle des – Nb machine datacenter ou des parcs – (PUE) machines • Corrélation Perf et Green
  • 55.
    En conclusion, l’éco-conception Est simple Apporte des gains immédiats sur l’énergie et l’obésiciel Permet d’agir sur toute la chaine (Clim, serveur…) Est applicable pour tout type de logiciel ou site web

Notes de l'éditeur

  • #2 Notation
  • #4 15-15-15 +10 de questions
  • #5 Les blocs de couleurs sont éditables et peuvent reprendre la couleur du type de session qui est donnée.
  • #9 Le chat potté : equivalent ERajouter exempleintro ACV Conso electrique; cout de construction et fin de vie 80%
  • #14 Exemple plastique voiture a développer…
  • #18 Messages A la portée de tout dev Les résultats sont concrets : code propre Mesure c’est simple, les gains sont facile à voir
  • #20 Annonce Beta60 sites testé tte les nuits
  • #57 Correlation perf et green