Zum Inhalt springen

Plattform

Eine Million Zeilen Legacy-Code, in 30 Tagen auf Go oder Rust.

Feinabgestimmte Modelle lesen das ganze Repository in einem Durchgang und schreiben es Scheibe für Scheibe neu. Jede Scheibe läuft gegen Ihren Produktivtraffic und wird von einem unserer besten Ingenieure abgezeichnet, der seit über 25 Jahren Code in Produktion bringt.

codehero · pipeline

  1. Einlesen

    Alles, was im Baum liegt

  2. Kartieren

    Ein einziger Abhängigkeitsgraph

  3. Umbauen

    Scheibe für Scheibe

  4. Prüfen

    Parität auf echtem Traffic

  5. Ausrollen

    Umstellung ohne Wartungsfenster

Pipeline

Fünf Stufen, automatisiert und von einem Senior-Ingenieur abgezeichnet.

Dieselbe Pipeline nimmt einen PHP-Monolithen und eine Million Zeilen COBOL. Das Modell, das den Code liest, wechselt mit dem Dialekt. Wer am Ende abzeichnet, hat immer 25+ Jahre Produktionscode hinter sich.
  1. 01

    Einlesen

    Alles, was im Baum liegt

    Quelltext, Build-Skripte, Job-Pläne, Schemas und Stored Procedures gehen zusammen hinein. Jede Sprache im Baum wird parallel geparst.

  2. 02

    Kartieren

    Ein einziger Abhängigkeitsgraph

    Module, Aufrufe, Datenflüsse und toter Code landen in einem Graphen. Die Service-Grenzen ergeben sich direkt aus seiner Struktur.

  3. 03

    Umbauen

    Scheibe für Scheibe

    Feinabgestimmte Modelle schreiben jeweils eine abgegrenzte Scheibe in idiomatisches Go, Rust, TypeScript oder SQL um. Die Tests entstehen zuerst.

  4. 04

    Prüfen

    Parität auf echtem Traffic

    Aufgezeichnete Produktiveingaben laufen gegen das alte und das neue System. Jede Abweichung beheben wir, oder Sie geben sie schriftlich frei.

  5. 05

    Ausrollen

    Umstellung ohne Wartungsfenster

    Der Traffic zieht Scheibe für Scheibe um. Das alte System bleibt warm in Bereitschaft, bis das neue die volle Last trägt.

Feinabgestimmte Modelle

Trainiert auf dem Code, den alle anderen vergessen haben.

Frontier-Modelle schreiben guten Code für das GitHub von heute. Legacy-Systeme sind in Dialekten geschrieben, die dort kaum vorkommen. Wir haben unsere Modelle auf Paaren aus Legacy- und modernem Code feinabgestimmt. Sie wissen, was ein Copybook bedeutet, wie ein JCL-Schritt ein Dataset an den nächsten weiterreicht und was eine Struts-Action wirklich getan hat. Schicken Sie uns Ihr System, und in 48 Stunden wissen Sie genau, was es braucht.

Dialekte, auf die die Modelle trainiert sind

  • COBOL
  • JCL
  • CICS
  • RPG IV
  • PL/I
  • Natural
  • Fortran
  • VB6
  • Delphi
  • PowerBuilder
  • ColdFusion
  • PHP 4–5
  • Perl
  • Classic ASP
  • Java EE
  • Struts
  • PL/SQL
  • T-SQL
  • DB2 SQL
  • Oracle Forms
  • ABAP
  • AngularJS
  • Ein Spezialist für jede Familie

    Eigene Feinabstimmungen für Mainframe, Midrange, Desktop, Web und Daten. Jede kennt die Idiome ihrer Familie und weiß, wo die Fallen liegen.

  • Code, den Ihr Team behalten will

    Idiomatisches Go, Rust oder TypeScript mit den Namen, Tests und der Struktur, die ein Senior-Ingenieur schreiben würde. Ihr Team liest ihn am ersten Tag.

  • Ihr Code bleibt Ihrer

    Ohne Ihre schriftliche Zustimmung trainiert Ihr Repository keines unserer Modelle. On-Premise bleiben auch die Gewichte in Ihrem Gebäude.

Echter Produktionsgraph

So sieht die Plattform ein System.

Das ist ein Go-Service aus dem Produktivbetrieb. Die Paketnamen haben wir durch M01 bis M45 ersetzt, die Struktur ist unverändert. Ziehen Sie den Regler vom heutigen Stand zur Aufteilung entlang der Domänengrenzen. Die Klasse jedes Knotens ergibt sich aus dem Graphen selbst: Ein Modul innerhalb einer Domäne wird maschinell neu geschrieben, und ein Modul, an dem vier Domänen hängen, bekommt einen Ingenieur, der die Grenze von Hand schneidet. Ihr System bekommt diese Karte in den ersten 3 Tagen.

Heutiger Stand

Maschinell neu geschrieben60%

Grenze von Hand geschnitten29%

Löschkandidat11%

