Wie wir die ‘Baustatik’ stabil halten


Thomas Wölfer
Thomas Wölfer

07. September 2012


Die Baustatik ist ein verhältnismäßig komplexes Stück Software – an drei Standorten wird gleichzeitig daran gearbeitet, es gibt parallel 2 unterschiedliche Geschmacksrichtungen* (32bit und 64bit), das Ding verwendet alle verfügbaren CPUs – kommt aber auch klar, wenn es nur eine gibt - und einmal pro Monat veröffentlichen wir eine neue Version. Die neuen Versionen kommen auch zügig zum Einsatz – jeweils etwa 7 Tage nach Veröffentlichung einer neuen Version ist diese bei 50% aller Kunden im Einsatz, nach 2 Wochen sind es im allgemeinen mehr als 75%.

Damit die ganze Sache stabil bleibt und Änderungen nicht zu unerwünschten Nebenwirkungen (also Programmfehler) führen, haben wir zwei spezielle Server im Einsatz: Den BuildServer und den BuildServer64. Beide tun das gleiche – der eine mit der 32bit Variante der Baustatik, der andere mit der 64bit Variante.

Im wesentlichen tun diese Systeme folgendes:

  • Sie holen die aktuelle Version des Programmquellcodes aus unserem Versionskontrollsystem.
  • Dann wird eine “Release” Variante der tagesaktuellen Version “gebaut”. (Die ‘Release’ Variante ist die, die wir auch ausliefern würden. Wir haben intern auch noch eine andere Geschmacksrichtung für Entwicklungszwecke.)
  • Dann werden mit dieser tagesaktuellen Version nacheinander einige tausend Dokumente geladen und berechnet. Dabei werden pro Dokument alle für dieses Dokument möglichen Berechnungen durchgeführt.
  • Die Resultate diese Berechnungen werden dann mit Referenz-Ergebnissen verglichen: Ziel ist dabei natürlich, das die Ergebnisse der aktuellen Version mit den Referenzergebnissen übereinstimme.
  • Im wesentlichen werden also Millionen von Berechnungsdaten verglichen.

Das ist natürlich ein bisschen unübersichtlichen, schon allein deshalb, weil es einfach so viele Berechnungen sind, die durchgeführt werden. Darum kann man das natürlich nicht manuell machen (wir haben natürlich für Spezialfälle auch einen manuellen Weg sowas zu tun, aber im allgemeinen läuft das ganze einmal pro Tag vollautomatisch ab.).

Als Resultat der ganzen Rechnerei und Vergleicherei gibt es dann Protokolle. So sieht zum Beispiel das Protokoll der bisherigen Testläufe im September für die 64-bit Version der Baustatik aus:

Man kann hier direkt sehen, das es offenbar seit dem 5.9. ein Problem mit dem ‘Beton’ Modul im Durchlaufträger gibt: Die grünen Haken bedeuten, das kein Problem bei den Testläufen aufgefallen ist, die roten Symbole deuten auf einen Fehler bei den Testläufen hin. (In diesem Fall handelt es sich um ein Problem, an dem wir gerade arbeiten.)

Das Protokoll wird einfach im Browser angezeigt, und darum kann man dann auch auf den Tag/Testlauf klicken, bei dem das Problem aufgetreten ist. Man bekommt dann ein etwas ausführlicheres Protokoll, in dem nur noch dieser eine Testlauf enthalten ist:

Hier gibt es nun eine Liste alle Dokument, die im Testlauf berechnet wurden. Für jedes Dokument gibts dann noch ein par Angaben: Dazu gehören wieder die Symbole, mit denen man sofort sehen kann, bei welchem Dokument das Problem aufgetreten war. Außerdem gibts noch Angaben darüber, wie lange der Testlauf pro Dokument benötigt hat, und wie viel Speicher und Handles verbraucht wurden. Diese Angaben sind für die Fehlersuche manchmal ganz nützlich.

Hier kann man dann auf eines der betroffenen Dokumente klicken, und erhält dann ein weiteres Protokoll:

Dieses Protokoll enthält die gefundenen Probleme: Man kann daran ablesen, welcher Wert sich an welcher Stelle verändert hat: In diesem Fall gibt es offenbar ein Problem mit Ergebnissen nach Zustand II (Wie gesagt: Ein Problem an dem wir gerade arbeiten.).

Ziel ist es natürlich, nie irgendwelche Fehlermeldungen im Protokoll zu haben: Wenn es keine “roten” Kreise gibt, dann muss man auch nicht nach Ursachen suchen .

 

 

 

*) Man bekommt das beim installieren nicht mit: Das Installationsprogramm installiert unter 64bit Windows automatisch die 64bit Version, und unter 32bit Windows die 32bit-Version. Interessante Statistik nebenher: Seit August gibt es bei unseren Kunden mehr 64bit Rechner im Einsatz als 32bit-Systeme.