Systemstruktur

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Systemstruktur

    Hallo zusammen,

    für folgende Aufgabenstellung bin ich momentan auf der Suche nach einer performanten, skalierbaren und zuverlässigen Systemstruktur:

    35 festgelegte Designs, ca. 300 Accounts und jeder Account benutzt eines der 35 Designs, wobei bestimmte Bilder des Designs individuell sind (Headerbilder usw.). Der Inhalt jedes der Accounts soll im CMS-Style gepflegt werden können. Änderungen werden vielleicht 2 x pro Monat pro Account gemacht.
    Hinter dem ganzen soll eine zentrale Benutzerver-Kundenwaltung liegen, wo ich z.B. sage Account XY hat Design 12 oder Account 34 ist gesperrt.

    Folgende Ansätze habe ich bisher:
    - Beim Ändern von Inhalten statische Seiten generieren und in den Account als HTML speichern. Per Apache-Einstellung in den richtigen Ordner leiten
    - Eine "global"-Index, die anhand der URL die Account-Daten ausliest und dann im Template die Pfade zum ordner des Templates mit den Bildern setzen.

    Vielleicht sind es irgendwann auch mal 3000 Accounts! Also die Kundenverwaltung zentral, die Accounts aber vielleicht auf 3 - 4 Server verteilt...

    Weitere Vorschläge, Hinweise, für alles dankbar :-)

    strauberry

  • #2
    Re: Systemstruktur

    Original geschrieben von strauberry
    Vielleicht sind es irgendwann auch mal 3000 Accounts!
    Das System soll also skalieren? Dann zieh es gleich so auf.
    Gar nicht erst mit einer zentralen index.php anfangen sondern die Accounts über die Serverkonfig trennen wie bei Webspace-Paketen.
    Es gibt sicher eine ganze Menge "Provider-Tools" um Kunden zu verwalten und für Neukunden ein Homedir, Datenbankzugang, Serverkonfig usw. anzulegen.

    Die Verteilung auf mehrere Server ist im Idealfall völlig transparent. DB-Replikation, NFS-Mapping der Temp-Verzeichnisse und ein Loadbalaner, der sticky Sessions unterstützt - fertig. Aber wenn du mal einen halben Tag Zeit hast, lies dir ein paar Howtos zu diesem Thema durch. Schadet nicht.

    Kommentar


    • #3
      Hi,

      vielen Dank für die Stichworte! Jetzt weiss ich schon mal, wonach ich googlen muss ;-)

      strauberry

      Kommentar


      • #4
        Sooo :-)

        hab hier mal noch paar Fragen, die mir im Zusammenhang dazu gekommen sind:

        - Wenn ich die DB auf einen eigenen Server lege und von den anderen Servern aus darauf zugreife, ist dass dann unperformant wegen a) ein Server soll alle DB-Zugriffe handeln? Nicht gut oder b) Zugriffe auf die DB andere Server dauert viel zu lange...

        - Ich möchte das jetzt so machen, dass - wie oben schon geschrieben - jeder Account seinen eigenen Ordner bekommt und hier eine index.php drinliegt, die das handelt. Die Template-Dateien kommen aus einem zentralen Ordner, wobei die index.php die entsprechenden Dateien per HTML inluced, also z.B.

        root
        - template_dir
        - account
        - index.php

        HTML in der Ausgabe: img src="../template_dir/image1.gif"

        Gute oder schlechte Idee? So müsste ich auf jedem Server die Templates nur einmal speichern. Die individuellen Template-Dateien wie Header-Bilder usw. würden im Ordner account/images liegen.

        Die Einstellungen zu den Accounts könnte ich per Replikation auf alle Server kopieren. Und die Inhalte usw. würden auch auf dem korrekten Server liegen. Hier ist jetzt nur ein Problem (das einzige eigentlich :-) ): ich möchte einen zentralen Kundenlogin kundenlogin.meinefirmendomain.de, wo die Kunden neben ihren Rechnungen auch die Inhalte der Website ändern können. Die Subdomain liegt jetzt z.B. auf Server A und der Kundenaccount auf Server B. Ist es hierfür ok, eine DB-Verbindung von A auf B zu machen?

        Vielen Dank für euer Feedback!

        strauberry

        Kommentar


        • #5
          Original geschrieben von strauberry
          - Wenn ich die DB auf einen eigenen Server lege und von den anderen Servern aus darauf zugreife, ist dass dann unperformant
          Kann man nicht pauschal beantworten. Wenn 2 Webserver auf einen DB-Server zugreifen, ist das kein Problem. Wenn es 200 sind, ist es eins.
          Aber dir sollte klar sein, dass der DB-Server zum Single Point of Failure wird. Fällt er aus, geht nix mehr.
          Ich würde also auf jeden Fall irgendeine Art von Replikation empfehlen.

          Wie du deine Dateien verteilst, hängt sehr stark von der Anwendung ab, die du planst. Sollen die Kunden z.B. eigenen PHP-Code nutzen können, mußt du jeden in sein Homedir einsperren. Damit schneidest du dir aber auch den Weg zu einem zentralen Templateverzeichnis ab.

          Ich weiß leider nicht genau, wie sich deine Kunden auf die Webserver verteilen soll. Ob es eine feste Zuordnung Kunde -> Webserver geben soll oder nicht. Deswegen kann ich zur Verteilung von Dateien kaum mehr sagen.

          Ist es hierfür ok, eine DB-Verbindung von A auf B zu machen?
          *autsch*
          Wer solche Fragen stellt, braucht kompetente Hilfe für die Konzeption der eigenen Serverfarm. Sonst gehts nach hinten los.

          Kommentar


          • #6
            Hallo,

            in jedem Ordner liegen normale HTML-Dateien (wo Team usw. vorgestellt wird) und max. 3 PHP-Anwendungen: Kontaktformular, Newsletter-Eintragungsformular und aktuelle News. Sonst nichts weiter. Die Daten, die der Kunde selbst pflegen kann, sind über nen WYSIWYG bzw. Plaintext-Editor. Da gibts auch kein CMSScripting usw.

            Ein zentrales Template-Verzeichnis war auch nur um Platz zu sparen. Wenn ich alle Dateien in das eigentliche Verzeichnis kopiere, ist das ja eigentlich auch nicht wirklich per Platz der benötigt wird... und wenn sich am Template mal was ändern sollte, kann ich die ja automatisch kopieren/generieren lassen.

            Wer solche Fragen stellt, braucht kompetente Hilfe für die Konzeption der eigenen Serverfarm. Sonst gehts nach hinten los.
            Da ich das selbst aufbauen möchte, muss ich wohl kompetent werden :-) Hab auch mal nach NFS-Mapping usw. gegoogelt, aber das sind dann ja eher die Feinheiten. Wie man da konzeptionell rangeht weiß ich leider nicht :-( Ich hab auch keine Serverfarm, an der ich üben kann :-). Also wie geh ich da am besten ran?

            VIELEN DANK FÜR DEINE HILFE!!!

            Kommentar

            Lädt...
            X