Homeserver für Enterpriceapplikation

trialgod

Lt. Commander
Registriert
Feb. 2008
Beiträge
1.552
Hallo zusammen

Ich bin Softwarearchitekt/-entwickler und würde gerne bei mir zu Hause ein Projekt entwickeln, welches auf eine hochskalierbare Architektur bauen soll. Dabei werden vermutlich immer mal wieder verschiedene DB Systeme eingesetzt.

Aktuell geplant sind:
  • EventStore DB (braucht guten I/O)
  • InfluxDB oder ggf. Prometheus
  • Grafana
  • wahrscheinlich MongoDB
  • vielleicht ein RDBMS (Postgre/Maria)
  • Kafka/Zookeeper
  • CI/CD Umgebung (hab bisher nur mit TFS gearbeitet, mal sehen welches das hier wird)
  • GIT Server

Das meiste soll erstmal nur auf Docker laufen, evtl. später dann in VMs fest installiert. Welches Betriebssystem ich als Grundlage verwende ist auch noch nicht klar.

Zudem soll die eigentliche Software dann in ein Kubernetescluster deployt werden, und zwar vollautomatisch durch das CI/CD System.

Folgende HW habe ich noch herumliegen:
  • 4x8GB RAM DDR4 2666MHz
  • 2TB WD Blue SATA SSD
  • 1TB HDD
  • MSI X99-A Board (ohne CPU)
  • Radeon HD6950
  • Macho Kühler

Ich könnte mir nun relativ günstig einen 5820k, NT und Gehäuse besorgen und hätte einen laufenden PC. Mit der Graka wird der aber im IDLE wahrscheinlich recht viel verbrauchen. Leider haben die 2011er CPUs ja keine integrierte Grafikeinheit. Wobei der Server sowieso -ausser beim initialen aufsetzen- keine Grafikkarte bräuchte. Würde das denn ohne starten?

Zudem könnte ich so relativ leicht auf 64 oder 96GB RAM upgraden, da das Board ja 8 Slots hat.

Habt ihr vielleicht noch andere Vorschläge oder was denkt ihr so?
 
Netzteil und Gehäuse bräuchtest du ja eh. Und wenn du nun irgendwo günstig einen 5820k bekommst, nimm ihn. Die Alternative wäre ein Ryzen 3600 + Board. Das würde vom Preis des "günstigen" 5820k abhängig machen.

Der große Vorteil bei einem Heimprojekt ist ja, dass du nie die gesamte Infrastruktur auf einmal beanspruchst. Von daher kommt man da auch mit relativ wenig Leistung und Speicher aus. Für die Entwicklung und Test auf Funktionalität reicht's vollkommen aus.

Wenn man in der Produktivumgebung mehr Leistung braucht, bucht man einfach ein paar neue Maschinen dazu und gut ist.
 
  • Gefällt mir
Reaktionen: whats4
Scirca schrieb:
Das beißt sich ein bisschen. Mit deiner Consumer Hardware.

Es geht hier um "infrastrukturunabhängige" Software- bzw. Systemarchitektur. Das soll nur ein Fun-Projekt mit entsprechend realitätsnaher Platform sein. Sollte es einen Produktivdeploy geben, wird das sowieso in die Cloud geschoben.

Die Hardware soll durch VMs/Docker/K8s wegabstrahiert werden. Vermutlich ist selbst der 6-Kerner absoluter overkill für meinen Load.
 
Mir fallen da spontan 3 Optionen ein, die alle evtl. was für dich sein könnten.

1. Mach wie Du selbst schon angedacht hast: NT, Case, CPU holen und deine Reste verwerten.
2. Kauf einen gebrauchten Server, ältere Systeme bekommt man teils für kleines Geld.
3. wenn es nur zu Testzwecken ist, könntest Du auch einfach alles Virtualisieren, der PC in deiner Signatur ist potent genug dafür und würde maximal noch ein RAM Upgrade brauchen.
 
Wenn es "nur" günstig sein soll, kannst du auch bei den unterstützten Xeons schauen, die kleinsten Modelle sind Sechskerner ohne HT oder Vierkerner mit HT soweit ich weiß.
e5-2603 v3 wäre zB 6C/6T mit 1,9Ghz
e5-1620 v3 4C/8T mit 3,5Ghz

Müsstest du dann von der Biosversion des Boards und den Programmen abhängig machen, ob der Takt ausreicht für effektives Arbeiten.

Die "kleinen" Xeons mit niedrigem Takt sind oft relativ günstig zu bekommen.
 
  • Gefällt mir
Reaktionen: trialgod
Die Grafikkarte kannst du idR nach dem Installieren des OS ausbauen. Eventuell musst du im BIOS eine Halt On Error Funktion deaktivieren, damit der bei Fehlern im POST nicht auf ein F1 oä wartet, dann sollte das ganze aber auf jeden Fall gehen.
 
Ich mache das hier jeden Tag, beruflich und privat auch etwas. Wenn Du das über Docker machen willst, solltest Du den Server selbst mit Linux verwenden. Ansonsten mit einen Virtualiserer Deiner Wahl und über eine dicke Linux-VM, die dann dockert. Der Unterbau für die VMs sollte eine SSD oder NVMe SSD sein. Viel RAM und vCPUs ist auch immer gut. Ein 5820k ist etwas dünne, hier würde ich schon mit einem 8kerner mit HT 16 arbeiten. Gerade die oben genannten Tools werden oft in Kombinationen verwendet, und dann laufen dann plötzlich zig Programme mit eigene Datenbanken run. Da kann es doch mal schnell von der Leistung eng werden.

