Atlassian Hosting: Technische Herangehensweise

Atlassian Hosting

Beitrag teilen

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

Das k├Ânnte dich auch interessieren

Philip Kroos 2023-09-22
0

Confluence Whiteboards (beta) – Das Ende von Miro?

Einf├╝hrung Stellen Sie sich Folgendes vor: Sie befinden sich in einer virtuellen Besprechung, Ihr Team

Atlassian
Mario Schaefer 2023-08-22
0

Jira vs Jira Service Management vs Jira Work Management

In der schnelllebigen digitalen Welt von heute ist effektives Projektmanagement der Grundstein f├╝r erfolgreiche Gesch├Ąftsabl├Ąufe.

Atlassian
Mario Schaefer 2023-07-06
0

Ein Vergleich beliebter Container-Orchestrierungs-Tools

Table Of Contentsshow├ťberblick: Tools f├╝r die Container-OrchestrierungErl├Ąuterung der g├Ąngigen ToolsKubernetesWarum ist Kubernetes so beliebt?Anwendungsf├ĄlleVergleich mit

DevOps
Einkaufskorb
Wissensmanagement mit Confluence

Webinar

Wissensmanagement mit Confluence

Erfahre mehr ├╝ber Wissensmanagement, Confluence und wie du Knowhow in deinen Unternehmen nachhaltig bereitstellst und nutzbar machst.

B/S/H

Die BSH Hausger├Ąte GmbH ist der gr├Â├čte Hersteller von Haushaltsger├Ąten in Europa und eines der weltweit f├╝hrenden Unternehmen in dieser Branche.

Projekte & L├Âsungen