SlideShare ist ein Scribd-Unternehmen logo
1 von 38
Suivi d’activité avec Neo4j
• François Ritaly
• Build Engineer (Build Engineering Team)
• Situé à Paris
• Responsabilités
‒ Développement de plugins Gradle réutilisables
‒ Administration d’Artifactory
‒ Développement d’outils sur mesure
‒ Support aux équipes de développment (builds principalement)
‒ Sentinel (Le sujet de cette présentation)
Qui suis-je ?
Workday Confidential
La mission de mon équipe
• Définir les bonnes pratiques pour les
équipes de développement (dependency
locking, promotion d’artefacts, gestion des
meta-données)
• Fournir des outils génériques (Plugins
Gradle & autres outils sur mesure)
• Administrer les services communs
(Artifactory)
• Assister les équipes de développment
Build Engineering – Notre mission
Workday Confidential
• S’assurer que les règles sont bien suivies
• Chez Workday, les ingénieurs ont beaucoup de
liberté !
‒ Netflix: The Paved Road
• Les outils proposés sont-ils pertinents ?
• Comprendre comment les équipes de
développement travaillent
 On a besoin de réponses a ces questions !
Why We Need Monitoring
Workday Confidential
• Artefacts (Jars, Rpms, “Deliveries”, etc)
• CI Builds (Bamboo, Team City &Jenkins)
• SCM changes (BitBucket, GitHub, Gerritt, etc)
• Dépendences (entre Artifacts, Builds, etc)
• Tickets JIRA (suivi du code)
• Promotions (d’artefacts)
• Meta-données en général
Ce qui nous intéresse…
Workday Confidential
• Pas de source de vérité unique avec toute l’information nécessaire !
• La donnée est disséminée à travers plusieurs systèmes (AF, CI,
JIRA…)
• … est securisée avec des comptes différents (AD, LDAP)
• … est stockée sous différents formats (JSON, XML, CSV, etc)
• … n’est pas toujours facilement accessible
• Accéder à une source est (habituellement) facile
• Accéder à deux sources est déjà plus compliqué
• Pas de language de requête pour requêter la donnée aggregée
Problème: La donnée est partout !!
Workday Confidential
Les besoins
• Accès simple à l’information
• Modèle de données intuitif et unifié
• Language de requête puissant
• Donnée aussi fraîche que possible
 Fréquentes mises à jour
 Mises à jour rapides (performance)
