SlideShare uma empresa Scribd logo
1 de 38
Baixar para ler offline
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

Mais conteúdo relacionado

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

2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUGFabrice Bellingard
 
Event sourcing avec Kafka, UPEC
Event sourcing avec Kafka, UPECEvent sourcing avec Kafka, UPEC
Event sourcing avec Kafka, UPECSylia Baraka
 
meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023Frederic Leger
 
REX Cassandra et Spark au service de la musique en ligne (Français)
REX Cassandra et Spark au service de la musique en ligne (Français)REX Cassandra et Spark au service de la musique en ligne (Français)
REX Cassandra et Spark au service de la musique en ligne (Français)DataStax Academy
 
Déploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIsDéploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIsNicolas Herbaut
 
REX Kanban dans plusieurs contextes, par Couthaïer Farfra (Agile4Me)
REX Kanban dans plusieurs contextes, par Couthaïer Farfra (Agile4Me)REX Kanban dans plusieurs contextes, par Couthaïer Farfra (Agile4Me)
REX Kanban dans plusieurs contextes, par Couthaïer Farfra (Agile4Me)Couthaïer FARFRA
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020SEO CAMP
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapresLaurent Tardif
 
BreizhCamp 2022
BreizhCamp 2022BreizhCamp 2022
BreizhCamp 2022SpikeeLabs
 
Keynote change 2013
Keynote change 2013Keynote change 2013
Keynote change 2013rbschange
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEOCore Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEOWeLoveSEO
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !matparisot
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Mathieu Parisot
 
Qq139 g formation-ibm-rational-rhapsody-developpement-de-logiciels-embarques-...
Qq139 g formation-ibm-rational-rhapsody-developpement-de-logiciels-embarques-...Qq139 g formation-ibm-rational-rhapsody-developpement-de-logiciels-embarques-...
Qq139 g formation-ibm-rational-rhapsody-developpement-de-logiciels-embarques-...CERTyou Formation
 
Embarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilesEmbarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilespprem
 
Methodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysqlMethodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysqlCodizy
 
Retour expérience détection fraude temps réel
Retour expérience détection fraude temps réelRetour expérience détection fraude temps réel
Retour expérience détection fraude temps réelMartin Menestret
 
Automatisation et gestion de configuration : Les avantages pour la supervision
Automatisation et gestion de configuration : Les avantages pour la supervisionAutomatisation et gestion de configuration : Les avantages pour la supervision
Automatisation et gestion de configuration : Les avantages pour la supervisionRUDDER
 

Semelhante a RMLL 2013: Projet rudder, retour sur 4 ans de Scala (20)

2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG2009-09-15 Squale au Paris JUG
2009-09-15 Squale au Paris JUG
 
Event sourcing avec Kafka, UPEC
Event sourcing avec Kafka, UPECEvent sourcing avec Kafka, UPEC
Event sourcing avec Kafka, UPEC
 
meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023
 
REX Cassandra et Spark au service de la musique en ligne (Français)
REX Cassandra et Spark au service de la musique en ligne (Français)REX Cassandra et Spark au service de la musique en ligne (Français)
REX Cassandra et Spark au service de la musique en ligne (Français)
 
Déploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIsDéploiement, orchestration & sécurisation d’APIs
Déploiement, orchestration & sécurisation d’APIs
 
REX Kanban dans plusieurs contextes, par Couthaïer Farfra (Agile4Me)
REX Kanban dans plusieurs contextes, par Couthaïer Farfra (Agile4Me)REX Kanban dans plusieurs contextes, par Couthaïer Farfra (Agile4Me)
REX Kanban dans plusieurs contextes, par Couthaïer Farfra (Agile4Me)
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
Core web vitals pour unifier UX et SEO - Stephane Rios - SEO Camp'us paris 2020
 
Agile lille 2015 devops etapres
Agile lille 2015 devops etapresAgile lille 2015 devops etapres
Agile lille 2015 devops etapres
 
BreizhCamp 2022
BreizhCamp 2022BreizhCamp 2022
BreizhCamp 2022
 
