Normation – CC-BY-SA
normation.com
Projet Rudder
Retour sur 4 ans de Scala
François ARMAND
Directeur R&D - Normation
far@n...
Normation – CC-BY-SA
normation.com 2
Qui suis-je ?
Scalaiste depuis...
q mi-2006 pour des projets personnels
q Rudder : Sc...
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 techn...
Normation – CC-BY-SA
normation.com 4
Projet Rudder : retour sur 4 ans de Scala
Rudder ?
François ARMAND
Directeur R&D - No...
Normation – CC-BY-SA
normation.com 5
Rudder ?
Automatisation & conformité des
infrastructures informatiques
Configuration ...
Normation – CC-BY-SA
normation.com 6
Les trois approches de la configuration
1. L'artisanat 2. La duplication 3. La gestio...
Normation – CC-BY-SA
normation.com 8
Rudder : objectifs
Faciliter la gestion de configuration
et propager son utilisation
...
Normation – CC-BY-SA
normation.com 9
Projet Rudder : retour sur 4 ans de Scala
Scala ?
François ARMAND
Directeur R&D - Nor...
Normation – CC-BY-SA
normation.com 10
qScala : le langage
On passe !
The Scala and FPL friendly event in Paris!
October 24...
Normation – CC-BY-SA
normation.com 11
Projet Rudder : retour sur 4 ans de Scala
Pourquoi Scala ?
François ARMAND
Directeur...
Normation – CC-BY-SA
normation.com 12
Pourquoi Scala ?
q Environnement multi-serveurs
q Traitements locaux et distants
q P...
Normation – CC-BY-SA
normation.com 13
Pourquoi Scala ?
q Environnement multi-serveurs
q Traitements locaux et distants
q P...
Normation – CC-BY-SA
normation.com 14
Nous sommes en 2009
Scala à cette époque lointaine :
Normation – CC-BY-SA
normation.com 15
Nous sommes en 2009...
q Avec un 7 !
q comme « on n'a pas encore refait les collecti...
Normation – CC-BY-SA
normation.com 16
Nous sommes en 2009...
q Une communauté (mondiale) de 4 personnes
q Plus trois PhD d...
Normation – CC-BY-SA
normation.com 17
Nous sommes en 2009...
q Personne n'utilise
Scala en entreprise...
q Enfin si :
Pas ...
Normation – CC-BY-SA
normation.com 18
Nous sommes en 2009...
q Frameworks :
Normation – CC-BY-SA
normation.com 19
Nous sommes en 2009...
Pas de PSUG !!!! ;
Normation – CC-BY-SA
normation.com 20
Pourquoi Scala ? (en vrai)
q Start-up, le produit avant tout
q Ne pas être contraint...
Normation – CC-BY-SA
normation.com 21
Pourquoi Scala ? (en vrai)
q Pour rigoler : en Scala, possible ?
q Base terminée en ...
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
B...
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
Normation – CC-BY-SA
normation.com 24
Projet Rudder : retour sur 4 ans de Scala
Et alors, dans la durée, ça
donne quoi ?
F...
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...
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 com...
Normation – CC-BY-SA
normation.com 27
Grandir avec un écosystème naissant
q Finalement, voir la sauce qui prend
q
q , et p...
Normation – CC-BY-SA
normation.com 28
qGrandir avec un écosystème naissant
q Et le recrutement ?
q Personnelement, peu de ...
Normation – CC-BY-SA
normation.com 29
Projet Rudder : retour sur 4 ans de Scala
OK, mais le code, alors ?
François ARMAND
...
Normation – CC-BY-SA
normation.com 30
Scala way of life
q Favorise l'immutabilité et la composabilité
q Favorise l'intenti...
Normation – CC-BY-SA
normation.com 31
Utiliser Scala permet....
q Modéliser des systèmes et leurs intéractions
q Compositi...
Normation – CC-BY-SA
normation.com 32
Evolution du code : refactoring
q Rudder : 3 refactorings majeurs
q 80 % des ~35kloc...
Normation – CC-BY-SA
normation.com 33
Classe « entité », mode 2009
Normation – CC-BY-SA
normation.com 34
Classe « entitée », mode 2013
Normation – CC-BY-SA
normation.com 35
Algo, mode 2009
Normation – CC-BY-SA
normation.com 36
Algo, mode 2013
Type de retour : soit un résultat, soit une erreur (Box)
….
….
Normation – CC-BY-SA
normation.com 37
Projet Rudder : retour sur 4 ans de Scala
Et les technos ?
François ARMAND
Directeur...
Normation – CC-BY-SA
normation.com 38
Technologies
q JVM : uniquement partie « serveur Rudder »
q Pile Java classique :
q ...
Normation – CC-BY-SA
normation.com 39
Projet Rudder : retour sur 4 ans de Scala
Questions ?
François ARMAND
Directeur R&D ...
Upcoming SlideShare
Loading in …5
×

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

1,297 views
1,242 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
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,297
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
21
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

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

×