• Capacité de facilement faire évoluer le modèle de données
• Capacité d’exposer l’information aux équipes de développement
(automatisation)
Les besoins
Workday Confidential
• Ne pas compter sur l’utilisateur pour fournir l’information (ou alors
en tout dernier recours) !
• L’information que nous recherchons habituellement existe déjà
ou alors peut-être dérivée, utilisons-la !
Mais surtout !
Workday Confidential
Sentinel – Architecture
Architecture
Workday Confidential
REST API
Web UI
Data
Miner
…
JIRA
Artifactory
Bamboo
BitBucket
Data SourcesUne fondation pour résoudre nos problèmes actuels et futurs
Neo4j
Aggregation
Sanitization
Normalization
• Outil en ligne de commande (écrit en Groovy)
• Fat jar exécutable
• S’exécute toutes les 15 mins depuis Bamboo
• Scanne les data sources contenant l’information utile
• Extrait, nettoie et normalise de manière préemptive l’information
• Détecte les mises à jour de manière incrémentale (performance)
• Crash-proof
• Enchaînement de 59 commandes en séquence
• Un scan dure entre 8 mins et 23 mins
L’extracteur de données
Workday Confidential
• Base de données NoSQL de type graph
• Paradigme adapté à notre problème
• Trés flexible et facile d’utilisation
• Schema-less
• Excellente performance
• Donnée stockée à un seul endroit
• Cypher (Language de requête) !
La base de données: Neo4j
Workday Confidential
• UI consistée de tableaux de bords HTML et graphiques dynamiques
• API REST
• Spring Boot, Thymeleaf, D3.js, Swagger
Les Services
Workday Confidential
Neo4j in a Nutshell
• Les noeuds ont des propriétés (comparable à une Map<String, ?>)
• … peuvent avoir 0-N labels (Typage, Polymorphisme)
Neo4j - Noeuds
Workday Confidential
core
1.0.5 jar
Artifact ArtifactoryFile Workday id com.workday:core
group com.workday
artifact core
version 1.0.5
created 1458713182201
• Les relations représentent un lien entre 2 noeuds
• … ont un nom
• … peuvent être dirigées
• … peuvent avoir des propriétés
Neo4j - Relations
Workday Confidential
Artifact
core
1.0.5 jar
Git Commit
core
5ce1f767
HAS_COMMIT
Language de requête de Neo4j
Un noeud ()
Un noeud avec un label (:Person)
Une relation entre 2 noeuds ()--()
Une relation dirigée avec un label ()-[:PARENT_OF]->()
MATCH (parent:Person)-[:PARENT_OF]->(child:Person)
RETURN parent.name, COLLECT(child.name)
Neo4j - Cypher
Workday Confidential
Extraction de la donnée
Tout démarre avec Artifactory
Workday Confidential
• Dépôt officiel des artefacts, rpms, images Docker
• L’API REST permet de détecter les nouveaux artefacts
Etape 1: Artefacts
Workday Confidential
• URI: com/workday/core/1.0.5/core-1.0.5-javadoc.jar
 Group com.workday
 Module core
 Version 1.0.5
 Type jar
 Classifier javadoc
 ID: “com.workday:core:1.0.5:javadoc@jar”
Artifact
core 1.0.5 jar
javadoc
Etape 2: Module Versions
Workday Confidential
• L’artefact est associé à une “Module Version”
 Group com.workday
 Module core
 Version 1.0.5
 ID: “com.workday:core:1.0.5”
ModuleVersion
core 1.0.5
Etape 3: Modules
Workday Confidential
• La module version est associée à un “Module”
 Group com.workday
 Module core
 ID: “com.workday:core”
Module
core
Les 3 concepts ensembles
Workday Confidential
Module
coreArtifact
jar
Artifact
javadoc
jar
Artifact
sources
jar
ARTIFACT_OF
Artifact
jar
Artifact
javadoc
jar
Artifact
sources
jar
ARTIFACT_OF
Version
1.0.5
Version
1.0.7
VERSION_OF VERSION_OF
Version
1.0.6
Etape 4: Résolution des dépendences
Workday Confidential
• Descripteurs Maven / Ivy  Dépendences
• Dépendences  Relations DEPENDS_ON
services
2.0.0
DEPENDS_ON
gson
2.2.2
core
1.0.5
DEPENDS_ON
Etape 5: Extraction des méta-données
Workday Confidential
• Alimentées au moment du build (plugin Gradle propriétaire)
• Capturent l’information suivante:
‒ Gradle, JDK, Machine de build
‒ Builds (Bamboo, Jenkins…)
‒ SCM changes (Git commit)
• Auto-documente les artefacts
Manifest Metadata – SCM Info
Workday Confidential
• WD-Git-Origin ssh://git@bitbucket.acme.com/core/core.git
• WD-Git-Commit e28a60b96f452680c57cb76798def09fd171011f
Artifact
core
1.0.5 jar
Git Commit
core
e28a60…
HAS_COMMIT
Exemples concrets
Liste de tous les artefacts Workday
Workday Confidential
Group Module Latest
Version
Age
(days)
SCM url SCM
change
Build
URL
Latest
JIRAs
com.workday core 1.0.5 120.2 core.git e28a60b9 URL CORE-120
com.workday foo-services 1.3.0 29.1 foo-services.git 146ae135 URL FOO-57
com.workday bar-services 2.2.8 54.8 bar-services.git b538c156 URL BAR-70
… … … … … … … …
Page web accessible avec toutes les dernières versions (donnée toujours à jour)
→ Où se trouve le build associé à ce fichier jar ?
→ Où sont les sources de ce fichier jar ?
Identification des dépendences 1/x (directes)
Workday Confidential
MATCH (dependent:ModuleVersion)-[:DEPENDS_ON]->(dependency:ModuleVersion)
WHERE dependency.id = "com.workday:core:1.0.5”
RETURN dependent.id AS dependent
 Service REST disponible
