des dizaines de migrations
Java, Python, COBOL et VB6 réécrits en Go, Rust et TypeScript en 30 jours
Pas seulement le mainframe. Un monolithe Java étalé sur huit serveurs, du Python bloqué par le GIL, un service Node qui avale la mémoire plus vite qu'il ne sert de requêtes — tout cela devient du Go et du Rust, et la facture d'infrastructure baisse avec. Et aussi COBOL sur z/OS, RPG sur l'AS/400, VB6 et Delphi sur le poste de travail, ColdFusion et PHP sur le web, Perl, PL/SQL, Fortran et ABAP. Notre plateforme lit toute la base de code et la réécrit, nos ingénieurs prennent les endroits où se tromper coûte cher, et l'ancien système continue de tourner pendant tout ce temps.
Quatre écrans, une dizaine de minutes. Un ingénieur les lit et revient avec un périmètre, une date et un prix — sans démo ni séquence commerciale.
- 30
- jours, le plafond de tout projet
- 20
- stacks legacy que nous migrons
- 10+
- ans passés dans les systèmes des autres
- 1M+
- lignes dans une seule réécriture
Tous les systèmes que nous débranchons du respirateur
- Java, Python, Node12–20 days
Java / Spring Boot
Go
- La machine traduit
- services, JPA entities, REST controllers
- L'ingénieur décide
- what the framework was doing for you
- Java, Python, Node10–18 days
Python / Django
Go
- La machine traduit
- views, models, Celery tasks
- L'ingénieur décide
- the parts that were fast because of C extensions
- Java, Python, Node8–15 days
Node.js services
Go
- La machine traduit
- routes, middleware, ORM models
- L'ingénieur décide
- where dynamic typing hid a contract
- Java, Python, Node12–21 days
Ruby on Rails
Go
- La machine traduit
- controllers, ActiveRecord, background jobs
- L'ingénieur décide
- metaprogramming nobody can grep for
- Java, Python, Node12–20 days
C# / .NET Framework
Go
- La machine traduit
- services, EF models, WCF endpoints
- L'ingénieur décide
- Windows-only assumptions
- Java, Python, Node7–14 days
Python number crunching
Rust
- La machine traduit
- hot loops, array code, serialization
- L'ingénieur décide
- which precision the result actually needs
- Mainframe21–30 days
COBOL on z/OS
Go
- La machine traduit
- programs, copybooks, packed decimal
- L'ingénieur décide
- CICS screens, job ordering
- Mainframe7–14 days
JCL batch
Go + scheduler
- La machine traduit
- job steps, dataset flow
- L'ingénieur décide
- the dependency graph between streams
- Données7–12 days
VSAM + DB2
Postgres
- La machine traduit
- record layouts, indexes
- L'ingénieur décide
- what the copybook meant by a filler field
- AS/40018–28 days
RPG on AS/400
Go
- La machine traduit
- RPGLE, DDS, service programs
- L'ingénieur décide
- green screens, OPM leftovers
- Bureau10–18 days
VB6 desktop
TypeScript
- La machine traduit
- forms, business rules, COM calls
- L'ingénieur décide
- what the ActiveX control did
- Bureau14–24 days
Delphi 7
Go + TypeScript
- La machine traduit
- units, VCL forms, DB access
- L'ingénieur décide
- third-party components with no source
- Web8–16 days
ColdFusion
TypeScript
- La machine traduit
- CFML templates, queries, scheduled tasks
- L'ingénieur décide
- tags no one documented
- Web12–21 days
PHP 5.x monolith
Go
- La machine traduit
- controllers, models, cron jobs
- L'ingénieur décide
- where the framework ends and the business starts
- Web5–10 days
Perl scripts
Go
- La machine traduit
- scripts, regex-heavy parsing
- L'ingénieur décide
- undocumented file formats
- Données9–18 days
PL/SQL packages
Go + Postgres
- La machine traduit
- procedures, cursors, triggers
- L'ingénieur décide
- business rules hidden in triggers
- Bureau7–12 days
Access + Excel
Go + web client
- La machine traduit
- queries, forms, macros
- L'ingénieur décide
- the spreadsheet that is really the spec
- Web12–22 days
One deployable
Services
- La machine traduit
- module boundaries, call graph
- L'ingénieur décide
- where to cut the shared schema
- Données10–20 days
Fortran
Rust
- La machine traduit
- numeric kernels, array layout
- L'ingénieur décide
- floating-point behaviour that must not change
- Données9–18 days
ABAP reports
Go
- La machine traduit
- report logic, selection screens
- L'ingénieur décide
- what the SAP tables actually contain
Un vrai graphe de dépendances
État actuel
Réécriture mécanique60%
Frontière coupée par un ingénieur29%
Candidat à la suppression11%
Le même graphe en tableau
| Module | Lignes | Importé par | Importe | Domaine | Classe | |
|---|---|---|---|---|---|---|
| M01 | 326 | loc | 0 | 10 | S01 | Réécriture mécanique |
| M02 | 142 | loc | 0 | 3 | S02 | Réécriture mécanique |
| M03 | 55 | loc | 0 | 3 | S02 | Réécriture mécanique |
| M04 | 89 | loc | 0 | 3 | S02 | Réécriture mécanique |
| M05 | 5,194 | loc | 3 | 15 | S03 | Frontière coupée par un ingénieur |
| M06 | 239 | loc | 5 | 1 | S03 | Frontière coupée par un ingénieur |
| M07 | 884 | loc | 20 | 0 | S03 | Frontière coupée par un ingénieur |
| M08 | 485 | loc | 4 | 6 | S03 | Réécriture mécanique |
| M09 | 9,835 | loc | 4 | 7 | S03 | Frontière coupée par un ingénieur |
| M10 | 514 | loc | 2 | 0 | S03 | Réécriture mécanique |
| M11 | 677 | loc | 1 | 5 | S03 | Réécriture mécanique |
| M12 | 236 | loc | 4 | 11 | S03 | Frontière coupée par un ingénieur |
| M13 | 187 | loc | 3 | 3 | S04 | Frontière coupée par un ingénieur |
| M14 | 454 | loc | 1 | 1 | S05 | Réécriture mécanique |
| M15 | 58 | loc | 3 | 1 | S05 | Réécriture mécanique |
| M16 | 356 | loc | 4 | 2 | S05 | Réécriture mécanique |
| M17 | 247 | loc | 4 | 2 | S05 | Réécriture mécanique |
| M18 | 59 | loc | 3 | 1 | S04 | Frontière coupée par un ingénieur |
| M19 | 139 | loc | 0 | 0 | S04 | Candidat à la suppression |
| M20 | 330 | loc | 13 | 2 | S04 | Frontière coupée par un ingénieur |
| M21 | 414 | loc | 1 | 1 | S06 | Réécriture mécanique |
| M22 | 1,670 | loc | 3 | 3 | S06 | Réécriture mécanique |
| M23 | 1,218 | loc | 18 | 0 | S06 | Frontière coupée par un ingénieur |
| M24 | 2,574 | loc | 15 | 3 | S06 | Frontière coupée par un ingénieur |
| M25 | 163 | loc | 4 | 1 | S04 | Frontière coupée par un ingénieur |
| M26 | 251 | loc | 2 | 5 | S04 | Réécriture mécanique |
| M27 | 161 | loc | 1 | 2 | S04 | Réécriture mécanique |
| M28 | 99 | loc | 2 | 0 | S04 | Réécriture mécanique |
| M29 | 45 | loc | 0 | 0 | S04 | Candidat à la suppression |
| M30 | 25 | loc | 0 | 0 | S04 | Candidat à la suppression |
| M31 | 1,417 | loc | 24 | 0 | S04 | Frontière coupée par un ingénieur |
| M32 | 82 | loc | 1 | 0 | S04 | Réécriture mécanique |
| M33 | 30 | loc | 4 | 1 | S04 | Frontière coupée par un ingénieur |
| M34 | 141 | loc | 3 | 1 | S03 | Réécriture mécanique |
| M35 | 79 | loc | 1 | 1 | S03 | Réécriture mécanique |
| M36 | 3,036 | loc | 3 | 10 | S03 | Réécriture mécanique |
| M37 | 173 | loc | 1 | 1 | S03 | Réécriture mécanique |
| M38 | 2,501 | loc | 1 | 9 | S03 | Réécriture mécanique |
| M39 | 1,452 | loc | 3 | 4 | S03 | Réécriture mécanique |
| M40 | 50 | loc | 1 | 1 | S03 | Réécriture mécanique |
| M41 | 2,148 | loc | 0 | 9 | S01 | Candidat à la suppression |
| M42 | 167 | loc | 0 | 1 | S01 | Candidat à la suppression |
| M43 | 4,873 | loc | 2 | 15 | S07 | Réécriture mécanique |
| M44 | 2,241 | loc | 1 | 10 | S07 | Réécriture mécanique |
| M45 | 474 | loc | 2 | 13 | S07 | Réécriture mécanique |
sous le capot
Un million de lignes, c'est la taille normale
Tous les langages de l'arbre, en même temps
Un système n'est jamais écrit dans un seul langage. Le COBOL appelle du JCL, le JCL lance un utilitaire C, un script Perl corrige le fichier avant que PL/SQL ne le charge. La plateforme lit tout en parallèle et tient un seul graphe sur l'ensemble : rien ne tombe entre les langages.
Moins de machines pour la même charge
Un service Java ou Python réécrit en Go demande le plus souvent une fraction de la mémoire et une fraction des instances, et un noyau Rust transforme une fenêtre de batch en pause café. C'est toute la raison de déplacer du code qui n'est pas cassé : le même comportement sur une facture plus petite, et de la marge que vous n'avez plus à acheter.
Un million de lignes et au-delà
C'est la taille sur laquelle nous calons le plan, pas un plafond. Au-dessus, nous découpons l'estimation et chiffrons la première partie seule. L'échelle est ici une question de planning, pas de faisabilité.
Même comportement, architecture neuve
Un banc de comparaison rejoue votre trafic de production enregistré sur l'ancien et le nouveau et compare au centime. Ce qui change, c'est la forme : des services avec des responsables, un schéma lisible, des tests nés avec le code, et un déploiement sans fenêtre de maintenance.
Air gap, sur votre matériel ou le nôtre
Pour les environnements régulés, les modèles viennent de nous et tournent dans votre périmètre, sans aucune connexion sortante. Si vous n'avez pas les machines pour les porter, nous vous louons les nôtres et elles restent chez vous. Rien de votre code n'a besoin de sortir du bâtiment.
Votre cloud, votre centre de données, un VPN client, ou une salle sans réseau du tout — chacune de ces options a un montage qui tourne, et le détail passe dans le contrat.
Ce que nous prenons
- Développement IAL'agent, la couche d'outils typée autour de lui, et le harnais d'évaluation qui le garde honnête en CI.
- Logiciel sur mesureUn vrai système là où un tableur, une base Access et trois personnes patientes font le travail aujourd'hui.
- ModernisationPHP 5, VB6, Delphi et ColdFusion réécrits en Go et TypeScript pendant que l'ancien système continue de tourner.
- Mainframe et AS/400COBOL, JCL, CICS et VSAM hors de z/OS, avec le batch et les écrans verts reconstruits en services.
- Agents IADes agents qui font tourner un processus métier, avec une personne nommée qui valide tout ce qui est irréversible.
- Audit du systèmeUne carte du code, un registre de risques classés et un plan de migration par phases avec les coûts en face.
- Conseil IADeux ou trois cas qui valent le coup, une base de mesure, et un arbitrage faire ou acheter sur chacun.
- Découpe du monolitheUn seul déployable sur un schéma partagé, découpé en services qui sortent à leur propre rythme.
Comment le travail se déroule
- 01
Accès en lecture
Une copie en lecture seule du dépôt, les scripts de build, et les runbooks qui ont survécu. Nous signons votre NDA d'abord si c'est ainsi que votre société fonctionne.
- 02
La carte
La plateforme analyse l'ensemble et rapporte ce qui s'y trouve vraiment : les modules et leurs dépendances, le code que plus rien n'appelle, les tâches planifiées que personne n'a documentées, et l'endroit où le build ne marche que sur une machine. Cela arrive avant toute réécriture.
- 03
Réécriture par tranches
Un module borné à la fois, avec des tests écrits d'après le comportement de l'original. L'ancien et le nouveau tournent sur les mêmes entrées jusqu'à ce que les sorties coïncident, puis le trafic bascule. Rien ne change de main à une date unique.
- 04
Passation
Vos ingénieurs reçoivent le dépôt, les tests écrits en chemin, et la carte tenue à jour. Nous répondons aux questions ensuite, et nous ne gardons aucune clé que vous ne puissiez révoquer.
Demandez la carte d'abord
La carte est la chose la moins chère que nous vendons et la seule base solide pour chiffrer le reste. Dites-nous ce que vous faites tourner et nous revenons avec ce qu'il y a dedans, ce que demande une réécriture et ce qu'elle coûte.
Le formulaire arrive chez nous, pas dans une séquence commerciale. Vous n'avez pas à subir une démo pour obtenir une réponse.