Direkt zum Inhalt
Bild
blog%20banner%20drupal%20microservices%20opensenselabs.jpg

Die Leistungsfähigkeit der Microservices-Architektur in der Drupal-Entwicklung

AI-Translated
article publisher

Shankar

Drupal

Einer der Gründe, warum die New York Times mit ihrer wachsenden Nutzerbasis Schritt halten kann, ist ihre Neigung zu technologischen Fortschritten. Dies zeigte sich, als sie die Leistungsfähigkeit der Microservice-Architektur über eine umgestaltete Video-Publishing-Plattform nutzte, um mit den Anforderungen ihrer Redaktion zu skalieren. Sie verlagerten ihre Infrastruktur auch in die Cloud, was zu einer stabilen und skalierbaren E-Mail-Plattform führte, die von einer Reihe von Microservices unterstützt wird, um E-Mails an die Leser zu senden.

Illustration, die ein Backoffice eines Nachrichtenmedienunternehmens zeigt, in dem mehrere Personen arbeiten und Papier in den Maschinen zirkuliert


Warum tendieren große Unternehmen wie die New York Times zu den Vorteilen der Microservices-Architektur? Microservices sind exponentiell gewachsen und bergen eine astronomische Zukunft für digitale Unternehmen. Es wird interessant sein zu sehen, wie traditionelle CMS wie Drupal einen Platz in der Welt der Microservices-basierten Architektur finden. Aber bevor man sich in all das stürzt, fragt man sich vielleicht, woher es stammt?

Die Wurzeln in der UNIX-Welt

New Relic hat eine interessante und kurze Zeitleiste der Entwicklung von Microservices zusammengestellt. Sie hat ihre Wurzeln in der Unix-Welt, die uns mehr als drei Jahrzehnte zurückführt.

Als Begriff wurde Microservices erstmals 2011 von Martin Fowler dokumentiert

Serviceorientierte Architektur (SOA), ein Designprinzip, bei dem Dienste anderen Komponenten von Anwendungskomponenten über ein Kommunikationsprotokoll über ein Netzwerk angeboten werden, war vor Jahrzehnten der letzte Schrei. Aufgrund einer Fülle von Fehlern und kostspieligen Implementierungen erwarb sich die SOA einen schlechten Ruf und trat in den Hintergrund. Martin Fowler hat unter anderem gesagt, dass Microservices eine neue Variante der SOA sind. 

Als Begriff wurde er erstmals 2011 von Fowler auf einem Workshop für Softwarearchitekten dokumentiert.

Im Jahr 2012 hielt James Lewis auf dem 33. Grad in Krakau einen Vortrag mit dem Titel „Microservices - Java, the Unix Way“. Dieser beschrieb Microservices als ein Mittel zur schnellen Softwareentwicklung durch Teilen und Herrschen und nutzte Conways Gesetz, um Teams zu strukturieren.

Seitdem hat die Akzeptanz der Microservice-Architektur zugenommen, und viele Unternehmen entscheiden sich für Microservices als Standardstil für die Erstellung von Unternehmensanwendungen.

Die Terminologie verstehen

Illustration mit vier Boxen mit Texten, die die Microservices-Architektur erklären
Quelle: LeanIX GmbH

Was sind Microservices? Microservices sind eine Architektur zum Aufteilen einer monolithischen Anwendung in kleinere Teile. Jedes dieser Teile bietet eine bestimmte Funktion über eine klar definierte und sorgfältig gehandhabte API.

Die Sammlung liefert den gleichen gesamten Geschäftswert wie die monolithische Anwendung, mit dem Unterschied, dass es sich bei Microservices um unabhängig voneinander arbeitende Einzelteile handelt. Das bedeutet, dass sie schnell aktualisiert werden können, ohne eine gesamte Anwendung zu beeinträchtigen.

