Dutzende Migrationen
Java, Python, COBOL und VB6 neu geschrieben in Go, Rust und TypeScript in 30 Tagen
Nicht nur der Mainframe. Ein Java-Monolith auf acht Servern, Python, das am GIL hängt, ein Node-Dienst, der Speicher schneller frisst als er Anfragen beantwortet — daraus wird Go und Rust, und die Infrastrukturrechnung sinkt mit. Dazu COBOL auf z/OS, RPG auf der AS/400, VB6 und Delphi auf dem Desktop, ColdFusion und PHP im Web, Perl, PL/SQL, Fortran und ABAP. Unsere Plattform liest die gesamte Codebasis und schreibt sie neu, unsere Ingenieure übernehmen die Stellen, an denen ein Irrtum teuer wird, und das alte System läuft die ganze Zeit weiter.
Vier Bildschirme, etwa zehn Minuten. Ein Ingenieur liest es und meldet sich mit Umfang, Termin und Preis — ohne Demo, ohne Vertriebsstrecke.
- 30
- Tage, die Obergrenze für jedes Projekt
- 20
- Legacy-Stacks, die wir migrieren
- 10+
- Jahre in fremden Systemen
- 1M+
- Zeilen in einem Neuaufbau
Jedes System, das wir vom Tropf nehmen
- Java, Python, Node12–20 days
Java / Spring Boot
Go
- Maschine übersetzt
- services, JPA entities, REST controllers
- Ingenieur entscheidet
- what the framework was doing for you
- Java, Python, Node10–18 days
Python / Django
Go
- Maschine übersetzt
- views, models, Celery tasks
- Ingenieur entscheidet
- the parts that were fast because of C extensions
- Java, Python, Node8–15 days
Node.js services
Go
- Maschine übersetzt
- routes, middleware, ORM models
- Ingenieur entscheidet
- where dynamic typing hid a contract
- Java, Python, Node12–21 days
Ruby on Rails
Go
- Maschine übersetzt
- controllers, ActiveRecord, background jobs
- Ingenieur entscheidet
- metaprogramming nobody can grep for
- Java, Python, Node12–20 days
C# / .NET Framework
Go
- Maschine übersetzt
- services, EF models, WCF endpoints
- Ingenieur entscheidet
- Windows-only assumptions
- Java, Python, Node7–14 days
Python number crunching
Rust
- Maschine übersetzt
- hot loops, array code, serialization
- Ingenieur entscheidet
- which precision the result actually needs
- Mainframe21–30 days
COBOL on z/OS
Go
- Maschine übersetzt
- programs, copybooks, packed decimal
- Ingenieur entscheidet
- CICS screens, job ordering
- Mainframe7–14 days
JCL batch
Go + scheduler
- Maschine übersetzt
- job steps, dataset flow
- Ingenieur entscheidet
- the dependency graph between streams
- Daten7–12 days
VSAM + DB2
Postgres
- Maschine übersetzt
- record layouts, indexes
- Ingenieur entscheidet
- what the copybook meant by a filler field
- AS/40018–28 days
RPG on AS/400
Go
- Maschine übersetzt
- RPGLE, DDS, service programs
- Ingenieur entscheidet
- green screens, OPM leftovers
- Desktop10–18 days
VB6 desktop
TypeScript
- Maschine übersetzt
- forms, business rules, COM calls
- Ingenieur entscheidet
- what the ActiveX control did
- Desktop14–24 days
Delphi 7
Go + TypeScript
- Maschine übersetzt
- units, VCL forms, DB access
- Ingenieur entscheidet
- third-party components with no source
- Web8–16 days
ColdFusion
TypeScript
- Maschine übersetzt
- CFML templates, queries, scheduled tasks
- Ingenieur entscheidet
- tags no one documented
- Web12–21 days
PHP 5.x monolith
Go
- Maschine übersetzt
- controllers, models, cron jobs
- Ingenieur entscheidet
- where the framework ends and the business starts
- Web5–10 days
Perl scripts
Go
- Maschine übersetzt
- scripts, regex-heavy parsing
- Ingenieur entscheidet
- undocumented file formats
- Daten9–18 days
PL/SQL packages
Go + Postgres
- Maschine übersetzt
- procedures, cursors, triggers
- Ingenieur entscheidet
- business rules hidden in triggers
- Desktop7–12 days
Access + Excel
Go + web client
- Maschine übersetzt
- queries, forms, macros
- Ingenieur entscheidet
- the spreadsheet that is really the spec
- Web12–22 days
One deployable
Services
- Maschine übersetzt
- module boundaries, call graph
- Ingenieur entscheidet
- where to cut the shared schema
- Daten10–20 days
Fortran
Rust
- Maschine übersetzt
- numeric kernels, array layout
- Ingenieur entscheidet
- floating-point behaviour that must not change
- Daten9–18 days
ABAP reports
Go
- Maschine übersetzt
- report logic, selection screens
- Ingenieur entscheidet
- what the SAP tables actually contain
Ein echter Abhängigkeitsgraph
Heutiger Stand
Maschinell neu geschrieben60%
Grenze von Hand geschnitten29%
Löschkandidat11%
Derselbe Graph als Tabelle
| Modul | Zeilen | Importiert von | Importiert | Domäne | Klasse | |
|---|---|---|---|---|---|---|
| M01 | 326 | loc | 0 | 10 | S01 | Maschinell neu geschrieben |
| M02 | 142 | loc | 0 | 3 | S02 | Maschinell neu geschrieben |
| M03 | 55 | loc | 0 | 3 | S02 | Maschinell neu geschrieben |
| M04 | 89 | loc | 0 | 3 | S02 | Maschinell neu geschrieben |
| M05 | 5,194 | loc | 3 | 15 | S03 | Grenze von Hand geschnitten |
| M06 | 239 | loc | 5 | 1 | S03 | Grenze von Hand geschnitten |
| M07 | 884 | loc | 20 | 0 | S03 | Grenze von Hand geschnitten |
| M08 | 485 | loc | 4 | 6 | S03 | Maschinell neu geschrieben |
| M09 | 9,835 | loc | 4 | 7 | S03 | Grenze von Hand geschnitten |
| M10 | 514 | loc | 2 | 0 | S03 | Maschinell neu geschrieben |
| M11 | 677 | loc | 1 | 5 | S03 | Maschinell neu geschrieben |
| M12 | 236 | loc | 4 | 11 | S03 | Grenze von Hand geschnitten |
| M13 | 187 | loc | 3 | 3 | S04 | Grenze von Hand geschnitten |
| M14 | 454 | loc | 1 | 1 | S05 | Maschinell neu geschrieben |
| M15 | 58 | loc | 3 | 1 | S05 | Maschinell neu geschrieben |
| M16 | 356 | loc | 4 | 2 | S05 | Maschinell neu geschrieben |
| M17 | 247 | loc | 4 | 2 | S05 | Maschinell neu geschrieben |
| M18 | 59 | loc | 3 | 1 | S04 | Grenze von Hand geschnitten |
| M19 | 139 | loc | 0 | 0 | S04 | Löschkandidat |
| M20 | 330 | loc | 13 | 2 | S04 | Grenze von Hand geschnitten |
| M21 | 414 | loc | 1 | 1 | S06 | Maschinell neu geschrieben |
| M22 | 1,670 | loc | 3 | 3 | S06 | Maschinell neu geschrieben |
| M23 | 1,218 | loc | 18 | 0 | S06 | Grenze von Hand geschnitten |
| M24 | 2,574 | loc | 15 | 3 | S06 | Grenze von Hand geschnitten |
| M25 | 163 | loc | 4 | 1 | S04 | Grenze von Hand geschnitten |
| M26 | 251 | loc | 2 | 5 | S04 | Maschinell neu geschrieben |
| M27 | 161 | loc | 1 | 2 | S04 | Maschinell neu geschrieben |
| M28 | 99 | loc | 2 | 0 | S04 | Maschinell neu geschrieben |
| M29 | 45 | loc | 0 | 0 | S04 | Löschkandidat |
| M30 | 25 | loc | 0 | 0 | S04 | Löschkandidat |
| M31 | 1,417 | loc | 24 | 0 | S04 | Grenze von Hand geschnitten |
| M32 | 82 | loc | 1 | 0 | S04 | Maschinell neu geschrieben |
| M33 | 30 | loc | 4 | 1 | S04 | Grenze von Hand geschnitten |
| M34 | 141 | loc | 3 | 1 | S03 | Maschinell neu geschrieben |
| M35 | 79 | loc | 1 | 1 | S03 | Maschinell neu geschrieben |
| M36 | 3,036 | loc | 3 | 10 | S03 | Maschinell neu geschrieben |
| M37 | 173 | loc | 1 | 1 | S03 | Maschinell neu geschrieben |
| M38 | 2,501 | loc | 1 | 9 | S03 | Maschinell neu geschrieben |
| M39 | 1,452 | loc | 3 | 4 | S03 | Maschinell neu geschrieben |
| M40 | 50 | loc | 1 | 1 | S03 | Maschinell neu geschrieben |
| M41 | 2,148 | loc | 0 | 9 | S01 | Löschkandidat |
| M42 | 167 | loc | 0 | 1 | S01 | Löschkandidat |
| M43 | 4,873 | loc | 2 | 15 | S07 | Maschinell neu geschrieben |
| M44 | 2,241 | loc | 1 | 10 | S07 | Maschinell neu geschrieben |
| M45 | 474 | loc | 2 | 13 | S07 | Maschinell neu geschrieben |
unter der Haube
Eine Million Zeilen ist die normale Größe
Jede Sprache im Baum, gleichzeitig
Systeme bestehen nie aus einer Sprache. COBOL ruft JCL, JCL startet ein C-Werkzeug, ein Perl-Skript korrigiert die Datei, bevor PL/SQL sie lädt. Die Plattform liest alles parallel und hält einen Graphen über das Ganze — deshalb fällt an den Nähten zwischen den Sprachen nichts heraus.
Weniger Maschinen für dieselbe Last
Ein Java- oder Python-Dienst, in Go neu geschrieben, braucht meist einen Bruchteil des Speichers und einen Bruchteil der Instanzen, und ein Rust-Kern macht aus einem Batch-Fenster eine Kaffeepause. Genau darum verschiebt man Code, der nicht kaputt ist: gleiches Verhalten bei kleinerer Rechnung, und Luft nach oben, die Sie nicht mehr kaufen müssen.
Eine Million Zeilen und mehr
Das ist die Größe, mit der wir planen, nicht die Obergrenze. Darüber teilen wir die Schätzung und bepreisen den ersten Teil einzeln. Größe ist hier eine Frage der Planung, nicht der Machbarkeit.
Gleiches Verhalten, neue Architektur
Ein Vergleichsprüfstand spielt Ihren aufgezeichneten Produktivverkehr gegen alt und neu und vergleicht auf den Cent. Was sich ändert, ist die Form: Services mit Verantwortlichen, ein lesbares Schema, Tests, die mit dem Code entstanden sind, und ein Deploy ohne Wartungsfenster.
Air-Gap, auf Ihrer Hardware oder unserer
Für regulierte Arbeit kommen die Modelle von uns und laufen in Ihrem Perimeter ganz ohne ausgehende Verbindung. Fehlen Ihnen Maschinen, die das tragen, vermieten wir Ihnen unsere, und sie stehen bei Ihnen. Nichts von Ihrem Code muss das Haus verlassen.
Ihre Cloud, Ihr Rechenzentrum, ein Kunden-VPN oder ein Raum ganz ohne Netz — für jede dieser Varianten gibt es einen laufenden Aufbau, und die Einzelheiten stehen im Vertrag.
Was wir übernehmen
- KI-EntwicklungDer Agent, die typisierte Werkzeugschicht darum herum und die Eval-Suite, die ihn in der CI ehrlich hält.
- IndividualsoftwareEin echtes System dort, wo heute eine Tabelle, eine Access-Datei und drei geduldige Menschen die Arbeit machen.
- ModernisierungPHP 5, VB6, Delphi und ColdFusion neu in Go und TypeScript, während das alte System weiterläuft.
- Mainframe und AS/400COBOL, JCL, CICS und VSAM runter von z/OS, Batch und grüne Masken als Services neu gebaut.
- KI-AgentenAgenten, die einen Geschäftsprozess führen, und ein namentlich benannter Mensch gibt alles Unumkehrbare frei.
- SystemanalyseEine Karte der Codebasis, ein sortiertes Risikoregister und ein Migrationsplan in Phasen mit Preisen daran.
- KI-BeratungZwei oder drei Fälle, die sich lohnen, eine gemessene Ausgangslage und je Fall die Entscheidung bauen oder kaufen.
- Monolith aufteilenEin Deployable auf einem gemeinsamen Schema, geschnitten in Services, die für sich releasen.
Wie die Arbeit läuft
- 01
Lesezugriff
Eine Kopie des Repositories mit Leserecht, die Build-Skripte und die Runbooks, die überlebt haben. Ihre NDA unterschreiben wir vorher, wenn das bei Ihnen so üblich ist.
- 02
Die Karte
Die Plattform parst alles und meldet, was wirklich da ist: Module und ihre Abhängigkeiten, Code, den niemand mehr aufruft, geplante Jobs, die keiner dokumentiert hat, und die Stelle, an der der Build nur auf einer Maschine funktioniert. Das liegt vor, bevor irgendetwas neu geschrieben wird.
- 03
Neuschreiben in Scheiben
Ein abgegrenztes Modul nach dem anderen, mit Tests gegen das Verhalten des Originals. Alt und neu laufen auf denselben Eingaben, bis die Ausgaben übereinstimmen, dann wandert der Verkehr. Nichts wird an einem einzigen Stichtag umgestellt.
- 04
Übergabe
Ihre Entwickler bekommen das Repository, die unterwegs geschriebenen Tests und die Karte auf aktuellem Stand. Fragen beantworten wir auch danach, und wir behalten keine Schlüssel, die Sie nicht entziehen können.
Fragen Sie zuerst nach der Karte
Die Karte ist das Billigste, was wir verkaufen, und die einzige belastbare Grundlage, um den Rest zu bepreisen. Sagen Sie uns, was bei Ihnen läuft, und wir melden uns damit, was darin steckt, wie lange ein Neuschreiben dauert und was es kostet.
Das Formular geht an uns, nicht in eine Vertriebsstrecke. Für eine Antwort müssen Sie keine Demo über sich ergehen lassen.