Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial Internet of Things >> Cloud Computing

Was ist ein Service Mesh? Was sind die verfügbaren Open-Source-Service-Meshes?

Bei der Entwicklung in einer Microservice-Architektur gibt es viele einzelne Komponenten, die das DevOps-Team konfigurieren muss. Damit Microservices zusammenarbeiten können, benötigen sie etablierte Kommunikationskanäle für den Informationsaustausch und die Datenübertragung.

Eine Möglichkeit, die Kommunikation zwischen Diensten zu verwalten und zu überwachen, ist die Verwendung eines Service Mesh.

Was ist ein Service Mesh?

Ein Service Mesh ist eine dedizierte Infrastrukturebene, die der Microservice-Architektur hinzugefügt wird. Seine Hauptaufgabe besteht darin, eine schnelle und sichere Service-to-Service-Kommunikation zu gewährleisten. Dieses Tool mit geringer Latenz verwaltet und überwacht die Kommunikation zwischen Diensten und die gemeinsame Nutzung von Daten.

Es besteht aus einer Steuerungsebene von dem aus Entwickler spezifische Regeln und Richtlinien für die Netzwerkschicht implementieren. Die Steuerungsebene arbeitet direkt mit der Datenebene zusammen, einer Sammlung von Sidecar-Proxys, die neben den Diensten ausgeführt werden. Diese Proxys sind für die gesamte Kommunikation zwischen den Diensten verantwortlich. Darüber hinaus überwachen und liefern sie wertvolle Einblicke in die Gesamtleistung der Anwendung und helfen dabei, potenzielle Probleme zu finden und Ausfallzeiten zu vermeiden.

Die Proxys bieten wertvolle Funktionen, darunter:

Der Aufstieg der Service-Mesh-Architektur

Um vollständig zu verstehen, wie ein Service Mesh funktioniert, müssen wir untersuchen, warum ein solches Tool entwickelt wurde. Der Aufstieg der Service-Mesh-Architektur hat sich als Lösung für eine Reihe von Problemen im Zusammenhang mit Microservices herausgestellt.

Viele Entwicklungsteams wechselten von der Entwicklung monolithischer Anwendungen zur Microservice-Architektur . Dies teilte eine Anwendung von einer monolithischen Einheit in ein System von einzelnen Diensten, die zusammenarbeiten. Die Anwendung besteht aus mehreren autonomen Diensten mit ihren individuellen Funktionalitäten.

Die Schwierigkeit bei der Entwicklung einer solchen Anwendung besteht darin, die beste Art und Weise zu konfigurieren, wie diese Dienste miteinander kommunizieren. Die Anwendungsleistung hängt davon ab, dass die Dienste zusammenarbeiten und Daten austauschen, um die beste Benutzererfahrung zu bieten. Ein Webshop könnte beispielsweise aus einem Anmeldedienst bestehen die mit einem Kaufservice kommuniziert das erfordert Informationen aus einer Inventardatenbank und so weiter.

Da Mikrodienste über APIs kommunizieren, finden Sie die beste Lösung, um Discovery zu lösen und Routing war wichtig. Außerdem mussten die Entwickler sicherstellen, dass die Kommunikation innerhalb des Systems sicher war . Während Firewalls die Anwendung vor Angriffen von außen schützten, gab es innerhalb der Mikrodienstarchitektur ein flaches, offenes Netzwerk.

Vor der Mesh-Dienstarchitektur wurde diese Aufgabe von Load-Balancern erledigt . Aufgrund von Bereitstellungs- und Kostenproblemen war dies jedoch keine praktische Lösung, insbesondere in größerem Maßstab. Das Service Mesh wurde als ultimative Lösung für alle oben genannten Probleme entwickelt. Es stellte eine Netzwerkschicht mit einer zentralisierten Registrierung (Steuerungsebene) dar, die alle Dienste mit ihren Sidecar-Proxys verwaltete. Sie sind im Vergleich zu Load Balancern viel einfacher zu konfigurieren und zu skalieren. Entwickler können die Proxys nach Bedarf nach oben und unten skalieren und die Routing-Regeln ändern, ohne die Dienste zu ändern.

Service Mesh-Vorteile

Die wichtigsten Vorteile von Service Mesh sind:

Liste der Open-Source-Service-Meshes

Es gibt eine Reihe von Open-Source-Service-Meshes. Istio, Linkerd und Consul werden am häufigsten verwendet.

Nachfolgend finden Sie weitere Details zu jeder Plattform.

Istio

Istio ist eine Open-Source-Infrastruktur, die von Google, IBM und Lyft entwickelt wurde. Es ist eine der frühesten Service-Mesh-Plattformen. Es verwendet Istiod , eine Steuerungsebene, die aus mehreren Komponenten besteht (PilotZitadelle und Mixer ) für den Betrieb und die Konfiguration des Service Mesh. Die Datenebene besteht aus Envoy Proxys, entwickelt in C++ . HTTP/TCP-Verbindungen werden vom Gateway verwaltet , dem Load-Balancer von Istio. Der VirtualService und Zielregeln Routing-Regeln und -Richtlinien definieren.

Linkerd

