Direkt zum Inhalt
Bild
banner1.jpg

Optimierung Ihres umfangreichen Drupal-Systems: Gründe und Vorgehensweise

AI-Translated
article publisher

Akshita

Drupal

Das alte Sprichwort „Einigkeit macht stark, Zwietracht macht schwach“ gilt nicht für moderne Webanwendungsarchitekturen.

Bei der Entwicklung einer Unternehmensanwendung kann die Architektur unter ihren verschiedenen Merkmalen ein monolithisches System berücksichtigen, das in der Hoffnung eingesetzt wird, die Informationen reibungslos und ohne mögliche Unterbrechungen zu verarbeiten.

Bietet eine monolithische Architektur eine reibungslosere Nutzung, wenn die Komplexität der Technologie zunimmt, da eine logische Komponente den verschiedenen Funktionsbereichen der Anwendung entspricht?

ein großer Fisch hinter einer Gruppe kleiner Fische und eine Gruppe kleiner Fische in der Form eines Fisches hinter dem großen Fisch


Monolithisch ist langweilig, während Microservices voller Möglichkeiten stecken

Mit der zunehmenden digitalen Transformation und den Auswirkungen auf den gesamten Geschäftsbetrieb ist der Übergang von monolithischen zu Microservices ein Paradigmenwechsel in der Art und Weise, wie Unternehmen die Softwareentwicklung angehen.

Das monolithische System verstehen

Ein monolithisches System ist eine einschichtige Softwareanwendung, bei der die Benutzeroberfläche und der Datencodes in einem einzigen Programm auf einer einzigen Plattform kombiniert werden. Die verschiedenen Komponenten laufen im selben Prozess auf demselben System.

Bei einer monolithischen Architektur sind die verschiedenen Schichten der Anwendung eng miteinander verbunden.

Normalerweise gibt es drei Komponenten in einem System: die Benutzeroberfläche, die Datenzugriffsschicht und den Datenspeicher.

Die Benutzeroberfläche dient als Einstiegspunkt der Anwendung, der von der Website, dem Webdienst oder verschiedenen anderen Einstiegspunkten variiert.

Die zweite Schicht ist die Datenzugriffsschicht, in der die Schicht des Programms einen Datenspeicher umschließt. Sie kümmert sich um Belange wie die Authentifizierung mit einem Datenspeicher und die Bereinigung von Daten, bevor sie an den Datenspeicher übertragen werden.

Die dritte Schicht ist die Datenbank oder der Datenspeicher, der der grundlegendste Teil des Systems ist und für das Speichern beliebiger Informationen (Daten) und deren Abrufen verantwortlich ist.

eine große Box auf der linken Seite mit einem Pfeil in der Mitte und 4 kleine Boxen auf der linken Seite

Zusammen bilden diese drei Komponenten eine Anwendung. Im Falle einer monolithischen Anwendung sind die verschiedenen Schichten der Anwendung eng miteinander verbunden.

Einschränkungen einer monolithischen Drupal-Architektur

