Erkunden Sie die Kompromisse zwischen Microservices und monolithischer Architektur und erfahren Sie, warum ein modularer monolithischer Ansatz für kleinere Projekte effizienter sein kann. Erfahren Sie, welche Faktoren bei der Auswahl der richtigen Architektur für Ihr Projekt zu berücksichtigen sind und wie Sie bei Bedarf von einem modularen Monolithen zu Microservices übergehen können.
A QUICK SUMMARY – FOR THE BUSY ONES
Die Entscheidung zwischen Microservices und monolithischer Architektur hat großen Einfluss auf Komplexität und Entwicklungsgeschwindigkeit. Microservices bieten Skalierbarkeit, sind jedoch mit Komplexität und längeren Startzeiten verbunden. Die monolithische Architektur ist einfacher und eignet sich für kleinere Projekte.
Für ein Projekt zur Verwaltung von Aufträgen und Urlauben wurde aufgrund des Projektumfangs ein modularer monolithischer Ansatz gewählt. Es ermöglichte eine logische Modultrennung und einen möglichen zukünftigen Übergang zu Microservices. Bei diesem Ansatz wurde der Bereitstellung von Meilensteinen Vorrang vor der Konfiguration eingeräumt. Projekte sollten ihre Bedürfnisse berücksichtigen und mit einem modularen, monolithischen Ansatz beginnen, falls sie später auf Microservices umsteigen könnten.
Lesen Sie weiter, um die Details zu erfahren.
TABLE OF CONTENTS
Die Backend-Architektur ist eine entscheidende Entscheidung für jedes Projekt. Die falsche Wahl bei der Verwendung von Microservices kann zu Folgendem führen:
Bei der Entscheidung für die Architektur müssen Sie Faktoren wie Domänenkomplexität, Teamstruktur, CI- und Produktionsumgebungen, Traffic-Erwartungen und Skalierung berücksichtigen.
Bei der Entwicklung eines Produkts, das die Aufgaben von Personen zu Projekten, ihre Verfügbarkeit und Urlaube anzeigen sollte, sahen wir eine klare Trennung zwischen Modulen, die extrahiert werden konnten:
Da Teile der Domain logisch voneinander getrennt waren, die volle Kontrolle über die Umgebung herrschen und die neueste Version von.NET verwendet wurde, war es verlockend, die oben genannten Module als Microservices zu implementieren. Dafür gab es definitiv einige triftige Gründe. Wir entschieden uns jedoch, stattdessen mit einem monolithischen Ansatz zu beginnen, der sich als effizienter erwies und es uns ermöglichte, uns auf die Entwicklung von Funktionen und die schnelle Bereitstellung zu konzentrieren.
Bei der Betrachtung des monolithischen Ansatzes und des Microservices-Ansatzes haben wir die wichtigsten Merkmale beider analysiert:
<span class="colorbox1"><h4>Vorteile von <h3>Monolith</h3>: Es</h4> <li>ist <ul><li>einfacher, ein kleineres Projekt zu starten</li>, <li>einfache Client-Serverinfrastruktur (React App)</li> <li>(.NET-Backend)</li></ul>. <h4>Nachteile:</h4> <ul><li>einzelne, größere Bereitstellung, eingeschränkte Skalierungsmöglichkeiten</li></ul></li></span>
<span class="colorbox1"><h4>Vorteile von <h3>Microservices</h3>:</h4> <ul><li>unabhängige Bereitstellungen</li>, <li>bessere Skalierungsmöglichkeiten</li></ul>. <h4>Nachteile:</h4> Der <ul><li>Projektstart nimmt mehr Zeit in Anspruch</li>, <li>Komplexität</li></ul> der Lösung und Infrastruktur</span>
Monolith ist ein einfacherer Ansatz, hat jedoch seine Grenzen.
Um zu definieren, was Ihren Bedürfnissen entspricht, stellen Sie sich zwei Fragen:
Wenn Sie zweimal mit JA geantwortet haben, wählen Sie eine Microservice-basierte Architektur. Monolith kann Sie verlangsamen.
Unsere eigenen Antworten lauteten wie folgt:
Obwohl wir entschieden haben, dass Microservices derzeit nicht der richtige Ansatz sind, könnte sich dies in Zukunft ändern. Wir wollten auf einen möglichen Übergang vorbereitet sein. In solchen Fällen könnte eine modulare Monolith-Architektur die beste Wahl sein.
Wenn das Entwicklungsteam einen Monolithen implementiert, sodass:
Es ist möglich, von einer modularen Monolith-Architektur zu Microservices überzugehen, wie unten gezeigt.
Bei unserem Projekt ermöglichte uns die modulare Monolith-Architektur, uns darauf zu konzentrieren, das Produkt in die nächste Phase zu bringen, anstatt die Verbindungen zu optimieren und abzustimmen. Allerdings ist jedes Projekt anders und es gibt keine allgemeingültige Methode zur Strukturierung der Anwendung.
Einige Produkte, genau wie unsere, könnten davon profitieren, wenn das Backend nicht in Microservices aufgeteilt wird, bis absolut sicher ist, dass sie benötigt werden. Wenn Sie in diese Kategorie fallen, beginnen Sie mit einem modularen, monolithischen Ansatz, sodass Sie bei der Entscheidung, auf eine auf Microservices basierende Architektur umzusteigen, leicht umschwenken können.
Our promise
Every year, Brainhub helps 750,000+ founders, leaders and software engineers make smart tech decisions. We earn that trust by openly sharing our insights based on practical software engineering experience.
Authors
Read next
Popular this month