IBM Mono2Micro -Übersicht
IBM® Mono2Micro™ ist ein halbautomatisches Dienstprogramm zur Umstrukturierung von monolithischen Java®-Anwendungen in Microservices, die Sie auf WebSphere® Application Server Liberty oder Open Liberty. Sie können IBM Mono2Micro und die darin enthaltenen Empfehlungen verwenden, um automatisch einen wichtigen Teil des Codes zu generieren, den Sie zum Erstellen und Implementieren Ihrer Mikroservices benötigen.
Bei der statischen und dynamischen Analyse verwendet IBM Mono2Micro seine Machine Learning-Engine und eine Analyse des monolithischen Java -Anwendungscodes zum Generieren von Partitionsempfehlungen. Partitionsempfehlungen sind Gruppierungen von Klassen im Monolithen, die als Ausgangspunkt für Mikroservices dienen können. Die empfohlenen Partitionen sowie weitere relevante Informationen werden in einer intuitiven Workbench-Benutzerschnittstelle angezeigt. Basierend auf den integrierten Kenntnissen über die Programmiersprache Java bietet IBM Mono2Micro auch eine umfassende semantische Analyse von Klassen-zu-Klassen-Aufrufen. Durch die Verwendung der Workbench-Benutzerschnittstelle und der detaillierten Analyse erhalten Sie ein klares Bild der Partitionierungsempfehlungen, die Sie entsprechend Ihren Geschäftsanforderungen iterativ optimieren können. Nachdem Sie sich für eine bestimmte Partitionierungsempfehlung entschieden haben, können Sie IBM Mono2Micro ausführen, um automatisch einen wichtigen Teil des Codes zu generieren, den Sie zum Erstellen und Implementieren der empfohlenen Partitionen zusammen mit Ihrem vorhandenen Monolith-Code benötigen. Nachdem Sie den generierten Code überprüft haben, können Sie die Empfehlungen weiterhin schrittweise anpassen und Code generieren, bis Sie die gewünschten Mikroservices haben. Anschließend können Sie die Mikroservices in WebSphere Application Server Liberty oder Open Libertyausführen.
IBM Mono2Micro ist verfügbar als Teil von IBM WebSphere Hybrid Edition und IBM Cloud Pak® for Applications.
Die Reise IBM Mono2Micro
IBM Mono2Micro -Befehle bieten die folgenden Funktionen.
Damit IBM Mono2Micro Ihre Anwendung analysieren kann, müssen Sie zuerst den Befehl mono2micro analyze für den zugehörigen Code ausführen und anschließend Ihre Anwendung mit Instrumentierung ausführen, um alle zu analysierenden Daten zu erfassen.
- Führen Sie den Befehl mono2micro analyze für Ihr Anwendungsarchiv aus, um JSON-Tabellendateien zu erstellen, die Informationen zum Code enthalten, wie z. B. vollständige Klassennamen, Methodensignaturen, Statusvariablen und Vererbungsbeziehungen.
- (Optional) Implementieren Sie Ihre Anwendung mit aktiviertem Binärinstrumenter.
- (Optional) Führen Sie den Befehl mono2micro usecase mit Ihren Geschäftsanwendungsfällen aus, um eine oder mehrere JSON-Kontextdateien und Protokolldateien für die Analyse zu erstellen.
Um die beiden Refactoring-Optionen von IBM Mono2Microabzurufen, führen Sie den Befehl mono2micro recommend für Ihre zuvor erfassten Dateien aus, um Berichte und JSON-Diagramme mit den Partitionsempfehlungen abzurufen.
- Platzieren Sie Dateien an Positionen im Eingabeverzeichnis, um Empfehlungen aus der statischen Codeanalyse und optional der Codegenerierung abzurufen.
- Nur für die statische Codeanalyse: Stellen Sie JSON-Tabellendateien (aus mono2micro analyze) an die richtige Position im Eingabeverzeichnis.
- Für die statische Codeanalyse und Codegenerierung platzieren Sie JSON-Tabellendateien (aus mono2micro analyze), Protokolldateien (aus dem Anwendungsserver während der Ausführung von Geschäftsanwendungsfällen) und die JSON-Kontextdatei (aus mono2micro usecase während der Ausführung von Geschäftsanwendungsfällen) an den entsprechenden Positionen im Eingabeverzeichnis.
- Führen Sie den Befehl mono2micro recommend aus, um Berichte und ein Diagramm-JSON mit den Refactoring-Ansätzen zu erstellen.
- Platzieren Sie Dateien an Positionen im Eingabeverzeichnis, um Empfehlungen aus der statischen Codeanalyse und optional der Codegenerierung abzurufen.
Führen Sie den Befehl mono2micro workbench aus, um die Workbench-Benutzerschnittstelle zu starten, in der Sie sich ein besseres Verständnis Ihrer Anwendung und ihrer Klassen verschaffen können, indem Sie die beiden Refactoring-Ansätze untersuchen, die für Ihre Anwendung erstellt werden. Die beiden Refactoring-Ansätze von IBM Mono2Micro sind Geschäftslogik und natürliche Nähte. Diese Empfehlungen wurden anhand der Analyse der Laufzeitaufrufe Ihrer Anwendung und der erkannten Datenabhängigkeiten erstellt. Wenn keiner dieser Ansätze Ihren Vorstellungen entspricht, erstellen und speichern Sie einen Plan für Ihre eigene angepasste Partitionierungslösung.
- Starten Sie das Container-Image der Workbench-Benutzerschnittstelle mit dem Befehl mono2micro workbench .
- Greifen Sie auf die Benutzerschnittstelle in Ihrem Browser zu und laden Sie die JSON-Datei, die mit dem Befehl mono2micro recommend erzeugt wird.
- Untersuchen Sie Refactoring-Ansätze.
- (Optional) Erstellen und speichern Sie die JSON-Datei mit den Optionen für das angepasste Refactoring.
Führen Sie den Befehl mono2micro transform aus, um automatisch Startcode für die Erstellung Ihrer Mikroservices zu erstellen.
- (Optional) Wenn Sie die natürliche Nähte oder das angepasste Refactoring verwenden möchten, führen Sie den Befehl mono2micro refine aus.
- Führen Sie den Befehl mono2micro transform aus, um Code zu erzeugen.
- Bearbeiten und implementieren Sie Code in den Testumgebungen.
Funktionsweise
Die folgende Abbildung zeigt den Workflow über IBM Mono2Micro. Die blauen Kästchen, die mit dem Begriff (Action)
beginnen, stellen Benutzeraktionen dar. Die nicht ausgefüllten Felder, die mit dem Begriff (File)
beginnen, stellen Dateien dar. Die durchgezogenen Linien zeigen auf die nächsten Schritte. Die gestrichelten Linien zeigen die Verwendung von Dateien und zeigen auf die nächsten Benutzeraktionen bzw. Dateien im Workflow. Der Workflow beginnt mit Anwendungscode und endet nach der Analyse und Codegenerierung mit generiertem Startercode für Partitionen.
IBM Mono2Micro -Komponenten
IBM Mono2Micro besteht aus den folgenden sechs Komponenten, die in der vorherigen Abbildung dargestellt sind:
- Code Analyzer (
mono2micro-bluejay
Container oder binary analyzer .jar) - Der Befehl mono2micro analyze , der den Java -Code monolithischer Anwendungen analysiert und optional instrumentiert.
- Binärer Instrumenenter (minerva-agent-1.0.jar)
- Ein Java -Agent, der eine aktive Anwendung instrumentiert, die auf dem Anwendungsserver implementiert ist
- Anwendungsfallrecorder (Flicker)
- Führen Sie mit dem Befehl mono2micro usecase ein Java -Programm aus, das Anwendungsfallnamen und -zeiten aufzeichnet. Verwenden Sie sie, wenn Sie Testsuites oder Testfälle ausführen, die verschiedenen Geschäftsanwendungsfällen einer monolithischen Java -Anwendung entsprechen.
- Die AI-Engine für Partitionsempfehlungen (
mono2micro-aipl
-Container) - Der Befehl mono2micro recommend führt die AI-Engine von IBM Mono2Microaus. Es verwendet Verfahren für maschinelles Lernen für die vom Benutzer bereitgestellten Laufzeittraces und Metadaten, die aus der Quellcodeanalysefunktion abgerufen werden. Sie verwendet die resultierenden Informationen, um Partitionsempfehlungen zu generieren, die letztendlich zu Mikroservices werden können. Dieser Befehl erstellt auch einen detaillierten Bericht für die empfohlenen Partitionen.
- IBM Mono2Micro Workbench-Benutzerschnittstelle
- Der
mono2micro-ui
-Container, der die Empfehlungen der KI-Engine anzeigt, wenn er mit dem Befehl mono2micro workbench gestartet wird. Die Empfehlungen, die Sie von der IBM Mono2Micro AI-Engine erhalten haben, werden in Ihrem lokalen Speicher gespeichert. Sie können die Empfehlungen in der Benutzerschnittstelle der Workbench laden, um sie in einem grafischen Visualizer anzuzeigen. Über die Benutzerschnittstelle können Sie die KI-generierten Partitionsempfehlungen ändern. - Codegenerator (
mono2micro-cardinal
-Container) Der Befehl mono2micro transform ruft den Codegenerator auf, der über umfassende Kenntnisse der Semantik der Programmiersprache Java verfügt. Der Codegenerator verwendet die Empfehlungen der KI-Engine, um Folgendes zu tun:
- Bereitstellung detaillierter Aufrufanalysen der empfohlenen Partitionen, die schließlich als Mikroservices implementiert werden können.
- Generieren Sie detaillierte Vererbungsanalysen der empfohlenen Partitionen.
- Generieren Sie einen wichtigen Teil des Codes, der zur Realisierung der empfohlenen Partitionen in Containern erforderlich ist.
Sie können die Tools von Mono2Micro herunterladen und auf Ihrem lokalen Computer ausführen.
Schritte für das Refactoring einer monolithischen Java -Anwendung
Die folgenden Schritte beschreiben, wie ein Refactoring einer monolithischen Java -Anwendung mithilfe von IBM Mono2Microausgeführt wird. Sie stellen eine detailliertere Version der vorherigen Abbildung dar.
Einige der vorherigen Schritte werden ausführlich in anderen IBM Mono2Micro -Themen erläutert.
- Die Installation von IBM Mono2Micro umfasst operative Aspekte von IBM Mono2Micro aus Sicht eines Benutzers, einschließlich des Ressourcenbedarfs.
- Im Abschnitt Daten zu monolithischen Java -Anwendungen erfassen werden die erforderlichen Schritte und relevanten Informationen für die Ausführung der Schritte 2a und 2bbeschrieben.
- Im Abschnitt Partitionsempfehlungen abrufen wird beschrieben, wie die Schritte 2c und 2dausgeführt werden und, falls erforderlich, Schritt 3.
- Schritt Mikroserviceempfehlungen anzeigen Schritt 2d, einschließlich der Vorgehensweise zum Interpretieren und Anpassen der von IBM Mono2Micro generierten Mikroserviceempfehlungen.
- Berichte enthalten weitere Informationen zu den in den Schritten 2d und 3 erstellten Partitions-und Vererbungsanalyseberichten.
- Der Schritt Starter-Code für Mikroservices generieren enthält Details zu Schritt 4a für die automatische Generierung von Mikroservicecode.