Die Hauptprobleme, die eine monolithische Architektur sowohl aus Geschäfts- als auch aus Endanwendersicht beeinträchtigen, sind die folgenden:

  1. Leistungseinbußen: Einer der Hauptgründe, warum die Leute auf monolithisch umsteigen, ist die schwere Last, die es trägt, was letztendlich die Leistung beeinträchtigt. Kontinuierliche, rechenintensive Cronjobs und On-Demand-Berechnungen auf der Seite Anfrage durch den Endbenutzer beeinträchtigen die Geschwindigkeit.

    In monolithischen Systemen werden alle Berechnungen vom PHP-Code übernommen. Und das schadet dem Geschäft.
     
    • Es wird mit der Zeit schwer zu warten, da jede neue Bereitstellung das gesamte System beeinträchtigt, was eine umfassendere Regression erforderlich macht.
       
    • Die Leistung von Seiten und die Inhaltsbereitstellung für Benutzer leiden unter der spontanen, rechenintensiven Berechnung.

      In den meisten Fällen, wenn es schwierig ist, Monolithen zu verwalten, befindet sich das System bereits auf einem mehrschichtigen System oder befindet sich möglicherweise darauf, diese sind jedoch nicht unabhängig und asynchron voneinander. Dies ist das Problem bei großen Drupal-Systemen.
       
  2. Schlechte Benutzererfahrung: Die schlechte Implementierung der Präsentationsschicht einer monolithischen Drupal-Website ist ein weiterer Hauptgrund für die schlechte Benutzererfahrung und die Minderleistung von Anwendungen.

    Einige der schlechten Praktiken in der Drupal-Themeschicht, die die Rendering-Zeit von Seiten erhöhen, können wie folgt aufgelistet werden:
     
    • Datenbankaufrufe sind auch in der Themeschicht vorhanden, anstatt sich in Controllern zu befinden, was die Seitenladezeit erhöht.
    • Verwendung von traditionellem und nicht optimiertem Code in Javascript & CSS.
       
  3. Nicht skalierbare Drupal-Implementierung: Drupal ist skalierbar. Aber der Ansatz, der für die Feature-Implementierung in Drupal verwendet wird, ist mit monolithischen Systemen nicht skalierbar.
     
    • Die unsachgemäße Verwendung von Drittanwendungen im Backend in Verbindung mit einer starken Abhängigkeit von Cronjobs kann das System verlangsamen. Ein fortschrittlicher Ansatz wäre, die Drittanbieter-API über Drupal abzurufen und zu rendern.
       
    • Die äußerst minimale Verwendung des mehrschichtigen Cache-Mechanismus von Drupal 8 ist der größte Übeltäter.
       
  4. Fehlende DevOps & Automatisierung: Genau wie Continuous Integration, Delivery und Deployment ist DevOps ein neueres Phänomen. Wenn eine monolithische Anwendung ausgeführt wird, erlaubt der DevOps-Prozess keine ordnungsgemäße Zusammenarbeit, da sich schlechter Code in die Architektur einschleicht, was zu einer schlechten UX führt.
     
    • Es gibt keinen Continous Integration basierenden Build-Prozess, der eine Reihe automatisierter Qualitätsprüfungen ausführt.
    • Die Regression in der aktuellen Site ist aufgrund fehlender Automatisierung in Code- und Funktionstests eine sehr hektische und kostspielige Angelegenheit.
Boxen auf der linken und rechten Seite horizontal angeordnet

Was sind Microservices?

Ein Microservice ist eine Softwareentwicklungstechnik, bei der die Anwendung (monolithisch) in Sub-Services unterteilt wird, die lose miteinander gekoppelt sind. Jeder Dienst ist unabhängig vom Hauptsystem. Zusammen bieten sie einen Wert, der dem eines monolithischen Systems entspricht.

Microservices-basierte Architekturen ermöglichen eine einfache Continuous Delivery und Continuous Deployment.

Die Vorteile der geschichteten Architektur von Microservices

Hier sind die Gründe, "warum" Microservices anstelle des monolithischen Drupal übernommen werden müssen:

  1. Fehlerisolation: Da die Dienste unabhängig voneinander laufen, würde ein Ausfall eines Dienstes die Gesamtleistung des Systems nicht so stark beeinträchtigen wie in monolithischen Systemen. Andere Dienste funktionieren weiterhin, was den Umfang des zu refaktorierenden Codes für die Lösung begrenzt.
     
  2. Unabhängige Bereitstellung: Als Microservices erstellte Komponenten können in mehrere Komponentendienste unterteilt werden, sodass jeder dieser Dienste unabhängig voneinander mit Verbesserungen bereitgestellt und erneut bereitgestellt werden kann, ohne die Integrität einer Anwendung zu beeinträchtigen.
     
  3. Einfache Wartung: Microservices erfordern im Vergleich mehr Aufwand für die Erstellung, sind jedoch langfristig viel weniger aufwändig in der Wartung und gewährleisten eine bessere Leistung des Gesamtsystems.
     
  4. Einfache Modifikation: Leicht zu verstehen, da sie ein kleines Stück Funktionalität darstellen, und leicht für die Entwickler zu modifizieren. Dies erhöht auch die Autonomie einzelner Entwicklungsteams innerhalb einer Organisation, da Ideen implementiert und bereitgestellt werden können, ohne sich mit einer breiteren IT-Bereitstellungsfunktion abstimmen zu müssen.

Lesen Sie, wie Microservices die Drupal-Entwicklung antreiben

Erkundung der MicroServices-Architektur

Das folgende Diagramm erläutert die ideale Schichtung in der Anwendung eines monolithischen Drupal-Systems:

