Erfahren Sie mehr über Microservices in einem Artikel

Ursprünglicher Autor: NGINX

Ursprünglicher Link: Erfahren Sie mehr über Microservices in einem Artikel

Nachdruckquelle: Offizielle chinesische Website von NGINX


Die einzige offizielle chinesische Community von NGINX, alle unter nginx.org.cn 

 Microservices sind eine Möglichkeit, komplexe Anwendungen mit mehreren kleinen Komponenten zu erstellen. In diesem Artikel wird erläutert, wie es funktioniert, welche Vor- und Nachteile es hat und welche Vorteile es mit sich bringen kann.

Was sind Microservices?

Microservices sind ein Softwarearchitekturansatz zum Erstellen großer, komplexer Anwendungen unter Verwendung mehrerer kleiner Komponenten, von denen jede eine Funktion wie Authentifizierung, Benachrichtigungen oder Zahlungsabwicklung ausführt. Jeder Microservice ist eine unabhängige Einheit in einem Softwareentwicklungsprojekt mit eigener Codebasis, Infrastruktur und Datenbank. Microservices arbeiten zusammen und kommunizieren über die Web-API oder Nachrichtenwarteschlangen, um auf eingehende Ereignisse zu reagieren.

Vereinfachte Microservices-Architektur

Vereinfachte Microservices-Architektur

Video über Microservices

  • Was sind Microservices?

  • NGINX Plus hilft BuzzFeed bei der Migration zu Microservices

Klicken Sie hier, um ein ausführliches Erklärungsvideo anzusehen >>

Warum Microservice-Architektur verwenden?

In der traditionellen monolithischen Architektur werden alle Funktionen einer Anwendung in einer einzigen Codebasis implementiert. Dieser Ansatz hat mehrere Nachteile:

  • Da Anwendungen immer komplexer werden, wird es für einen einzelnen Entwickler schwieriger, die gesamte Codebasis zu verstehen. Auch für neue Entwickler kann der Einstieg schwierig sein. Eine Lösung besteht darin, verschiedenen Entwicklern oder Teams unterschiedliche Funktionsmodule zuzuweisen. Dies erleichtert Entwicklern die Kontrolle über ihren eigenen Code, das Problem besteht jedoch darin, dass es schwieriger wird, Abhängigkeiten mit anderen Modulen zu verfolgen. Daher ist es wahrscheinlich, dass Änderungen in einem Modul Auswirkungen auf andere Module haben.

  • Wenn Sie Funktionen hinzufügen oder erweitern müssen, müssen Sie die gesamte Anwendung kompilieren und testen, um sicherzustellen, dass die Änderung die Kompatibilität zwischen Modulen nicht beeinträchtigt. Anschließend müssen Sie die gesamte App als einzelne Binärdatei bereitstellen.

Die Microservice-Architektur unterteilt Anwendungsfunktionen in mehrere unabhängige Microservices (Dienste), was zur Vereinfachung von CI/CD beiträgt. Microservices lassen sich schneller entwickeln und sind einfacher zu verstehen und zu warten. Jeder Dienst kann unabhängig von einem Team entwickelt werden, das sich ausschließlich auf diesen Dienst konzentriert. Das Team kann die Programmiersprache, Entwicklungsplattform und Datenbank auswählen, die für die Microservices am besten geeignet sind. Microservices werden häufig als Container verpackt, um die Bereitstellung weiter zu vereinfachen.

Microservices sind lose gekoppelt, was bedeutet, dass sie nicht von den Interna anderer Microservices abhängig sind. Sie kommunizieren über APIs. Solange die von jedem Microservice bereitgestellten APIs abwärtskompatibel bleiben, müssen Änderungen an einem Microservice nicht in anderen Microservices aktualisiert werden.

Kurz gesagt: Entwickler, die Änderungen an einer Microservices-Architektur vornehmen möchten, können dies innerhalb eines einzelnen Microservice-Containers tun, während Entwickler, die in einer monolithischen Architektur arbeiten, möglicherweise viel Zeit damit verbringen müssen, den gesamten Stack neu zu schreiben.

