Bewerbung Muster neue herausforderung

Ein solcher monolithischer Server ist eine natürliche Möglichkeit, sich dem Aufbau eines solchen Systems zu nähern. Die gesamte Logik für die Verarbeitung einer Anforderung wird in einem einzigen Prozess ausgeführt, sodass Sie die grundlegenden Funktionen Ihrer Sprache verwenden können, um die Anwendung in Klassen, Funktionen und Namespaces aufzuteilen. Mit einiger Sorgfalt können Sie die Anwendung auf dem Laptop eines Entwicklers ausführen und testen und eine Bereitstellungspipeline verwenden, um sicherzustellen, dass Änderungen ordnungsgemäß getestet und in der Produktion bereitgestellt werden. Sie können den Monolith horizontal skalieren, indem Sie viele Instanzen hinter einem Load Balancer ausführen. Wenn wir über Microservices gesprochen haben, ist eine häufige Frage, ob dies nur Service Oriented Architecture (SOA) ist, die wir vor einem Jahrzehnt gesehen haben. Es gibt Einen Vorteil in diesem Punkt, denn der Microservice-Stil ist sehr ähnlich zu dem, was einige Befürworter von SOA bevorzugt haben. Das Problem ist jedoch, dass SOA zu viele verschiedene Dinge bedeutet, und dass wir meistens auf etwas stoßen, das „SOA” genannt wird, unterscheidet es sich deutlich von dem Stil, den wir hier beschreiben, in der Regel aufgrund eines Fokus auf ESBs, die verwendet werden, um monolithische Anwendungen zu integrieren. Es gibt keinen Grund, warum dieser Ansatz nicht mit monolithischen Anwendungen verfolgt werden kann, aber die kleinere Granularität von Diensten kann es einfacher machen, die persönlichen Beziehungen zwischen Dienstentwicklern und ihren Benutzern zu erstellen. Um Ihre legacy Anwendung in detaillierte Funktionen aufzuteilen, die leicht, unabhängig, skalierbar und portabel sind, müssen Sie: Die Routingfassade fängt Anforderungen ab, die an das Backend-Legacysystem gehen, und leitet diese eingehenden Anforderungen entweder an die legacy-Anwendung oder die neue Anwendung weiter.

Die Schnittstelle des Clients setzt den alten Weg fort, ohne zu wissen, dass eine Technologiemigration stattgefunden hat oder ausgeführt wird. Strangler Pattern ist eine Möglichkeit, ein älteres System schrittweise zu migrieren, indem vorhandene Funktionen durch neue Anwendungen und Dienste in einem schrittweisen Ansatz ersetzt werden. Nach dem Austausch der gesamten Funktionalität ersetzt das neue Applikationssystem schließlich alle Funktionen des alten Legacy-Systems. Der Name „Strangler-Muster” wurde von Würgerfeigenbäumen inspiriert. Also schreiben wir dies mit vorsichtigem Optimismus. Bisher haben wir genug über den Microservice-Stil gesehen, um zu spüren, dass es ein lohnender Weg sein kann, um zu treten. Wir können nicht mit Sicherheit sagen, wo wir landen werden, aber eine der Herausforderungen der Softwareentwicklung ist, dass Sie Entscheidungen nur auf der Grundlage der unvollkommenen Informationen treffen können, die Sie derzeit zu übergeben haben. Hier ist eine bildliche Ansicht der Strangler-Musterimplementierung, die die Architekturtransformation von Legacy zu Microservices zeigt. Frühe Stufe 12: Wir sind hier ein wenig unzufrieden. Offensichtlich ist die Bereitstellung von mehr Diensten in komplexeren Topologien schwieriger als die Bereitstellung eines einzelnen Monolithen. Glücklicherweise reduzieren Muster diese Komplexität – Investitionen in Werkzeuge sind jedoch immer noch ein Muss.

Dienste kommunizieren entweder mit synchronen Protokollen wie HTTP/REST oder asynchronen Protokollen wie AMQP. Dienste können unabhängig voneinander entwickelt und bereitgestellt werden. Jeder Dienst verfügt über eine eigene Datenbank, um von anderen Diensten entkoppelt zu werden. Die Datenkonsistenz zwischen den Diensten wird mit dem Saga-Muster „Microservices” aufrechterhalten – ein weiterer neuer Begriff auf den überfüllten Straßen der Softwarearchitektur. Obwohl unsere natürliche Neigung darin besteht, solche Dinge mit einem verächtlichen Blick zu durchgehen, beschreibt diese Terminologie einen Stil von Softwaresystemen, den wir immer attraktiver finden. Wir haben in den letzten Jahren gesehen, dass viele Projekte diesen Stil verwenden, und die Ergebnisse waren bisher positiv, so sehr, dass dies für viele unserer Kollegen zum Standardstil für das Erstellen von Unternehmensanwendungen wird. Leider gibt es jedoch nicht viele Informationen, die beschreiben, was der Microservice-Stil ist und wie es zu tun ist. Stellen wir uns vor, dass Sie eine E-Commerce-Anwendung erstellen, die Bestellungen von Kunden entgegennimmt, Inventar und verfügbare Guthaben überprüft und versendet.