ein Flussdiagramm mit vier blau umrandeten Boxen auf der linken Seite und parallelem Text auf der rechten Seite

 

  • Präsentationsschicht: Dies sollte eine Kombination aus Drupal und entkoppelten React-Apps sein.
     
  • Aggregationsschicht: Dies sollte Drupal sein, das den Kern der Anwendung bildet und mit Microservices und Datenspeicherschichten interagiert.
     
  • Business Logic Layer: Dies sollten Node.js-basierte Dienste sein, die bestimmte Aufgaben ausführen.
     
  • Persistenzschicht: Dies sollte der primäre Speicher der wichtigsten Unternehmens- und Produktionsdaten sein. Dies interagiert mit Drupal, um CRUD-Operationen in Echtzeit zu verarbeiten. Dies interagiert auch mit entkoppelten React-Apps auf der Präsentationsschicht, um ihnen zu helfen, die Daten im Frontend ohne teure Drupal-Aufrufe oder PHP-Ausführung im Backend zu rendern.

Schritte: So planen Sie den Übergang und die Ausführung zu einer monolithischen Architektur

Der Übergang von einer aktuellen monolithischen Architektur zur geschichteten Microservices-Architektur kann schrittweise erfolgen. So kann der Plan ausgeführt werden:

  1. Identifizieren der Geschäftslogik für Komponenten wie Vermerke, E-Mail-Trigger und alle anderen Berechnungen und Prozesse, die die Bereitstellung von Seiten für den Endbenutzer blockieren.
     
  2. Erstellen Sie unabhängige Node.js-basierte Dienste, die die gesamte Logik für die oben genannten Prozesse verarbeiten, die über Messaging-Warteschlangen miteinander kommunizieren und über einen Push-basierten Cronless-Mechanismus mit Drupal kommunizieren.
     
  3. Erstellen Sie einen Datenspeicher. Drupal überträgt jede Änderung in diesen Entitäten in Echtzeit an den Cronless-Mechanismus.
     
  4. Verwenden Sie progressiv entkoppeltes Drupal für den folgenden Zweck, der in seinem Umfang begrenzt ist.
    Für die Präsentationsschicht
     
    • Für Benutzer-, Rollen- und Abonnementverwaltungssystem
    • Zum Verwalten von entkoppelten React-basierten Seiten und Blöcken für die Suche, die von einem unabhängigen Elastic Service unterstützt werden.
    • Zum Verwalten von entkoppelten React-basierten Seiten/Blöcken, die Daten auf skalierbare und schnelle Weise aus dem Cronless-Datenspeicher abrufen.

      Für CMS-Funktionen wie SEO, Schema, statische Seiten, CCMS-Integration usw.
       
  5. Entwickeln Sie die Drupal-Themeschicht neu, um alle schlechten Praktiken in der aktuellen Codebasis zu entfernen.

Fazit

Webanwendungen müssen sich mit dem rasanten Tempo der Technologie und ihren Benutzern weiterentwickeln. Digitale Benutzer erwarten mehr in Bezug auf bessere Inhaltsempfehlungen und bessere Möglichkeiten für den Zugriff auf Websites und Daten.

So einfach die Idee klingt, so komplex ist der Aufbau von Microservices. Die Straffung des gesamten Anwendungsentwicklungslebenszyklus, um häufige Releases und QA zu fördern, kann zu einem weitaus besseren Produkt führen.

Dies gibt einen Schub bei der Verwaltung eines großen Drupal-Systems. Kontaktieren Sie uns unter [email protected], um mehr über Microservices-Architekturen und ihren Wert für Ihre Unternehmensorganisation zu erfahren.

Abonnieren

Ready to start your digital transformation journey with us?

Verwandte Blogs

Zurück von der DrupalCon Atlanta 2025: Ein Meilenstein für OpenSense Labs

DrupalCon Atlanta 2025 OpenSense Labs

„Fit. Schnell. Für die Ewigkeit gebaut.“ Das war nicht nur ein Slogan, sondern die Denkweise, mit der wir zur DrupalCon…

Erklärbare KI-Tools: SHAPs Stärke in der KI

Explainable AI tools Explainable AI And SHAP OpenSense Labs

Wissen Sie, was erklärbare KI-Tools sind? Erklärbare KI-Tools sind Programme, die zeigen, wie eine KI ihre Entscheidungen…

KI-Chatbots: Präzision und Persönlichkeit in Perfektion

Creating AI Chatbot OpenSense Labs

In der Welt der künstlichen Intelligenz ist die Entwicklung eines KI-Chatbots, der nicht nur akkurate Informationen liefert…