Microservice-Benutzergruppen

Um schnell auf sich ändernde Geschäftsanforderungen reagieren zu können, haben sich technische Teams der Microservice-Architektur zugewandt. Entwickler führen diesen Wandel an, vor allem weil immer mehr Unternehmen Entwicklern die Möglichkeit geben, ihre Apps und Bereitstellungstools auszuwählen. Eine im Jahr 2020 durchgeführte NGINX-Benutzerumfrage ergab, dass mehr als die Hälfte der Befragten Microservices in einigen oder allen ihrer Anwendungen nutzen. Im Jahr 2022 geben mehr NGINX-Benutzer , die in Unternehmen arbeiten, die sich von monolithischen Systemen entfernen , an, dass sie Microservices einführen, teilweise aufgrund der Skalierbarkeit, die die Container-Orchestrierung ermöglicht.

Microservices 101: Vor- und Nachteile

Microservices können herkömmliche monolithische Anwendungen in flexiblere, sicherere und effizientere Architekturen umwandeln und Ihnen dabei helfen, erhebliche Zeit, Kosten und Ressourcen zu sparen. Nachfolgend finden Sie eine Zusammenfassung der Vor- und Nachteile von Microservices, die sich auf die Leistung und das Design von Anwendungen auswirken können.

Vorteil:

  • Entwickler können Dienste unabhängig voneinander entwickeln und bereitstellen, was eine schnellere Entscheidungsfindung ermöglicht.

  • Dank ihrer geringen Größe und Autonomie kann ein auf Microservices basierender Ansatz Entwicklungszyklen verkürzen, da verschiedene Teams gleichzeitig verschiedene Services implementieren können. Abhängigkeiten zwischen Teams werden häufig reduziert oder sogar beseitigt.

  • Microservices können einfach in Containern bereitgestellt werden, was dazu beiträgt, den Overhead zu reduzieren und die Portabilität über verschiedene Umgebungen hinweg zu verbessern.

  • Da sich Microservices problemlos in CI/CD-Tools integrieren lassen, können Entwickler moderne DevOps-Praktiken wie automatisierte CI/CD-Pipelines implementieren.

  • Skalieren Sie Ihre Anwendungen ganz einfach und „ändern“ Sie ihre Größe nach Bedarf, da jeder Dienst in der Regel elastisch ist.

  • Microservices lassen sich einfacher erstellen, testen und warten.

  • Services werden rund um Geschäftsfunktionen organisiert und implementiert.

  • Entwickler können die Technologie übernehmen, die für einen bestimmten Dienst am besten geeignet ist.

  • Einfachere Isolierung von Fehlern – Wenn ein Microservice ausfällt, können andere Microservices weiterhin ausgeführt werden.

Mangel:

  • Die Architektur von Microservices erhöht die Komplexität, da Entwickler die Fehlertoleranz reduzieren, die Netzwerklatenz reduzieren, mit verschiedenen Programmiersprachen umgehen und die Last auf mehrere Dienste verteilen müssen.

  • Die Fehlerbehebung bei Microservices kann aufgrund ihrer verteilten Natur umständlich und komplex sein.

  • Durch die Erhöhung der Anzahl von Microservices in einer Anwendung erhöht sich der Integrations- und Verwaltungsaufwand.

  • Behandeln Sie mehrere Datenbanken

Sind APIs Microservices?

Kurz gesagt, nein. APIs selbst sind keine Microservices. Aber APIs werden zunehmend als Kommunikationsmechanismen innerhalb von Anwendungen in Microservices-Architekturen integriert. Die Funktionalität eines Microservices wird als eine Reihe von API-Endpunkten bereitgestellt, und andere Microservices rufen diese Funktionalität auf, indem sie API-Aufrufe an die entsprechenden Endpunkte durchführen.

Warum Container zum Ausführen von Microservices verwenden?