„Der architektonische Stil von Microservices ist ein Ansatz zur Entwicklung einer einzelnen Anwendung als eine Suite von kleinen Diensten, von denen jeder in einem eigenen Prozess läuft und mit Lightweight-Mechanismen kommuniziert, oft einer HTTP-Ressourcen-API. Diese Dienste basieren auf Geschäftsfunktionen und sind unabhängig voneinander durch vollautomatische Bereitstellungsmechanismen bereitstellbar. Es gibt ein Mindestmaß an zentralisierter Verwaltung dieser Dienste, die in verschiedenen Programmiersprachen geschrieben sein und unterschiedliche Datenspeichertechnologien verwenden können.“ - Martin Fowler

"Ein architektonischer Stil von Microservices ist ein Ansatz zur Entwicklung einer einzelnen Anwendung als eine Suite von kleinen Diensten, von denen jeder in einem eigenen Prozess läuft und mit Lightweight-Mechanismen kommuniziert, oft einer HTTP-Ressourcen-API".

Netflix ist ein unübertroffenes Beispiel für die Einführung der Microservices-Architektur. Es wechselte von einem traditionellen Entwicklungsmodell mit mehreren Ingenieuren, die eine monolithische DVD-Verleih-Anwendung produzierten, zu einer Microservices-Architektur. Kleine Teams konnten sich auf die End-to-End-Entwicklung von Hunderten von Microservices konzentrieren, die zusammenarbeiten, um Millionen von Netflix-Kunden jeden Tag digitale Unterhaltung zu bieten.

Flussdiagramm mit den Logos von Amazon und Etsy, das den Unterschied zwischen monolithischen und Microservices-Architekturen zeigt
Quelle: LeanIX GmbH

Der Hauptunterschied zwischen monolithischer und Microservices-Architektur, wie in der obigen Darstellung zu sehen ist, besteht darin, dass sich alle Funktionen und Funktionalitäten unter einem einzigen Dach befanden. Das heißt, sie befanden sich unter einer einzigen Instanz, die sich eine einzige Datenbank teilte. Bei Microservices wird jeder Funktion ein anderer Microservice zugewiesen, der seine eigenen Daten verwaltet und einen anderen Satz von Funktionalitäten ausführt.

Wie gut oder schlecht sind Microservices?

Illustration mit Boxen auf der linken und rechten Seite, die Herausforderungen und Lösungen von Microservices auf den jeweiligen Seiten zeigen
Quelle: Logentries

Die Vorteile einer Microservices-Architektur sind unten aufgeführt:

  • Autonome Bereitstellungen: Sie können einen Dienst aktualisieren, ohne die gesamte Anwendung neu bereitstellen zu müssen, und ein Update bei Pannen zurücksetzen oder vorwärts ausführen. Das Beheben von Fehlern und das Veröffentlichen von Funktionen sind mit weniger Herausforderungen viel einfacher zu handhaben.
  • Autonome Entwicklung: Das Erstellen, Testen und Bereitstellen eines Dienstes erfordert ein einzelnes Entwicklungsteam, was zu ständiger Innovation und schneller Release-Kadenz führt.
  • Kleine Teams: Teams können ihren Fokus auf einen Dienst legen, wodurch das Verständnis der Codebasis mit dem kleineren Umfang für jeden Dienst vereinfacht wird.
  • Isolation von Fehlern: Ausfallzeiten in einem der Dienste wirken sich nicht auf die gesamte Anwendung aus. Dies bedeutet nicht, dass Sie Resilienz kostenlos erhalten.
  • Tech-Stack-Mischung: Die Technologie, die für einen Dienst am besten geeignet ist, kann von den Teams ausgewählt werden.
  • Skalierbarkeit auf granularer Ebene: Eine unabhängige Skalierung von Diensten ist möglich.

