Erste Schritte mit Microservices

Microservices sind ein Architekturansatz zur Entwicklung moderner Software. Jede Kernfunktion oder jeder Service stellt einen zugehörigen Geschäftskontext dar, der unabhängig erstellt und bereitgestellt wird. Microservices bieten Agilität bei der Anwendungsentwicklung und -verwaltung und stellen einen Kontrast zu dem monolithischen Ansatz bei der Entwicklung von Legacy-Software dar. Die Moderniserung von Anwendungen ist heute geradezu ein Synonym für Microservices.

Wenn Sie mehr über Microservices erfahren, werden Sie den Kontrast zu monolithischen Architekturen, Überlegungen zur Einführung der Microservices-Architektur, Kommunikationsmechanismen, die 12-Faktor-Deployment-Methodik, Bereitstellung in Kubernetes, Datenpersistenz, Service Mesh und Best Practices für das Design von Microservices sehen.

Vorteile von Microservices

  • Vereinfachte Bereitstellung

    Beschleunigen Sie die Time-to-Market für neue Funktionen, indem Sie kontinuierliche Integration und Bereitstellung bieten, die Blaue/Grüne Bereitstellungsmodelle für Services unterstützten.

  • Performance nach Bedarf skalieren

    Skalieren Sie Servicecontainer oder Datenplattformen unabhängig pro Service, um die Anforderungen dieser Funktionen zu erfüllen.

  • Standardmäßig hochverfügbar

    Ersetzen oder Deaktivieren Sie unabhängige Services, ohne die gesamte Anwendung zu beeinträchtigen. Einzelne Servicefehler werden so ordnungsgemäß durch Herabstufung des Dienstes gemeistert, anstatt die gesamte Anwendung zu unterbrechen

Erfahren Sie, wie Sie einen Microservice auf Oracle Cloud Infrastructure (OCI) erstellen.

Vorteile der Oracle Converged Database

Ein wichtiger Aspekt bei datengesteuerten Microservices ist die Bereitstellung der Datenmanagementplattform zum Deployment einer Vielzahl von Datentypen, zur Unterstützung mehrerer Datenbanken in einem Container und zur Bereitstellung autonomer Verwaltungsfunktionen. Oracle Autonomous Database auf OCI ermöglicht ein einfaches Deployment zur Erstellung intelligenter, datengesteuerter Microservices.

Erreichen Sie Transaktionskonsistenz über Microservices-basierte Anwendungen hinweg

Oracle Transaction Manager for Microservices (MicroTx) vereinfacht die Anwendungsentwicklung und -ausführung durch das Ermöglichen verteilter Transaktionen, um Konsistenz über mehrsprachige Microservices sicherzustellen, die in Kubernetes und/oder anderen Umgebungen bereitgestellt werden.

Vollständige und offene Plattform für Mikroservices

Für die Anwendungsmodernisierung müssen mehrere Technologien integriert werden, um die richtige Grundlage von Multicloud-Microservices schaffen zu können. Mit Oracle LiveLabs erhalten Sie Zugang zu den Tools und Technologien von Oracle, um eine Vielzahl von Übungen und Workshops auszuführen. Diese Workshops zeigen, wie Sie ergänzend zu Oracle offene Technologien einsetzen, um einfachere Architekturen zu erstellen, die Bereitstellungsflexibilität bieten. Erstellen Sie Microservice in Oracle LiveLabs mit Cloud- und Hybridkomponenten, die in OCI verfügbar sind, einschließlich Autonomous Database, Helidon, Micronaut, MicroTx, WebLogic Server, Java, Docker, Kubernetes und Istio Service Mesh. Um Ihnen den Einstieg in Ihre Microservices-Journey zu erleichtern, gibt es mehrere Übungen, mit denen Sie Ihre monolithischen Unternehmensanwendungen modernisieren oder vereinfachen können, wenn Sie diesen Weg bereits eingeschlagen haben.

Tabelle der offenen Plattformen

