Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
10 ans d’usine logicielle
Du petit garage à l’industrialisation
#TNT19
Qui suis-Je ?
Architecte logiciel
Développeur Java
Geek
Agilité & Scrum
@HM depuis 11 ans
www.linkedin.com/in/philippartSt...
Disclaimer
Du vrai “c’était mieux avant” (ou pas )
Du vrai troll
Du vrai “ah ouais on faisait ça aussi avant”
Harmonie Mutuelle en bref
Quelques chiffres
35000entreprises clientes
agences en France
300+4,5Mde personnes protégées
520000ayants droit (RSI)
5000...
Big Bang
2008 ⇒ 2010
L’organisation
3 personnes (1 manager)
Rôles :
● Support aux
développements Java
● Administration de WLS,
DTS et BO
● Mise...
Support aux devs
● Problèmes de configuration de
postes : maven, éclipse (BEA
Workshop), Weblogic, …
● Problèmes de dévelo...
Support à l’installation du poste de développement
Administration
● Dev to prod : la
production est un vrai
métier !
● Dans le doute reboot :
on ne s’invente pas
administrat...
● Principalement sur le
développement (très peu
sur la conception &
l’architecture)
● Articles dans un Wiki
(mediawiki)
● ...
Librairies Transverses
● Faciliter l’application
des normes
● Début de factorisation
de code dans des
librairies maison
● ...
Les technos et
outils utilisés
C’était hype à l’époque !
(enfin presque :))
Maven
JEE 5
JSF
EJB 3.0
Eclipse / BEA Workshop...
● Gestionnaire de
dépendance et de
packaging
● Eviter de devoir gérer
le classpath de
compilation dans chaque
IDE
● Intégr...
● EAR … ouch
● La promesse (ou les
mensonges) de JSF
● Tomahawk
● Stuck Threads
JEE5, JSF, EJB … dans Weblogic
● Bataille de clochers
● Erreurs à ne pas
reproduire
● Maven au secours !!
● Ne plus dépendre de
l’IDE
Eclipse vs Netbeans...
Etabli SVN
Shared Lib
WLST (jpython)
Revues de code manuelle
Moultes procédures et
normes
● Subversion
● Gestion des droits
● Tortoise SVN
● Sauvegarde avant tout
● Début de la culture du
commit
● Centralisation ...
● N’avoir qu’un jeu de
lib externes
● Déploiement et
administration
« automatiques »
Shared Lib & WLST
● Pas d’outils
● Beaucoup de doc
● Beaucoup d’énergie
● Beaucoup de frustration
Revue de code et procédures
De l’Atelier de
quartier vers
l’usine
2010 ⇒ 2014
Débuts de l’industrialisation
JEE forever ● JEE6
● PrimeFaces & jQuery
Outillage
Chez Casto il y a tout ce
qu’il faut !
● Une vraie équipe
d'exploitation
● Jenkins
● Sonar
● Nexus
● Maven avancé
● Enfin une vraie
exploitation
● Recentrés sur les
environnements de
développement
La production ce n’est pas pour les rig...
● Ah enfin un peu
d’automatisation
● Rendre de l’autonomie
aux devs
● Outil central
● Le poste de
développement pour …
dév...
● Repository Maven
● Ne pas tout exposer
● Simplifier la
configuration
● Une mémoire de nos
applications
● Proxy vers l’ex...
● Fini les revues de code
(enfin presque)
● Profiles maison
● Toi aussi joue à la
qualité
● Principe de la fuite
d’eau
● R...
● Archetypes
● Pom entreprise
● Gestion avancée des
dépendances (base line)
● Centralisation de la
configuration des pom
●...
Vieux cons …
Gigafactory
2014 ⇒ de nos jours
Nouvelle
Organisation ● Architectes applicatifs
● Architectes logiciels
● CI / CD
● Remplacer SVN
● Equipes en France
● RSSI
● ADFS
● SaaS
● Pas de WebHook
● Pas de migration
● Administration light
Git & ...
Portail
Feature branches
Issues et Pull Request
Jenkins multi-branches
Jenkins 2
Sérieux du groovy ???
● Pipelines
● Shared lib
● Du vrai « as code »
● Factorisation
● Migration
Groovy … ou le syndrome de Murtaugh
● Ne plus utiliser
l’interface pour
paramétrer les jobs
● Shared Lib
● Projet Git (github)
● Factoriser / réutiliser
les é...
● Projet Groovy
● Hébergé sous GitHub
● Compatible feature
branches
● Définition d’un DSL
pour les Jenkinsfile
● Monolithe...
Pipeline – Projet / DSL
Pipeline – Jenkinsfile
Sonarqube
Fidèle au poste
● Passage à la 6.7 LTS
● Simplification
● Outch l’analyse multi-
branches
Dashboard
Drill down jusqu’à l’anomalie
artifactory
Un repo pour les gouverner
tous
● D’abord remplacer et
améliorer Nexus
● Avoir un référentiel
unique
● Se proj...
● Nexus 2 vieillissant
● Version Pro X (24/7 + XRay)
● Support efficace
AU revoir … Et merci Nexus
● Un seul outil pour
l’ensemble de nos
binaires
● Une seule façon de le
configurer
● Des logs unifiés
Un référentiel unique
Configuration d’un gestionnaire de dépendances
Browser de dépendances
● Architecture plus
robuste
● Docker
● Promotion
● Xray
● Ouverture vers de
nouveaux types de
repositories (CRAN,
Conan, …...
Deploy
Hack & Click vers le CD
● Développement maison
● Automatiser ce qui peut
l’être
● Faciliter les
déploiements
● Norm...
● On n’est jamais mieux servi
que par sois même 
● Existence de scripts perl
● PERL + Python
● Rundeck pour piloter les
s...
● Couplé à notre GCL : livraison
& déploiement automatique
● Chaque typologie de
déploiement est normalisée
● SQL, DTS, Ja...
Deploy en action
ELK
Log me tender …
● Du log et encore du log
● Premiers pas Docker
● Un seul endroit pour
tous les logs (JEE,
ESB, Boot, …)
● Kibana
● Docker
Log & Beauty
Coding ?
On veut coder !!!!
● Printemps
● Angulaire
● Grosse Donnée
● DTS & BO
● JEE trop rigide
● Emancipation des
développeurs
● Spring*
● Fat jar
● Ouverture vers les
micros services et
Docker
Sprin...
Spring*
2.X 4.X
Seeds & Frameworks
● Remplacer JSF / jQuery
● Avoir des applications
Web riches
● Emancipations des
développeurs
● Angular*
Angular … C’est c...
Seeds & Frameworks
C’est cool quand c’est simple 
Angular*
1.X 2.X, 4.x et 6.X
● DataHub & DataLab
● Projet agile (en vrai)
● Socle récent mais en
production
● PIC pour le Java
● Encore pleins de chose...
DataHub
JDBC, ODBC
Accès aux données Stockage
Ingestion Traitement fil de l’eau Traitement fil batch
Catalogue Gestion des...
dataLab
Accès aux données
Préparation du modèle
Analyse des données
Supervision
Au final c’est plutôt pas mal :)
Demain ?
Vers l’infini et
l’au delà
Portail, automatisation,
docker, devops,
ouverture des technos, …
● Simplifier l’utilisation des
socles de développement
● Automatiser un maximum
● Accéder à l’information
● Personnaliser ...
● Dev to recette
● Dev to production
● Builds sur changement
de code
● Qualimétrie et tests
sur pull request
Automatisation
● Simplifier la PIC elle-
même
● Simplifier le packaging
& déploiement des
applications
● Simplifier
l’utilisation de
nouv...
● Permettre aux équipes
d’avoir les outils
nécessaires
● Cohabitation legacy et
nouveaux projets
DevOps
● La techno la plus
adaptée au besoin ou au
développeur
● Dans un environnement
cadré et responsable
Ouverture des technos
Merci
à elles & à Eux
10ans d-usine-logicielle
10ans d-usine-logicielle
Vous avez terminé ce document.
Télécharger et lire hors ligne.
Prochain SlideShare
What to Upload to SlideShare
Suivant
Prochain SlideShare
What to Upload to SlideShare
Suivant
Télécharger pour lire hors ligne et voir en mode plein écran