Keynote change 2013
Keynote change 2013Keynote change 2013
Keynote change 2013
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEOCore Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
Core Web Vitals, les indicateurs de vitesse qui réconcilient UX et SEO
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Qq139 g formation-ibm-rational-rhapsody-developpement-de-logiciels-embarques-...
Qq139 g formation-ibm-rational-rhapsody-developpement-de-logiciels-embarques-...Qq139 g formation-ibm-rational-rhapsody-developpement-de-logiciels-embarques-...
Qq139 g formation-ibm-rational-rhapsody-developpement-de-logiciels-embarques-...
 
Embarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobilesEmbarquer une base de données locale dans vos logiciels et applications mobiles
Embarquer une base de données locale dans vos logiciels et applications mobiles
 
Methodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysqlMethodologie et outils d optimisation php mysql
Methodologie et outils d optimisation php mysql
 
Retour expérience détection fraude temps réel
Retour expérience détection fraude temps réelRetour expérience détection fraude temps réel
Retour expérience détection fraude temps réel
 
Automatisation et gestion de configuration : Les avantages pour la supervision
Automatisation et gestion de configuration : Les avantages pour la supervisionAutomatisation et gestion de configuration : Les avantages pour la supervision
Automatisation et gestion de configuration : Les avantages pour la supervision
 

Mais de RUDDER

What if configuration management didn't need to be lvl60 in dev?
What if configuration management didn't need to be lvl60 in dev?What if configuration management didn't need to be lvl60 in dev?
What if configuration management didn't need to be lvl60 in dev?RUDDER
 
Servers compliance: audit, remediation, proof
Servers compliance: audit, remediation, proofServers compliance: audit, remediation, proof
Servers compliance: audit, remediation, proofRUDDER
 
OSIS 2019 - Qu’apporte l’observabilité à la gestion de configuration ?
OSIS 2019 - Qu’apporte l’observabilité à la gestion de configuration ?OSIS 2019 - Qu’apporte l’observabilité à la gestion de configuration ?
OSIS 2019 - Qu’apporte l’observabilité à la gestion de configuration ?RUDDER
 
OW2Con - Configurations, do you prove yours?
OW2Con - Configurations, do you prove yours?OW2Con - Configurations, do you prove yours?
OW2Con - Configurations, do you prove yours?RUDDER
 
The new plugin ecosystem in RUDDER 5.0
The new plugin ecosystem in RUDDER 5.0The new plugin ecosystem in RUDDER 5.0
The new plugin ecosystem in RUDDER 5.0RUDDER
 
What uses for observing operations of Configuration Management?
What uses for observing operations of Configuration Management?What uses for observing operations of Configuration Management?
What uses for observing operations of Configuration Management?RUDDER
 
UX challenges of a UI-centric config management tool
UX challenges of a UI-centric config management toolUX challenges of a UI-centric config management tool
UX challenges of a UI-centric config management toolRUDDER
 
What happened in RUDDER in 2018 and what’s next?
What happened in RUDDER in 2018 and what’s next?What happened in RUDDER in 2018 and what’s next?
What happened in RUDDER in 2018 and what’s next?RUDDER
 
What is RUDDER and when should I use it?
What is RUDDER and when should I use it?What is RUDDER and when should I use it?
What is RUDDER and when should I use it?RUDDER
 
Fosdem - Configurations do you prove yours?
Fosdem - Configurations  do you prove yours?Fosdem - Configurations  do you prove yours?
Fosdem - Configurations do you prove yours?RUDDER
 
