stabile, aktuelle, kostenlose Einzelsystem-Image-Lösung für Linux

stabile, aktuelle, kostenlose Einzelsystem-Image-Lösung für Linux

Ich habe begonnen, mich mit der Erstellung eines virtuellen Servers mit Lastausgleich zu befassen, auf dem hauptsächlich Webdienste, Projektmanagementdienste (Versionskontrolle usw.) und Anwendungen dieser Art ausgeführt werden. Und ich brauche eine Open Source-Lösung (Linux).

Wikipedia hatdieser EintragEs gibt scheinbar sehr vielversprechende stabile Projekte, aber die meisten sind schon lange tot.ICH GEGENUndKerrighedscheint möglich, aber ich bin nicht sicher. Lohnt sich die (zeitliche) Investition?

Was wäre eine gute Lösung? (Obwohl ich mir keine kommerzielle Lösung (Linux oder andere) leisten kann, würde ich gerne mehr über diese Alternativen erfahren und bin für entsprechende Kommentare dankbar.)

Danke

Antwort1

Es sieht so aus, als würden Sie versuchen, das Problem auf der falschen Ebene zu lösen. Ich kenne keine vernünftige Systemadministration, die versuchen würde, Single System Image zum Ausführen eines Webservers zu verwenden, wenn es andere Methoden gibt, wie z. B.Reverse-Proxysdie viel einfacher und damit zuverlässiger sind.

Wie zum Beispiel:

Antwort2

Sofern ich die Frage nicht völlig falsch verstehe, würde ich sagen, dass Sie beim Hosten von Webanwendungen den falschen Ansatz verfolgen.

Ich würde vorschlagen, mehrere Knoten (virtuell oder physisch) zu haben und ihre Konfiguration mit zu verwaltenMarionette.

Ihre Knoten könnten ein ganzes Rack mit 1U-Servern oder eine Reihe leistungsstarker 3U-Multiprozessorserver sein, auf denenKVMund dann ein Betriebssystem Ihrer Wahl als Virtualisierungsgäste.

Bei 4 Servern könnten Sie diese wie folgt einrichten:

  • Server 1: Load Balancer + HTTP-Knoten (mit Varnish und Apache)
  • Server 2: Load Balancer + HTTP-Knoten (mit Varnish und Apache)
  • Server 3: HTTP-Knoten + DB-Master (mit Apache und MySQL)
  • Server 4: HTTP-Knoten + DB-Slave (mit Apache und MySQL)

Es wäre von Vorteil, einen fünften Server zu haben, auf dem Dienste wie Nagios, Munin, TFTPD für eine PXE-Boot-Umgebung, ein kleiner HTTP-Server für Kickstart-/Preseed-Dateien, ein DHCPd und möglicherweise serielle Konsolen über einen Rocketport oder ähnliches ausgeführt werden.

Der große Vorteil der Verwendung von Puppet zum Bereitstellen eigener Systeme gegenüber einem einzelnen Image besteht darin, dass die Ressourcen praktisch selbstdokumentierend sind. Es ist viel klarer und weniger Blackbox, als wenn Sie einfach ein Image auf Server ziehen. Außerdem sind Aktualisierungen und Änderungen am Image dadurch viel einfacher.

Antwort3

Ich bin nicht sicher, ob ich Ihre Frage beantworte, aber wenn Sie nach einer Möglichkeit suchen, eine VM zu spiegeln, können Sie alle mir bekannten kostenlosen Virtualisierungstools verwenden (VMware Server, ESXi, kvm usw.).

  • Erstellen Sie Ihre VM mit allem, was Sie brauchen
  • VM kopieren
  • Änderungen an der Kopie vornehmen (IP-Adresse und Hostname)
  • starte beide VMs
  • Load Balancer einfügen (Hardware oder Software, egal)
  • .. mir fällt kein 6. Schritt ein :)

Antwort4

So aufregend SSI auch klingt, es ist ziemlich unwahrscheinlich, dass sie optimal funktionieren.

Da Ihr Hauptziel Web-Apps sind, können (sollten!) Sie die aktuellen Best Practices verwenden. Normalerweise beginnen diese mit:

  • ein Caching Load Balancer als Frontend (Squid, Varnish, Nginx)
  • mehrere HTTP-Server für Webanwendungen (normalerweise Apache, möglicherweise Nginx+FastCGI, was auch immer)
  • Datenbank

Wenn Sie alles richtig machen, ist Ihr erster Engpass die Datenbank. An diesem Punkt sollten Sie:

  • Fügen Sie Ihren Webanwendungen Cache hinzu, um Datenbankzugriffe auf ein Minimum zu reduzieren. (Moderne Frameworks (RoR, Django) bieten hervorragende Unterstützung für Memcached.)
  • Übernehmen Sie einige Aufgaben aus der Datenbank in spezialisiertere Anwendungen. Die ersten Kandidaten sind Task-Warteschlangen (für rabbitMQ oder ähnliches) und Schlüssel-/Wertspeicher (für Tokyo Cabinet, Resis, MongoDB und viele mehr).
  • Verteilen Sie die Datenbank. Wenn viele Lesevorgänge und wenige Schreibvorgänge stattfinden, versuchen Sie es mit Master/Slave-Replikation (einfach bei MySQL). In diesem Fall sollte Memcached jedoch bereits den Großteil der Last absorbiert haben. Versuchen Sie es auch mit Sharding.

Wenn Sie jemals darüber hinauswachsen (sind Sie Facebook?), müssen Sie Ihre gesamte Struktur überdenken, à la Google (wo sie fast alles „offline“ mit MapReduce erledigen).

verwandte Informationen