academyFIVE goes Cloud

Bei Simovative beschäftigen wir uns nun schon einige Zeit damit academyFIVE in die Cloud zu bringen. Hier wollen wir die Gelegenheit nutzen und Ihnen erläutern, was uns dazu antreibt und wo wir aktuell stehen.

 

Warum wollen wir in die Cloud?

Wenn man bei Google nach Gründen für die Cloud sucht, werden einem oft Gründe wie Skalierbarkeit, Verfügbarkeit, Sicherheit und Effizienz genannt. Wenn eine Applikation bereits Cloud-Ready ist, sind dies wahrscheinlich mit die wichtigsten Gründe. Für uns bedeutet der Weg in die Cloud aber wesentlich mehr, als nur die Infrastruktur unter unserer Applikation zu ändern. Heute ist acadamyFIVE eine Standardsoftware für die Hochschulverwaltung, dies war aber nicht immer so. Gerade in den frühen Zeiten von Simovative mussten wir einige Kompromisse eingehen, um unsere Kunden zufrieden zu stellen. Dies hat oft zu sehr spezifischen Programmteilen und individuell programmierten Quellcode geführt. Damit man aber die Vorteile der Cloud wirklich nutzen kann, müssen wir diesen Quellcode nun konsolidieren und vereinheitlichen, um eine Plattform für unsere Kunden stellen zu können, die all die Vorteile, die oben genannt wurden, in sich vereint. Deswegen bedeutet für uns der Weg in die Cloud eine vollständige Transformation von academyFIVE in eine skalierbare und hoch verfügbare Applikation, die dabei die aktuellen Anforderungen an Sicherheit und Datenschutz erfüllt.

Sicherheit

Für uns ist es mit das wichtigste, dass die Daten unserer Kunden sicher sind. Deswegen haben wir in der Vergangenheit sehr viel Zeit investiert um unsere Systeme ständig auf einem aktuellen Stand zu halten. Mit einer wachsenden Anzahl an Kunden hat dies zu immer mehr Aufwand geführt, da mit jedem neuen Kunden auch neue Server hinzukamen, die wir warten und aktualisieren müssen. Leider ist die Systemaktualisierung für uns bis heute auch immer nur mit einer entsprechenden Down-Time möglich, die größer wird, umso mehr Daten ein Kunde in das System einpflegt. Die führt dazu, dass Aktualisierungen immer seltener durchgeführt werden und immer mehr Aufwand für uns bedeuten. Für die letzte Aktualisierung der Server-Betriebssysteme haben wir beispielsweise mehrere Jahre benötigt, da es ein sehr Aufwendiger Prozess ist, mit all unseren Kunden einen geeigneten Zeitpunkt für einen Serverumzug auszumachen und diesen in alle Projekte einzuplanen. In der Cloud schaffen wir für academyFIVE die Möglichkeit die Server-Betriebssysteme jederzeit zu Aktualisieren, ohne das die Systeme dabei eine Downtime benötigen.

Datenschutz 

Auch der Datenschutz in der Cloud ist oft ein heiß diskutiertes Thema. Da wir uns für AWS als Hostingpartner entschieden haben, können wir hier aber ganz klar sagen, dass alle Bestimmungen der DSGVO hier eingehalten werden (weitere Informationen zum Datenschutz bei AWS finden Sie hier). Gerade der Punkt Security by Default setzt AWS, unseres Erachtens nach, deutlich besser um, als dies andere Cloud-Anbieter wie Microsoft-Azure oder Google-Cloud-Platform umzusetzen wissen.

Hohe Verfügbarkeit 

Aktuell stellen wir für jeden Kunden einen Web-Server und einen Datenbank-Server zur Verfügung. Dies führt natürlich dazu, dass wenn einer dieser Server ausfällt, das gesamte System für diese Kunden offline ist. Leider müssen wir die Systeme aber auch regelmäßig für Sicherheitsaktualisierungen, sowie für Aktualisierungen unserer Software neu starten. Dies für jedes Mal zu einem Ausfall der Systeme. In der Cloud werden wir für jeden Kunden nicht einen eigenen Server zur Verfügung stellen, der nur die Benutzer dieses Kunden bedient, sondern viele Server, die die Benutzer mehrerer Kunden bedienen. Dadurch kommt es auch bei Ausfällen einzelner Server nicht zu Ausfällen der academyFIVE-Systeme. Natürlich sind die Daten der Kunden auch in der Cloud immer noch getrennt abgelegt und jeder Kunde hat seine eigene Datenbank und Dateiablage.

Skalierbarkeit

Wir haben die Erfahrung gemacht, dass sich die Server unserer Kunden einen Großteil der Zeit langweilen, aber es zu Stoßzeit immer wieder zu Ressourcen-Engpässen kommt. Um diesen Anforderungen gerecht zu werden, ist es uns sehr wichtig, dass wir bei Bedarf die entsprechenden Ressourcen hinzubuchen können. Dies ist in der Cloud sehr einfach möglich und sorgt für eine schnellere Reaktionszeit gerade zu Stoßzeiten.

 

Wo stehen wir?

Die letzten Monate haben wir uns viel mit dem Aufteilen der restlichen Komponenten auf eine skalierbare Struktur beschäftigt, sowie das initiale Aufsetzen und optimieren der Infrastruktur auf AWS erledigt. Eine Übersicht der Komponenten sieht man in folgender Skizze (Komponenten, die mit einem grünen Haken markiert sind, sind bereits umgesetzt):

 

In der Cloud wird es verschiedene Laufzeitumgebungen geben, die wir benutzen um Versionen zu testen, bevor sie in die Live-Systeme kommen. Dazu haben wir eine Development-Umgebung, die wir zum Entwicklen der Infrastruktur benutzen, eine Preview-Umgebung, die den aktuellen Stage-Systemen entspricht und eine Production-Umgebung, auf der die aktuellen Live-Systeme laufen werden. Die Infrastruktur für die Development- und Preview-Umgebungen sind bereits erstellt, die für die Production-Umgebung noch nicht.

  • In der Development Umgebung können wir beliebige Test-Systeme erzeugen, um alle möglichen Experimente machen zu können. Dies ermöglicht es uns die Software in ihrer produktiven Umgebung zu testen.
  • In der Preview Umgebung werden wir wie bisher alle neuen Version direkt zum Überprüfen zur Verfügung stellen.
  • In der Produktionsumgebung werden wie bisher nur Versionen zur Verfügung gestellt, die durch unseren finalen Abnahmeprozess kommen.

 

Roadmap 

Im Juni werden wir den Bereich um academyFIVE vollständig abschließend. Hierbei geht es vor allem um folgende Themen:

 

  • Abschaffen der Konfiguration im Quellcode: Aktuell haben wir für jeden Kunden einen Teil der Konfiguration noch in Quellcode vorliegen. Dieser muss in die Datenbank verlegt werden, so dass wir keinen individuellen Quellcode für einzelne Kunden in der Cloud benötigen.
  • Aufsetzen des Services für die Hintergrundprozesse (Background Process Queue)
  • Automatisierung des Aufsetzen neuer Tenants: Jeder Kunde bekommt in der Cloud einen sogenannten Tenant zugewiesen, der die entsprechende Konfiguration des Kunden enthält. Dieser soll in Zukunft über ein internes Tool automatisiert aufgesetzt werden.
In der Cloud wird die Infrastruktur für die Community und Online-Bewerbung getrennt von der Infrastruktur von academyFIVE betrieben werden. Dies wollen wir im Juli realisieren.
Im August geht es dann um das finale Aufsetzen der Produktiv-Umgebung und der Migration von Kundendaten.