Ich habe etwas über Microservices gelesen und bin ein bisschen fasziniert. Scheint, als wäre es ein interessantes Konzept. Aber ich frage mich, welche Vor- und Nachteile die Verwendung von Mikrodiensten gegenüber der monolithischen Architektur hat und umgekehrt.
Wenn Microservices besser geeignet sind und wo es besser zur monolithischen Architektur passt.
microservices
user902383
quelle
quelle
Antworten:
Während ich in der Microservices-Welt noch relativ neu bin, werde ich versuchen, Ihre Frage so vollständig wie möglich zu beantworten.
Wenn Sie die Microservices-Architektur verwenden, haben Sie eine stärkere Entkopplung und Trennung von Bedenken. Da Sie Ihre Bewerbung buchstäblich aufteilen.
Dies führt dazu, dass Ihre Codebasis einfacher zu verwalten ist (jede Anwendung ist unabhängig von den anderen Anwendungen, um am Laufen zu bleiben). Deshalb , wenn Sie dieses Recht tun , wird es in Zukunft leichter an neue Funktionen hinzufügen , um Ihre Anwendung. Während es bei einer monolithischen Architektur sehr schwierig werden kann, wenn Ihre Anwendung groß ist (und Sie können davon ausgehen, dass dies zu einem bestimmten Zeitpunkt der Fall sein wird).
Das Bereitstellen der Anwendung ist auch einfacher , da Sie die unabhängigen Mikrodienste separat erstellen und auf separaten Servern bereitstellen. Dies bedeutet, dass Sie jederzeit Dienste erstellen und bereitstellen können, ohne den Rest Ihrer Anwendung neu erstellen zu müssen.
Da die verschiedenen Dienste klein sind und separat bereitgestellt werden, ist es offensichtlich einfacher, sie zu skalieren , mit dem Vorteil, dass Sie bestimmte Dienste Ihrer Anwendung skalieren können (mit einem Monolithic skalieren Sie das gesamte "Ding", selbst wenn es nur ein bestimmter Teil innerhalb der ist Anwendung, die eine übermäßige Belastung erhält).
Für Anwendungen, die nicht zu groß werden sollen, um in Zukunft verwaltet zu werden. Es ist besser, die monolithische Architektur beizubehalten. Da die Microservices-Architektur einige ernsthafte Schwierigkeiten aufweist. Ich erklärte, dass es einfacher ist, Microservices bereitzustellen, aber dies gilt nur im Vergleich zu großen Monolithen. Mit Microservices haben Sie die zusätzliche Komplexität, die Dienste auf verschiedene Server an verschiedenen Standorten zu verteilen, und Sie müssen einen Weg finden, um all dies zu verwalten. Das Erstellen von Microservices hilft Ihnen auf lange Sicht, wenn Ihre Anwendung groß wird. Bei kleineren Anwendungen ist es jedoch einfacher, monolithisch zu bleiben.
quelle
Dies ist eine sehr wichtige Frage, da einige Leute von der ganzen Aufregung um Microservices angezogen werden und es Kompromisse gibt, die berücksichtigt werden müssen. Was sind also die Vorteile und Herausforderungen von Microservices (im Vergleich zum monolithischen Modell)?
Leistungen
Herausforderungen
Sobald wir diese Kompromisse verstanden haben , müssen wir noch eines wissen, um die andere Frage zu beantworten: Was ist besser, Microservices oder Monolith? Wir müssen die nicht funktionalen Anforderungen (Qualitätsattributanforderungen) der Anwendung kennen. Wenn Sie beispielsweise verstanden haben, wie wichtig Leistung und Skalierbarkeit sind, können Sie die Kompromisse abwägen und eine fundierte Entwurfsentscheidung treffen.
quelle
@ Luxo ist genau richtig. Ich möchte nur eine kleine Variation anbieten und die organisatorische Perspektive davon herbeiführen. Microservices ermöglichen nicht nur die Entkopplung der Anwendungen, sondern können auch auf organisatorischer Ebene hilfreich sein. Die Organisation könnte sich beispielsweise in mehrere Teams aufteilen, von denen jedes auf einer Reihe von Mikrodiensten entwickelt werden kann, die das Team möglicherweise bereitstellt.
In größeren Geschäften wie Amazon haben Sie beispielsweise möglicherweise ein Personalisierungsteam, ein E-Commerce-Team, ein Infrastrukturdienstteam usw. Wenn Sie in Microservices einsteigen möchten, ist Amazon ein sehr gutes Beispiel dafür. Jeff Bezos machte es zu einem Mandat für Teams, mit den Diensten eines anderen Teams zu kommunizieren, wenn sie Zugriff auf eine gemeinsam genutzte Funktionalität benötigen. Sehen Sie hier für eine kurze Beschreibung.
Darüber hinaus hatten Ingenieure von Etsy und Netflix zu Zeiten von Microservices gegen Monolith auf Twitter eine kleine Debatte. Die Debatte ist etwas weniger technisch, kann aber auch einige Einblicke bieten.
quelle