2. me
Dirk Vermeylen
◦ started at EDS in 1986
◦ Manufacturing (Opel – Antwerp)
◦ Opel Dealer Business
◦ Application monitoring and (infrastructure) Modelling
◦ Configuration databases => Neo4J
◦ Open Data projects at Vo
◦ Category winner of Neo4J Graphgist Challenge 2015
◦ Since 2015 in the Analytics and Data Management Team at HP > HPE > DXC Technology
3. Goal of the Presentation
2 different ways of converting a model into a graph
◦ For Configuration Management Database – use component/relations table
◦ For Hobby – use and validate whiteboard model
Neo4J can be used as an (additional) modelling tool in many projects.
◦ Excellent ‘other’ view on problems and challenges
◦ SQL / Excel vlookup as alternatives
◦ Turns into ‘first’ view on problems and challenges
Quick conversion to Neo4J
◦ Use Python and py2neo library
◦ and Flask/Bootstrap as Web framework
Visualization!
4. Configuration Management Database
(CMDB)
Goal: Inventory of
◦ Infrastructure Components
◦ Software
◦ Applications / Business Services
◦ and the relations between all the items
Why:
◦ Service Management – If my application doesn’t work, what are the components I need to check?
◦ Impact analysis – what happens if I switch off this computer?
◦ Datacenter Migrations – how are applications related to each other?
5. CMDB Challenges
Each customer has own implementation of the model
◦ Based on vendor specific tool
◦ Home-grown implementation
◦ Combination of vendor-specific tool with home-grown adoptations
Variable quality
◦ Engineering companies have detailed technical CMDB implementation
◦ Process oriented companies: excellent installed software to business application relations
◦ Contractor-based companies: high level of customization for automation
Variable level of data collection
◦ Dedicated teams can have dedicated portions of the information
◦ e.g. Database team, Network team, Hosting team
◦ Data consolidation can be tricky
=> What model has been implemented?
=> Data quality – handle valuable data from other sources – no direct fit into the model
6. Theoretical solution (for Modelling)
Use the DMTF model (Distributed Management Task Force)
◦ https://www.dmtf.org/standards
◦ Use the bits of the model that you need
7. Practical Solution
Two table model:
◦ Components
◦ Relations
Components
◦ Indicate component type
◦ e.g. Server – Database – Business Service
◦ as attribute or combination of attributes
◦ Collection of all possible attributes over all components
Relations
◦ component1 – relation Type – component 2
◦ Allows to store relations that do not fit in the model (e.g. Application to Server link, no software known)
Use customized scripts to check data completeness and correctness
◦ e.g. Application > software, no server – Virtual server, no physical server – Servers without Application links, ...
◦ Result: Complexity is removed from model – but moved into scripts...
8. Neo4J to the Rescue!
Component > Node
◦ component type = Node Label
◦ add non-empty attributes as node properties
Relation table > Relations
Customized scripts > Cypher Queries: ascii art based on visible model
Result:
◦ Visualization of the environment
◦ Visualization of the queries
17. Graphgist to validate the model
https://portal.graphgist.org
cfr Jupyter Notebook:
◦ Build the Model
◦ Validate use-cases
◦ Get finishers for race
◦ Get finisher nodes to add points
◦ Add some organizations and races, finishers can be extracted per race
Result:
◦ The model and the use cases / queries are available
◦ Next step:
◦ Focus on building the website