Schweizer Armee: Gute Datenqualität sicherstellen mit architektonischen Massnahmen
Das Projekt Digitalisierung der Milizarmee (Dimilar) realisiert den «Dienstmanager» zur vereinfachten Interaktion mit Armeeangehörigen und zur Ablösung des physischen Dienstbüchleins. Der Dienstmanager bietet Armeeangehörigen Einblick in ihre Daten (z.B. Dienste, Diensttage) und ermöglicht digitale Anfragen (z.B. Dienstverschiebungen, Urlaubsgesuche, Adressänderungen). Seit August 2023 ist der Dienstmanager erfolgreich für die gesamte Milizarmee verfügbar.
Datenqualität, mit Fokus auf Datensicherheit, ist eine Kernanforderung von Dimilar. Insbesondere die frühe Entscheidung, eine Microservices-Architektur zu benutzen, war für die Erfüllung der Anforderungen sehr hilfreich.
Lösungsarchitektur: Microservices stärken die Datensicherheit und Verfügbarkeit
Die Microservices-Architektur teilt Code und Daten einer Anwendung auf mehrere unabhängige Dienste und Datenbanken auf, die jeweils einem verantwortlichen Team zugeordnet sind. Dies ermöglicht:
- Feingranularen Zugriffsschutz auf Code und Daten nach dem Need-to-Know-Prinzip.
- Klare Verantwortlichkeiten in kleineren Teams, was zu besserem Know-how, Ownership und sorgfältigerem Umgang mit Daten führt.
- Erhöhte Fehlertoleranz und Datenverfügbarkeit durch unabhängige Deployments und Entwicklungszyklen und entsprechend bessere Aktualität der Daten.
Datenarchitektur: Sorgfältige Domain-Modelle machen Daten verständlicher
Einige Daten werden von externen Systemen verwaltet und beim Dienstmanager lediglich gecached. Die dazugehörigen externen Datenmodelle entsprechen oft veralteten Standards und verwenden unklare Abkürzungen oder codierte Inhalte.
Der Dienstmanager hingegen nutzt ein eigenes Domänenmodell, welches durch einen Anti-Corruption Layer vom externen Modell getrennt ist, wodurch ein klareres Verständnis der Daten geschaffen wird.
Eine Quelle von Missverständnissen ist oft auch der Sprachgebrauch selbst, zum Beispiel die Doppeldeutigkeit von Wörtern. In diesen Fällen hilft ein Prinzip aus dem «Domain-Driven Design», mit dem man die Fachdomäne in sprachlich konsistente Kontexts unterteilt, und entlang dieser Teilung die Microservices und Teams bildet. Innerhalb jedes Kontextes und Teams sind die Begriffe eindeutig, und so werden Missverständnisse vermieden.