Die Geschichte vom Rabenyx: Teil 2 – Entwicklung
Rabenyx ist ein Akronym und bedeutet RAumBElegung bei syNYX. Zu Beginn wurde eine CLI auf Basis von Python entwickelt, welche Anfragen an die API der Nextcloud-Polls-App kapselt und die Möglichkeit bieten sollte, diese dann in einer Pipeline auszuführen.
Die Liste der Kommandozeilenargumente wurde nach und nach länger und deckte immer mehr Funktionalitäten ab. Damit automatisierten wir die wiederkehrenden Aufgaben mit Hilfe von zeitgesteuerten GitLab-Jobs:
- Erstellen der 10 Umfragen (eine pro Werktag) für die kommenden zwei Wochen anhand einer Referenzumfrage, die wir kopierten und anpassten
- Archivieren der Polls der vergangenen Woche
Um sicher zu gehen, dass Updates von Nextcloud oder der Polls-App nicht zu Fehlverhalten der Anwendung führten, konfigurierten wir die zeitgesteuerten GitLab-Jobs gegen unser Nextcloud-Testsystem. Schlugen diese nach Nextcloud-Updates fehl, konnten wir die Änderungen in Rabenyx überführen bevor wir das Update auf unserer produktiven Nextcloud durchführten.
Später erweiterte eine Webanwendung auf Basis des Microframeworks Flask Rabenyx um die Möglichkeit, Einträge hinzuzufügen und zu entfernen.
Motiviert hat uns neben dem Wert für das Office die Tatsache, dass wir an einer internen Anwendung alles durchspielen, ausprobieren und festigen konnten, was wir bereits kannten. Und natürlich haben wir auch Neues dazugelernt. Wir behandelten die Anwendung intern wie ein Open-Source-Projekt, jeder konnte etwas dazu beitragen. Und so entstanden nach und nach:
- Testabdeckung in Form von Unit-Test und einem Validator gegen die Dokumentation im OpenAPI-Format
- Dokumentation, speziell Entwicklerdokumentation. Eine Anwenderdokumentation hat leider gefehlt, was wir später auch spürten. Teilweise wurden Features nicht verstanden.
- CI-Pipeline mit Tests, Build eines Images und Deployment der Web-App in ein Kubernetes-Cluster
- Renovate-Bot
Rabenyx war eine wertvolle Unterstützung in der Hochphase der Pandemie. Inzwischen sind die Hygienemaßnahmen aufgehoben. Was aus Rabenyx wurde erzähle ich im dritten und letzten Teil.