qaware.de
Cloud-Migration
mit KI: der Turbo
Andreas Zitzelsberger
andreas.zitzelsberger@qaware.de
Agenda
● Einführung: Wie Cloud-Migration geht und wie KI
dabei helfen kann
● Case Studies: Ausgewählte Beispiele aus dem
echten Leben zeigen, was KI kann
● Ausblick: Zukünftige Entwicklungen, die sich auf
den Einsatz von KI für Migration und
Modernisierung auswirken
● Fazit: Chancen, Grenzen und Risiken des Einsatzes
von KI für Migration und Modernisierung
Illustration: Dall-E
3
Transparenz schaffen Alignment herstellen Architektur & Blueprint
4 5 6
Acceleration Cloud-friendly Migration Cost Control
1 2 3
Sprachmodelle haben eine lange Historie –
sind aber erst seit kurzem vielseitig praktisch nutzbar
4
QAware
1967
Eliza
1997
LSTM
2010
Stanford
Core NLP
2011
Google
Brain
2017
Google
Transformer
Architecture
2020
GPT-3
2021
GitHub
Copilot
2022
ChatGPT
Wir benutzen im folgenden GPT als Stellvertreter für Large
Language Models (LLMs)
5
QAware
● GPT 3.5/4 ist aktuell das beste Modell zur
Verarbeitung von Source Code.
● ChatGPT lässt sich leicht automatisieren und auf
große Codebasen anwenden:
○ OpenAI API
○ OpenAI Python Bindings
○ CLI-Werkzeuge wie Chatblade
● Einschränkungen:
○ Die Anzahl der Eingangs-Token ist begrenzt.
Code-Files vernünftiger Größe können am
Stück verarbeitet werden, ganze Code-Basen
müssen Stück für Stück verarbeitet werden.
○ Serverseitige Verarbeitung erfordert
Vertrauen.
Generated with Stable Diffusion
6
Transparenz schaffen Alignment herstellen Architektur & Blueprint
4 5 6
Acceleration Cloud-friendly Migration Cost Control
1 2 3
🤖
🤖 🤖 ?
?
Case Study: Analyse und Acceleration von COBOL
● Ziel: Code-Verständnis schaffen
● Methode: Analyse und Übersetzung mit ChatGPT
● Ergebnis: Sehr hilfreich für Analysen und vorbereitende
Handlungen
○ ✅ Analyse funktioniert sehr gut (Demo)
○ ✅ 1:1-Übersetzung von Code und Struktur
○ ⚠️ Ein echter Rebuild mit semantischer
Reduktion ist so aber nicht möglich.
○ ✅ Stiftet Nutzen für Analysen und zur
Vorbereitung von Rebuilds
○ ✅ Funktioniert genauso für andere Sprachen,
für die es ausreichend publizierten Code und
Dokumente gibt (PL/1, Java, C#, …).
7
QAware
Megatherium von Heinrich Harder
8
QAware
LLMs können KPIs berechnen und maschinenlesbar ausgeben
9
QAware
❯ chatblade -o -e "Count the number of selected files in this COBOL program." 
"Provide JSON output in the following form: {"selected-files": <count>}." 
"Only provide the JSON output." 
< fxsort.cbl
{"selected-files": 5}
⚠️ Dabei ist ChatGPT leider nicht zuverlässig: AI doing AI things.
➜ Akzeptabel, wenn man mit einer gewissen Unschärfe leben kann.
Leider ist ChatGPT ein Teil der #NoEstimates-Bewegung
10
QAware
“Das Schätzen der Entwicklerstunden für einen neuen Codeabschnitt kann schwierig sein, da es
von Faktoren abhängt wie der Vertrautheit des Entwicklers mit der Programmiersprache, seiner
Erfahrung, der Komplexität des Codes und den spezifischen Anforderungen des Projekts.
Zusätzlich kann das Nachbilden von Code mehr beinhalten als nur das Übersetzen des Codes in
eine andere Sprache, da Optimierungen, Verbesserungen oder Fehlerbehebungen erforderlich
sein könnten.”
Übersetzung: ChatGPT
11
QAware
Das, was wir sehen, wenn wir mit einem Sprachmodell
interagieren…
● Die Eingriffe sind notwendig, um
hochwertige Ergebnisse zu liefern.
● Aber: Die Eingriffe werden auch genutzt,
um Kontroversen zu vermeiden.
● ⚠️ Sprachmodelle haben menschliche
Schlagseiten und Vorurteile.
12
QAware
… ist das Ergebnis eines komplexen Trainingsprozesses mit
menschlichen Eingriffen
Quelle: Twitter @anthrupad
KI-gestützte Framework-Migration in Java
● Ziel: Migration von Legacy J2EE zu Spring
● Methode: Code-Transformation mit ChatGPT
● Ergebnis: Erleichtert die Migration im kleinen
deutlich
✅ Sterotype Transformationen, “Boilerplate”
✅ Transpilierung (Z.B. Python → JavaScript)
⚠️ Begrenzte Zahl an Input-Token.
Funktioniert nur Stück-für-Stück
➜ keine semantische Transformation einer ganzen
Architektur
❌ Technologien mit beschränkter öffentlicher
Datenbasis funktionieren schlecht.
13
QAware
Es gibt erste FOSS-Unterstützung für die AI-gestützte Migration.
Case Study
Der Report Program Generator (RPG) ist “Die
Brücke von der Stecktafel zur Datenbank”.
Analyse von IBM RPG
● Ziel: Code-Verständnis schaffen und Abhängig-
keiten ermitteln
● Methode: Analyse und Transpilierung mit ChatGPT
● Ergebnis: ❌ Nicht brauchbar
● Ursachen:
○ RPG ist heutzutage zu exotisch. Es gibt kaum
öffentliche Quellen, von denen ein Modell
lernen könnte
○ RPG ist eine kontext-behaftete Sprache
● Alternative Lösung: Parsing mittels eines
kommerziellen Parsers, non-AI Auswertungen auf
dem Syntaxbaum
14
QAware
C MOVEL'HELLO' HELLO 11
C MOVE 'WORLD' HELLO
C HELLO DSPLY WAIT 1
C SETON
LR
Hello World in RPG III
Quelle: Die Geschichte der maschinellen Datenverarbeitung. Band 1, Untertitel IBM
Enzyklopädie der Informationsverarbeitung, - IBM Form D 12-0028 (3/91), Überschrift Seite 140
Case Study
Fehlersuche und Qualitätshub in Java
● Ziel: Bestandscode in Java modernisieren
● Methode: Analyse mit ChatGPT
● Ergebnis: Brauchbare Ergänzung zu bekannten
Werkzeugen
✅ Findet viele Probleme im Kleinen
⚠️ Aber nicht alle und auch nicht zuverlässig
⚠️ Semantische Probleme werden oft erkannt –
oft aber auch nicht
⚠️ Die Ergebnisse können auch mal Fehler
enthalten. Es braucht Experten, um die
Ergebnisse zu verwerten
15
QAware
Foto von James Wainscoat auf
Unsplash
Case Study
You are a an expert software engineer proficient in source code
analysis. Explain potential issues with the following Java code:
Wer findet alle Probleme im Code?
16
QAware
String input = "{" +
""consumerId": "_$CONSUMER_ID$_"," +
""transactionId": "_$TRANSACTION_ID$_"," +
""targetId": "_$TARGET_ID$_"," +
""docId": "_$DOC_ID$_"" +
"}";
input = input.replaceAll("_$CONSUMER_ID$_", consumerId);
input = input.replaceAll("_$TRANSACTION_ID$_", transactionId);
input = input.replaceAll("_$TARGET_ID$_", targetId);
input = input.replaceAll("_$DOC_ID$_", docId);
Wer findet alle Probleme im Code?
➜ ChatGPT leider nicht
17
QAware
String input = "{" +
""consumerId": "_$CONSUMER_ID$_"," +
""transactionId": "_$TRANSACTION_ID$_"," +
""targetId": "_$TARGET_ID$_"," +
""docId": "_$DOC_ID$_"" +
"}";
input = input.replaceAll("_$CONSUMER_ID$_", consumerId);
input = input.replaceAll("_$TRANSACTION_ID$_", transactionId);
input = input.replaceAll("_$TARGET_ID$_", targetId);
input = input.replaceAll("_$DOC_ID$_", docId);
ChatGPT findet 5 potenzielle Probleme auf der Grasnarbe
und liefert ein Code-Beispiel, um diese zu verbessern:
1. Keine Fehlerbehandlung
2. Performance-Probleme durch String.replaceAll
3. Wiederholte Erzeugung des input-String
4. Keine JSON-Validierung
5. Die Platzhalter können Verwirrung stiften
⚠️ Erkennt dabei aber nicht den Elefanten im Raum:
Der Code sollte so nicht existieren!
JSON sollte allein schon aus Sicherheitsgründen nicht von
Hand erzeugt werden.
Wir setzen GitHub Copilot breit ein,
nicht nur für Migrationen
GitHub Copilot bietet Code-Generierung direkt in der IDE
● Beschleunigt Programmieraufgaben.
● Hilft Entwicklern sich in neuen Technologien schneller
zurecht zu finden.
Vergleichbar mit einem Junior Pair Programmer
● Kann Bugs, Sicherheitslücken oder schlechten Code
produzieren.
● Entwickler müssen in der Lage sein, Probleme zu
erkennen und die generierten Lösungen passend
umzuarbeiten,
18
QAware
Zweischneidiges Schwert:
● ✅ Macht gute und erfahrene
Entwickler spürbar produktiver.
● ⚠️ Für alle anderen: Hohes Potential
sich in den Fuß zu schießen.
Small LLMs am Beispiel: LMSYS Vicuna
● verspricht 90% ChatGPT-Qualität
● in ~66GB Größe
● zu ~300$ Trainingskosten
● Viele Modelle sind mit Quellcode als Open
Source verfügbar
● Der Betrieb auf einem PC ist sinnvoll möglich
Eigenständig nutzbare Modelle werden
völlig neue Anwendungen ermöglichen
LLaMA / LLaMA 2 von Meta
● Large Language Model Meta AI
● Großes, hochqualitatives, mit GPT vergleichbares
Datenmodell
● Die LLaMA 2-Gewichte sind offiziell offen verfügbar
● Kann in vielen Fälle kommerziell genutzt werden
19
QAware
Ausblick
Das Forschungsprojekt DeepQuali bewertet
Softwarequalität mit KI
Thema: Software-Qualität mit KI bewerten
■ fachliche/technische Schulden
■ Beurteilung der Qualität mit KI-Modellen
■ Beurteilung der Qualität mit konventionellen
Methoden
■ Kombination mit Machine Learning Ops für
Produktionsreife Modellentwicklung
BMBF Forschungsprojekt im Programm KI4KMU
Laufzeit: 1.6.23 - 30.11.25
20
QAware
Foto von Tima Miroshnichenko auf Pexels
Ausblick
Fazit: Moderne KI bietet bei Migration und Modernisierung
handfeste Vorteile, braucht aber Experten
21
QAware
■ Code-Analysen, sowohl explorativ als auch
autmatisierbar
■ Fehlersuche, Performance- und Qualitäts-
verbesserungen
■ Übersetzungen von einer Programmiersprache
in eine andere
■ Unterstützung von Framework- und Tool-
Migrationen
■ Beschleunigung von Programmieraufgaben
Chancen
■ Die begrenzte Anzahl an Input Token macht eine
Stück-für-Stück-Verarbeitung notwendig.
■ Blockchain-Syndrom:Viele Probleme lassen sich
mit klassischen Ansätzen besser lösen.
■ Falsche und unzureichende Ausgaben, die aber
plausibel aussehen können, verursacht durch
Halluzinationen, d.h. falsche, vom Modell
erzeugte Ausgaben, sowie Lücken, Fehler und
falsche Daten in den Trainingsdaten
■ Das Urheberrecht. Generierter Code und Daten
sollten nicht 1:1 verwendet werden.
Grenzen und Risiken
qaware.de
Hier gibt’s Infos zu
Cloud-friendly Migration
qaware.de
QAware GmbH
Aschauer Straße 32
81549 München
Tel. +49 89 232315-0
info@qaware.de
twitter.com/qaware
linkedin.com/company/qaware-gmbh
xing.com/companies/qawaregmbh
slideshare.net/qaware
github.com/qaware
Danke für’s Zuhören
Welche Fragen habt ihr?

Cloud Migration mit KI: der Turbo

  • 1.
    qaware.de Cloud-Migration mit KI: derTurbo Andreas Zitzelsberger andreas.zitzelsberger@qaware.de
  • 2.
    Agenda ● Einführung: WieCloud-Migration geht und wie KI dabei helfen kann ● Case Studies: Ausgewählte Beispiele aus dem echten Leben zeigen, was KI kann ● Ausblick: Zukünftige Entwicklungen, die sich auf den Einsatz von KI für Migration und Modernisierung auswirken ● Fazit: Chancen, Grenzen und Risiken des Einsatzes von KI für Migration und Modernisierung Illustration: Dall-E
  • 3.
    3 Transparenz schaffen Alignmentherstellen Architektur & Blueprint 4 5 6 Acceleration Cloud-friendly Migration Cost Control 1 2 3
  • 4.
    Sprachmodelle haben einelange Historie – sind aber erst seit kurzem vielseitig praktisch nutzbar 4 QAware 1967 Eliza 1997 LSTM 2010 Stanford Core NLP 2011 Google Brain 2017 Google Transformer Architecture 2020 GPT-3 2021 GitHub Copilot 2022 ChatGPT
  • 5.
    Wir benutzen imfolgenden GPT als Stellvertreter für Large Language Models (LLMs) 5 QAware ● GPT 3.5/4 ist aktuell das beste Modell zur Verarbeitung von Source Code. ● ChatGPT lässt sich leicht automatisieren und auf große Codebasen anwenden: ○ OpenAI API ○ OpenAI Python Bindings ○ CLI-Werkzeuge wie Chatblade ● Einschränkungen: ○ Die Anzahl der Eingangs-Token ist begrenzt. Code-Files vernünftiger Größe können am Stück verarbeitet werden, ganze Code-Basen müssen Stück für Stück verarbeitet werden. ○ Serverseitige Verarbeitung erfordert Vertrauen. Generated with Stable Diffusion
  • 6.
    6 Transparenz schaffen Alignmentherstellen Architektur & Blueprint 4 5 6 Acceleration Cloud-friendly Migration Cost Control 1 2 3 🤖 🤖 🤖 ? ?
  • 7.
    Case Study: Analyseund Acceleration von COBOL ● Ziel: Code-Verständnis schaffen ● Methode: Analyse und Übersetzung mit ChatGPT ● Ergebnis: Sehr hilfreich für Analysen und vorbereitende Handlungen ○ ✅ Analyse funktioniert sehr gut (Demo) ○ ✅ 1:1-Übersetzung von Code und Struktur ○ ⚠️ Ein echter Rebuild mit semantischer Reduktion ist so aber nicht möglich. ○ ✅ Stiftet Nutzen für Analysen und zur Vorbereitung von Rebuilds ○ ✅ Funktioniert genauso für andere Sprachen, für die es ausreichend publizierten Code und Dokumente gibt (PL/1, Java, C#, …). 7 QAware Megatherium von Heinrich Harder
  • 8.
  • 9.
    LLMs können KPIsberechnen und maschinenlesbar ausgeben 9 QAware ❯ chatblade -o -e "Count the number of selected files in this COBOL program." "Provide JSON output in the following form: {"selected-files": <count>}." "Only provide the JSON output." < fxsort.cbl {"selected-files": 5} ⚠️ Dabei ist ChatGPT leider nicht zuverlässig: AI doing AI things. ➜ Akzeptabel, wenn man mit einer gewissen Unschärfe leben kann.
  • 10.
    Leider ist ChatGPTein Teil der #NoEstimates-Bewegung 10 QAware “Das Schätzen der Entwicklerstunden für einen neuen Codeabschnitt kann schwierig sein, da es von Faktoren abhängt wie der Vertrautheit des Entwicklers mit der Programmiersprache, seiner Erfahrung, der Komplexität des Codes und den spezifischen Anforderungen des Projekts. Zusätzlich kann das Nachbilden von Code mehr beinhalten als nur das Übersetzen des Codes in eine andere Sprache, da Optimierungen, Verbesserungen oder Fehlerbehebungen erforderlich sein könnten.” Übersetzung: ChatGPT
  • 11.
    11 QAware Das, was wirsehen, wenn wir mit einem Sprachmodell interagieren…
  • 12.
    ● Die Eingriffesind notwendig, um hochwertige Ergebnisse zu liefern. ● Aber: Die Eingriffe werden auch genutzt, um Kontroversen zu vermeiden. ● ⚠️ Sprachmodelle haben menschliche Schlagseiten und Vorurteile. 12 QAware … ist das Ergebnis eines komplexen Trainingsprozesses mit menschlichen Eingriffen Quelle: Twitter @anthrupad
  • 13.
    KI-gestützte Framework-Migration inJava ● Ziel: Migration von Legacy J2EE zu Spring ● Methode: Code-Transformation mit ChatGPT ● Ergebnis: Erleichtert die Migration im kleinen deutlich ✅ Sterotype Transformationen, “Boilerplate” ✅ Transpilierung (Z.B. Python → JavaScript) ⚠️ Begrenzte Zahl an Input-Token. Funktioniert nur Stück-für-Stück ➜ keine semantische Transformation einer ganzen Architektur ❌ Technologien mit beschränkter öffentlicher Datenbasis funktionieren schlecht. 13 QAware Es gibt erste FOSS-Unterstützung für die AI-gestützte Migration. Case Study
  • 14.
    Der Report ProgramGenerator (RPG) ist “Die Brücke von der Stecktafel zur Datenbank”. Analyse von IBM RPG ● Ziel: Code-Verständnis schaffen und Abhängig- keiten ermitteln ● Methode: Analyse und Transpilierung mit ChatGPT ● Ergebnis: ❌ Nicht brauchbar ● Ursachen: ○ RPG ist heutzutage zu exotisch. Es gibt kaum öffentliche Quellen, von denen ein Modell lernen könnte ○ RPG ist eine kontext-behaftete Sprache ● Alternative Lösung: Parsing mittels eines kommerziellen Parsers, non-AI Auswertungen auf dem Syntaxbaum 14 QAware C MOVEL'HELLO' HELLO 11 C MOVE 'WORLD' HELLO C HELLO DSPLY WAIT 1 C SETON LR Hello World in RPG III Quelle: Die Geschichte der maschinellen Datenverarbeitung. Band 1, Untertitel IBM Enzyklopädie der Informationsverarbeitung, - IBM Form D 12-0028 (3/91), Überschrift Seite 140 Case Study
  • 15.
    Fehlersuche und Qualitätshubin Java ● Ziel: Bestandscode in Java modernisieren ● Methode: Analyse mit ChatGPT ● Ergebnis: Brauchbare Ergänzung zu bekannten Werkzeugen ✅ Findet viele Probleme im Kleinen ⚠️ Aber nicht alle und auch nicht zuverlässig ⚠️ Semantische Probleme werden oft erkannt – oft aber auch nicht ⚠️ Die Ergebnisse können auch mal Fehler enthalten. Es braucht Experten, um die Ergebnisse zu verwerten 15 QAware Foto von James Wainscoat auf Unsplash Case Study
  • 16.
    You are aan expert software engineer proficient in source code analysis. Explain potential issues with the following Java code: Wer findet alle Probleme im Code? 16 QAware String input = "{" + ""consumerId": "_$CONSUMER_ID$_"," + ""transactionId": "_$TRANSACTION_ID$_"," + ""targetId": "_$TARGET_ID$_"," + ""docId": "_$DOC_ID$_"" + "}"; input = input.replaceAll("_$CONSUMER_ID$_", consumerId); input = input.replaceAll("_$TRANSACTION_ID$_", transactionId); input = input.replaceAll("_$TARGET_ID$_", targetId); input = input.replaceAll("_$DOC_ID$_", docId);
  • 17.
    Wer findet alleProbleme im Code? ➜ ChatGPT leider nicht 17 QAware String input = "{" + ""consumerId": "_$CONSUMER_ID$_"," + ""transactionId": "_$TRANSACTION_ID$_"," + ""targetId": "_$TARGET_ID$_"," + ""docId": "_$DOC_ID$_"" + "}"; input = input.replaceAll("_$CONSUMER_ID$_", consumerId); input = input.replaceAll("_$TRANSACTION_ID$_", transactionId); input = input.replaceAll("_$TARGET_ID$_", targetId); input = input.replaceAll("_$DOC_ID$_", docId); ChatGPT findet 5 potenzielle Probleme auf der Grasnarbe und liefert ein Code-Beispiel, um diese zu verbessern: 1. Keine Fehlerbehandlung 2. Performance-Probleme durch String.replaceAll 3. Wiederholte Erzeugung des input-String 4. Keine JSON-Validierung 5. Die Platzhalter können Verwirrung stiften ⚠️ Erkennt dabei aber nicht den Elefanten im Raum: Der Code sollte so nicht existieren! JSON sollte allein schon aus Sicherheitsgründen nicht von Hand erzeugt werden.
  • 18.
    Wir setzen GitHubCopilot breit ein, nicht nur für Migrationen GitHub Copilot bietet Code-Generierung direkt in der IDE ● Beschleunigt Programmieraufgaben. ● Hilft Entwicklern sich in neuen Technologien schneller zurecht zu finden. Vergleichbar mit einem Junior Pair Programmer ● Kann Bugs, Sicherheitslücken oder schlechten Code produzieren. ● Entwickler müssen in der Lage sein, Probleme zu erkennen und die generierten Lösungen passend umzuarbeiten, 18 QAware Zweischneidiges Schwert: ● ✅ Macht gute und erfahrene Entwickler spürbar produktiver. ● ⚠️ Für alle anderen: Hohes Potential sich in den Fuß zu schießen.
  • 19.
    Small LLMs amBeispiel: LMSYS Vicuna ● verspricht 90% ChatGPT-Qualität ● in ~66GB Größe ● zu ~300$ Trainingskosten ● Viele Modelle sind mit Quellcode als Open Source verfügbar ● Der Betrieb auf einem PC ist sinnvoll möglich Eigenständig nutzbare Modelle werden völlig neue Anwendungen ermöglichen LLaMA / LLaMA 2 von Meta ● Large Language Model Meta AI ● Großes, hochqualitatives, mit GPT vergleichbares Datenmodell ● Die LLaMA 2-Gewichte sind offiziell offen verfügbar ● Kann in vielen Fälle kommerziell genutzt werden 19 QAware Ausblick
  • 20.
    Das Forschungsprojekt DeepQualibewertet Softwarequalität mit KI Thema: Software-Qualität mit KI bewerten ■ fachliche/technische Schulden ■ Beurteilung der Qualität mit KI-Modellen ■ Beurteilung der Qualität mit konventionellen Methoden ■ Kombination mit Machine Learning Ops für Produktionsreife Modellentwicklung BMBF Forschungsprojekt im Programm KI4KMU Laufzeit: 1.6.23 - 30.11.25 20 QAware Foto von Tima Miroshnichenko auf Pexels Ausblick
  • 21.
    Fazit: Moderne KIbietet bei Migration und Modernisierung handfeste Vorteile, braucht aber Experten 21 QAware ■ Code-Analysen, sowohl explorativ als auch autmatisierbar ■ Fehlersuche, Performance- und Qualitäts- verbesserungen ■ Übersetzungen von einer Programmiersprache in eine andere ■ Unterstützung von Framework- und Tool- Migrationen ■ Beschleunigung von Programmieraufgaben Chancen ■ Die begrenzte Anzahl an Input Token macht eine Stück-für-Stück-Verarbeitung notwendig. ■ Blockchain-Syndrom:Viele Probleme lassen sich mit klassischen Ansätzen besser lösen. ■ Falsche und unzureichende Ausgaben, die aber plausibel aussehen können, verursacht durch Halluzinationen, d.h. falsche, vom Modell erzeugte Ausgaben, sowie Lücken, Fehler und falsche Daten in den Trainingsdaten ■ Das Urheberrecht. Generierter Code und Daten sollten nicht 1:1 verwendet werden. Grenzen und Risiken
  • 22.
    qaware.de Hier gibt’s Infoszu Cloud-friendly Migration
  • 23.
    qaware.de QAware GmbH Aschauer Straße32 81549 München Tel. +49 89 232315-0 info@qaware.de twitter.com/qaware linkedin.com/company/qaware-gmbh xing.com/companies/qawaregmbh slideshare.net/qaware github.com/qaware Danke für’s Zuhören Welche Fragen habt ihr?