Einen Xeon verwenden ist an sich eine gute Idee. Günstiger sind natürlich aktuelle Ryzen-CPUs der 3xxxer Reihe.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: snaxilian
Hab mir eben auf ebay einen e5-2630v3 mit 8c/16t und 2.4Ghz geschossen. Hat mich 55€ incl. Versand gekostet. Fairer Preis. Jetzt suche ich mir noch jemanden, der ein altes Gehäuse hat und ein Netzteil und schon ist der Server fertig. Mit der NVME kann ich mir das immer noch überlegen, wenn es soweit ist. Das Board unterstützt immerhin 2 davon.

Vielen Dank für den Tipp mit den Xeons. Der war gut!

Welche NT Grösse empfehlt ihr mir? Ich glaube die Radeon hat 2x 6PIN Anschluss, die brauch ich zumindest. Ggf. auch mit Adapter. Würde gerne so niedrig wie möglich nehmen, Last gibt es auf der Graka eh keine. Denkt ihr 350W sind genug?

@PHuV
Ja Linux ist schon klar. Hast du vielleicht einen Tip welche Distri ich für die VMs + Docker/Kubernetes nehmen sollte? Ich wäre mit good old Debian gegangen. Bin kein Linuxpro, hab allenfalls Grundkenntnisse. Und das soll wirklich eher Mittel zum Zweck sein, Infrastuktur finde ich i.d.R. eher so gähn.
 
  • Gefällt mir
Reaktionen: PHuV
Da kann ich dir Proxmox ans Herz legen, basiert auf Debian und bietet ein schönes GUI für die VMs
 
Docker selbst läuft gut unter Debian und Ubuntu. Kubernetes läuft aber besser bei RedHat und CentOS, da es eine wichtige Komponente mit OpenShift ist. Hier gibts ein Problem mit Docker und RedHat, weil die im Streit liegen. Sprich, RedHat und CentOS haben Docker unter einem anderen Fork implementiert, die Komponenten heißen hier anders und arbeiten auch etwas anders.

Generell arbeite ich lieber mit RedHat und CentOS. PostGres mit aktueller Version, welche Python3 unterstützen soll, geht wegen der Pyhton3 Problematik (Debian ist hier im Standard aktueller als RedHat/CentOS) besser auf Debian. Wenn Du irgendwann mal DeepLearing mit Cuda planen solltest, ist hier Ubuntu die bessere Wahl.

@Ebrithil
Ist das nicht kostenpflichtig? Es gibt von VMware ein freie ESXi-Variante, MS Hyper-V ist in der "Konsolenversion" frei, und XCP ist als freie Variante empfehlenswert.
 
Zuletzt bearbeitet:
@PHuV nein, ist OpenSource, wenn man möchte kann man eine Support Lizenz kaufen, ansonsten kostet das garnichts. Habe ich selber am laufen, und das performt absolut Klasse.

Für einen kleine K8S Cluster würde ich https://k3s.io/ nehmen, super easy aufzusetzen und bringt alles mit, das man als Bastler braucht.
 
Ich hab dann halt nur eine Maschine, wo möglich alles drauf laufen soll. Könnt ihr mir nochmal langsam und für doofe erklären was wo drauf muss? :D
 
Ich würde Proxmox als OS installieren, das ist ein VM-Hypervisor.
Da drin dann eine Linux VM (OS quasi egal) als Docker Host. Docker kannst du theoretisch auch direkt auf Proxmox installieren, finde ich persönlich aber "unsauber" den Hypervisor mit Docker "vollzumüllen".

Auf dem Docker Host kannst du dann deine ganzen Services laufen lassen.
Für K8S würde ich eine extra VM anlegen, und dort dann K3S als K8S Distribution laufen lassen.
 
Entweder, Du machst eine Linux-Installation und läßt dann alles darauf laufen. Nicht so optimal.
Besser: Du machst einen Virtualisierer auf Deinem Server drauf. Mit dem läßt Du dann VMs laufen, die Du dann auch entsprechend per Snapshots, Images etc. regelmäßig sichern kannst. Wichtig, immer so eine Sicherung von der betroffenen VM machen, bevor Du ein neues Tool aus Deiner Liste installierst. Das wird Dir wirklich öfters den Hintern retten. Lieber kleine VMs machen oder Microservices bzw. Docker verwenden.
Für die VMs immer als Datenspreicher eine SSD oder NVMe verwenden, und eine dicke HDD als Sicherungsplatte anlegen. Eine VM als Proxy und/oder DNS mit einem eigenen Netzerkbereich anlegen. Dann kannst Du schön auch ein eigenes Netzwerk simulieren, wenn Du mit vielen verbundenen Komponenten arbeitest.
 
Danke für die Antworten. Also ja das Ziel ist, dass alles isoliert läuft. Von Infrastruktur über jeden einzelnen Microservice sollen ein oder mehrere Container oder VMs laufen gelassen werden. Aber ok, dann habe ich das schon +/- richtig verstanden. Danke für euren Support. :)
 
Zurück
Oben