Containerisierungsplattformen ermöglichen es Entwicklern, Microservices unabhängig von Infrastruktureinschränkungen auf die effizienteste Weise zu isolieren, zu skalieren und bereitzustellen und gleichzeitig Störungen für Benutzer zu minimieren. Stellen Sie sich ein Szenario vor, in dem ein einzelner Lastausgleichs- und Datenverkehrsrouting-Servercluster vor Ihrer Anwendung bereitgestellt wird. Mit einer im DNS veröffentlichten statischen öffentlichen IP-Adresse können Clients ihre Anfragen an diesen stabilen Einstiegspunkt senden, der dann an den entsprechenden Container weitergeleitet wird. Wenn diese Container hinzugefügt oder entfernt werden, aktualisieren Sie einfach die interne Adresse, um diese Anfragen an die neue IP-Adresse weiterzuleiten. Sie können diese Adressen auch intern über DNS veröffentlichen.

Microservice-Fall

Microservices beschleunigen die nahtlose und sichere Migration in stark regulierten Branchen

Ein multinationales Unternehmen, das in einer stark regulierten Branche tätig ist, muss seine Systeme nach einem vorgegebenen Zeitplan aktualisieren, um die Einhaltung sich entwickelnder Standards und Best Practices sicherzustellen. Das Anwendungsportfolio des Unternehmens verarbeitet täglich Millionen von Transaktionen über seine Systeme. Im Laufe der Jahre hat das Unternehmen die Branchenanforderungen auch bei Open-Source-Upgrades und der Integration von Sicherheits-Plugins von Drittanbietern eingehalten. Bei einem kürzlich durchgeführten Upgrade stieß das Unternehmen jedoch auf einige Schwierigkeiten aufgrund von Problemen mit dem gegenseitigen Ausschluss von Plugins. Das Unternehmen hatte überlegt, von seinem Rechenzentrum in die öffentliche AWS-Cloud zu wechseln, doch Probleme mit Sicherheits-Plug-ins führten zu einem Wechsel zu einer Microservices-Architektur. Diese Lösung ist kostengünstiger und hilft dem Unternehmen, die Sicherheitsvorschriften schnell einzuhalten.

Lesen Sie diese Kundenerfolgsgeschichte, um mehr über die Migration von Microservices zu erfahren.

Blogeintrag

Erfolgsgeschichten und Anwendungsfälle

Verweise

Ressourcenempfehlungen

Klicken Sie hier, um den Inhalt der Microservices-Agenda für Juni 2023 und alle Kurswiederholungen kostenlos anzusehen.


Die einzige offizielle chinesische Community von NGINX, alle unter  nginx.org.cn

Weitere technische Informationen zu NGINX, interaktive Fragen und Antworten, Kursreihen und Veranstaltungsressourcen:  Offizielle Website der Open Source Community  | 

Die Raubkopien von „Qing Yu Nian 2“ wurden auf npmror hochgeladen, was dazu führte, dass npmmirror den Unpkg-Dienst einstellen musste: Es bleibt nicht mehr viel Zeit für Google. Ich schlage vor, dass alle Produkte Open Source sind . time.sleep(6) spielt hier eine Rolle. Linus ist am aktivsten beim „Hundefutter fressen“! Das neue iPad Pro verwendet 12 GB Speicherchips, behauptet jedoch, über 8 GB Speicher zu verfügen. People’s Daily Online bewertet die Aufladung im Matroschka-Stil: Nur durch aktives Lösen des „Sets“ können wir eine Zukunft haben Neues Entwicklungsparadigma für Vue3, ohne die Notwendigkeit von „ref/reactive“ und ohne die Notwendigkeit von „ref.value“. MySQL 8.4 LTS Chinesisches Handbuch veröffentlicht: Hilft Ihnen, den neuen Bereich der Datenbankverwaltung zu meistern Tongyi Qianwen GPT-4-Level-Hauptmodellpreis reduziert um 97 %, 1 Yuan und 2 Millionen Token
{{o.name}}
{{m.name}}

Ich denke du magst

Origin my.oschina.net/u/5246775/blog/11184822
Empfohlen
Rangfolge