Communardo Software GmbH, Kleiststraße 10 a, D-01129 Dresden
+49 (0) 351/8 33 82-0

Betrieb einer Jira Data Center Umgebung in der Amazon AWS Cloud

Die Sicherung einer hochverfügbaren und performanten Atlassian Jira Data Center Anwendung in der Amazon AWS Cloud bedarf einiger Aufgaben im Regelbetrieb. Dieser Blogbeitrag liefert eine Übersicht der wichtigsten Dienste und administrativen Tätigkeiten.

Nachdem wir in dem Techblog „Erstellung einer Jira Data Center Umgebung auf Amazon AWS“ bereits gezeigt haben, wie einfach und schnell eine Jira Data Center Umgebung auf der Amazon AWS Cloud aufgesetzt werden kann, soll es diesmal um einige Aufgaben im Regelbetrieb einer solchen Anwendungslandschaft gehen. Wir werden dabei die Punkte Skalierung, Überwachung und Sicherung behandeln.

Hinzufügen weiterer Data Center Serverknoten

Die Erweiterung des Data Center Clusters ist ebenso einfach, wie die bereits beschriebene Erstellung der gesamten Infrastruktur. Ausgehend von der AWS CloudFormation Console kann erneut das zuvor genutzte Template für Infrastruktur- und Konfiguration erneut ausgewählt und bearbeitet werden. Durch Auswahl des Menüpunktes „Update Stack“ gelangt man auf die Formularseite des Assistenten, auf der die Maximale Anzahl der Knoten erhöht werden kann. Nach Bestätigung der Einstellung wird die Infrastruktur entsprechend erweitert. Da die Skalierung im Standard von der CPU-Auslastung der bestehenden Serverknoten abhängt, muss diese Änderung nicht unmittelbar zu einer Erhöhung der Knotenanzahl führen.

Alternativ kann auch gleichzeitig die minimale Anzahl der Serverknoten erhöht werden. Das kann notwendig sein, um bspw. eine Zero-Downtime-Update zu ermöglichen oder ständig eine bestimmte Grundreserve bereitzuhalten.

Aktualisierung der Data Center Anwendung

Ähnlich dem Prinzip der Aktualisierung einer Atlassian Server-Anwendung, wird der Versionswechsel durch eine neuere Installationsdatei vollzogen. Für das Update nutzt Atlassian die AWS „Autoscalinggroups“ und einige zusätzliche Automatismen, die den Updateprozess auf einige wenige Schritte minimieren.

Aufgrund der eigenen Subnetze des Atlassian Data Centers sind die Knoten zunächst nicht direkt per SSH zugreifbar. Best Practice ist einen Jumphost aufzubauen und diesen als „Sprungrechner“ auf die einzelnen Data Center Server zu verwenden. Im Zuge des Updates ist es lediglich notwendig die neue Jira-Installationsdatei hochzuladen und in einer Versionsdatei die gewünschte Version anzupassen. Wir nutzen dazu das von allen Jira-Knoten für das Shared Home eingebundene Elastic File System (EFS), welches nun zusätzlich in den Jumphost gemountet wird und so einen Zugriff auf diese beiden Dateien bietet.

Nachdem man den kompletten Cluster, über die Jira-Administrationsoberfläche, in den „Upgrade Modus“ versetzt hat, beginnt man die EC2-Instanzen einzeln zu löschen („Terminate“). Das fehlen einer Instanz innerhalb der Autoscalinggroup wird erkannt und es wird ein komplett neuer Serverknoten inkl. der neuen Jira-Installation gestartet und provisioniert. Es wird dabei die neue, zuvor hinterlegte, Installationsdatei verwendet. Nachdem der erste Knoten aktualisiert und vollständig gestartet ist, kann man mit der Löschung des nächsten Knotens fortfahren. Hat man alle Knoten des Clusters aktualisiert, ändert man über die Administrationsoberfläche der Anwendung den „Upgrade Modus“ in „Upgrade abgeschlossen“. Im Hintergrund werden ggf. notwendige Aktualisierungsschritte durchgeführt.

Überwachung

Der Monitoring Dienst CloudWatch dient zur Überwachung unterschiedlicher Metriken, wie z.B. CPU-Auslastung und Netzwerklatenz für unterschiedliche AWS-Ressourcen. CloudWatch bietet innerhalb der AWS Console direkt die Möglichkeit der grafischen Auswertung an. Die einzelnen Metriken können individuell angepasst und auch noch erweitert werden. Weitere Informationen zu den Möglichkeiten findet sich in der CloudWatch-Dokumentation.

Des weiteren stehen Events, Logs und eine Alarmierung zur Verfügung. Für Schwellenwerte unterschiedlichster Metriken können Alarme frei konfiguriert werden. Diese sind anschließend für eine Benachrichtigung oder für das AutoScaling (AutoScalingGroup) nutzbar.

Im CloudFormation Template ist das bereits für eine dynamische Skalierung der Clusterknoten realisiert. Dabei wird ein Schwellwert auf die CPU-Auslastung gelegt und entsprechend die Knotenanzahl erhöht oder verringert.

Die Richtlinie sieht darin vor, dass weitere Knoten hinzugefügt werden, falls:

  • die CPU Auslastung für 5 Minuten über 60% ist

Im Gegenzug wird die Clusterknotenanzahl veringert, falls:

  • die CPU Auslastung für 30 Minuten unter 40% sinkt

Dies erlaubt eine bedarfsgerechte und kostensparende Umsetzung.

Sicherung

Zur Sicherung und Wiederherstellung von Datenständen der Data Center Anwendung verweist Atlassian auf die Amazon AWS Standardverfahren.

Grundsätzlich sind für die Atlassian Data Center Anwendungen zwei Datenspeicher relevant:

  1. EFS (Dateien, NFS): beinhaltet die Installationsdatei und das Datenverzeichnis (Home)
  2. RDS (Datenbank): beinhaltet die relationalen Inhalte der Anwendung

Zur Sicherung der Datenbank kann die Snapshot Funktionalität des RDS (Relational Database Service) verwendet werden. Eine Wiederherstellung des Snapshots findet sich in der RDS-Dokumentation.

Für die Erstellung und Wiederherstellung von EFS-Backups gibt es die Lösung: „EFS-to-EFS Backup„. Mit dieser Implementierung werden, mittels CloudWatch, automatisch Backups in einem definierbaren Intervall erstellt. Es kann dabei auf ein vorgefertigtes CloudFormation Template zurückgegriffen werden, welches die notwendige Infrastruktur bereitstellt. In diesem Template können u.a. EFS-Quelle und Intervall angegeben werden. Im Standard werden die Backups nächtlich 02:00 Uhr erstellt und 7 Sicherungen vorgehalten. Sollte es einmal nötig sein ein solches Backup wieder einzuspielen, bietet Amazon hierfür ebenfalls ein Template an. Durch Angabe der Backup-Quelle, EFS-Ziel und Backnummer, kann eine bestimmte Sicherung wieder hergestellt werden.

Hinweis: Für die Bereitstellung dieser Infrastruktur fallen zusätzliche Gebühren an.

Dieser Techblog stellte einige wesentlichen Aufgaben zu Skalierung, Überwachung und Sicherung für den reibungslosen Betrieb einer Data Center Lösung in der Amazon Cloud Umgebung dar. Amazon AWS unterstützt den Administrator bei seiner Arbeit mit dem umfangreichen Angebot an Diensten bis hin zur Automatisierung einzelner Aufgaben.

Kommentar hinterlassen