Ankündigung

Einklappen
Keine Ankündigung bisher.

Framework/CMS oder selbst machen

Einklappen

Neue Werbung 2019

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

  • Framework/CMS oder selbst machen

    Hallo,

    gibt es kein Framework/CMS, das für größere Projekte gedacht ist, die mehrere Server benötigen (MySQL Replikation)?

    Ich habe jetzt drei Wochen mit dem Zend Framework verbracht und mußte so ziemlich alles umschreiben, damit es nur annähernd brauchbar war und bin dann trotzdem in Sackgassen gelandet, weil ich das Framework noch nicht in und auswendig kannte.

    Drupal6.6 bietet leider auch keine Unterstützung für Replikation, das wird erst 7.0 können, aber die ist noch im Alpha Status.

    Ich brauche unbedingt:
    - MySQL Replikation (Master/mehrere Slaves)
    - Unicode/Internationalisierung
    - Google optimierte Links
    - Smarty Template Engine Unterstützung

    und dann wäre es schön, wenn man grundlegende CMS Funktionen hätte.

    Vielen Dank!
    root66

  • #2
    Hallo root66,

    um dir wirklich eine fundierte Antwort geben zu können, ist ein wenig mehr Hintergrundwissen zu deinem Projekt norwendig. Meine Fragen dazu:

    * Warum braucht es Replikation? Tut es nicht auch ein NDB-Cluster oder eine active/passive Cluster-Konfiguration (z.B. mit dem RedHat rgmanager)
    * Bist du an Smarty gebunden? Andere Template-Mechanismen sind hier deutlich besser.
    * Was sind für dich grundlegende CMS-Funktionen?
    * Warum assoziierst du mit größeren Projekten mehrere Server?

    Sofern du an einem Framework interessiert bist, kannst du dir mal Why APF? :: Adventure PHP Framework (APF) ansehen. Deine Anforderungen finden sich hier IMHO 1:1 wieder und ist so aufgesetzt, dass es ohne Probleme auf einer Cluster-Infrastruktur betrieben werden kann.
    Das Thema Replikation/Cluster ist dabei nicht enthalten, das ist schließlich auch ein Infrastruktur-Thema.

    Kommentar


    • #3
      Ich habe drei Jahre mit dem MySQL ndbCluster gearbeitet und hatte häufig totalen Datenverlust, oder einfache WHERE xxx OR yyy Abfragen dauerten z.B. 30 Sekunden (Cluster-Bauartbedingt), während es lokal nur 0.0x Sekunden dauerte.

      Ich möchte ein Social Network entwickeln und will nicht erst anfangen, mir über Skalierbarkeit Gedanken zu machen, wenn der erste Server voll ausgelastet ist.

      Smarty ist mir und besonders den Webdesignern, mit denen ich zusammenarbeite, sehr ans Herz gewachsen. Mit so Sachen wie <? echo $this->view->foo; ?> können die nichts anfangen, von Schleifen ganz zu Schweigen.

      Die CMS Funktionen wären praktisch für Menüverwaltung, die Verwaltung des Design-Rahmens, oder wenn man mal eben eine reine statische Unterseite anlegen möchte.

      Kommentar


      • #4
        Hallo root66,

        für dein Setup schlage ich eine ORACLE RAC-Umgebung vor. Damit bist du insbesondere beim Thema Skalierbarkeit und Datensicherheit auf der sicheren Seite. Die Kosten sind hierbei nicht zu verachten, jedoch bietet ORACLE dir erheblich mehr Features (z.B. offline-/online-Replikation per DataGuard in ein anderes RZ, ...) als Produkte von M$ oder auch Postgres.

        Für die Web- bzw. Applikationsserver-Umgebung schlage ich ein Shared-Root-Cluster vor (siehe Welcome to Open-sharedroot.org &mdash; Opensharedroot Website). Mit diesem kannst du von einem Knoten bis zu n skalieren, ohne weitere Maschinen installieren zu müssen - ganz on demand.

        Was das Thema Smarty angeht, so solltest du es für größere Projekte nicht verwenden, da es keine Möglichkeit der sauberen MVC-Integration bietet und keine hirarchischen Template-Strukturen unterstützt. Um deine Software sauber granulieren zu können, kann ich dir das APF ans Herz legen. Die Syntax ist sicher anders, jedoch durch die TagLibs (wie aus dem Bereich JAVA mit der JSTL bekannt) erheblich mächtiger für den Template-Bauer.

        Die CMS Funktionen wären praktisch für Menüverwaltung, die Verwaltung des Design-Rahmens, oder wenn man mal eben eine reine statische Unterseite anlegen möchte.
        Ein Framework ist kein CMS - und umgekehrt. Aus diesem Grund solltest du abwägen, was du mehr brauchst. Sofern es mehr CMS-Features sind, suche dir ein gutes CMS aus und baue die fehlenden Features dran. Sofern es mehr der Wunsch ist eine Plattform für deine Software-Entwicklung zu haben, die dich auch in deinen Vorhaben unterstützt, dann nimm ein gutes Framework. Aus deinen Äußerungen heraus, würde ich letzteres vermuten.

        Meine Fragen hast du jedoch immer noch nicht vollständig beantwortet.

        Kommentar


        • #5
          Oracle kenn ich noch von früher, dafür ist das Budget aber noch zu klein.

          MySQL ist auch garnicht so ungewöhnlich bei grösseren Seiten (wikipedia, studivz, google). Dort wird auch mit Replikation (Master - Master, Master-Slave) gearbeitet. Es wundert mich, warum die PHP Frameworks das aber alle nicht berücksichtigen und man dann z.B. beim Zend Framework nur zwei Ansätze findet, die in den Kommentaren dann aber als unpraktikabel beurteilt werden.

          Bei Drupal das gleiche, ein sehr angesehendes CMS und beim Googeln findet man dann Blog-Einträge der Drupal-Entwickler, wo man davon berichtet, daß man noch keinen Erfolg hatte, die Replikation in die bestehende Version einzubauen.

          Welche Fragen habe ich noch nicht beantwortet?

          Kommentar


          • #6
            Typo3

            Kommentar


            • #7
              Hallo root66,

              Welche Fragen habe ich noch nicht beantwortet?
              Welche Rahmenbedingungen du wirklich hast. Im letzten Post wird zwar klar, dass es ein großes Projekt mit mittelgroßem Budget ist, wie sich das jedoch genau äußert ist weiter unklar.

              Da du gerne MySQL verwenden willst, NDB aber keine akternative ist, solltest du dir mal Gedanken über ein active/passive-Konstrukt machen (wie oben beschrieben). Da entfällt die Replikation, du hast jedoch trotzdem HA. Alternativ kannst du dir mal MySQL :: DRBD für MySQL-Hochverfügbarkeit ansehen. Dort wird eine HA-Lösung mit DRBD und Replikation beschrieben. Vielleicht ist das ja etwas für den schmalen Geldbeutel.

              Es wundert mich, warum die PHP Frameworks das aber alle nicht berücksichtigen und man dann z.B. beim Zend Framework nur zwei Ansätze findet, die in den Kommentaren dann aber als unpraktikabel beurteilt werden.
              Das hat auch in einem Applikationsframework nichts zu suchen. Wichtig in einem solchen ist nur, dass es dir eine Datenbankschnittstelle bietet, die flexibel mehrere Datenbanken addressieren kann. So kannst du z.B. unterschiedliche Datenbanken innerhalb einer Anwendung nutzen und diese über eine gemeinsame Datenschicht in der Applikation gleichzeitig nutzen. So erhöhst du nochmal die Ausfallsicherheit bzw. Datensicherheit. Nehmen wir an, in einer Datenbank (auf einem Server) sind alle Benutzerrelevanten Daten gespeichert auf der anderen (zweiter Server) alle Objekte deines CMS. So kannst du in deiner Anwendung ganz einfach hergehen und in deiner Business-Schicht zuerst die Daten des aktuell eingeloggten Benutzers selektieren und anschließend mit einer zweiten Methode die Artikel, auf der er Rechte hat. Kombiniert mit ein bischen Caching, ist das mit einem Applikationsframework wie dem APF sehr einfach möglich. Caching kannst du da sogar mit einem Memcached-Server abbilden und gewinnst nochmal zusetzlich an Performance.

              Sofern du die kompletten Anforderungen aufgezeigt hast, kann ich da gerne beratend tätig sein.

              Kommentar

              Lädt...
              X