Einige der Herausforderungen sind unten aufgeführt:

  • Komplexität: Es gibt mehr bewegliche Teile in einer Microservice-Anwendung als in der entsprechenden monolithischen Anwendung.
  • Entwicklung und Tests: Die Entwicklung gegen Dienstabhängigkeiten erfordert einen anderen Ansatz, und das Testen von Dienstabhängigkeiten ist schwierig, insbesondere wenn sich die Anwendung schnell weiterentwickelt.
  • Der Mangel an Administration: Der dezentrale Ansatz zum Erstellen von Microservices kann zu zahlreichen Sprachen und Frameworks führen, wodurch die Verwaltung erschwert wird.
  • Netzwerküberlastung und Latenz: Die Verwendung von granularen Diensten kann zu mehr Inter-Service-Kommunikation führen. Es besteht die Möglichkeit, dass zusätzliche Latenz eine Herausforderung darstellen kann, wenn die Kette der Dienstabhängigkeiten zu lang wird.
  • Datenintegrität: Datenkonsistenz kann ein Hindernis sein, da jeder Microservice für seine eigene Datenverwaltung und Persistenz verantwortlich ist.
  • Management: Die korrelierte Protokollierung über Dienste hinweg kann zu einer gewaltigen Aufgabe werden.
  • Update-Probleme: Wenn nicht auf ein sorgfältiges Design geachtet wird, können mehrere Dienste, die gleichzeitig aktualisiert werden, zu Abwärts- oder Vorwärtskompatibilität führen.
  • Team-Skillset: Als hochverteilte Systeme erfordern Microservices ein Team mit der richtigen Mischung aus Fähigkeiten und Erfahrung.

Drupal in den Kontext bringen

Drupal ist ein Monolith. Wie kann es diesen Trend der Architektur auf Basis von Microservices überleben? Drupal ist jedoch ein erstaunliches Content-Management-Framework, das eine großartige Content-Bearbeitungserfahrung bietet und Pionierarbeit bei digitalen Innovationen leistet. Vor diesem Hintergrund kann die Architektur für die Entwicklung und Bereitstellung von Anwendungen mit Drupal verwendet werden.

Sehen wir uns an, wie Drupal in das Schema der Dinge eingeordnet werden kann.

Demonstration auf der DrupalCon Vienna 2017

Eine Präsentation auf der DrupalCon Vienna 2017 demonstrierte eine effektive Möglichkeit zur Integration von Drupal 8 in eine Microservices-Architektur.
 
Drupal 8 erwies sich aufgrund seiner folgenden Eigenschaften als nützliches Content-Management-Framework für diese Implementierung der Microservices-Architektur:

  • Symfony-Komponenten,
  • Composer zur Verwaltung externer Abhängigkeiten,
  • und die großartigen Ergebnisse der Web Services and Context Core Initiative (WSCCI).
     


Es zeigte die Delegation asynchroner Arbeit von Drupal an eine Reihe von sehr reaktiven Anwendungen, die in Go geschrieben wurden, mit Unterstützung von RabbitMq-Warteschlangen. Elasticsearch wurde als gemeinsamer Datenspeicher zwischen Diensten genutzt, und REST-Endpunkte wurden freigegeben, wobei die Endpunkte Drupal benachrichtigen konnten.
 
Darüber hinaus wurden Methoden zum Verbinden des Websocket-Servers zum Senden und Empfangen von Nachrichten zwischen Diensten gezeigt. Um all diese Dienste auf kontrollierte und replizierbare Weise auszuführen, wurden die Dienste von Ansible und Docker extrahiert.

Demonstration auf den Drupal Developer Days Lissabon 2018

Eine weitere Sitzung auf den Drupal Developer Days Lissabon 2018 beschrieb, wie das Bürgerportal der Stadt Reykjavik (Island) mit Drupal und Microservices neu gestartet wurde.
 
Es wurden mehr als 100 Webservices integriert, die von einfachen Diensten wie der Registrierung eines Hundes oder der Verlängerung eines Führerscheins bis hin zu komplexen Diensten wie der Aufnahme von Kindern in die Schule oder der Aktualisierung der Wohnadresse reichen.


