In diesem Blogbeitrag möchte ich euch die Änderungen von SMS Gateway Version 4 im Vergleich zur älteren SMS Gateway Version 3 erläutern und welche Problematiken diese mit sich brachten. Da sich die Weboberfläche und die Verhaltensweise des SMS Gateways nicht geändert haben könnte man den Eindruck gewinnen es habe sich kaum etwas geändert. Ein guter Einstiegspunkt ist die Build-Pipeline.

Build-Pipeline

In einem vorherigen Blogbeitrag habe ich euch bereits die Build-Pipeline eines SMS Gateways Version 4 vorgestellt. Die Build-Pipeline wurde für Version 4 komplett überarbeitet um manuelle Eingriffe zu minimieren. Das Resultat ist eine Build-Pipeline welche vollautomatisch ein SMS Gateway Image erzeugt, sobald eine Codeänderung gemacht wurde.
Die Build-Pipeline der Version 3 enthielt noch einige manuelle Schritte. Da der Faktor Mensch immer eine Fehlerquelle darstellt, wurde diese Fehlerquelle damit ausgeschlossen.

Partitionierung

Die Festplatte des SMS Gateways in Version 3 enthielt nur die nötigsten Partitionen. Damit konnte ein Firmwareupdate ausschließlich via Flashen auf das SMS Gateway gespielt werden.
In Version 4 des SMS Gateways wurden zusätzliche Partitionen eingebaut um ein Firmwareupdate zu ermöglichen. Daher ist auch ein letztes Flashen beim Wechsel auf Version 4 notwendig.

Betriebssystem

Version 3 basierte auf Debian 7. Da diese Version mittlerweile veraltet und von der Debian Community nicht mehr unterstützt wird, war hier ebenfalls ein Wechsel notwendig. Dieser Wechsel wurde mit Version 4 auf Debian 8 vollzogen. Dieser Schritt ist zwar gut, reicht aber am Ende des Tages nicht aus um das Betriebssystem zukunftssicher zu halten. Daher ist dieser Punkt auch für das Softwareupdate relevant.

Verwendete Software

Die verwendeten Softwarepakete haben sich ebenfalls geändert. Als Webserver kommt anstatt Lighttp nun Apache2 zum Einsatz. Die Datenbank wurde ebenfalls von SQLite zu MySQL angepasst. Ebenfalls wurden zusätzliche Softwarepakete installiert wie zum Beispiel der HAProxy. Die restlichen Softwarepakete wurden über die Build-Pipeline automatisch aktualisiert. Diese Änderungen wurden alle in der Build-Pipeline umgesetzt.
Die Änderung der Softwarepakete hatte natürlich auch einige Folgen. Durch ein erweitertes Sicherheitskonzept entstand so auch eine neue Schicht im SMS Gateway welche ausschließlich zum Konfigurieren dieser Pakete dient. Diese neue Schicht musste daher ebenfalls implementiert werden. Aus Sicherheitsgründen kann der ausgeführte Webserver keine Änderungen an der Konfiguration durchführen. Diese müssen immer über die Konfigurationsschicht abgearbeitet werden. So sind nur tatsächlich vorgesehene Änderungen möglich. Die verwendeten Softwarepakete sind für das Firmwareupdate auch relevant, dazu später mehr.

Datenbankanpassung

Die komplette Datenbank muss ebenfalls über die Build-Pipeline aktualisierbar sein. Die Build-Pipeline lädt sich die Datenbankänderungen über ein Git Repository nach um dies zu gewährleisten. Eine der größten Problematiken bestand darin, dass die Datenbank ebenfalls aktualisierbar sein muss. Durch eine Datenbankversionierung und Prüfung während des Bootvorgangs ließ sich dieses Problem jedoch lösen.

Konfigurationsimport- Export

Die Möglichkeit eines Konfigurationsimport- Export bestand bei Version 3 noch nicht.
Der Konfigurationsimport- Export. Ein lange ersehntes Feature, welches mit der Version 4 ebenfalls ausgeliefert wurde. Die ursprüngliche Umsetzung sah eine Auswahl der einzelnen Konfigurationsbereiche vor. Dies wurde jedoch fürs Erste verworfen, da der Import und Export ebenfalls Versionsübergreifend funktionieren muss. Bedeutet ein Export der Version 4.0.2 muss am Ende auch auf einem SMS Gateway mit der Version 5.0.0 importierbar sein. Daher wurde die Auswahl bisher nicht implementiert.

Firmwareupdate

Ebenfalls neu in Version 4 ist die Möglichkeit, die Firmware zu updaten. In Version 3 musste das SMS Gateway bei jedem Update noch per Hand neu geflasht werden, was einen Mehraufwand für unsere Kunden bedeutete.
Die zuvor angesprochene Partitionierung erlaubt es das Betriebssystem inklusive der installierten Softwarepakete zu aktualisieren und zu ergänzen. Alle Daten sind so ausgelagert, dass diese einen Wechsel der vollständigen Software erlauben. Da ein Softwareupdate ebenfalls das Datenbankschema ändern kann und ein Firmwareupdate jederzeit stattfinden kann wird bei jedem Neustarten des SMS Gateways geprüft ob ein neues Firmwareupdate eingespielt wurde und ob das Datenbankschema angepasst werden muss. Dies ist zudem abwärts wie aufwärtskompatibel zu den SMS Gateway Versionen ab der Version 4.

Fazit

Die Version 4 enthält sehr viele Neuerungen und Verbesserungen, welche das SMS Gateway für die Zukunft rüstet. Die neue Build-Pipeline ermöglicht es den Faktor Mensch als Fehlerquelle auszuschließen und sicherzustellen nur genau die Änderungen umzusetzen, die auch tatsächlich vorgesehen waren. Die Möglichkeit die Konfiguration zu Exportieren und zu Importieren sowie die Firmware aktualisieren zu können ermöglichen dem Endbenutzer eine deutlich vereinfachte Handhabung.

Armin Marx

Armin Marx

Application Developer

Armin ist ein waschechter Saarländer mit einer Liebe für Technik, Kampfsport (MMA) und Musik. Besuchte die Mechatronik Vorlesungen bevor er realisierte, dass Code das coolste daran ist. Gewann einmal den ersten Preis beim Tischfußball und hat das seit dem nie wieder probiert. Studiert z.Z. an der HTW und macht das SMS Gateway jeden Tag ein bisschen besser. Darüber schreibt er auch in diesem Blog.

Gefällt dir der Artikel? Bitte teile ihn!
Share on Facebook
Facebook
0Share on LinkedIn
Linkedin
Email this to someone
email
Tweet about this on Twitter
Twitter