des dizaines de systèmes déjà migrés
Java, Python, COBOL et VB6 réécrits en Go, Rust et TypeScript en 30 jours
Votre monolithe Java dévore huit serveurs, et personne n'a jamais eu le temps de se demander pourquoi. Réécrit en Go, il tient sur un seul, se comporte exactement de la même façon, et l'écart se lit sur la facture du mois suivant. Le COBOL que plus personne n'a recompilé depuis 2011 prend le même chemin, et tout ce qu'il y a entre les deux avec : Python, Node, .NET, RPG, VB6, Delphi, PHP. Nous réécrivons en Go, Rust et TypeScript en moins de trente jours, et votre ancien système sert vos clients à chaque minute pendant ce temps-là. Envoyez-nous le système aujourd'hui : périmètre, date et prix demain.
Quatre écrans, dix minutes. C'est un ingénieur qui les lit, pas un commercial, et il revient sous deux jours ouvrés avec un périmètre, une date et un prix.
- 30
- jours, du début à la fin, sur chaque 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.
Quel que soit le nom que ça porte chez vous
- 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.
Envoyez-nous le système
Dites-nous ce que vous faites tourner et ce que cela vous coûte aujourd'hui. Sous deux jours ouvrés, vous avez la carte de votre base de code, l'ordre dans lequel le travail se fait, la date de fin et le prix en face de chaque phase. Validez la première phase et nous démarrons la semaine même.
Le formulaire part directement aux ingénieurs qui feraient le travail. Pas de démo à subir, pas de rendez-vous de découverte dont le seul but est d'en fixer un deuxième.