Datengesteuerte Microservices mit Oracle Converged Database

In Oracle LiveLab wird eine Anwendung für das Bereitstellen von mobilen Nahrungsmitteln mit dem Namen GrabDish erstellt, um die Einfachheit der Datenarchitektur mit einem modernen Entwicklungsstack hervorzuheben. Die Komplexität von Datenbanken mit besonderem Zweck, die traditionell als Lambda- und Kappa-Architekturen in der Branche verwendet wird (mit separaten Systemen für relationale, Text-, räumliche, Graph- und Messaging-Systeme), steht im Gegensatz zur Einfachheit der Erstellung datengesteuerter Microservices mit Oracle Converged Database. Die Übung richtet sich an Entwickler und Architekten, um neue Microservices zu entwerfen. Außerdem unterstützt es DBAs dabei, die Rolle von Oracle Database in Projekten der Anwendungsmodernisierung zu verstehen. Autonomous Database, Kubernetes-Cluster mit Docker-Containern, Oracle Advanced Queuing und Transactional Event Queues und Helidon werden verwendet, um Java-, Node.js- und Python-Microservices anzuzeigen, die mit relationalen, JSON-, räumlichen und Diagrammdaten arbeiten. Dabei wird ein Tracing und Monitoring mit Kiali, Jaeger, Prometheus und Grafana eingerichtet. Es wird Microservices-Muster wie Ereignisbeschaffung, CQRS oder SAGAs dargestellt.

Datengesteuerte Microservices mit Oracle Converged Database

Transaktionskonsistenz über Microservices hinweg mit Oracle Transaction Manager for Microservices

Da die Microservices-Architektur immer beliebter wird, stoßen Entwickler oft auf Probleme im Zusammenhang mit der Datenkonsistenz, da jeder Microservice in der Regel eine eigene Datenbank oder eine andere Ressource hat. MicroTx bietet einen Microservice für die Transaktionskoordination, um die Konsistenz im Status verschiedener an einer Transaktion teilnehmender Datenbanken aufrechtzuerhalten. MicroTx unterstützt mehrere verteilte Transaktionsprotokolle, wie XA, lang andauernde Aktionen (LRAs) und try-confirm/cancel (TCC). Es unterstützt verteilte Transaktionen über mehrsprachige Microservices, wie Java, node.js, C/C++ und PL/SQL. In dieser LiveLab können Entwickler lernen, wie sie Datenkonsistenz über verschiedene Microservices hinweg erreichen, die in einer Beispielanwendung verwendet werden.

Transaktionskonsistenz über Microservices hinweg mit Oracle Transaction Manager for Microservices

Bausteine

Vollständige und offene Plattform für Microservices

Für die Anwendungsmodernisierung müssen mehrere Technologien integriert werden, um die richtige Grundlage für Multicloud Microservices zu schaffen. Mit Oracle LiveLabs erhalten Sie Zugang zu den Tools und Technologien von Oracle, um eine Vielzahl von Übungen und Workshops auszuführen. Diese Workshops zeigen, wie Sie ergänzend zu Oracle offene Technologien einsetzen, um einfachere Architekturen zu erstellen, die Bereitstellungsflexibilität bieten. Erstellen Sie Microservices in Oracle LiveLabs mit Cloud- und Hybridkomponenten, die in OCI, Autonomous Database, Helidon, Micronaut, Weblogic, Java, Docker, Kubernetes und Istio Service-Mesh in einem umfassenden Microservices-Plattform-Stack verfügbar sind. Es gibt mehrere Übungen, in denen Sie monolithische Unternehmensanwendungen modernisieren können, um den Einstieg in Ihre Microservices bzw. die allgemeine Nutzung dieser zu erleichtern.

Microservices-Bedingungen

Serverlos – Kein persistenter Status in einem Datenspeicher erforderlich, Aufgaben werden im Handumdrehen ausgeführt – Feuer- und Vergessen-Stil. Beispiel: Lambda-Funktionen und API-Gateways.