L'audit en continu : clé de la conformité démontrable (#POSS 2018)
L'audit en continu : clé de la conformité démontrable (#POSS 2018)L'audit en continu : clé de la conformité démontrable (#POSS 2018)
L'audit en continu : clé de la conformité démontrable (#POSS 2018)RUDDER
 
Fiabilité et conformité continues en production avec Rudder (#BBOOST 2018)
Fiabilité et conformité continues en production avec Rudder (#BBOOST 2018)Fiabilité et conformité continues en production avec Rudder (#BBOOST 2018)
Fiabilité et conformité continues en production avec Rudder (#BBOOST 2018)RUDDER
 
Stay up - voyage d'un éditeur de logiciels libres
Stay up - voyage d'un éditeur de logiciels libresStay up - voyage d'un éditeur de logiciels libres
Stay up - voyage d'un éditeur de logiciels libresRUDDER
 
How we scaled Rudder to 10k, and the road to 50k
How we scaled Rudder to 10k, and the road to 50kHow we scaled Rudder to 10k, and the road to 50k
How we scaled Rudder to 10k, and the road to 50kRUDDER
 
What's new and what's next in Rudder
What's new and what's next in RudderWhat's new and what's next in Rudder
What's new and what's next in RudderRUDDER
 
Poss 2017 : gestion des configurations et mise en conformité chez un service ...
Poss 2017 : gestion des configurations et mise en conformité chez un service ...Poss 2017 : gestion des configurations et mise en conformité chez un service ...
Poss 2017 : gestion des configurations et mise en conformité chez un service ...RUDDER
 
Poss 2017 - la continuité, arme secrète de la gestion du si - cas concret de ...
Poss 2017 - la continuité, arme secrète de la gestion du si - cas concret de ...Poss 2017 - la continuité, arme secrète de la gestion du si - cas concret de ...
Poss 2017 - la continuité, arme secrète de la gestion du si - cas concret de ...RUDDER
 
POSS 2017 : Comment automatiser son infrastructure quand... on a pas le temps...
POSS 2017 : Comment automatiser son infrastructure quand... on a pas le temps...POSS 2017 : Comment automatiser son infrastructure quand... on a pas le temps...
POSS 2017 : Comment automatiser son infrastructure quand... on a pas le temps...RUDDER
 
DevOps D-Day 2017 - Gestion des configurations et mise en conformité chez un ...
DevOps D-Day 2017 - Gestion des configurations et mise en conformité chez un ...DevOps D-Day 2017 - Gestion des configurations et mise en conformité chez un ...
DevOps D-Day 2017 - Gestion des configurations et mise en conformité chez un ...RUDDER
 
RUDDER - Continuous Configuration (configuration management + continuous aud...
 RUDDER - Continuous Configuration (configuration management + continuous aud... RUDDER - Continuous Configuration (configuration management + continuous aud...
RUDDER - Continuous Configuration (configuration management + continuous aud...RUDDER
 

Mais de RUDDER (20)

What if configuration management didn't need to be lvl60 in dev?
What if configuration management didn't need to be lvl60 in dev?What if configuration management didn't need to be lvl60 in dev?
What if configuration management didn't need to be lvl60 in dev?
 
Servers compliance: audit, remediation, proof
Servers compliance: audit, remediation, proofServers compliance: audit, remediation, proof
Servers compliance: audit, remediation, proof
 
OSIS 2019 - Qu’apporte l’observabilité à la gestion de configuration ?
OSIS 2019 - Qu’apporte l’observabilité à la gestion de configuration ?OSIS 2019 - Qu’apporte l’observabilité à la gestion de configuration ?
OSIS 2019 - Qu’apporte l’observabilité à la gestion de configuration ?
 
OW2Con - Configurations, do you prove yours?
OW2Con - Configurations, do you prove yours?OW2Con - Configurations, do you prove yours?
OW2Con - Configurations, do you prove yours?
 
The new plugin ecosystem in RUDDER 5.0
The new plugin ecosystem in RUDDER 5.0The new plugin ecosystem in RUDDER 5.0
The new plugin ecosystem in RUDDER 5.0
 
What uses for observing operations of Configuration Management?
What uses for observing operations of Configuration Management?What uses for observing operations of Configuration Management?
What uses for observing operations of Configuration Management?
 
UX challenges of a UI-centric config management tool
UX challenges of a UI-centric config management toolUX challenges of a UI-centric config management tool
UX challenges of a UI-centric config management tool
 
What happened in RUDDER in 2018 and what’s next?
What happened in RUDDER in 2018 and what’s next?What happened in RUDDER in 2018 and what’s next?
What happened in RUDDER in 2018 and what’s next?
 
What is RUDDER and when should I use it?
What is RUDDER and when should I use it?What is RUDDER and when should I use it?
What is RUDDER and when should I use it?
 
Fosdem - Configurations do you prove yours?
Fosdem - Configurations  do you prove yours?Fosdem - Configurations  do you prove yours?
Fosdem - Configurations do you prove yours?
 
L'audit en continu : clé de la conformité démontrable (#POSS 2018)
L'audit en continu : clé de la conformité démontrable (#POSS 2018)L'audit en continu : clé de la conformité démontrable (#POSS 2018)
L'audit en continu : clé de la conformité démontrable (#POSS 2018)
 
Fiabilité et conformité continues en production avec Rudder (#BBOOST 2018)
Fiabilité et conformité continues en production avec Rudder (#BBOOST 2018)Fiabilité et conformité continues en production avec Rudder (#BBOOST 2018)
Fiabilité et conformité continues en production avec Rudder (#BBOOST 2018)
 
Stay up - voyage d'un éditeur de logiciels libres
Stay up - voyage d'un éditeur de logiciels libresStay up - voyage d'un éditeur de logiciels libres
Stay up - voyage d'un éditeur de logiciels libres
 
How we scaled Rudder to 10k, and the road to 50k
How we scaled Rudder to 10k, and the road to 50kHow we scaled Rudder to 10k, and the road to 50k
How we scaled Rudder to 10k, and the road to 50k
 
What's new and what's next in Rudder
What's new and what's next in RudderWhat's new and what's next in Rudder
What's new and what's next in Rudder
 
Poss 2017 : gestion des configurations et mise en conformité chez un service ...
Poss 2017 : gestion des configurations et mise en conformité chez un service ...Poss 2017 : gestion des configurations et mise en conformité chez un service ...
Poss 2017 : gestion des configurations et mise en conformité chez un service ...
 
Poss 2017 - la continuité, arme secrète de la gestion du si - cas concret de ...
Poss 2017 - la continuité, arme secrète de la gestion du si - cas concret de ...Poss 2017 - la continuité, arme secrète de la gestion du si - cas concret de ...
Poss 2017 - la continuité, arme secrète de la gestion du si - cas concret de ...
 
POSS 2017 : Comment automatiser son infrastructure quand... on a pas le temps...
POSS 2017 : Comment automatiser son infrastructure quand... on a pas le temps...POSS 2017 : Comment automatiser son infrastructure quand... on a pas le temps...
POSS 2017 : Comment automatiser son infrastructure quand... on a pas le temps...
 
DevOps D-Day 2017 - Gestion des configurations et mise en conformité chez un ...
DevOps D-Day 2017 - Gestion des configurations et mise en conformité chez un ...DevOps D-Day 2017 - Gestion des configurations et mise en conformité chez un ...
DevOps D-Day 2017 - Gestion des configurations et mise en conformité chez un ...
 
RUDDER - Continuous Configuration (configuration management + continuous aud...
 RUDDER - Continuous Configuration (configuration management + continuous aud... RUDDER - Continuous Configuration (configuration management + continuous aud...
RUDDER - Continuous Configuration (configuration management + continuous aud...
 

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

  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Normation – CC-BY-SA normation.com 14 Nous sommes en 2009 Scala à cette époque lointaine :
  • 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. 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. 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. Normation – CC-BY-SA normation.com 18 Nous sommes en 2009... q Frameworks :
  • 18. Normation – CC-BY-SA normation.com 19 Nous sommes en 2009... Pas de PSUG !!!! ;
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Normation – CC-BY-SA normation.com 33 Classe « entité », mode 2009
  • 33. Normation – CC-BY-SA normation.com 34 Classe « entitée », mode 2013
  • 35. Normation – CC-BY-SA normation.com 36 Algo, mode 2013 Type de retour : soit un résultat, soit une erreur (Box) …. ….
  • 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. 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. 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