Atlassian Hosting: Technische Herangehensweise

Atlassian Hosting

Beitrag teilen

Teilen auf facebook
Teilen auf linkedin
Teilen auf twitter
Teilen auf email

Es gibt etliche Möglichkeiten von Atlassian Hosting. Server, Data Center oder auch direkt in der Atlassian Cloud. Eine dieser Möglichkeiten ist es Atlassian Software direkt auf deinen eigenen Server oder bei AWS / Azure (Cloud Provider) zu hosten.

In diesem kurzen Artikel findest du alle Informationen und Requirements zum hosten von Atlassian Software.

Atlassian Hosting

Atlassian Hosting: Voraussetzungen

Offizielle Domain mit einem DNS-Server, auf dem EintrĂ€ge hinzugefĂŒgt werden können und die aufgelöst werden können.

DNS-EintrÀge, die auf die externe IP des Servers zeigen, auf dem die Atlassian-Anwendung laufen soll.

Wenn Route 53 verwendet wird, können wir mit dem certbot und letsencrypt Wildcard-Zertifikate fĂŒr die gesamte Domain generieren.

Anwendungsserver

Server-Bereitstellung

Als Applikationsserver verwenden wir in der Regel Ubuntu und lassen Ansible laufen, um ihn zu konfigurieren. Ansible nimmt dann einige Grundkonfigurationen vor und installiert benötigte Software, wie Docker auf dem Host. Es werden auch einige Docker-Anwendungen auf einem Host ausgerollt, wie der Reverse-Proxy.

Reverse-Proxy

Als Reverse-Proxy verwenden wir das Docker-Image xalt/nginx. Dieses kann sich an den Docker-Socket anhĂ€ngen und ist dadurch in der Lage zu lesen, welche Docker-Container auf dem Host laufen. Wenn eine Anwendung bestimmte Parameter gesetzt hat, wird die Nginx-Konfiguration automatisch geĂ€ndert und neu geladen, Upstream- und Server-Konfigurationen werden fĂŒr die angegebenen virtuellen Hostnamen und Ports erstellt. Wenn der Hostname mit einem verfĂŒgbaren SSL-Zertifikat ĂŒbereinstimmt, wird auch ein SSL-Listener fĂŒr diese Anwendung konfiguriert. Der Reverse-Proxy kann Inhalte ĂŒber 80 (http) und 443 (https) bereitstellen, diese Ports werden auf die Host-Ports 80 und 443 montiert.

Managed Atlassian Hosting

Reduzieren Sie die BetriebskomplexitÀt und vereinfachen Sie den Betrieb Ihrer Atlassian-Produkte wie Confluence, Bitbucket und Jira.

Lizenzmanagement

Es wird ein Side-Cart-Container bereitgestellt, der Let’s Encrypt-Helfer. Dieser Container hat ebenfalls Lesezugriff auf den Docker-Socket, und wenn ein Container Let’s Encrypt-Parameter bereitstellt, initiiert er eine Let’s Encrypt-Zertifikatsherausforderung und speichert die Zertifikate, damit der Reverse-Proxy-Container sie fĂŒr die https-Verbindungen verwenden kann.

Docker-Anwendung

Alle Docker-Anwendungen werden in einer Datei docker-compose.yml beschrieben, die von Ansible bereitgestellt wird. JIRA/ Confluence und die PostgreSQL-Datenbank haben ihr Home-Verzeichnis in separaten Verzeichnissen auf der gleichen Ebene wie die docker-compose.yml eingebunden. Auf diese Weise befinden sich die Anwendungskonfiguration und die Anwendungsdaten im gleichen Bereich und können leicht gepflegt werden.

JIRA/ Confluence

Dieser Docker-Container fĂŒhrt einen Tomcat mit der JIRA-Anwendung aus. Der Tomcat-Connector muss ĂŒber Environment-Variablen des Containers korrekt konfiguriert werden. Gleiches gilt fĂŒr die AnwendungsĂŒberwachung ĂŒber NewRelic. Die Heap-Parameter können auf die gleiche Weise konfiguriert werden und natĂŒrlich mĂŒssen die Reverse-Proxy-Parameter gesetzt werden, ebenso wie die Letsencrypt-Parameter, falls erforderlich.

FĂŒr Testsysteme haben wir noch ein paar weitere Features implementiert, um die Wiederherstellung der persistenten Home-Daten via ssh rsync und die Modifikation der Datenbank mit Liquibase zu ermöglichen. So können z.B. die Basis-URL oder die Applikationslinks geĂ€ndert werden.

PostgreSQL

Wir verwenden in der Regel einen PostgreSQL-Container und spawnen ihn in einem separaten, anwendungsspezifischen Docker-Netzwerk unter dem DNS-Namen „db“, der nur fĂŒr die in dieser docker-compose.yml-Datei angegebenen Container erreichbar ist. Benutzername, Passwort und Datenbank werden als Umgebungsparameter des Containers angegeben. Die Datenbank fĂŒr JIRA/ Confluence kann auch MySQL oder OracleSQL sein, wir haben uns aber aus KompatibilitĂ€tsgrĂŒnden fĂŒr PostgreSQL entschieden.

FĂŒr Testsysteme haben wir ein paar weitere Features implementiert, um die Wiederherstellung der persistenten Home-Daten per ssh rsync zu ermöglichen.

Backup