API-gesteuert - Microservices kommunizieren miteinander über REST-APIs, z.B. ein API-Gateway. Jeder Microservice hat eine API-Definition.

Asynchrone Microservice – Eine lose Kopplung wird mit asynchronem Messaging über Queues oder Streaming-Software erreicht, z. B. mit Oracle Advanced Queuing oder Apache Kafka.

Workflowaktionen - Geschäftsabläufe (mit Personen in der Schleife) stellen auch Transaktionen mit langer Ausführungszeit dar, z.B. mit BPMN-Frameworks wie Camunda, Zeebe oder temporal.io-Ablauf.

Automatisierter Workflow – Aufgaben, die als einfacher Workflow automatisiert (ohne Menschen in der Schleife) ausgeführt werden, z.B. mit Apache Airflow und Argo (CNCF).

Datengesteuerte – Datenarchitektur steigert die Nutzung von Daten in der App für Vorgänge und Entscheidungsfindung, in der Regel mit einem persistenten Speicher, z.B. Oracle Converged Database oder mit Datenbanken für spezielle Zwecke.

Cloud-nativ – Eine Anwendung, die vollständig für die Cloud entwickelt wurde, beispielsweise mit CNCF-Komponenten und OCI-Services.

Hybrid-Cloud-Microservices – Microservices, die im gesamten Data Center des Kunden (private Cloud) und in einer Public Cloud funktionieren, beispielsweise mit Kubernetes/Service-Mesh zur Orchestrierung über eine Private Cloud und Public Cloud (Anwendungsfälle für Cloud-Bursting).

Multicloud-Microservices – Microservices, die über mindestens zwei Public-Clouds und eine Private Cloud hinweg funktionieren, z. B. mit Kubernetes/Service-Mesh zur Koordinierung über mehrere Cloud's hinweg (Risikominderung und Verhinderung einer Abhängigkeit von einer Public Cloud).

Microservices-Herausforderungen

Microservices sind zwar ein Synonym für Anwendungsmodernisierung und der Weg in die Zukunft für die ganze Anwendungsentwicklung, aber es gibt einige Überlegungen, die den Weg zu Microservice-Architekturen effizienter machen.

  • Auswahl der Anzahl unabhängiger Microservices für eine Anwendung. Eine Bereitstellung von Microservices wird komplex, wenn Tausende von Microservices bereitgestellt werden müssen und eine harmonische Leistung erwartet wird, wenn der Kontext jedes Service sehr klein ist. Die Erfahrung zeigt, dass der Wechsel zu Microservices, wenn 20 bis 50 Microservices mit den richtigen gebundenen Kontexten identifiziert werden, die versprochenen Vorteile besser identifiziert.
  • Die Implementierung von Transaktionen über die Grenzen von Microservices hinweg war eine Herausforderung bei den XA-Transaktionen (in einigen Fällen synchrone und leistungsbegrenzende Transaktionen). Synchrone SAGAs haben sich als leistungsstärker und robuster erwiesen, die durch Unterstützung in der konvergierten Oracle Database weiter vereinfacht werden.
  • Die Notwendigkeit einer losen Kopplung zwischen Microservices stellt eine Herausforderung bei der Verwendung synchroner REST-API-Dienste dar, und Messaging-/Warteschlangensysteme machen diese Kommunikation asynchron und skalierbarer bei der Bereitstellung von Anwendungen in einer Hybrid-Cloud-Umgebung.
  • Das Tracing und Die Beobachtbarkeit sind nicht nur auf der Anwendungsebene oder der Mid-Tier wichtig, sondern auch auf der Datenebene – für ein ganzheitliches End-to-End-Deployment und der Unterstützung von Microservice-Architekturen. Tools und Analyseintegrationen beginnen gerade erst, diesen wichtigen Aspekt für hybride Implementierungen zu berücksichtigen.

Kundenerfolge mit Microservices