Dependent
com.workday:foo-
services:1.3.0
com.workday:foo-
services:1.2.5
com.workday:bar-
services:2.2.8
com.workday:bar-
services:2.2.7
…
Orchestration de builds
Workday Confidential
Producing build Consuming build
Bamboo Build
CORE
BUILT
Artifact
core 1.0.5
jar
ModuleVersion
core 1.0.5
ARTIFACT_OF
ModuleVersion
foo-services 1.3.0
ARTIFACT_OF
Bamboo Build
FOO-SERVICES
Artifact
foo-services 1.3.0
jar
BUILT
DEPENDS_ON
DEPENDS_ON
Release notes automatisées
Workday Confidential
Version 1 Version 2
Bamboo Build
CORE #11
BUILT
Artifact
core v1
jar
Git Commit
core
5ce1f767
HAS_REVISION
Git Commit
core
ee2a0e22
HAS_REVISION
Bamboo Build
CORE #12
Artifact
core v2
Jar
BUILT
PARENT_REVISION
JIRA Issue
CORE-120
LINKS_TO
Identifier les changements associés à un JIRA
Workday Confidential
Trouver toutes les mentions d’un JIRA dans les
commentaires de commit
Input: JIRA issue
Output: Set of SCM changes
JIRA Issue
CORE-120
Git Commit
core
5ce1f767
Git Commit
core
5954ff88
Git Commit
core
ee2a0e22
Règle: “Aucune dépendence dynamique permise”
Raison: Les builds doivent être reproductibles
Dynamic versions: 1.+, LATEST, [1.0, 2.0[
Détection des violations de règles
Workday Confidential
Page HTML listant toutes les infractions à la règle
ModuleVersion
baz 4.2.10
ModuleVersion
pmd-checks
1.+
DEPENDS_ON
Conclusion
Workday Confidential
• Service mis en production
• Neo4j est l’outil parfait pour capturer la donnée qui nous intéresse
‒ Très facile de refactorer / enrichir la donnée
• Cypher nous permet de comprendre la donnée aggregée
• Fondation solide pour de futurs services
‒ Partie difficile: Extraire la donnée
‒ Partie facile: Créer de nouvelles requêtes sur la donnée existante
• Decisions basées sur des faits ! Plus de suppositions
• Approche holistique
Q & A
Thanks for attending
Workday Confidential
TM

Weitere ähnliche Inhalte

Was ist angesagt?

Explorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelinExplorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelinBruno Bonnin
 
Delta lake - des data lake fiables a grande échelle
Delta lake - des data lake fiables a grande échelleDelta lake - des data lake fiables a grande échelle
Delta lake - des data lake fiables a grande échellefrançois de Buttet
 
DataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudDataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudVictor Coustenoble
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteMicrosoft
 
Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Microsoft Décideurs IT
 
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...AZUG FR
 
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data LakeGUSS
 
SQL Saturday Paris 2015 - Polybase
SQL Saturday Paris 2015 - PolybaseSQL Saturday Paris 2015 - Polybase
SQL Saturday Paris 2015 - PolybaseRomain Casteres
 
Modélisation de données pour MongoDB
Modélisation de données pour MongoDBModélisation de données pour MongoDB
Modélisation de données pour MongoDBMongoDB
 
Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?Victor Coustenoble
 
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)Jean-Pierre Riehl
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingLilia Sfaxi
 
June Spark meetup : search as recommandation
June Spark meetup : search as recommandationJune Spark meetup : search as recommandation
June Spark meetup : search as recommandationModern Data Stack France
 
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...GUSS
 
Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...Mathias Kluba
 
DataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoTDataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoTVictor Coustenoble
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysVictor Coustenoble
 
Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6MongoDB
 
Azure Stream analytics / Event Hub
Azure Stream analytics / Event HubAzure Stream analytics / Event Hub
Azure Stream analytics / Event HubMichel HUBERT
 

Was ist angesagt? (20)

Explorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelinExplorez vos données avec apache zeppelin
Explorez vos données avec apache zeppelin
 
Spark tools by Jonathan Winandy
Spark tools by Jonathan WinandySpark tools by Jonathan Winandy
Spark tools by Jonathan Winandy
 
Delta lake - des data lake fiables a grande échelle
Delta lake - des data lake fiables a grande échelleDelta lake - des data lake fiables a grande échelle
Delta lake - des data lake fiables a grande échelle
 
DataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le CloudDataStax Enterprise - La plateforme de base de données pour le Cloud
DataStax Enterprise - La plateforme de base de données pour le Cloud
 
Azure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides KeynoteAzure Camp 9 Décembre 2014 - slides Keynote
Azure Camp 9 Décembre 2014 - slides Keynote
 
Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"Rendez vos objets connectés intelligents avec la "Lambda architecture"
Rendez vos objets connectés intelligents avec la "Lambda architecture"
 
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
GAB 2017 PARIS - Azure Data Lake La Big Data 2.0 par Jean-Pierre Riehl et Fab...
 
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
[JSS2015] Azure SQL Data Warehouse - Azure Data Lake
 
SQL Saturday Paris 2015 - Polybase
SQL Saturday Paris 2015 - PolybaseSQL Saturday Paris 2015 - Polybase
SQL Saturday Paris 2015 - Polybase
 
Modélisation de données pour MongoDB
Modélisation de données pour MongoDBModélisation de données pour MongoDB
Modélisation de données pour MongoDB
 
Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?Quelles stratégies de Recherche avec Cassandra ?
Quelles stratégies de Recherche avec Cassandra ?
 
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
Azure Data Lake, le big data 2.0 (Global Azure Bootcamp Paris 2017)
 
BigData_Chp3: Data Processing
BigData_Chp3: Data ProcessingBigData_Chp3: Data Processing
BigData_Chp3: Data Processing
 
June Spark meetup : search as recommandation
June Spark meetup : search as recommandationJune Spark meetup : search as recommandation
June Spark meetup : search as recommandation
 
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...
SQLSaturday Paris 2014 - Ce que tout DBA doit savoir sur la configuration et ...
 
Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...Analytics et Big Data, une histoire de cubes...
Analytics et Big Data, une histoire de cubes...
 
DataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoTDataStax et Apache Cassandra pour la gestion des flux IoT
DataStax et Apache Cassandra pour la gestion des flux IoT
 
DataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft TechdaysDataStax et Cassandra dans Azure au Microsoft Techdays
DataStax et Cassandra dans Azure au Microsoft Techdays
 
Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6Les nouveautés de MongoDB 3.6
Les nouveautés de MongoDB 3.6
 
Azure Stream analytics / Event Hub
Azure Stream analytics / Event HubAzure Stream analytics / Event Hub
Azure Stream analytics / Event Hub
 

Ähnlich wie GraphTour - Workday: Tracking activity with Neo4j (French version)

Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Laurent Guérin
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Laurent Guérin
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 telosys
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimLaurent Broudoux
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
Elasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésElasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésMathieu Elie
 
Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Alexandre Morgaut
 
Poitou charentes JUG - Elasticsearch
Poitou charentes JUG - ElasticsearchPoitou charentes JUG - Elasticsearch
Poitou charentes JUG - ElasticsearchDavid Pilato
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudTugdual Grall
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreStéphane Traumat
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicEmmanuel Hugonnet
 
I don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piI don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piadelegue
 
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)hibnico
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Microsoft
 
