Mayer Reto
Live Update für Perigon
Durchführung: 18.04.2016 bis 20.05.2016
Perigon ist eine Software von der Firma root-service ag für Spitex-Organisationen und Grossgärtnereien. Das Programm wird stetig weiterentwickelt und es gibt innerhalb der grossen Versionsschritte kleinere Patches, mit welchen Fehler behoben werden. Das Supportteam muss dann jeweils das Programm manuell aktualisieren, was einen grossen Aufwand verursacht, insbesondere wenn jeder Kunde vom Fehler betroffen ist. Deshalb wollte die Geschäftsleitung, dass man diesen Vorgang so weit wie möglich automatisiert.
Im Rahmen der IPA wurde eine einfache Version vom ""Perigon Live Update"" umgesetzt. Das neu erstellte Programm aktualisiert einfache Installationen vom Perigon. Der Vorgang muss sicher ablaufen und im Fehlerfall wieder zurückgesetzt werden können. Ein Ausfall vom Perigon kann bedeuten, dass mehrere hundert Mitarbeiter nicht mehr arbeiten können. Es werden erst lokale Installationen mit der Datenbank ""Sybase SQL Anywhere"" ohne mobile Geräte wie Smartphones oder Tablets unterstützt, damit es in der kurzen Zeit der IPA umsetzbar ist.
Die ganze Umgebung wurde auf meinem Arbeitscomputer installiert, so wie es bei einem Kunden eingerichtet ist. Entwickelt wurde die Lösung mit Microsoft Visual Studio in der Programmiersprache C#.

Das Projekt besteht hauptsächlich aus zwei Teilen. Zuerst muss die bestehende Software Perigon so erweitert werden, dass der Benutzer das ""Perigon Live Update"" herunterladen kann. Danach kann das eigenständige Programm ""Perigon Live Update"" mit den beschriebenen Funktionen realisiert werden.
Der Benutzer kann im Perigon über das Menü das Live-Update starten. Er wird dann informiert, ob eine neue Version verfügbar ist, dabei wird die aktuelle Installation mit der Version vom Update-Server überprüft. Wenn eine neue Installation verfügbar ist, wird zuerst nur das neue ""Perigon Live Update"" heruntergeladen. Beim Programmieren musste darauf geachtet werden, dass die Oberfläche immer bedienbar ist und nicht einfriert.
Wenn das Live-Update heruntergeladen ist, wird es Administratorrecht mit gestartet. Damit man bei allfälligen Fehlern nachvollziehen kann, wo das Problem liegt, werden alle wichtigen Schritte und Fehler in einer Datei protokolliert. Auf der Startseite kann der Benutzer das Update starten. Danach werden veraltete Sicherheitskopien gelöscht und es wird überprüft, ob Schreib- und Leserechte im Perigon-Ordner vorhanden sind. Dann wird das Perigon vom Update-Server heruntergeladen. Wie bei allen längeren Operationen muss darauf geachtet werden, dass der Hauptprozess nicht blockiert wird und das Fenster nicht einfriert. Die Prozesse werden deshalb asynchron ausgeführt.
Wenn das Perigon heruntergeladen ist, wird der Benutzer darauf hingewiesen, dass ab jetzt das Perigon nicht mehr benutzt werden kann, bis das Update fertig ist. Damit das Perigon den Installationsprozess nicht stört, werden alle offenen Perigon-Instanzen mit den dazugehörigen Diensten, wie der Datenbank, beendet. Danach wird ein Backup von der Datenbank und den vorhandenen Perigon-Dateien erstellt. Wenn das Backup erfolgreich ist, wird das neue Perigon in das Installationsverzeichnis kopiert. Nun müssen nur noch alle Dienste und die Datenbank wieder gestartet werden, damit das Update erfolgreich abgeschlossen ist.
Wenn das Update fehlgeschlagen hat, wird automatisch das Rollback gestartet. Dies stellt wieder den ursprünglichen Zustand vor dem Update her. Dafür wird das Backup verwendet und die Dienste und die Datenbank werden mit dem vorherigen Stand wieder gestartet.
Zum Abschluss wurde die Funktionalität mit ausführlichen Tests überprüft und protokolliert. Das Projekt funktioniert, wie ich es mir vorgestellt habe und es wird dem Support die Arbeit erleichtern.