45 Module, 167 Abhängigkeiten und 45,990 Zeilen über 7 Domänen. Echter Graph aus einem Service im Produktivbetrieb, Paketnamen entfernt, sonst nichts geändert. Die drei Klassen sind aus der Struktur des Graphen selbst gezählt.
Derselbe Graph als Tabelle
Nach Größe sortiert. Maschinell heißt: Das Modul liegt in einer Domäne. Es geht an einen Entwickler, wenn drei oder mehr Domänen davon abhängen oder es in einem Zyklus steckt. Löschkandidat wird es, wenn nichts es importiert und es kein Einstiegspunkt ist.
ModulZeilenImportiert vonImportiertDomäneKlasse
M01326loc010S01Maschinell neu geschrieben
M02142loc03S02Maschinell neu geschrieben
M0355loc03S02Maschinell neu geschrieben
M0489loc03S02Maschinell neu geschrieben
M055,194loc315S03Grenze von Hand geschnitten
M06239loc51S03Grenze von Hand geschnitten
M07884loc200S03Grenze von Hand geschnitten
M08485loc46S03Maschinell neu geschrieben
M099,835loc47S03Grenze von Hand geschnitten
M10514loc20S03Maschinell neu geschrieben
M11677loc15S03Maschinell neu geschrieben
M12236loc411S03Grenze von Hand geschnitten
M13187loc33S04Grenze von Hand geschnitten
M14454loc11S05Maschinell neu geschrieben
M1558loc31S05Maschinell neu geschrieben
M16356loc42S05Maschinell neu geschrieben
M17247loc42S05Maschinell neu geschrieben
M1859loc31S04Grenze von Hand geschnitten
M19139loc00S04Löschkandidat
M20330loc132S04Grenze von Hand geschnitten
M21414loc11S06Maschinell neu geschrieben
M221,670loc33S06Maschinell neu geschrieben
M231,218loc180S06Grenze von Hand geschnitten
M242,574loc153S06Grenze von Hand geschnitten
M25163loc41S04Grenze von Hand geschnitten
M26251loc25S04Maschinell neu geschrieben
M27161loc12S04Maschinell neu geschrieben
M2899loc20S04Maschinell neu geschrieben
M2945loc00S04Löschkandidat
M3025loc00S04Löschkandidat
M311,417loc240S04Grenze von Hand geschnitten
M3282loc10S04Maschinell neu geschrieben
M3330loc41S04Grenze von Hand geschnitten
M34141loc31S03Maschinell neu geschrieben
M3579loc11S03Maschinell neu geschrieben
M363,036loc310S03Maschinell neu geschrieben
M37173loc11S03Maschinell neu geschrieben
M382,501loc19S03Maschinell neu geschrieben
M391,452loc34S03Maschinell neu geschrieben
M4050loc11S03Maschinell neu geschrieben
M412,148loc09S01Löschkandidat
M42167loc01S01Löschkandidat
M434,873loc215S07Maschinell neu geschrieben
M442,241loc110S07Maschinell neu geschrieben
M45474loc213S07Maschinell neu geschrieben

Paritätsprüfstand

Gleiche Eingaben, gleiche Ausgaben, auf den Cent.

Jede Scheibe schickt dieselben aufgezeichneten Eingaben durch das alte und das neue System. Wir vergleichen die Ausgaben Feld für Feld bis auf den Cent, und live geht eine Scheibe erst, wenn der Diff leer ist. Deshalb steht der Termin im Vertrag.

  • Ihr aufgezeichneter Produktivtraffic ist die Testsuite
  • Vergleich Feld für Feld, inklusive Rundung und Randfällen bei Datumswerten
  • Jede akzeptierte Abweichung geben Sie schriftlich frei
AltsystemNeues SystemDiff
  • ACCT 0048213 41.36ACCT 0048213 41.36
  • ACCT 0048214 0.00ACCT 0048214 0.00
  • ACCT 0051120 1,208.04ACCT 0051120 1,208.04
  • ACCT 0051121 17.90ACCT 0051121 17.90
  • ACCT 0060007 342.11ACCT 0060007 342.11
  • ACCT 0060008 5.02ACCT 0060008 5.02
Diff0 Abweichungen

Die Alternativen

Drei Wege zur Modernisierung. In 30 Tage passt nur einer.

Manuelles RewriteAllgemeine KI-ToolsCodeHero
Zeit bis zur ProduktionMonate bis JahreUnklar, bleibt bei großen Systemen stecken30 Tage pro Phase
PreisNach AufwandDie Zeit Ihrer EntwicklerFest pro Phase, Angebot in 48 Stunden
VerhaltensnachweisManuelle QAKeinerParität auf Ihrem eigenen Traffic
Kontext über das ganze RepositoryIn den Köpfen einzelner LeuteEin paar Dateien auf einmalEin Graph, jede Sprache
Läuft mit Air-GapJaSeltenJa, auf unserer Hardware oder Ihrer
Wer verantwortet esEin großes TeamSieEin Senior-Ingenieur mit 25+ Jahren