Proxmox Best Practice für kleines B2B SaaS

bluepuma77

Member
Oct 12, 2020
4
0
6
47
Hallo zusammen,

wir sehen mit unserem kleinen B2B SaaS gerade etwas Wachstum und ich wollte unsere IT Infrastruktur modernisieren. Ein Freund mit wesentlich mehr Traffic schwört seit Jahren auf Proxmox, deswegen wollte ich mir das mal im Detail anschauen. Kubernetes hatte ich mir vor Jahren zu Anfang mal angeschaut, war viel zu kompliziert und ist heute für uns vermutlich immer noch over-engineered. Docker Swarm habe ich kurz getestet, es gab immer wieder Netzwerk-Probleme, daher sind wir zur Zeit sehr händisch unterwegs.

Aktuelle Architektur (Bild anbei):
- eine Subddomain pro Kunde
- eine Floating IP für alle Domains
- zwei haproxy Server, einer im hot-standby
- drei App-Server, jeweils eine Docker-Instanz für jede Subdomain auf einem Port
- drei Datenbank-Server

Zur Zeit ist das ganze eher eine Manufaktur:
- Floating IP müsste bei Ausfall per Hand umgeschaltet werden
- neue Subdomains müssen im DNS und haproxy eingetragen werden
- jede Docker Instanz bekommt Ihr eigenes Start-Script mit DB-Credentials und Port auf allen drei App-Servern

Etwas mehr Kontext:
- Wir haben zur Zeit 20 Kunden, möchten auf 100 wachsen
- Traffic ist eher vernachlässigbar, zu normalen Büro-Öffnungszeiten
- Aktuell 8M Requests, 3GB Daten pro Tag über haproxy, die Hälfte davon statisch
- Das System läuft seit 5 Monaten super stabil, noch nie ein Service abgestürzt
- Die drei App-Server sind nicht ausgelastet, bei mehr Kunden braucht es ein Container-Verteil-Konzept
- Alle Server sind Bare Metall, haproxy läuft direkt und die DB als einzelner Container auf den Maschinen

Meine Fragen sind größtenteils zur Best Practice mit Proxmox:
1. Kann Proxmox die Failover-IP automatisch umstellen?
2. Wie würde man das Mapping "Subdomain->Service" mit Proxmox realisieren?
3. Bringen separate IP-Adressen pro Kunde dabei einen Mehrwert?
4. Kann ich weiter nur Container nutzen oder sollte/muss ich auf VMs umsteigen?
5. Sollte man aus den App-Servern und DB-Servern jeweils einen Cluster bilden?
6. Übernimmt Proxmox auch eine (Um-)Verteilung von Containern bei mehr Last?
7. Können Container-Tools wie Portainer eine sinnvolle Ergänzung sein?

Viele Fragen und viele Grüße :)
bluepuma
 

Attachments

  • IT-Architecture-2020.png
    IT-Architecture-2020.png
    276.1 KB · Views: 16
Meiner Meinung nach kommen hier ein paar Dinge zusammen, welche aber getrennt zu betrachten sind.

1. bis 3. betrifft Netzwerkanbindung, Routing etc.
Dafür kann eine entsprechende Struktur auf Proxmox gebaut werden.
Z.B. mit Router/ Loadbalancer VM's.
Diese stellen dann für den Traffic die "Strassen" zur Verfügung.

4. und 5. sind abhängig von den Anwendungen zu klären und auch davon, wie flexibel es werden soll.
Auch hier kann Proxmox die "Bauplätze" bereit stellen.
Clustering wird aber durch die darauf hochgezogenen Gebäude erstellt, nicht durch die Bereitstellung der Bauplätze.

6. Proxmox im Verbund kann HA und Live-Migration. Es kann aber keine Lastverteilung im Sinne "auf vm002 ist die CPU-Last zu Hoch, verschiebe nach Node003" Dafür braucht es passendes Monitoring und Software.

Prinzipiell ist Proxmox ein Virtualisierer, welcher via HA etc. ein "Gelände" bereitstellen kann, welches hochverfügbar und verteilt zur Besiedelung einlädt.
Was die Siedler und wie darauf tun, dazu braucht es weitere, zusätzliche Mittel.
 
@gmed Danke für Deine Antwort.

Ich komme aus der Docker-Welt, kenne Docker Swarm. Mit Swarm erfolgt das LB automatisch, ich brauche keinen separaten LB. Zusätzlich habe ich einiges über Nomad und die Load Balancing Konzepte gelesen (HAProxy, NGINX, Traefik oder FabioLB). Klingt praktisch wenn ein Service gestartet wird und sich automatisch beim LB mit Subdomain registrieren kann.

Mir ist noch nicht klar was Proxmox genau macht.

1. Kann Proxmox LB auf IP-Basis mit Möglichkeiten wie Round-Robin analog zu haproxy?

"configuring high availability between servers"

2. Oder fährt es einfach nur ausgefallene VMs/Container wieder hoch?

"The resource manager, called Proxmox VE HA Manager, monitors all VMs and container in the whole cluster and automatically gets into action if one of them fails"

3. Brauche ich nicht eine Failover-IP gegen SPOF? Oder übersehe ich etwas? Wie kann ich eine Failover-IP ansteuern? Gibt es Plugins?

"HIGHLY AVAILABLE (HA) CLUSTER - No single point of failure (no SPOF)."
 
Hi,

Docker kann auch nicht "automatisch" Loadbalancing, sondern es müssen entsprechende Container oder externe Geräte zur Synchronisierung und Überwachung verwendet werden.

Und genaus so verhält es sich in Proxmox oder jeder anderen Virtualisierungslösung auch.
Ein Vorteil bei der Verwendung von Virtualisierung an Stelle von Containern a la Docker ist, dass die benötigten Dienste ganz klassisch auf einzelne VM's aufgeteilt werden können. Damit entfällt das Beachten der Abhängigkeiten einzelner Docker-Container untereinander, damit alles läuft.

Nachteilig ist halt, dass eine parallele oder redundante Nutzung bei VM's nicht geht.

Danach braucht es für 1. ; eine redundante Netzwerkanbindung, welches für's Clustering auch vorausgesetzt wird. DIese wird direkt von Proxmox verwaltet und überwacht. Fällt demnach eine Strecke aus, wird automatisch auf eine andere gewechselt.

Punk 2. ist ebenfalls mit dabei. HA-VM's können live auf allen Nodes eines Clusters migriert und betrieben werden.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!