Les micro orm, alternatives à entity framework
Les micro orm, alternatives à entity frameworkLes micro orm, alternatives à entity framework
Les micro orm, alternatives à entity frameworkMSDEVMTL
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - ElasticsearchDavid Pilato
 
What's Next Replay! Lyon 2011 - A. Cogoluegnes
What's Next Replay! Lyon 2011 - A. CogoluegnesWhat's Next Replay! Lyon 2011 - A. Cogoluegnes
What's Next Replay! Lyon 2011 - A. CogoluegnesZenika
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataLudovic Piot
 

Ähnlich wie GraphTour - Workday: Tracking activity with Neo4j (French version) (20)

Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 
Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2Telosys tools jug-nantes-2014-v1.2
Telosys tools jug-nantes-2014-v1.2
 
JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014 JUG Nantes - Telosys Tools - Avril 2014
JUG Nantes - Telosys Tools - Avril 2014
 
Rex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - EnsimRex Software Factories 20140117 - Ensim
Rex Software Factories 20140117 - Ensim
 
Usine Logicielle 2013
Usine Logicielle 2013Usine Logicielle 2013
Usine Logicielle 2013
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
Elasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautésElasticsearch 5.0 les nouveautés
Elasticsearch 5.0 les nouveautés
 
Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012Carnet de Route du Développeur - ENSIMAG 2012
Carnet de Route du Développeur - ENSIMAG 2012
 