Linkerd ist ein leichtgewichtiges Open-Source-Service-Mesh, das vom Projekt Cloud Native Computing Foundation (CNCF) entwickelt wurde. Es ist einfach in einem Kubernetes-Cluster auf jeder Plattform zu installieren, ohne zusätzliche Konfiguration. Keine Konfiguration ist vorteilhaft, wenn Sie mit kleineren Clustern arbeiten. Große Projekte erfordern jedoch die Möglichkeit der Konfiguration, um alle Dienste im Cluster erfolgreich zu verwalten.

Die Sidecar-Proxys sind in Rust geschrieben . Linkerd verwendet den Controller für die Steuerungsebene und die Webbereitstellung für das Armaturenbrett. Außerdem wurde Prometheus zum Erkunden und Speichern von Messwerten und Grafana zum Rendern und Anzeigen von Dashboards verwendet.

Consul Connect

Consul wurde zunächst als Service-Discovery-Tool entwickelt und entwickelte sich später zu einem Service-Mesh. Im Gegensatz zu Linkerd enthält Consul Connect viele Konfigurationsmöglichkeiten, die Ihnen mehr Kontrolle über die Netzwerkumgebung geben. Dementsprechend ist es schwieriger zu verwenden als Linkerd. Dieses Open-Source-Service-Mesh ist plattformunabhängig, d. h. es erfordert weder Kubernetes noch Nomad. Trotzdem Nomad vereinfacht den Prozess der Verwaltung der Microservice-Kommunikation über Consul.

Offenes Service Mesh von Microsoft

Open Service Mesh (OSM) ist ein CNCF Envoy-Projekt das eine Service-Mesh-Schnittstelle implementiert, um dynamische Microservice-Anwendungen zu verwalten und zu sichern. Es verwendet Envoy xDS als Beiwagencontainer. Zu den Hauptfunktionen gehören Traffic-Shifting, Zertifikatsverwaltung, Aktivierung von mTLS, automatische Sidecar-Injektion und Zugriffskontrollrichtlinien.

Kuma

Kuma ist eine Open-Source-Steuerungsebene für Kubernetes und VMs, die in einem Service Mesh ausgeführt werden. Es verfügt über eine L4+L7-Richtlinienarchitektur das Funktionen wie Diensterkennung, Routing, Zero-Trust-Sicherheit und Beobachtbarkeit implementiert. Die Plattform ist hochgradig skalierbar und einfach einzurichten.

OpenShift Service Mesh Red Hat

Red Hat hat sein OpenShift Service Mesh für die Verwaltung von Microservice-Anwendungen entwickelt. Es bietet mehrere Schnittstellen für Netzwerke und erhöhte Sicherheit mit Sicherheitskontextbeschränkung . Es misst die Leistung mit Jager und beobachtet Interaktionen zwischen Diensten mit Kiali . Darüber hinaus enthält OpenShift den Red Hat 3scale Istio Mixer Adapter für eine bessere API-Sicherheit.

AWS-App-Mesh

Amazon hat App Mesh entwickelt, eine kostenlose Service-Mesh-Software, die alle Ihre Dienste innerhalb einer Microservice-Architektur verwaltet. Es bietet Hochverfügbarkeit und End-to-End-Sichtbarkeit für Ihre Microservice-Anwendung. AWS App Mesh lässt sich in AWS Fargate integrieren , Amazon ECSAmazon EC2Amazon EKSKubernetes und AWS-Außenposten . Mit seinen Überwachungstools werden Überwachungsdaten automatisch exportiert.

Network Service Mesh

Network Service Mesh ist ein Open-Source-CNCF-Sandbox-Projekt . Es handelt sich um ein Hybrid-/Multi-Cloud-IP-Service-Mesh, das einen einfachen Satz von APIs verwendet, um die Konnektivität zu erleichtern. Es stellt eine Verbindung zwischen Diensten her, die in Containern ausgeführt werden, und mit externen Endpunkten. Nach der Implementierung sind nur minimale Änderungen an Kubernetes erforderlich.

Fazit

Ein Service Mesh vereinfacht die Verwaltung und Wartung einer Anwendung, die mit der Microservice-Architektur entwickelt wurde. Es verbessert die Gesamtsicherheit innerhalb der Microservice-Architektur und gewährleistet die Sichtbarkeit und Beobachtbarkeit des Verkehrsflusses. Insgesamt verbessern die Service-Mesh-Funktionen die Leistung und beschleunigen den Entwicklungszyklus. Finden Sie aus einer Vielzahl verfügbarer Open-Source-Lösungen diejenige, die den Anforderungen Ihrer Anwendungen am besten entspricht.


Cloud Computing

  1. Was sind die besten Cloud-Computing-Kurse?
  2. Was sind die Vorteile des Wasserstrahlschneidens?
  3. Was sind die Vorteile des Sandstrahlens?
  4. Was sind die Haupteigenschaften von Graphit?
  5. Was sind die Vorteile des Wasserstrahlschneidens?
  6. Was sind die 7 Arten von Technologien?
  7. Welche Arten von Prototyping gibt es?
  8. Was sind die 4 Arten von Herstellungsprozessen?
  9. Was sind die 5 Bearbeitungsachsen?
  10. Welche Arten von Lagern gibt es?