• Thursday, 24. April 2025 15:22

Umstellung auf Docker geplant

Marcel
3 Comments

Wir stellen bald vollständig auf Docker um!

Da ich aktuell an einen neuen Webserver auf Basis von Docker-Containern arbeite und diese kontinuierlich erweitere ist es eine Frage der Zeit wann es auch Civitas erwischt.. der Dev-Container steht und ist grad noch in der Testphase.

Hinweis: Der Webserver über Docker basiert aktuell auf 4 Container: load-balancer, nginx1, nginx2 & nginx-backup

Vorteile:

- Der neue Webserver wird über einen eigenen load-balancer gesteuert, welcher 3 Webserver im Hintergrund bedient also einen nginx1, nginx2 & nginx3 (Als Backup) -> Sprich alle Anfragen an den Server werden über den von mir entwickelten Load-Balancer empfangen und an die Backend-Server NGINX1, NGINX2 über Round Robin verteilt. Sollte einer der Container überlastet sein oder in einer gewissen Zeit nicht antworten tritt NGINX3 in Kraft und übernimmt die Aufgaben. Alle weiteren Anfragen werden dann an die entsprechenden Services bzw. Container weitergeleitet wie z.B. den Uploader, der seit dem 01.03.25 auch auf Docker basiert aber über einen anderen compose bereitgestellt wurde. 

- Wir brauchen zukünftig nur 3 Abhängigkeiten auf einem Host-Server um die Dienste bereitzustellen, da die Docker-Container die Abhängigkeiten schon mit sich bringen. (Wenn richtig konfiguriert :D)

- Der Container bzw. die Website kann über jeglichen Host verfügbar gemacht werden, wenn Docker installiert ist (Heutzutage nicht mehr wegzudenken)

Nachteile: 

- Sollte eine Fehlkonfiguration über GIT bereitgestellt werden und diese auf dem Hauptsystem gepullt und ausgeführt werden, sind alle Dienste nicht mehr erreichbar. (Hier gilt besondere Vorsicht in der Entwicklung)

- Das Verhalten über Container ist leider nicht immer das selbe wie nativ.. deswegen gibt es besondere vorkonfigurationszeiten um diese Probleme auszumerzen.

Fazit:

Wenn die Container richtig konfiguriert und bereitgestellt wurden, gibt es keine vermerkbaren Änderungen.

Eine Vorkonfiguration mit Testphasen ist äußerst wichtig!

Die Container sind so konfiguriert, dass sie nach einem Absturz sofort wieder gestartet werden, um die Ausfallzeit so gering wie möglich zu halten.

Sobald wir live umstellen, geben wir euch natürlich bescheid :) 

Hintergrund: Ich baue mir grad einen Kubernetes-Cluster auf, welcher alle meine Webprojekte und auch Kundenprojekte als Docker-Container übernehmen und replizieren soll, welche dann gleichermaßen von den Servern & der Performance profitieren können. (Sind halt mehrere verteilte Pods in ganz DE und Standortunabhängig -> Fällt ein Pod aus, übernimmt das Duplikat innerhalb von 5 Sekunden an einem anderen Standort)

Aber wer weiß wie viele Leute es noch interessiert..


LG Marcel

Comments

Marcel
,
Achja und als Ergänzung: Der Cluster läuft stabil und der Failover bei einem Ausfall eines nodes funktioniert auch zuverlässig. Sobald einer ausfällt, werden betroffene Container auf einen der anderen nodes neu erstellt und direkt bereitgestellt.

Aktuell haben wir bei den Containern eine Ausfallzeit von höchstens 5 Sekunden, wenn das überhaupt geschafft wird.

Ich werde aber bald noch einen weiteren node außerhalb meiner firewall einfügen und muss noch ein s2s-vpn einrichten damit der reverse_proxy die Umleitungen auch innerhalb meines Netzwerkes erkennt.. das steht grad leider noch aus. Aber wenn das erledigt ist kann ich den CIVITAS-Dev-Container von dem Standalone-Server auf den Swarm-Server überspielen und ausgiebig testen.. bei Swarm verhält sich leider alles etwas anders als bei Docker compose auf einem Standalone-Server -.-

Aber shit happens.. keine Herausforderung = Kein Leben :D


Marcel
,
Hallo lieber Arturschik,

freut mich das du den Weg zu uns gefunden hast :) Tut mir leid das es im TS etwas ruhig geworden ist, aber wir überlegen, diesen bald wieder öffentlich verfügbar zu machen (Zumindest für den Zugang ins TS, die Channel darunter sind natürlich Rollenbasiert)

Aber zum wesentlichen: Schöne Hobbys? :D Die meisten hassen mich dafür und können es nicht verstehen^^ Aber mache dein Hobby zum Beruf habe ich mir gesagt xD

Es ist vorerst übrigens ein Docker Swarm Cluster geworden. Für Kubernetes muss ich erstmal warten bis meine Verträge auslaufen und vermehrt neue kleine Server aufsetzen kann^^

Anbei ein meine Übersicht zur "zurechfindung":
image

Ich hoffe das es bald aber wieder mehr wird.

LG Marcel


Arutar
,
doch mich interessierts noch lieber marcel und ich freue mich das du so schoene hobbys hast

lg Arturschik