Poitou charentes JUG - Elasticsearch
Poitou charentes JUG - ElasticsearchPoitou charentes JUG - Elasticsearch
Poitou charentes JUG - Elasticsearch
 
Devoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le CloudDevoxx: Tribulation d'un développeur sur le Cloud
Devoxx: Tribulation d'un développeur sur le Cloud
 
Scub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libreScub Foundation, usine logicielle Java libre
Scub Foundation, usine logicielle Java libre
 
At2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville PublicAt2008 Grenoble Hugonnet Sanlaville Public
At2008 Grenoble Hugonnet Sanlaville Public
 
Présentation PFE: SmartAudit
Présentation PFE: SmartAuditPrésentation PFE: SmartAudit
Présentation PFE: SmartAudit
 
I don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry piI don't always write reactive application but when I do, it run on raspberry pi
I don't always write reactive application but when I do, it run on raspberry pi
 
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
Maven/Ivy vs OSGi (Toulouse Jug 26-05-2011)
 
Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1Au cœur du Framework .NET 4.5.1
Au cœur du Framework .NET 4.5.1
 
Les micro orm, alternatives à entity framework
Les micro orm, alternatives à entity frameworkLes micro orm, alternatives à entity framework
Les micro orm, alternatives à entity framework
 
Lyon JUG - Elasticsearch
Lyon JUG - ElasticsearchLyon JUG - Elasticsearch
Lyon JUG - Elasticsearch
 
What's Next Replay! Lyon 2011 - A. Cogoluegnes
What's Next Replay! Lyon 2011 - A. CogoluegnesWhat's Next Replay! Lyon 2011 - A. Cogoluegnes
What's Next Replay! Lyon 2011 - A. Cogoluegnes
 
Oxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigDataOxalide MorningTech #1 - BigData
Oxalide MorningTech #1 - BigData
 

Mehr von Neo4j

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansQIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansNeo4j
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...Neo4j
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosNeo4j
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Neo4j
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jNeo4j
 
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j
 
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfRabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Neo4j
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeNeo4j
 
Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j
 
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j
 
Enabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsEnabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsNeo4j
 
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j
 
Neo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j
 

