RMLL 2013: Projet rudder, retour sur 4 ans de Scala
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 1,246 views

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 ...

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.

Statistics

Views

Total Views
1,246
Views on SlideShare
1,178
Embed Views
68

Actions

Likes
1
Downloads
18
Comments
0

1 Embed 68

https://twitter.com 68

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • Normation – CC-BY-SA normation.com Projet Rudder Retour sur 4 ans de Scala François ARMAND Directeur R&D - Normation far@normation.com
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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 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...
  • 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
  • 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
  • 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 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.
  • 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
  • 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
  • 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 ? François ARMAND Directeur R&D - Normation far@normation.com
  • 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
  • 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.
  • 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)
  • 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
  • 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
  • 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
  • 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
  • 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
  • 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 R&D - Normation far@normation.com
  • 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
  • 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