Config Management Camp 2024 Ghent

The challenge of external data, enter Data
2024-02-06, 14:00–14:50, B.3.039

Currently there are close to twenty configuration management systems here at Config Management Camp 2024 in Ghent .
The Configuration Items (CI) receiver their configuration information through either push or pull and then either are being configured by remote control or as an independent agent.

One of the challenges we face is the provisioning of external data, enter Data. Data serves any CI that is able to send, receive and process messages. There are, for now two types of messages Data is able to receive and process:
- Feeds triggering a response
- Service views

Data makes use of a PostgreSQL backend that has schema's accordingly:
- feeds
- context
- knowledge
Data stores and processes the information it receives from the CI feeds into the context schema
Data processes information from both schemas for use in the knowledge schema.
- The CI's in the landscape provide Data with facts or hard classes of itself in the feed message, which triggers a response by Data with a configuration view.
- Services views are specific requests to Data and trigger responses to the requestor concerning information about the landscape.
Configuring items in an IT landscape require, next to pure configuration details, information on a variety of levels. The information is related, among other things to:
- Organisation
- Domain
- Users
- The specific item itself
- Information about the environment, that relates to the purpose the item has within the IT landscape

The Data class architecture has convergence in mind. Convergence is the theoretical model in which CI's convergently work towards their desired state.


Data is an open source application (GPLv3)
https://github.com/Webhuis/Data

Data is an object oriented Python3 application designed to communicate through ZMQ with CI's in the IT landscape. Python and ZMQ are designed to use the dictionary data type, which is compliant with json.
Data stores data in the datamodel, see below, in both the relational model as in jsonb blobs.

Data holds The Universal Truth
All nodes voluntarily share their information and so give Data the opportunity to construct a Universe of information. Data on its turn provides specific information of interest to specific nodes from this Universe to these specific nodes.

We present a live demonstration of Data @work and show;
- Nodes configured using information supplied by Data
- One or two monitoring nodes Nagios managed by CFEngine and a Zabbix node managed by Ansible.
The monitoring nodes are being supplied by Data with information in the developing landscape.

ZMQ and Python are light weight. The time needed by Data to receive, process nd reply to a message is around 70 ms.
Data does the following in this time span:
- Insert the message into the feed schema
- Carry out nine selects
- Make two updates

See also: Presentation given during talk

Martin Simons
1984 Mainframe, tie wearing IT guy
1998 Linux enthusiast / later trainer
2007 Specialism CFEngine
2014 Initiator CFEngine Debian-team
2018 As off, PostgreSQL, PostgreSQL, PostgreSQL
2019 My Coming Out, I am a IT Nerd!
2021 National Database for Corona QR codes
2022 PostgreSQL, PostgreSQL, PostgreSQL
2023 PostgreSQL and MySQL(!) @smals
2020