Skip to content

Infrastruktur

Nils Leger edited this page May 20, 2021 · 4 revisions

Continuous Integration Server

nginx Reverse-Proxy

  • Der Reverseproxy hört auf Port 80 (also auf Aufrufe aus dem Browser) und leitet die Aufrufe anhand ihrer URL an den richtigen Server weiter.
  • /jenkins wird auf den Jenkins-Server umgeleitet
  • /nexus wird auf den Nexus-Server umgeleitet
  • Pfad zur Konfiguration: /etc/nginx/sites-available/default
  • Konfiguration bearbeiten: sudo vim /etc/nginx/sites-available/default
  • Jenkins, Nexus und nginx werden nicht als Docker Container betrieben. Eine Umstellung in Zukunft ist jedoch sinnvoll.

Jenkins

  • Pipeline für Client, Process2Text und Text2Process
  • Configuration as Code: Pipeline im Jenkinsfile jedes Projekts definiert
  • Pipelines werden in einem Docker Container ausgeführt. Soll eine andere Maven- oder Java-Version verwendet werden, muss lediglich ein anderes zu verwendendes Docker Image im Jenkinsfile angegeben werden. Zur Ausführung der Container wird der Docker Host des Ubuntu-Servers genutzt, auf dem Jenkins betrieben wird. Dieser Host ist in Jenkins konfiguriert.
  • Die Credentials für Nexus werden mit dem Config File Management verwaltet.

Nexus

  • Aktuell wird die Docker Registry von Nexus nicht genutzt, da zum einen weitere Einstellungen im Reverse-Proxy notwendig sind. Zum anderen stellt DockerHub kostenlos unbegrenzten Speicherplatz zur Verfügung. Außerdem entsteht kein Wartungsaufwand. Deshalb wird die DockerHub Container Registry verwendet.

Docker Registry

Deployment Server

  • Webserver für ältere Versionen der Webservices (Port 8080)
  • Docker für neue Versionen der Webservices (Port 8081 und 8082). Diese Ports sind lediglich die Ports der Docker Container. Die internen Ports der Webservices können der jeweiligen application.properties entnommen werden.
  • Docker-Compose: /usr/local/bin/woped-webservice. Die Version des Docker Images für die beiden Webservices wird über die Datei .env im gleichen Ordner gesteuert.
    Start der Container: sudo docker-compose up -d
    Beenden der Container: sudo docker-compose down
    Log für einen Webservice anzeigen: sudo docker logs p2t oder sudo docker logs p2t
  • Vorgehen beim Deployment einer neuen Version:
  1. Beenden der Container
  2. Version in der .env anpassen
  3. Start der Container
Clone this wiki locally