Dieser Container fĂŒhrt im Grunde einen Cron-Job aus, der den JIRA/Confluence- und PostgreSQL-Container herunterfĂ€hrt und die persistenten Home-Ordner per rsync auf den Backup-Server ĂŒbertrĂ€gt. Dieser Container wird ebenfalls durch mehrere Umgebungsparameter konfiguriert, wie z.B. die Cron-Job-Zeit, den Namen des Backup-Servers und benötigt außerdem einige Mount-Punkte, wie z.B. den Docker-Socket, um Docker-Container von innerhalb eines Docker-Containers herunterzufahren und zu starten. Außerdem werden weitere Mounts benötigt, um zu lokalisieren, wo sich die Daten befinden, die gesichert werden sollen.

Web-Anfrage

Wenn auf eine Docker-Anwendung zugegriffen werden soll, gibt der Benutzer in der Regel einen DNS-Namen in den Browser ein. Die IP versucht, durch eine DNS-Anfrage an R53 aufgelöst zu werden. Die Antwort ist in der Regel ein A-Record, der auf den Server zeigt, auf dem die Anwendung lĂ€uft. Der Browser baut eine Verbindung zum Port 80 des Anwendungsservers auf. Dort leitet der Docker-Proxy die Anfragen an den Nginx-Reverse-Proxy weiter, der auf https umleitet, wenn ein gĂŒltiges Zertifikat fĂŒr den virtuellen Hostnamen der Anwendung existiert. Wenn diese Direktive vom Browser ausgefĂŒhrt wurde, wird die Anfrage auf Port 443 am Applikationsserver angenommen. Diese geht an den Reverse-Proxy, der sie dann an den konfigurierten Upstream, die Atlassian-Anwendung, sendet und die Antwort an den anfragenden Browser ausliefert, um dort weitere Ressourcen zu laden und im en die heruntergeladene Webseite zu rendern.

Atlassian Hosting: Backup-Server

Dieser Host wird normalerweise mit großem Speicher bereitgestellt, um die Anwendungsdaten mehrerer Docker-Anwendungen zu speichern. Er wird ebenfalls ĂŒber Ansible provisioniert.
Hier wird standardmĂ€ĂŸig nicht Docker installiert, sondern rsync und rsnapshot, die fĂŒr unser Backup-Konzept die wichtigsten Bestandteile sind. Rsync wird fĂŒr den Datentransport von Host zu Host, aber auch fĂŒr rsnapshot eingesetzt.
Die ĂŒbliche Konfiguration fĂŒr den Aufbewahrungsmechanismus erlaubt die Speicherung von 7 tĂ€glichen, 4 wöchentlichen und 12 monatlichen Backups. Dabei wird fĂŒr die Sicherung die Verwendung von Hard-Links erzwungen, um Platz zu sparen, wenn eine Datei seit dem letzten Tag nicht mehr angefasst wurde.
Auf diese Weise wird etwa das 2,5-fache der ursprĂŒnglichen AnwendungsgrĂ¶ĂŸen verbraucht (rsync der Daten vom Anwendungsserver zum Backup-Server verbraucht 1 + die rsnapshot-Kopie davon und die entsprechenden Deltas nehmen noch einmal die 1,5-fache GrĂ¶ĂŸe ein), um Backups zu haben, die bis zu 12 Monate zurĂŒckgespielt werden können.

Mehr zu Managed Atlassian Hosting

Das ganze Konzept erfordert die Erzeugung eines SSH-SchlĂŒssels auf dem Applikationsserver und die Speicherung des öffentlichen SchlĂŒssels in den autorisierten SchlĂŒsseln des Root-Benutzers des Backup-Servers:

  1. Synchronisieren der Daten (rsync) vom Backup-Container (Anwendungsserver) zum Backup-Server.
  2. Rsnapshot wird durch eine Cronjob-Logik ausgelöst, um die verschiedenen Aufbewahrungskonfigurationen einmal pro Tag, Woche und Monat auszufĂŒhren.
  3. Eine Docker-Applikation wird mit den korrekt angegebenen Backup-Parametern gestartet und wird diese Daten vom Backup-Server rsyncen, bevor die Applikation startet.

Die Daten, die wiederhergestellt werden sollen, können im Docker-Container von JIRA/Confluence und PostgreSQL konfiguriert werden. Wenn das aktuellste Backup benötigt wird, können die Zielordner des rsync-Backups angegeben werden. Wenn jedoch Daten eines Àlteren Backups wiederhergestellt werden sollen, benötigen wir hier den richtigen rsnapshot-Pfad.

Managed Atlassian Hosting

Reduzieren Sie die BetriebskomplexitÀt und vereinfachen Sie den Betrieb Ihrer Atlassian-Produkte wie Confluence, Bitbucket und Jira.

Lizenzmanagement

Subscribe To Our Newsletter

Get updates and learn from the best

Weitere Blog-BeitrÀge

Atlassian Hosting
Atlassian

Atlassian Hosting: Technische Herangehensweise

Es gibt etliche Möglichkeiten von Atlassian Hosting. Server, Data Center oder auch direkt in der Atlassian Cloud. Eine dieser Möglichkeiten ist es Atlassian Software

Better Call Xalt

Unsere UnterstĂŒtzung

Wir haben Ihr Interesse geweckt? Zögern Sie nicht, mit uns in Kontakt zu treten. Sie erreichen uns per Telefon, E-Mail oder in unserem BĂŒro.

Dr. Veronika Traidl

Veronika Traidl

Tomannweg 3, 81673 MĂŒnchen

Einkaufskorb