10ans d-usine-logicielle

Télécharger pour lire hors ligne

Slides de ma conférence au Touraine.Tech 2019 qui retrace 10 ans de mise en place de socles de développements et de CI / CD au sein d'Harmonie Mutuelle.

Livres associés

Gratuit avec un essai de 30 jours de Scribd

Tout voir
  • Soyez le premier à aimer ceci

10ans d-usine-logicielle

  1. 1. 10 ans d’usine logicielle Du petit garage à l’industrialisation #TNT19
  2. 2. Qui suis-Je ? Architecte logiciel Développeur Java Geek Agilité & Scrum @HM depuis 11 ans www.linkedin.com/in/philippartStephane 1999 2004 2006 2008
  3. 3. Disclaimer Du vrai “c’était mieux avant” (ou pas ) Du vrai troll Du vrai “ah ouais on faisait ça aussi avant”
  4. 4. Harmonie Mutuelle en bref
  5. 5. Quelques chiffres 35000entreprises clientes agences en France 300+4,5Mde personnes protégées 520000ayants droit (RSI) 5000+ collaborateurs dont en IT 380
  6. 6. Big Bang 2008 ⇒ 2010
  7. 7. L’organisation 3 personnes (1 manager) Rôles : ● Support aux développements Java ● Administration de WLS, DTS et BO ● Mise en place de normes & bonnes pratiques ● Création de librairies transverses Petite équipe, petits moyens, petits ?????
  8. 8. Support aux devs ● Problèmes de configuration de postes : maven, éclipse (BEA Workshop), Weblogic, … ● Problèmes de développements : bugs avec les frameworks utilisés voir le code produit par les développeurs
  9. 9. Support à l’installation du poste de développement
  10. 10. Administration ● Dev to prod : la production est un vrai métier ! ● Dans le doute reboot : on ne s’invente pas administrateur de plateforme lorsque l’on est développeur L’ancêtre du DevOps :p
  11. 11. ● Principalement sur le développement (très peu sur la conception & l’architecture) ● Articles dans un Wiki (mediawiki) ● Revues de code manuelles Normes & Bonnes Pratiques
  12. 12. Librairies Transverses ● Faciliter l’application des normes ● Début de factorisation de code dans des librairies maison ● Maintenance des shared- lib Weblogic
  13. 13. Les technos et outils utilisés C’était hype à l’époque ! (enfin presque :)) Maven JEE 5 JSF EJB 3.0 Eclipse / BEA Workshop Weblogic
  14. 14. ● Gestionnaire de dépendance et de packaging ● Eviter de devoir gérer le classpath de compilation dans chaque IDE ● Intégration précaire dans Eclipse ● Première configuration centralisée (profils, proxy d’entreprise, …) Maven 2 (puis 3)
  15. 15. ● EAR … ouch ● La promesse (ou les mensonges) de JSF ● Tomahawk ● Stuck Threads JEE5, JSF, EJB … dans Weblogic
  16. 16. ● Bataille de clochers ● Erreurs à ne pas reproduire ● Maven au secours !! ● Ne plus dépendre de l’IDE Eclipse vs Netbeans (à la fin c’est Intellj qui gagne)
  17. 17. Etabli SVN Shared Lib WLST (jpython) Revues de code manuelle Moultes procédures et normes
  18. 18. ● Subversion ● Gestion des droits ● Tortoise SVN ● Sauvegarde avant tout ● Début de la culture du commit ● Centralisation et distribution Gestion des sources
  19. 19. ● N’avoir qu’un jeu de lib externes ● Déploiement et administration « automatiques » Shared Lib & WLST
  20. 20. ● Pas d’outils ● Beaucoup de doc ● Beaucoup d’énergie ● Beaucoup de frustration Revue de code et procédures
  21. 21. De l’Atelier de quartier vers l’usine 2010 ⇒ 2014
  22. 22. Débuts de l’industrialisation
  23. 23. JEE forever ● JEE6 ● PrimeFaces & jQuery
  24. 24. Outillage Chez Casto il y a tout ce qu’il faut ! ● Une vraie équipe d'exploitation ● Jenkins ● Sonar ● Nexus ● Maven avancé
  25. 25. ● Enfin une vraie exploitation ● Recentrés sur les environnements de développement La production ce n’est pas pour les rigolos
  26. 26. ● Ah enfin un peu d’automatisation ● Rendre de l’autonomie aux devs ● Outil central ● Le poste de développement pour … développer ● Beaucoup de jobs, beaucoup de maintenance ● Administration Jenkins … CI tu seras mienne
  27. 27. ● Repository Maven ● Ne pas tout exposer ● Simplifier la configuration ● Une mémoire de nos applications ● Proxy vers l’extérieur nexus
  28. 28. ● Fini les revues de code (enfin presque) ● Profiles maison ● Toi aussi joue à la qualité ● Principe de la fuite d’eau ● Rassure la production Sonar … Juste merci 
  29. 29. ● Archetypes ● Pom entreprise ● Gestion avancée des dépendances (base line) ● Centralisation de la configuration des pom ● Simplification des pom projets ● Très (trop) complexe à maintenir Maven avancé … FBI ?
  30. 30. Vieux cons …
  31. 31. Gigafactory 2014 ⇒ de nos jours
  32. 32. Nouvelle Organisation ● Architectes applicatifs ● Architectes logiciels ● CI / CD
  33. 33. ● Remplacer SVN ● Equipes en France ● RSSI ● ADFS ● SaaS ● Pas de WebHook ● Pas de migration ● Administration light Git & GitHub
  34. 34. Portail
  35. 35. Feature branches
  36. 36. Issues et Pull Request
  37. 37. Jenkins multi-branches
  38. 38. Jenkins 2 Sérieux du groovy ??? ● Pipelines ● Shared lib ● Du vrai « as code » ● Factorisation ● Migration
  39. 39. Groovy … ou le syndrome de Murtaugh
  40. 40. ● Ne plus utiliser l’interface pour paramétrer les jobs ● Shared Lib ● Projet Git (github) ● Factoriser / réutiliser les étapes de build ● Avoir une finesse des étapes de jobs ● Parallélisation Pipelines Clone Build Package Upload Deploy Test Quality
  41. 41. ● Projet Groovy ● Hébergé sous GitHub ● Compatible feature branches ● Définition d’un DSL pour les Jenkinsfile ● Monolithe ● Un peu figé ● Mode de développement un peu lourd ● Tests unitaires complexes Pipelines – Shared Lib
  42. 42. Pipeline – Projet / DSL
  43. 43. Pipeline – Jenkinsfile
  44. 44. Sonarqube Fidèle au poste ● Passage à la 6.7 LTS ● Simplification ● Outch l’analyse multi- branches
  45. 45. Dashboard
  46. 46. Drill down jusqu’à l’anomalie
  47. 47. artifactory Un repo pour les gouverner tous ● D’abord remplacer et améliorer Nexus ● Avoir un référentiel unique ● Se projeter dans l’avenir
  48. 48. ● Nexus 2 vieillissant ● Version Pro X (24/7 + XRay) ● Support efficace AU revoir … Et merci Nexus
  49. 49. ● Un seul outil pour l’ensemble de nos binaires ● Une seule façon de le configurer ● Des logs unifiés Un référentiel unique
  50. 50. Configuration d’un gestionnaire de dépendances
  51. 51. Browser de dépendances
  52. 52. ● Architecture plus robuste ● Docker ● Promotion ● Xray ● Ouverture vers de nouveaux types de repositories (CRAN, Conan, …) L’avenir
  53. 53. Deploy Hack & Click vers le CD ● Développement maison ● Automatiser ce qui peut l’être ● Faciliter les déploiements ● Normaliser les déploiements
  54. 54. ● On n’est jamais mieux servi que par sois même  ● Existence de scripts perl ● PERL + Python ● Rundeck pour piloter les scripts Développement maison
  55. 55. ● Couplé à notre GCL : livraison & déploiement automatique ● Chaque typologie de déploiement est normalisée ● SQL, DTS, Java, Angular ● Vision de l’état du déploiement de chaque composants Faciliter & Normaliser les déploiements
  56. 56. Deploy en action
  57. 57. ELK Log me tender … ● Du log et encore du log ● Premiers pas Docker
  58. 58. ● Un seul endroit pour tous les logs (JEE, ESB, Boot, …) ● Kibana ● Docker Log & Beauty
  59. 59. Coding ? On veut coder !!!! ● Printemps ● Angulaire ● Grosse Donnée ● DTS & BO
  60. 60. ● JEE trop rigide ● Emancipation des développeurs ● Spring* ● Fat jar ● Ouverture vers les micros services et Docker Spring … on respire </ >
  61. 61. Spring* 2.X 4.X
  62. 62. Seeds & Frameworks
  63. 63. ● Remplacer JSF / jQuery ● Avoir des applications Web riches ● Emancipations des développeurs ● Angular* Angular … C’est cool, euh vraiment ?
  64. 64. Seeds & Frameworks
  65. 65. C’est cool quand c’est simple 
  66. 66. Angular* 1.X 2.X, 4.x et 6.X
  67. 67. ● DataHub & DataLab ● Projet agile (en vrai) ● Socle récent mais en production ● PIC pour le Java ● Encore pleins de choses à construire Big Data … Nouveau Monde
  68. 68. DataHub JDBC, ODBC Accès aux données Stockage Ingestion Traitement fil de l’eau Traitement fil batch Catalogue Gestion des flux de données Automator Installation, Administration et supervision Sécurité Intégration à l’infrastructure
  69. 69. dataLab Accès aux données Préparation du modèle Analyse des données Supervision
  70. 70. Au final c’est plutôt pas mal :)
  71. 71. Demain ?
  72. 72. Vers l’infini et l’au delà Portail, automatisation, docker, devops, ouverture des technos, …
  73. 73. ● Simplifier l’utilisation des socles de développement ● Automatiser un maximum ● Accéder à l’information ● Personnaliser à l’entreprise ● Offre « as a service » de l’usine logicielle ● Simplification des composants des pipelines Portail & Services
  74. 74. ● Dev to recette ● Dev to production ● Builds sur changement de code ● Qualimétrie et tests sur pull request Automatisation
  75. 75. ● Simplifier la PIC elle- même ● Simplifier le packaging & déploiement des applications ● Simplifier l’utilisation de nouvelles technos ● Rationnaliser les machines ● Unifier les déploiements, l’administration et la supervision Docker
  76. 76. ● Permettre aux équipes d’avoir les outils nécessaires ● Cohabitation legacy et nouveaux projets DevOps
  77. 77. ● La techno la plus adaptée au besoin ou au développeur ● Dans un environnement cadré et responsable Ouverture des technos
  78. 78. Merci à elles & à Eux

Slides de ma conférence au Touraine.Tech 2019 qui retrace 10 ans de mise en place de socles de développements et de CI / CD au sein d'Harmonie Mutuelle.

Vues

Nombre de vues

190

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

0

Actions

Téléchargements

9

Partages

0

Commentaires

0

Mentions J'aime

0

×