Dieses neue Portal, das von Drupal 8 unterstützt wird, integriert die Dienste mit einer Microservices-Architektur unter Verwendung von JSON Schema als Kommunikationsprotokoll. Dies wurde gewählt, um eine zentralisierte Datenerfassung und -präsentation in einem einzigen Portal zu ermöglichen und gleichzeitig eine heterogene Landschaft von Diensten autonom voneinander zu integrieren.

Vorhersagen für die Zukunft

Der Bericht Cloud Predictions 2018 von Oracle besagt, dass bis 2020 der Löwenanteil der neuen Anwendungen von Microservices-Architekturen unterstützt wird.

Open Source hat der Microservices-Architektur einen gewaltigen Schub verliehen. Seine verschiedenen Komponenten unterstützen Continuous Integration- und Delivery-Pipelines, Microservices-Plattformarchitektur, Container, Container-Management und -Orchestrierung, Container-Registry-Service und Serverless-Funktionen.

Open Source hat der Microservices-Architektur einen gewaltigen Schub verliehen

Die Einführung von Cross-Cloud-Containern wie Docker und Kubernetes ist auf dem aufsteigenden Ast, und Entwickler ziehen einen offenen Cloud-Stack in Betracht, um eine Anbieterbindung zu vermeiden.

Ein Balkendiagramm, das die CAGR von Microservices von 2016 bis 2023 zeigt
Quelle: Market Research Future

Laut einem Bericht von Market Research Future wird erwartet, dass der Markt für Microservices-Architektur bis 2023 32,01 Milliarden US-Dollar erreichen wird, mit einer durchschnittlichen jährlichen Wachstumsrate (CAGR) von rund 16,17 % im Prognosezeitraum.

Ein weiterer Bericht von Research and Markets für den Prognosezeitraum von 2017 bis 2023 besagt, dass der Anstieg der Cloud-Akzeptanz für den Microservices-Markt von entscheidender Bedeutung ist, was die "Marktanalyse" betrifft. Dies liegt daran, dass seine Architekturen auf kleineren und einfacheren Diensten basieren. Außerdem besteht eine hohe Nachfrage von nordamerikanischen Unternehmen, da diese sie in E-Commerce-, Finanz- und Reisedienstleistungen implementiert haben. Dies hat dazu beigetragen, Daten und Informationen kostengünstig zu speichern und die Effizienz, Agilität und Skalierbarkeit zu verbessern.

Der Bericht von Research and Markets enthält eine interessante "Länder- und Branchenanalyse" in Bezug auf Microservices. Die meisten der wichtigsten Akteure befinden sich in der amerikanischen Region, wobei die prominenten Anbieter, die in dem Bericht behandelt werden, Cognizant, IBM Corporation, Datawire, Salesforce, Infosys Ltd., MuleSoft Inc. und Software AG sind. Es wird erwartet, dass Japan, die USA und China ein enormes Wachstum bei der Einführung von Microservices erleben werden.

Fazit

Microservices-Architekturen rationalisieren den gesamten Anwendungsentwicklungslebenszyklus, was zu schnelleren Tests, höherer Qualität und mehr Releases führt. Eine solche Architektur kann für die effiziente Verwaltung von Drupal-basierten Projekten äußerst nützlich sein. Innovation war schon immer etwas, das Drupal sehr unterstützt. Die Einführung einer Microservice-Architektur für die Drupal-Entwicklung ist möglich und äußerst fruchtbar.

Unternehmen sollten sich ihres digitalen Geschäftsökosystems bewusst sein und die Herausforderungen verstehen, denen sie bei der Einführung begegnen könnten. OpenSense Labs ist ständig bestrebt, mit unserer Expertise in Drupal eine positive Veränderung für unsere geschätzten Partner zu bewirken.

Kontaktieren Sie uns unter [email protected], um mehr über die Vorteile von 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…