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