Mehr von Neo4j (20)

Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and BioinformaticiansQIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
QIAGEN: Biomedical Knowledge Graphs for Data Scientists and Bioinformaticians
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
ISDEFE - GraphSummit Madrid - ARETA: Aviation Real-Time Emissions Token Accre...
 
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafosBBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
BBVA - GraphSummit Madrid - Caso de éxito en BBVA: Optimizando con grafos
 
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
Graph Everywhere - Josep Taruella - Por qué Graph Data Science en tus modelos...
 
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4jGraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
GraphSummit Madrid - Product Vision and Roadmap - Luis Salvador Neo4j
 
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdfNeo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
Neo4j_Exploring the Impact of Graph Technology on Financial Services.pdf
 
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdfRabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
Rabobank_Exploring the Impact of Graph Technology on Financial Services.pdf
 
Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!Webinar - IA generativa e grafi Neo4j: RAG time!
Webinar - IA generativa e grafi Neo4j: RAG time!
 
IA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG timeIA Generativa y Grafos de Neo4j: RAG time
IA Generativa y Grafos de Neo4j: RAG time
 
Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)Neo4j: Data Engineering for RAG (retrieval augmented generation)
Neo4j: Data Engineering for RAG (retrieval augmented generation)
 
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdfNeo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
Neo4j Graph Summit 2024 Workshop - EMEA - Breda_and_Munchen.pdf
 
Enabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge GraphsEnabling GenAI Breakthroughs with Knowledge Graphs
Enabling GenAI Breakthroughs with Knowledge Graphs
 
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdfNeo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
Neo4j_Anurag Tandon_Product Vision and Roadmap.Benelux.pptx.pdf
 
Neo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with GraphNeo4j Jesus Barrasa The Art of the Possible with Graph
Neo4j Jesus Barrasa The Art of the Possible with Graph
 

