Agenda Joël Courtois Epita 14h00 - Mot d'accueil Frédéric Bordage GreenIT.fr Erwan Bouvier Blueight 14h10 - Les fondamentaux de l éco-conception logicielle 14h40 - L éco-conception à toutes les étapes du cycle de vie d une application Thierry Leboucq Kaliterre 15h30 - Code vert : détecter les «patterns consommant» dans le code source Pierre Carrio, Beveod Yann Azoury, Faveod 16h10 - Industrialisation de l éco-conception logicielle grâce à un outil dédié Animée par Frédéric Bordage, GreenIT.fr 17:00 - Table ronde 18:00 - Cocktail
Agenda Joël Courtois Epita 14h00 - Mot d'accueil Frédéric Bordage GreenIT.fr Erwan Bouvier Blueight 14h10 - Les fondamentaux de l éco-conception logicielle 14h40 - L éco-conception à toutes les étapes du cycle de vie d une application Thierry Leboucq Kaliterre 15h30 - Code vert : détecter les «patterns consommant» dans le code source Pierre Carrio, Beveod Yann Azoury, Faveod 16h10 - Industrialisation de l éco-conception logicielle grâce à un outil dédié Animée par Frédéric Bordage, GreenIT.fr 17:00 - Table ronde 18:00 - Cocktail
Les fondamentaux de l éco-conception logicielle Frédéric Bordage expert green IT et éco-conception logicielle
Agenda Constats clé du Green IT Le rôle du logiciel Définition de l éco-conception logicielle Potentiel écologique et économique de l éco-conception logicielle Retours d expérience
Constats clés du Green IT
Empreinte écologique L empreinte écologique se concentre dans la fabrication la fin de vie des composants électroniques et des écrans plats Impact environnemental des différents composants de l UC d un PC fixe, exprimé en points Eco-Indicator 99 source : Eugster et al, 2007 Contribution des différentes phases du cycle de vie d une UC de PC coréen à chaque catégorie d impact, avec un taux de recyclage de 46% - source : Choi et al, 2006
Solution clé : allonger la durée de vie active Fabrication et fin de vie des composants électroniques Fabricants Éco-concevoir Re-conditionner plutôt que recycler Réduire les volumes fabriqués et en fin de vie Utilisateurs Allonger la durée de vie active Allonger la durée de vie active Power Management Éco-conception logicielle Collecter les DEEE après de prestataires certifiés Source :
Durée d utilisation Durée de vie électronique 10 à 15 ans Durée de vie active divisée par 3 en 20 ans Durée de vie électronique 3 à 12 ans 1985 2000 2005 2007 2011 10,7 ans Source : 5,5 ans 3,6 ans 2,5 ans 4 ans Facile à upgrader, réparer, reconditionner, recycler Difficile ou impossible à upgrader, réparer, reconditionner, recycler
Le rôle clé du logiciel dans l obsolescence accélérée des équipements
Le rôle clé du logiciel Les ordinateurs ne sont pas remplacés par ce qu ils ne fonctionnent plus mais parce qu ils ne sont plus assez puissants pour exécuter les nouvelles versions de logiciels stocker les données (x69 en 10 ans) Constat valable pour postes de travail serveurs 71x + de mémoire vive en 12 ans Durée d utilisation du matériel est directement liée aux besoins en ressources de la couche logicielle Source : Puissance matérielle nécessaire x2 tous les 3 ans
Exemple de Windows et Office
Exemple de Mac OS X
Pourquoi est-ce un sujet clé? Arrivée à maturité de la couche matérielle Loi de Koomey : The number of computations per joule of energy dissipated has been doubling approximately every 2 years. (40x moins d énergie qu en 1946) Mais aucun progrès notable pour la couche logicielle Loi de Wirth : Le logiciel ralentit plus vite que le matériel n'accélère. (71x + de RAM en 12 ans) Source : http://en.wikipedia.org/wiki/koomey%27s_law Les plus gros effets de levier économiques techniques, environnementaux sont sur la couche logicielle car c est elle qui dimensionne l infrastructure matérielle qui concentre l empreinte écologique et qui conditionne la durée de vie active des équipements.
Potentiel?
L obésiciel n est pas une fatalité Conception 45 % des fonctionnalités demandées par les utilisateurs ne sont jamais utilisées (obésiciel) Empilement de frameworks et de composants pour raccourcir les temps de développement (obésiciel) Non optimisation du code et du contenu (images, etc.) (obésiciel) Utilisation 10 à 50 % des applications sont redondantes 25 % des applications ne sont plus utilisées depuis 3 ans! 15 % de serveurs zombies dans les data centers (parce qu on ne sait plus quel logiciel fonctionne dessus) Source : Standish Group, 2006
Eco-conception : définition
Eco-conception logicielle : définition L éco-conception vise à «trouver l équilibre entre le niveau de performance à atteindre et la quantité de ressources nécessaires au fonctionnement d un logiciel». C est une démarche d efficience. L éco-conception porte également sur la dimension sociale (accessibilité notamment). L éco-conception porte sur l ensemble du cycle de vie du logiciel Conception fonctionnelle et technique Développement Utilisation Mise à jour / maintenance évolutive Fin de vie (dé-provisionning) Elle ne se limite pas au code Limiter les impressions Limiter les déplacements physiques pour la maintenance des logiciels
Retours d expérience
Algorithme Retour d expérience IBM IBM Suisse 9 To de données à lire et valider (data warehouse) Costas Bekas et Alessandro Curioni Choix d un algorithme de validation différent et optimisation poussée Avant Temps : 33 heures Consommation : plusieurs MWh Après Temps : 20 minutes (100x plus rapide) Consommation : 700 kwh (1% de l énergie dépensée avant)
Retour d expérience choix socle dév. : Evernote Evernote 4 Some bugs were unfixable in v3.5: blurry fonts, slow startup times, large memory footprint, poor support for certain graphics cards..net 3.5 (WPF) -> C++ natif Résultat Temps de démarrage de l application divisé par 5 Consommation mémoire divisée par 2 Runtime
Cahier des charges fonctionnelles Retour d expérience - Microsoft Microsoft Research Moteur de recherche Bing Etude sur l impact de la Qualité de Service (QoS) sur la consommation énergétique des fermes de serveurs LiveSearch sur lesquelles fonctionne le moteur de recherche Bing. Réduction du nombre de liens (résultats) : 10 % => réduction de la consommation électrique de 65 %. 20 % => réduction la consommation électrique de 80 %.
Optimisation Retour d expérience - BCF Banque Cantonale de Fribourg (BCF) Eco-conception de son site web Intégration de 45 bonnes pratiques d éco-conception web (sur un référentiel de 104) au cahier des charges 3 à 4 % de surcoût par rapport à un site traditionnel Exemple Optimiser le poids des images (page d accueil) Avant : 5,8 Mo Après : 1,9 Mo Bénéfices potentiels Temps d affichage divisé par plus de 2 pour l internaute Trafic économisé : 17 Go / jour, 6 094 Go / an Bande passante quotidienne (largeur du tuyaux) : divisée par 3 3 fois plus d internautes avec la même infrastructure
Retour d expérience web : Facebook Facebook Eco-conception de son site web Compilation du code PHP en C++ (Hip-Hop for PHP) Résultats 2 fois moins de serveurs (CPU, mémoire) nécessaires Bénéfices Cost avoidance : data center à 100 millions de $ Coût de fonctionnement 2x moins de kwh 2x moins d émissions de GES Runtime
Pour aller plus loin Sites GreenCodeLab.fr GreenIT.fr/tag/eco-conception-logicielle Livres Green Patterns, Manuel d éco-conception des logiciels Green Code Lab (collectif) Lulu.com Eco-conception web : les 100 bonnes pratiques Frédéric Bordage & al. Eyrolles
Agenda Joël Courtois Epita 14h00 - Mot d'accueil Frédéric Bordage GreenIT.fr Erwan Bouvier Blueight 14h10 - Contexte et enjeux 14h40 - L éco-conception à toutes les étapes du cycle de vie d une application Thierry Leboucq Kaliterre 15h30 - Code vert : détecter les «patterns consommant» dans le code source Pierre Carrio, Beveod Yann Azoury, Faveod 16h10 - Industrialisation de l éco-conception logicielle grâce à un outil dédié Animée par Frédéric Bordage, GreenIT.fr 17:00 - Table ronde 18:00 - Cocktail
L éco-conception à toutes les étapes du cycle de vie d une application Erwan Bouvier Co-fondateur et responsable technique
Agenda Les étapes du cycle de vie d une application Conception fonctionnelle et technique Développement Utilisation Mise à jour et maintenance évolutive Fin de vie
Les étapes du cycle de vie d une application
Les étapes du cycle de vie d une application Conception fonctionnelle et technique Développement Mise à jour et maintenance évolutive Utilisation Fin de vie
Les étapes du cycle de vie d une application Phase de conception et développement Conception Développement 45 % des fonctionnalités demandées par les utilisateurs ne sont jamais utilisées Utilisation de l application 10 à 50% des applications sont redondantes Gestion de la fin de vie Empilement de frameworks et de composants pour raccourcir les temps de développement Mise à jour et maintenance évolutive Utilisation Mise à jour et maintenance évolutive Mise à jour et maintenance évolutive Mise à jour et maintenance évolutive 25% des applications ne sont plus utilisées depuis plus de 3 ans Fin de vie t0 Quelques mois à 1 an Plusieurs années Plusieurs mois
Conception fonctionnelle et technique
Conception fonctionnelle et technique Etape primordiale dans un projet qui permet de cadrer la mise en place de l application afin de répondre au besoin exprimé Définition des fonctionnalités à intégrer dans le développement de l application Définition des choix techniques Quelles fonctions mettre en œuvre pour répondre au besoin exprimé? Comment intégrer les nouvelles fonctionnalités dans les processus existants? Quels référentiels utiliser? Quelle architecture doit être déployée pour permettre d assurer le niveau de service demandé? Le développement et l hébergement de l application doivent-ils être réalisés par un partenaire? Quelle plate-forme technique doit être utilisée? Quel langage de programmation choisir?
Conception fonctionnelle et technique Les bonnes pratiques Réutiliser au maximum les ressources existantes Optimiser l usage de nouvelles ressources Définir des solutions durables Utiliser les bonnes pratiques Répondre au plus d urbanisation juste au besoin : 10% Service à 50% oriented des applications sont exprimé architecture redondantes (SOA) Veiller Cartographier à ne pas le SI et La recréer identifier virtualisation des les référentiels permet une réduction fonctionnalités Avoir un de inventaire 80% des déjà du consommations existantes matériel et de 90% du Utiliser nombre des de machines ressources Virtualiser les matérielles disponibles environnements physiques Formaliser les SLA pour chaque Définir application une plate-forme 90% technique des applications en ont un SLA Ne cohérence mettre défini sans place avec analyse de les la des redondance risques niveaux métier de que services lorsque nécessaire demandés et uniquement sur En recompilant les briques techniques son le application Réduire nécessitant PHP les en C++, Facebook consommations a divisé par 2 ses besoins Utiliser énergétique des en ressources environnements des peu équipements gourmands en ressources Veiller à réaliser des Enjeu autour de la pérennité choix fonctionnels et de Utiliser la technologie des architectures Java logicielles depuis techniques son et rachat techniques permettant par modulaires Oracle de répondre à Eviter l évolution des plates-formes des besoins techniques Les Choisir banques des exotiques et industries ou en fin peinent technologies de vie à trouver et des développeurs solutions pérennes en COBOL
Développement
Développement Réalisation du développement applicatif, basé sur les choix et directives de l étape précédente Ecriture et intégration des différents modules de l application Validation de la conformité de la réalisation avec le cahier des charges Utilisation d outils de développement intégrés Fournir un cadre standard de développement (framework) Automatiser la production des fonction les plus utilisées en s appuyant sur des librairies standards
Développement Les bonnes pratiques Réduire les besoins en ressources Adopter des méthodes de travail durables Utilisation intelligente des différentes techniques de cache et de proxy Utilisation Optimiser des les capacités accès techniques distants, les des équipements accès aux disques ou à la mémoire Parallélisation des accès aux CPU L utilisation multi-core des caches sur le navigateur du Simplifier poste client les (proxy-client) calculs demandés permet au diviser processeur de 3 à 10 la charge des serveurs Intégration systématique des «Green Patterns webs» dans le code de l application Réutiliser au maximum les objets et fonctions créés Intégrer la notion de contexte d exécution : Arrêter le rafraichissement de l interface client lorsque celle-ci est réduite en icône Réaliser une documentation ad-hoc permettant la reprise du projet par de Automatiser nouvelles la équipes rédaction de de travail la documentation en intégrant également les tests unitaires à réaliser Documenter les API et modules Utiliser proposés un formalisme pour faciliter standard la réutilisation pour la description nécessite une du développement des charge objets, de méthodes travail supérieure par projets APIs à la réécriture complète de l application tiers La reprise d une application non documentée Modèle UML (Unified Modelling Language) Privilégier des méthodes de travail «zéro Veiller à réaliser des choix d outils papier» permettant un travail ultérieur sur le développement produit
Utilisation
Utilisation Etape comprenant l ensemble de la durée de vie de l application une fois son exploitation démarrée L utilisation dépend des processus en place mais également des comportements L utilisation de l application a été formalisée lors des étapes précédentes, notamment au travers de processus : interactions avec d autres applications, usage par les utilisateurs L éco-usage de l application dépend de l utilisateur
Utilisation Les bonnes pratiques Respecter la logique de fonctionnement de l application Utiliser l ensemble des fonctionnalités proposées Corriger les processus inadaptés Dans les GED, présence de documents standards sur L usage inadapté de une Mettre architecture l application en place peut un haute accompagnement disponibilité réservée amener à une au aux changement documents classés avec une stratégiques surconsommation des et ressources des formations Le nécessaires mail est régulièrement campagne de sensibilisation utilisé pour transférer des fichiers volumineux Les fonctionnalités non utilisées représentent des ressources inutiles Définir 10% à 50% mises des à évaluations des applications disposition manuelles sont redondantes ou automatiques pour identifier les Certaines fonctionnalités En moyenne, uniquement inutilisées, redondantes 10% fonctionnalités à 20% des ou peuvent manquantes fonctionnalités être recréées de dans Word sont utilisées d autres applications, par méconnaissance de l application Dans une application éco-conçue, le processus métier peut Réaliser Lors de l ajout à intervalles d un nouveau réguliers document demander des papier cheminements aux dans usagers un de dossier de processus réaliser dématérialisé, pour plusieurs identifier les impression fois leviers la même d optimisation de l ensemble tâche, éco-responsable du annulant dossier pour ainsi le et scanner tout proposer de effet nouveau bénéfique des en optimisations intégrant de la le adaptées nouveau conception document écoresponsable de l application
Mise à jour et maintenance évolutive
Mise à jour et maintenance évolutive Faire évoluer l application en fonction des nouveaux besoins et contraintes apparaissant tout au long de son utilisation Définition des cahiers des charges techniques et fonctionnels, décrivant les évolutions à apporter Ecriture et intégration des différents modules de l application avec l existant Validation de la conformité de la réalisation avec le cahier des charges Les équipes de maintenance ne sont pas forcément celles du développement initial! Importance de la formalisation des travaux Des contraintes de comptabilité d outils et de continuité de méthodes de développement peuvent alors apparaître
Mise à jour et maintenance évolutive Les bonnes pratiques Maintenir un usage optimisé des besoins en ressources Optimiser les accès distants, les accès aux disques ou à la mémoire Réutilisation des techniques de développement L utilisation de serveurs utilisées plus lors puissants de la création Simplifier les calculs demandés au de peut processeur l application permettre de diviser le nombre d équipements utilisés sur une infrastructure Modifier les fonctionnalités ou de supprimer disponibles des en Réutiliser au maximum les objets fonction couches des d équilibrage nouveaux de besoins charge et fonctions créés Adapter Les fonctionnalités l architecture d HTML5 technique permettent aux de remplacer l usage de Flash dans les sites nouveaux Prendre usages en compte et aux les nouvelles évolutions technologies web des besoins en termes de fonctionnalités, disponibilités ou volume d utilisation Adopter des méthodes de travail durables identiques à celles de l étape du développement Réaliser une documentation ad-hoc permettant la reprise du projet par de nouvelles équipes de travail et les mises à jour ultérieures Automatiser la rédaction de la documentation en L utilisation intégrant du également modèle standard les tests UML unitaires (Unified à Documenter les API et modules réaliser Modelling proposés Language) pour faciliter pour la la documentation réutilisation de Utiliser du développement développement un formalisme standard par des pour projets la description tiers des objets, méthodes et APIs technique permet d utiliser n importe quel outil description des objets, méthodes et APIs Utiliser des outils compatibles avec ceux utilisés lors du développement du produit
Fin de vie
Fin de vie L étape de fin de vie démarre lorsque l application a été remplacée par une nouvelle Migration de son contenu vers les nouvelles applications ou archivage des données Arrêt de l application Suppression ou réattribution des équipements et ressources dédiés à cette application Étape importante pour éviter une croissance incontrôlée des Systèmes d Information tant au niveau logique que physique
Fin de vie Les bonnes pratiques Prendre en compte l arrêt de l application Réutiliser ou recycler les infrastructures techniques Les anciennes applications et les une infrastructures stratégie de migration techniques des données doivent sur pouvoir la les être nouvelles retirées applications, dès que une stratégie de modification des processus possible Mettre en place un plan de migration avec métiers et un plan de communication à destination 25% des applications des utilisateurs en place ne sont pas utilisées depuis plus de 3 ans Les infrastructures techniques doivent pouvoir être décommissionnées Procéder à une consolidation régulière des ressources 15% des serveurs pour pouvoir dans les désengager datacentres des équipements sont des serveurs sous-utilisés zombies Les services associés (exploitation, Maintenir un inventaire des applications pour maintenance, détecter les contrats licences) liés doivent à l arrêt être d une résiliés application d une application Sélectionner, en s appuyant sur l expertise des éco-organismes, les prestataires qualifiés pour Les réaliser serveurs la gestion usagés des ne déchets doivent pas électroniques Seuls être 30% mis des au rebut DEEE ou sont disparaître aujourd hui dans collectés par la filière de recyclage la nature Mettre en place un processus d évaluation de la réutilisation des équipements désengagés
Agenda Joël Courtois Epita 14h00 - Mot d'accueil Frédéric Bordage GreenIT.fr Erwan Bouvier Blueight 14h10 - Contexte et enjeux 14h40 - L éco-conception à toutes les étapes du cycle de vie d une application Thierry Leboucq Kaliterre 15h30 - Code vert : détecter les «patterns consommant» dans le code source Pierre Carrio, Beveod Yann Azoury, Faveod 16h10 - Industrialisation de l éco-conception logicielle grâce à un outil dédié Animée par Frédéric Bordage, GreenIT.fr 17:00 - Table ronde 18:00 - Cocktail
Code vert : détecter les «patterns consommant» dans le code source Thierry Leboucq Fondateur
Positionnement / Philosophie Jeune Entreprise Innovante nantaise créée en 2010 Des valeurs humaines et environnementales Le travail en réseau et le partage de connaissance Des convictions : «Les changements seront subis s ils ne sont pas anticipés, les petits gestes ne suffisent plus, il faut agir en profondeur et reconstruire»kali, déesse hindou de la reconstruction Conseil et Système d Information au service du Développement Durable
KaliTerre : Conseil et Système d Information au service du Développement Durable AMO Projets DD Conseil formation RSE Conseil formation Green IT
Notre implication sociétale et associative Membre d ACCENT 21 : accompagnement à la mise en œuvre de la RSE dans les entreprises Pilote de la filière Informatique Durable pour la région Pays de la Loire dans le cadre de Ouest Numérique Membre du conseil d administration et responsable Forum Informatique Durable ADN Ouest Membre fondateur de la Chaire du Développement Durable de l EMN Membre fondateur du Green Code Lab Membre de l AGIT (Alliance Green IT) Membre du réseau Atlanpole Membre Pôle Images et Réseaux Membre participant DIAG26000 à l outil d évaluation en ligne pour les entreprises
KaliTerre et l écoconception Vulgarisation de la consommation logicielle KaliTerre informe le grand public via le site e-learning en ligne http://www.informatiqueverte.info/ en partenariat avec le CNAM pays de Loire KaliTerre participe à des séminaires Green IT pour vulgariser l éco-conception des logiciels auprès des entreprises : SPR PAYS DE LA LOIRE, table ronde Eco-conception du SI Accent 21 forum logicielle Durable Pôle Images et Réseaux sur l éco-conception et animation GT. KaliTerre forme les étudiants à l éco-conception Polytechnique Nantes, CNAM PAYS DE LA LOIRE, ESAIP KaliTerre participe aux initiatives sur l éco-conception logicielle Porteur du projet de label du logiciel durable au sein du Groupe EcoInfo (CNRS, ) Membre fondateur du Green Code Lab, laboratoire agrégateur en ligne de bonnes pratiques d éco-conception pour les architectes et développeurs. http://greencodelab.fr Co-auteur du livre «Green Pattern : Manuel d écoconception des logiciels Membre du GT Ecoconception logicielle au sein de l AFNOR pour l ISO. Organisation du premier colloque sur l éco-conception des logiciels à Nantes
Offre en écoconception des logiciels Une démarche en 4 étapes Sensibilisation Ecoconception Diagnostic d un site, d une application Elaboration conjointe d un référentiel éco-conception Mise en œuvre référentiel sur un Projet Pilote Les points clés de la démarche Un référentiel générique de 100 règles et de bonnes pratiques de l écoconception logicielle Une étude des impacts sur tout le cycle de vie du produit Une étude qui porte sur les thématiques de consommation, performance, sans remettre en question les référentiels existants sur la sécurité, qualité, ergonomie-accessibilité. Une expertise adjointe par langage / plateforme Une étude pragmatique et collaborative avec mesure Une démarche d ancrage dans le processus d ingénierie logicielle de l organisation
Association Green Code Lab Groupe de travail formé en mai 2011, association créée en août 2012 Fédérer les experts autour de l éco-conception des logiciels Experts du développement durable et du green IT, Développeurs Organisations et individus A pour objectif de : Généraliser ses bonnes pratiques par un référentiel Sensibiliser et former les développeurs à l éco-conception Favoriser des échanges entre développeurs et partenaires Travailler avec les autres communautés internationales
Le projet Code Vert : présentation Objet Développer un logiciel permettant d établir une évaluation de la maturité en écoconception d un code logiciel par l analyse statique du code informatique Appel à projet PME Collaboratif Accompagnement projet Labellisation Projet labellisé par le pôle en décembre 2011 Financement p.an Coût (K ) Durée(mois) 13,7 910 24 mois
Le projet Code Vert : Phasing Phasing et mode collaboratif KaliTerre en porteur du projet Une R&D partagée avec l ICAM Une technologie emprunté à TOCEA Un client SIGMA dans le projet
Organisation du projet
REFERENTIEL Répartition des règles sources : forum, mémoire, référentiel performance, Objectif de rendre les règles génériques et de les décliner par langage Couverture cible : Java, puis référentiel Web (css, html, js, images, php) A date : 185 règles candidates, 12 règles mesurées
GREEN PATTERNS Bonne pratique de programmation pour réduire l impact des logiciels sur l environnement, Eviter l obscolescence Réduire la consommation Limiter les exclusions Green Patterns vont dans le sens de la performance, Mais pas tout le temps
REFERENTIEL : EXEMPLE DE GREEN PATTERN Prendre en compte le contexte Minimiser une fenêtre, un onglet traitement non utilisé = Eviter le gaspillage
LE REFERENTIEL CANDIDAT Règle Explication Intitulé (Fr) Exemple (Fr) AvoidP rimitive Types Wrappe rrule S hould use a primitive type ins te ad of a wrappe r in orde r to re duce the me mory ove rhe ad due to an obje ct he ade r in the J VM. This type s hould be initialized with ExpandableTypeCons tructorwithoutinitialsizerule an initial s ize to avoid a dynamic expans ion. AvoidTimerPeriodReductionRule Le s type s primitifs doivent ê tre privilé gié s aux wrappe rs pour é vite r un s urcoût de la ge s tion des objets. Ce type doit être initialis é avec une taille initiale pour éviter une expans ion dynamique May reduce the s ys tem timer period. La fréquence du timer doit être réduite. It s hould be activated only if required Le timer doit de plus être uniquement in a given runtime context. activé si le contexte le demande. Avec wrapper : Map<Integer, Integer> counters = new Has hmap<integer, Integer>(); int runs = 20 * 1000; for (Integer i = 0; i < runs ; i++) { Integer x = i % 12; Integer y = i / 12 % 12; Integer times = x * y; Integer count = counters.get(times ); if (count == null) counters.put(times, 1); els e counters.put(times, count + 1); } Avec primitive : int[] counters = new int[144]; int runs = 20 * 1000; for (int i = 0; i < runs ; i++) { int x = i % 12; int y = i / 12 % 12; int times = x * y; counters [times ]++; } Sans initialisation: StringBuffer newstring = new StringBuffer(""); for(int i=0;i<500000;i++){ newstring.append("abcdeabcde"); Criticité (Info, Minor, Major, Critical, Blocker) Domaine (Efficacity, Evolutivity, Fiability, Maintainability, Security, Tes tability) Impact du refactoring (Local, File, Project) Temps de refactoring manuel pour une violation (en minutes ) Majo r Effic ac ity Lo c al 1 Automatis ation du refactoring avec Scertify (Manual, Partially automatic, Automatic) Partially auto matic Environnemental Gain Avec initialis ation : StringBuffer newstring2 = new StringBuffer(6029310); for(int i=0;i<500001;i++){ newstring2.append("abcdeabcde"); } Info Efficacity Local 5 Manual C Par exemple pour java : - Sys tem.currenttimemillis () utilis e GetSys temtimeas FileTime s ous Windows. Le temps courrant es t utilis é ce qui es t moins couteux (6 cycles processeurs ) - Sys tem.nanotime() utilis e QueryPerformanceFrequency qui s era implémentée de différente manière en fonction du hardware. Dans tous les cas, des IO lentes (ACPI, PIT...) s ont utilis ées. Elles s ont coûteuses (plus de 100 cycles ) - Les API utilis ants le temps peuvent potentiellement demander un timer plus précis par exemplethread.s leep(integer.max_value), Object.wait(millis, nanos )... - En dehors du code il faut éviter de forcer l'utilis ation de timer précis : lancement de la VM avec - XX:+ForceTimeHighRes olution ou /us epmtimer dans boot.ini Critical Efficacity Project 30 Manual A C
LA MESURE Importance de la mesure pour valider l intuition et apporter la robustesse du référentiel pour donner un niveau d efficacité à la règle Difficultés de la mesure Mesure physique unitaire : très faible mesure Répétitivité des résultats des mesures complexe Mesure par modèle de consommation via PowerAPI, Qualitune travail sur du microbenchmarking initialement contextes variés de mesure (arhitecture, langage, matériel, )
LA MESURE
LA MESURE
LA MESURE
LA MESURE
LA DETECTION : SCERTIFY
LA DETECTION : RESULTATS
LA DETECTION sur APPLICATIONS
L OUTIL CIBLE L outillage Mode SaaS Mode PlugIn SONAR, ECLIPSE, Périmètre Analyse Statique du code Bibliothèque de framework marché check-list de pratiques non détectable par le code Evaluation de la dette environnementale Mesure physique sur scénario entre 2 versions
L OUTIL CIBLE
REJOIGNEZ- NOUS www.code-vert.org http://greencodelab.fr/
Agenda Joël Courtois Epita 14h00 - Mot d'accueil Frédéric Bordage GreenIT.fr Erwan Bouvier Blueight 14h10 - Contexte et enjeux 14h40 - L éco-conception à toutes les étapes du cycle de vie d une application Thierry Leboucq Kaliterre 15h30 - Code vert : détecter les «patterns consommant» dans le code source Pierre Carrio, Beveod Yann Azoury, Faveod 16h10 - Industrialisation de l éco-conception logicielle grâce à un outil dédié Animée par Frédéric Bordage, GreenIT.fr 17:00 - Table ronde 18:00 - Cocktail
Pour en finir avec l opposition entre les développeurs et les serveurs Pierre Carrio Fondateur BeVEOD Créateur d entreprises Nouvelles technologies Yann Azoury Fondateur Faveod Directeur Technique de BeVEOD
Changer de paradigme
Pierre CARRIO Profil 80 s Ingénieur des Pétroles (Offshore) réalisation de systèmes informatiques pour le positionnement dynamique de navires réalisation de systèmes robotiques pour les travaux sous-marins en très grande profondeur création d un centre de calcul et de simulation de structures en dynamique 90 s Directeur au sein de SII et Clients CAP SOGETI ATOS Directeur Général Groupe Siemens Arche EQUANT groupe SITA Directeur Informatique GIE Informatique AXA Depuis 2003 Créateur de sociétés IT Fondateur BeTHINK société de Conseil en Gouvernance des Systèmes d Information BeVEOD société de Services pour la réalisation d Applications Logicielles BeSAT société spécialisée dans les infrastructures Informatiques, Réseaux et Telecoms