Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

RMLL 2013: Projet rudder, retour sur 4 ans de Scala

1,531 views

Published on

Un retour d'expérience sur l'utilisation de Scala dans un projet Open Source, sur 4 ans. Cette présentation couvre en particulier les aspects sociaux liés à l'utilisation d'un langage preque inconnu au début du projet (2009), et qui décolle.

Published in: Technology
  • Be the first to comment

RMLL 2013: Projet rudder, retour sur 4 ans de Scala

  1. 1. Normation – CC-BY-SA normation.com Projet Rudder Retour sur 4 ans de Scala François ARMAND Directeur R&D - Normation far@normation.com
  2. 2. Normation – CC-BY-SA normation.com 2 Qui suis-je ? Scalaiste depuis... q mi-2006 pour des projets personnels q Rudder : Scala à temps complet depuis mi-2009 q Projet LaFoSec : sécurité des langages fonctionnels – Scala d'un point de vue sécurité – Papier écrit en 2010 pour l'Agence Nationnal de la Sécurité de SI (ANSSI) – http://www.ssi.gouv.fr/fr/anssi/publications/publications-scientifiques/autres-publicati ons/lafosec-securite-et-langages-fonctionnels.html Co-fondateur Lead-architect far@normation.com @fanf42 François ARMAND
  3. 3. Normation – CC-BY-SA normation.com 3 De quoi va-t-on parler ? q Pas une présentation de Scala q Pas une présentation technique q Plutôt l'histoire de Rudder et de Scala
  4. 4. Normation – CC-BY-SA normation.com 4 Projet Rudder : retour sur 4 ans de Scala Rudder ? François ARMAND Directeur R&D - Normation far@normation.com
  5. 5. Normation – CC-BY-SA normation.com 5 Rudder ? Automatisation & conformité des infrastructures informatiques Configuration de système, Gestion des changements, Vérification... www.rudder-project.org
  6. 6. Normation – CC-BY-SA normation.com 6 Les trois approches de la configuration 1. L'artisanat 2. La duplication 3. La gestion centrale q Adaptable à chaque besoin q Solution sur mesure q Attention au détail q Problème d'échelle q La répétition n'est pas un point fort des humains q Partage du savoir Configuration à la main, aux « petits oignons » É V O L U T I O N q Gain de temps à partir du deuxième déploiement q Environnements identiques q Adaptation des paramètres q Gestion des changements q Compatibilité des formats d'image Une installation « parfaite », reproduite à l'identique q Contrôle centralisé q Gestion des changements q Vérification et reporting q Partage du savoir q Agent sur chaque serveur q Montée en compétences Configuration automatique, pilotée depuis un point
  7. 7. Normation – CC-BY-SA normation.com 8 Rudder : objectifs Faciliter la gestion de configuration et propager son utilisation Étendre les bénéfices de la gestion de configuration à une population plus large Managers Sysadmins juniors Non experts Baisser le coût d'entrée pour apprendre et utiliser la gestion de configuration Utilisation simplifiée Puissance conservée
  8. 8. Normation – CC-BY-SA normation.com 9 Projet Rudder : retour sur 4 ans de Scala Scala ? François ARMAND Directeur R&D - Normation far@normation.com
  9. 9. Normation – CC-BY-SA normation.com 10 qScala : le langage On passe ! The Scala and FPL friendly event in Paris! October 24th and 25th, 2013. Paris, France
  10. 10. Normation – CC-BY-SA normation.com 11 Projet Rudder : retour sur 4 ans de Scala Pourquoi Scala ? François ARMAND Directeur R&D - Normation far@normation.com
  11. 11. Normation – CC-BY-SA normation.com 12 Pourquoi Scala ? q Environnement multi-serveurs q Traitements locaux et distants q Problématiques Big-data q Traitements statistiques q Performances q Parallélisme q Besoin de Monads q Comonads q Iteratees q Kleisli arrows
  12. 12. Normation – CC-BY-SA normation.com 13 Pourquoi Scala ? q Environnement multi-serveurs q Traitements locaux et distants q Problématiques Big-data q Traitements statistiques q Performances q Parallélisme q Besoin de Monads q Comonads q Iteratees q Kleisli arrows
  13. 13. Normation – CC-BY-SA normation.com 14 Nous sommes en 2009 Scala à cette époque lointaine :
  14. 14. Normation – CC-BY-SA normation.com 15 Nous sommes en 2009... q Avec un 7 ! q comme « on n'a pas encore refait les collections » q on casse la compatibilité binaire les semaines paires – parfois les semaines impaires, aussi q IDE inexistants – il y a bien un plugin Eclipse – mais c'est un projet de PhD – qui ne fonctionne pas réellement...
  15. 15. Normation – CC-BY-SA normation.com 16 Nous sommes en 2009... q Une communauté (mondiale) de 4 personnes q Plus trois PhD de l'EPFL
  16. 16. Normation – CC-BY-SA normation.com 17 Nous sommes en 2009... q Personne n'utilise Scala en entreprise... q Enfin si : Pas encore Twitter ni Foursquare Novell Pulse Mimesis Republic
  17. 17. Normation – CC-BY-SA normation.com 18 Nous sommes en 2009... q Frameworks :
  18. 18. Normation – CC-BY-SA normation.com 19 Nous sommes en 2009... Pas de PSUG !!!! ;
  19. 19. Normation – CC-BY-SA normation.com 20 Pourquoi Scala ? (en vrai) q Start-up, le produit avant tout q Ne pas être contraint par le langage ni l'environnement de développement q Pouvoir facilement trouver des compétences q Dans un écosystème dynamique q Choix naturel : q Java. q Sisi.
  20. 20. Normation – CC-BY-SA normation.com 21 Pourquoi Scala ? (en vrai) q Pour rigoler : en Scala, possible ? q Base terminée en 2h et 50 lignes + = JAX-P / XSD Xstream SAX/StAX
  21. 21. Normation – CC-BY-SA normation.com 22 Pourquoi Scala ? (en vrai) q On a adoré, q Fait de plus en plus de choses en Scala Bref, on se faisait plaisir – et des développeurs qui se font plaisir bossent mieux Cool à utiliser Développement rapide Peu de boilerplate Apprendre à nouveau
  22. 22. Normation – CC-BY-SA normation.com 23 Pourquoi Scala ? (en vrai) q On a adoré, q Fait de plus en plus de choses en Scala
  23. 23. Normation – CC-BY-SA normation.com 24 Projet Rudder : retour sur 4 ans de Scala Et alors, dans la durée, ça donne quoi ? François ARMAND Directeur R&D - Normation far@normation.com
  24. 24. Normation – CC-BY-SA normation.com 25 Grandir avec un écosystème naissant q Pleins de côtés sympas q Esprit tribu, tout le monde se connait q les premiers Scala Days – Sentir un élan, un bouillonnement q la création du PSUG q les idées folles de remises en cause du monde (JavaEE...) q Communauté Brillante Dynamique Horizon divers Parfois Rugueuse
  25. 25. Normation – CC-BY-SA normation.com 26 Grandir avec un écosystème naissant q Des côtés moins sympa : q La lenteur de la compilation (toujours) q la compatibilité binaire inexistante q les bugs du compilo (nombreux au début) q l'outillage inexistant q les intégristes Java qui n'essaient pas de comprendre – mais critiquent abondamment.
  26. 26. Normation – CC-BY-SA normation.com 27 Grandir avec un écosystème naissant q Finalement, voir la sauce qui prend q q , et pleins dautres frameworks q La start-up du jour (par exemple ) q Les grosses boites : , , … q Les scala-days de plus en plus grands q Le nombre de présentations et d'UG qui explose q L'apparition dans les radars « mainstream » q Boost de motivation, d'idées, de possibilités ($4M pour développer Scala)
  27. 27. Normation – CC-BY-SA normation.com 28 qGrandir avec un écosystème naissant q Et le recrutement ? q Personnelement, peu de recul : – Uniquement 5 (anciens) stagiaires & alternants – Aucune intégration de développeur expérimenté q Candidats : excellents profils q Aucun problème de montée en compétence sur Scala q Evolution du marché : q Aujourd'hui : – embaucher 5 stars : aucun problèmes, – monter une équipe de 20 personnes : très difficile. « Hot developers use Scala » Anthony Rose
  28. 28. Normation – CC-BY-SA normation.com 29 Projet Rudder : retour sur 4 ans de Scala OK, mais le code, alors ? François ARMAND Directeur R&D - Normation far@normation.com
  29. 29. Normation – CC-BY-SA normation.com 30 Scala way of life q Favorise l'immutabilité et la composabilité q Favorise l'intention par le typage q Case class : la bonne structure de données au bon moment q « un identifiant n'est pas une String » getPeople(id : PeopleId) : Either[ Error, Option[People] ] q Framework de collection über puissant q Les algorithmes tels que vous les pensez
  30. 30. Normation – CC-BY-SA normation.com 31 Utiliser Scala permet.... q Modéliser des systèmes et leurs intéractions q Composition de flows de données q Ajouter simplement des fonctionnalités transverses q Workflow de validation de demandes de changement : 3 semaines à 3 q Algorithmes / sorties utilisateurs q Refactorer
  31. 31. Normation – CC-BY-SA normation.com 32 Evolution du code : refactoring q Rudder : 3 refactorings majeurs q 80 % des ~35kloc touchées q Passés magiquement q Le métier reste complexe q Mais ça compile, c'est bon (presque) q Pas de craintes de refactorer q Même si la couverture de tests n'est pas top (c'est mal) q Comme dans Git, naturel de faire des branches
  32. 32. Normation – CC-BY-SA normation.com 33 Classe « entité », mode 2009
  33. 33. Normation – CC-BY-SA normation.com 34 Classe « entitée », mode 2013
  34. 34. Normation – CC-BY-SA normation.com 35 Algo, mode 2009
  35. 35. Normation – CC-BY-SA normation.com 36 Algo, mode 2013 Type de retour : soit un résultat, soit une erreur (Box) …. ….
  36. 36. Normation – CC-BY-SA normation.com 37 Projet Rudder : retour sur 4 ans de Scala Et les technos ? François ARMAND Directeur R&D - Normation far@normation.com
  37. 37. Normation – CC-BY-SA normation.com 38 Technologies q JVM : uniquement partie « serveur Rudder » q Pile Java classique : q Maven, q Spring (bientôt éradiqué), q UnboundId (LDAP), q JodaTime, SLF4J, etc q Framework web : q Lift q Perspectives d’évolution q Virer Spring q Akka & Spray.io
  38. 38. Normation – CC-BY-SA normation.com 39 Projet Rudder : retour sur 4 ans de Scala Questions ? François ARMAND Directeur R&D - Normation far@normation.com

×