Vorüberlegungen Dynamik
von Editions-, Präsentations und Bereitstellungsprozessen
Digitaler Editionen als Herausforderung für die Nachhaltigkeit
Annotate Integrative Kapselung
von Daten-, System- und Präsentationsschichten
Generate Static Site Generator:
Dynamik im Editionsprozess, Archivierbarkeit der Präsentationsschicht
Test Nachvollziehbarkeit der Funktionalität
von Präsentationsschichten durch Behaviour Driven Development
Deploy Übertragbarkeit
und dauerhafte Bereitstellung durch abstrahierte
Systemarchitekturen
Fazit
01
Vorüberlegungen
Warum?
...gehen Digitale Editionen nur immer so schnell kaputt!
Technologiegebunden:
Notwendigkeit, technischem Wandel kontinuierlich zu folgen
Personengebunden:
Wissen um die technischen Funktionalitäten liegt bei Personen
(Sysadmins, Entwickler*innen, Editor*innen)
Dynamisch:
Ressourcen werden im Moment des Zugriffs
von Programmlogik erzeugt
Nachfolgend geht es um Möglichkeiten zur Steigerung der softwaretechnischen Kuratierbarkeit
und nicht um forschungsdatenbezogene (inhaltliche) Kuratierbarkeit
BDD beschreibt die Funktionalität einer Anwendungsdomäne
mittels formalisierter Szenarien.
BDD ist ein "outside-in"-Ansatz, der mit dem Blick der Nutzer_innen
auf eine Forschungssoftware blickt und deren Funktionalität in ausführbaren Tests dokumentiert.
Die Tests werden in natürlicher Sprache nach einem festen Dreischritt-Prinzip formuliert.
Dadurch kann die oftmals "flüchtige" (= wenig nachhaltige) Präsentationsschicht einer Software in
Zusammenarbeit mit den Fachwissenschaftler_innen gemeinsam beschrieben und nachhaltig dokumentiert werden.
LIVE Demo:
Ausführung von BDD-Tests auf die Präsentationsschicht der STURM-Edition
DevOps benutzt Werkzeuge, um eine automatische Reproduzierbarkeit
der Softwareanwendung einschließlich ihrer Umgebung zu erreichen.
Der große Vorteil liegt in der automatisch
enstehenden Dokumention und Nachvollziehbarkeit spezialisierter Software-Infrastrukturen.
Es gibt kein implizites Wissen mehr, dass nur "der Admin" hat.
Gleichzeitig wird die Laufzeitumgebung von der Hardware abstrahiert (bspw. durch Virtualisierung).
Eine Forschungssoftware wird somit "cloud-fähig", bzw. kann in beliebigen Infrastrukturen reproduziert werden.
Die Konfigurationen sind meist einfache Textdateien in einer bestimmten Syntax,
die sich gut versionieren lassen. Somit lässt sich jede Modifikation an einer Anwendungsumgebung
sauber dokumentieren und protokollieren.
DevOps
Nachhaltigkeit durch "Infrastructure as Code"
LIVE Demo:
Ausführung eines Ansible-Playbooks zum Build der STURM-VM
05
Fazit
Technische Nachhaltigkeit
Möglichkeiten zur Steigerung der Nachhaltigkeit
Wissen um die Funktionalitäten einer digitalen Edition (funktionales Wissen)
ist meist an bestimmte Personen gebunden (Sysadmins, Entwickler*innen, Editor*innen).
Es ist "personengebundenes" Wissen.
Für eine nachhaltige technische Kuratierbarkeit muss dieses Wissen auf jeder Systemschicht
abstrahiert und formalisiert werden.
Dokumentation ist gut, aber nur ein Teil der Formalisierung
des "personengebundenen" funktionalen Wissens.
Das formalisierte Wissen um die Funktionalität einer digitalen Edition muss nachvollziehbar
(im Sinne von Versionkontrolle) und nachprüfbar (im Sinne maschineller Überprüfungen) sein.
Hierfür existieren bereits unterstützende Methoden:
- Abstraktion/Überprüfbarkeit durch Akzeptanztests (BDD)
- Abstraktion/Überprüfbarkeit/Ausführbarkeit durch Automation (DevOps)
Systemische Abhängigkeiten sollten dabei so gut wie möglich aufgelöst werden: statische
Erzeugung des überwiegenden Teils einer digitalen Edition.