GraphTour - Workday: Tracking activity with Neo4j (French version)

  • 2. • François Ritaly • Build Engineer (Build Engineering Team) • Situé à Paris • Responsabilités ‒ Développement de plugins Gradle réutilisables ‒ Administration d’Artifactory ‒ Développement d’outils sur mesure ‒ Support aux équipes de développment (builds principalement) ‒ Sentinel (Le sujet de cette présentation) Qui suis-je ? Workday Confidential
  • 3. La mission de mon équipe
  • 4. • Définir les bonnes pratiques pour les équipes de développement (dependency locking, promotion d’artefacts, gestion des meta-données) • Fournir des outils génériques (Plugins Gradle & autres outils sur mesure) • Administrer les services communs (Artifactory) • Assister les équipes de développment Build Engineering – Notre mission Workday Confidential
  • 5. • S’assurer que les règles sont bien suivies • Chez Workday, les ingénieurs ont beaucoup de liberté ! ‒ Netflix: The Paved Road • Les outils proposés sont-ils pertinents ? • Comprendre comment les équipes de développement travaillent  On a besoin de réponses a ces questions ! Why We Need Monitoring Workday Confidential
  • 6. • Artefacts (Jars, Rpms, “Deliveries”, etc) • CI Builds (Bamboo, Team City &Jenkins) • SCM changes (BitBucket, GitHub, Gerritt, etc) • Dépendences (entre Artifacts, Builds, etc) • Tickets JIRA (suivi du code) • Promotions (d’artefacts) • Meta-données en général Ce qui nous intéresse… Workday Confidential
  • 7. • Pas de source de vérité unique avec toute l’information nécessaire ! • La donnée est disséminée à travers plusieurs systèmes (AF, CI, JIRA…) • … est securisée avec des comptes différents (AD, LDAP) • … est stockée sous différents formats (JSON, XML, CSV, etc) • … n’est pas toujours facilement accessible • Accéder à une source est (habituellement) facile • Accéder à deux sources est déjà plus compliqué • Pas de language de requête pour requêter la donnée aggregée Problème: La donnée est partout !! Workday Confidential
  • 9. • Accès simple à l’information • Modèle de données intuitif et unifié • Language de requête puissant • Donnée aussi fraîche que possible  Fréquentes mises à jour  Mises à jour rapides (performance) • Capacité de facilement faire évoluer le modèle de données • Capacité d’exposer l’information aux équipes de développement (automatisation) Les besoins Workday Confidential
  • 10. • Ne pas compter sur l’utilisateur pour fournir l’information (ou alors en tout dernier recours) ! • L’information que nous recherchons habituellement existe déjà ou alors peut-être dérivée, utilisons-la ! Mais surtout ! Workday Confidential
  • 12. Architecture Workday Confidential REST API Web UI Data Miner … JIRA Artifactory Bamboo BitBucket Data SourcesUne fondation pour résoudre nos problèmes actuels et futurs Neo4j Aggregation Sanitization Normalization
  • 13. • Outil en ligne de commande (écrit en Groovy) • Fat jar exécutable • S’exécute toutes les 15 mins depuis Bamboo • Scanne les data sources contenant l’information utile • Extrait, nettoie et normalise de manière préemptive l’information • Détecte les mises à jour de manière incrémentale (performance) • Crash-proof • Enchaînement de 59 commandes en séquence • Un scan dure entre 8 mins et 23 mins L’extracteur de données Workday Confidential
  • 14. • Base de données NoSQL de type graph • Paradigme adapté à notre problème • Trés flexible et facile d’utilisation • Schema-less • Excellente performance • Donnée stockée à un seul endroit • Cypher (Language de requête) ! La base de données: Neo4j Workday Confidential
  • 15. • UI consistée de tableaux de bords HTML et graphiques dynamiques • API REST • Spring Boot, Thymeleaf, D3.js, Swagger Les Services Workday Confidential
  • 16. Neo4j in a Nutshell
  • 17. • Les noeuds ont des propriétés (comparable à une Map<String, ?>) • … peuvent avoir 0-N labels (Typage, Polymorphisme) Neo4j - Noeuds Workday Confidential core 1.0.5 jar Artifact ArtifactoryFile Workday id com.workday:core group com.workday artifact core version 1.0.5 created 1458713182201
  • 18. • Les relations représentent un lien entre 2 noeuds • … ont un nom • … peuvent être dirigées • … peuvent avoir des propriétés Neo4j - Relations Workday Confidential Artifact core 1.0.5 jar Git Commit core 5ce1f767 HAS_COMMIT
  • 19. Language de requête de Neo4j Un noeud () Un noeud avec un label (:Person) Une relation entre 2 noeuds ()--() Une relation dirigée avec un label ()-[:PARENT_OF]->() MATCH (parent:Person)-[:PARENT_OF]->(child:Person) RETURN parent.name, COLLECT(child.name) Neo4j - Cypher Workday Confidential
  • 20. Extraction de la donnée
  • 21. Tout démarre avec Artifactory Workday Confidential • Dépôt officiel des artefacts, rpms, images Docker • L’API REST permet de détecter les nouveaux artefacts
  • 22. Etape 1: Artefacts Workday Confidential • URI: com/workday/core/1.0.5/core-1.0.5-javadoc.jar  Group com.workday  Module core  Version 1.0.5  Type jar  Classifier javadoc  ID: “com.workday:core:1.0.5:javadoc@jar” Artifact core 1.0.5 jar javadoc
  • 23. Etape 2: Module Versions Workday Confidential • L’artefact est associé à une “Module Version”  Group com.workday  Module core  Version 1.0.5  ID: “com.workday:core:1.0.5” ModuleVersion core 1.0.5
  • 24. Etape 3: Modules Workday Confidential • La module version est associée à un “Module”  Group com.workday  Module core  ID: “com.workday:core” Module core
  • 25. Les 3 concepts ensembles Workday Confidential Module coreArtifact jar Artifact javadoc jar Artifact sources jar ARTIFACT_OF Artifact jar Artifact javadoc jar Artifact sources jar ARTIFACT_OF Version 1.0.5 Version 1.0.7 VERSION_OF VERSION_OF Version 1.0.6
  • 26. Etape 4: Résolution des dépendences Workday Confidential • Descripteurs Maven / Ivy  Dépendences • Dépendences  Relations DEPENDS_ON services 2.0.0 DEPENDS_ON gson 2.2.2 core 1.0.5 DEPENDS_ON
  • 27. Etape 5: Extraction des méta-données Workday Confidential • Alimentées au moment du build (plugin Gradle propriétaire) • Capturent l’information suivante: ‒ Gradle, JDK, Machine de build ‒ Builds (Bamboo, Jenkins…) ‒ SCM changes (Git commit) • Auto-documente les artefacts
  • 28. Manifest Metadata – SCM Info Workday Confidential • WD-Git-Origin ssh://git@bitbucket.acme.com/core/core.git • WD-Git-Commit e28a60b96f452680c57cb76798def09fd171011f Artifact core 1.0.5 jar Git Commit core e28a60… HAS_COMMIT
  • 30. Liste de tous les artefacts Workday Workday Confidential Group Module Latest Version Age (days) SCM url SCM change Build URL Latest JIRAs com.workday core 1.0.5 120.2 core.git e28a60b9 URL CORE-120 com.workday foo-services 1.3.0 29.1 foo-services.git 146ae135 URL FOO-57 com.workday bar-services 2.2.8 54.8 bar-services.git b538c156 URL BAR-70 … … … … … … … … Page web accessible avec toutes les dernières versions (donnée toujours à jour) → Où se trouve le build associé à ce fichier jar ? → Où sont les sources de ce fichier jar ?
  • 31. Identification des dépendences 1/x (directes) Workday Confidential MATCH (dependent:ModuleVersion)-[:DEPENDS_ON]->(dependency:ModuleVersion) WHERE dependency.id = "com.workday:core:1.0.5” RETURN dependent.id AS dependent  Service REST disponible Dependent com.workday:foo- services:1.3.0 com.workday:foo- services:1.2.5 com.workday:bar- services:2.2.8 com.workday:bar- services:2.2.7 …
  • 32. Orchestration de builds Workday Confidential Producing build Consuming build Bamboo Build CORE BUILT Artifact core 1.0.5 jar ModuleVersion core 1.0.5 ARTIFACT_OF ModuleVersion foo-services 1.3.0 ARTIFACT_OF Bamboo Build FOO-SERVICES Artifact foo-services 1.3.0 jar BUILT DEPENDS_ON DEPENDS_ON
  • 33. Release notes automatisées Workday Confidential Version 1 Version 2 Bamboo Build CORE #11 BUILT Artifact core v1 jar Git Commit core 5ce1f767 HAS_REVISION Git Commit core ee2a0e22 HAS_REVISION Bamboo Build CORE #12 Artifact core v2 Jar BUILT PARENT_REVISION JIRA Issue CORE-120 LINKS_TO
  • 34. Identifier les changements associés à un JIRA Workday Confidential Trouver toutes les mentions d’un JIRA dans les commentaires de commit Input: JIRA issue Output: Set of SCM changes JIRA Issue CORE-120 Git Commit core 5ce1f767 Git Commit core 5954ff88 Git Commit core ee2a0e22
  • 35. Règle: “Aucune dépendence dynamique permise” Raison: Les builds doivent être reproductibles Dynamic versions: 1.+, LATEST, [1.0, 2.0[ Détection des violations de règles Workday Confidential Page HTML listant toutes les infractions à la règle ModuleVersion baz 4.2.10 ModuleVersion pmd-checks 1.+ DEPENDS_ON
  • 36. Conclusion Workday Confidential • Service mis en production • Neo4j est l’outil parfait pour capturer la donnée qui nous intéresse ‒ Très facile de refactorer / enrichir la donnée • Cypher nous permet de comprendre la donnée aggregée • Fondation solide pour de futurs services ‒ Partie difficile: Extraire la donnée ‒ Partie facile: Créer de nouvelles requêtes sur la donnée existante • Decisions basées sur des faits ! Plus de suppositions • Approche holistique
  • 37. Q & A Thanks for attending Workday Confidential
  • 38. TM