Die Architektur von SCHub muss skalierbar und flexibel sein. Dazu sollen die einzelnen Systeme durch eine lose Kopplung möglichst dynamisch miteinander interagieren können. Als Basis setzen wir auf das bewährte OpenStack in Verbindung mit Docker Containern und einen reinen Java-Stack.
Herausforderungen
Die Architektur von SCHub birgt Herausforderungen auf mehreren Ebenen. Zum einen muss sichergestellt werden, dass die einzelnen Systeme gut miteinander interagieren. Dabei wird eine lose Kopplung angestrebt, die möglichst dynamisch ist, so dass die Verbindung auch beim horizontalen Skalieren der Lösung ohne Neustart wieder gefunden wird. An vielen Stellen musste entschieden werden, ob eine weitere Komponente wie z.B. Drools ergänzt werden sollte, oder lieber eine eigene Lösung entwickelt wird, bzw. welche von 2-5 guten Komponenten am besten in den Stack passt.
Skalierbarkeit
Weiterhin muss eine skalierbare Architektur geschaffen werden, die sowohl innerhalb einzelner Unternehmen von 100 Mitarbeitern bis zu mehreren Tausend Mitarbeitern skaliert, als auch im Cloud Umfeld auf hunderte Kunden mit je hunderten Mitarbeitern. Dazu müssen Dienste flexibel auf eigene Server migriert und zu Clustern ausgebaut werden können. Gleichzeitig muss die Latenz durch Netzwerkkommunikation und Schnittstellen minimiert werden.
Einheitliche Plattform
Obwohl man auch in jedem einzelnen System auf eine eigene Programmiersprache und Datenbank setzen könnte, glauben wir dass es sowohl aus Entwickler- als auch Betreiber-Sicht sinnvoll ist, eine einheitliche Plattform zu haben. Dabei stellt sich im Open Source Umfeld insb. die Frage nach PHP oder Java. Mit objektiven Kriterien belegbar haben wir dabei letztlich die subjektive Entscheidung für einen reinen Java-Stack getroffen, dessen starke Typisierung und kompilierter Code es dem Entwickler leichter machen qualitativ hochwertige Software zu entwickeln. Auf Datenbank-Ebene ist es leichter, da sich mit MySQL oder dessen Derivaten ein Quasi-Standard herausgebildet hat, der mit Multi-Master Replikation auch ohne Verzicht auf Transaktionssicherheit und Konsistenz in die geforderten Größenordnungen skaliert.
Als Basis setzen wir auf das bewährte OpenStack IaaS System, das durch die innovative Docker Container Lösung ergänzt wird. Die Betriebsplattform stellt der Univention Corporate Server dar, der für SCHub insb. wegen seiner Web-basierten Administrationsoberfläche eine gute Lösung darstellt.