Hi everyone,
In this post, we will continue our introduction to Master Data Management (MDM), if you have missed our first post you can find it here
This article will focus on the architectural details of MDM, breaking down the components, dependencies, and practical management tips
The Pillars of MDM
At the heart of MDM, we find four essential components:
- Keycloak: Our third-party identity management tool.
- MDM Server (formerly known as MDC): The robust Ataccama MDM processing engine.
- MDM Webapp (formerly known as MDA): The user-friendly Ataccama MDM web application.
- Relational Database: The sturdy backend database, supporting PostgreSQL, MS SQL, or Oracle.
Each of these components is configured as a Linux service, allowing independent restarts and individual log access for issue identification.
The Backbone of Databases
MDM is compatible with PostgreSQL, MS SQL, and Oracle relational databases. However, it's important to note that Ataccama officially supports only PostgreSQL Standalone installation. Any other database systems (Oracle, MS SQL, RDM from Amazon, Azure SQL Services) must be prepared, provided, and maintained by the client. The following information pertains to the maintenance of the PostgreSQL Standalone solution.
The MDM Architecture
The architecture of MDM is adaptable to your specific needs and environment. Your server setup may vary, and the following information should be executed on the relevant server where a specific component is installed. Common architectures include:
- Small Schema: Combines Keycloak, MDM Server, and MDM Webapp on the MDM server, with the relational database on a dedicated server.
- Medium Schema: Splits Keycloak and MDM Webapp on the web server, while the MDM Server resides on the app server, with the relational database on a dedicated server.
- Large Schema: Keycloak on its dedicated server, MDM Webapp, MDM Server, and the relational database each hosted on dedicated servers.
The Web of Dependencies
MDM's core dependencies are tightly woven:
- The relational database is the linchpin of the MDM solution.
- Keycloak is an essential component for MDM Engine and MDM Webapp functionality.
- MDM Engine's role is indispensable as it provides content for the MDM Webapp.
By understanding these dependencies, you can effectively narrow down troubleshooting to a specific part of the MDM solution.
Applications as Services
Every application in MDM is configured as a Linux service, and you can locate their service files in the default Linux folder for services, which is /etc/systemd/system
. The service names are as follows:
- Keycloak service name:
keycloak-server.service
- MDM Server service name:
server-mdm.service
- MDM Webapp service name:
mdm-webapp.service
- Standalone PostgreSQL (optional) service name:
postgresql-13.service
The services can be managed using the standard systemctl
command:
- To start the application:
systemctl start <service-name>
- To stop the application:
systemctl stop <service-name>
- To restart the application:
systemctl restart <service-name>
- To check the status of the application:
systemctl status <service-name>
Replace <service-name>
with the corresponding service name as mentioned above.
Tracking the Trail of Logs
Each component of the MDM solution has its dedicated log storage:
- Keycloak logs folder:
/<path-to-keycloak>/standalone/log
with the log fileserver.xml
. - MDM Server logs folder:
/<path-to-mdm-server>/log
with the log fileserver.out
. - MDM Webapp logs folder:
/<path-to-mdm-webapp>/log
with the log filespring-boot-logger.json.log
.
Alternatively, you can access the component log using the Linux service journal logs command journalctl
. To view the entire log or live logs, use the commands as described.
Log viewing hint: Combine start/stop/restart and log commands to see logs immediately when you start the service.
Any starter questions, or tips you’d like to share for new users to MDM? Let us know in the comments below