Pillar page
Sistema zaharren modernizazioa
Monolito-mikrozerbitzuetara berridazketa inkrementala, teknologia zaharkituak modernoetara migrazioa, hodei-migrazioa — negozio-geldialdirik gabe, rollback plana eta auditoria-arrasto osoarekin.
Enpresa orok ondare-sistemaren bat du. Batzuek hainbat dituzte. 2008ko kontabilitate-aplikazio bat oraindik nolabait funtzionatzen duena. Inork gogoratzen ez duen aholkulariek idatzitako CRM bat. Access-en exekutatzen den biltegi bat. Bakoitza azkenean ordeztu behar da — galdera ez da noiz, baizik eta noiz eta nola.
Ondare-sistemen modernizazioa IT proiektu mota zailenetako bat da. Hiru indar orekatu behar dira: negozio-jarraitutasuna (sistemak denbora osoan funtzionatzen jarraitu behar du), teknologia modernoak sartzea (mikrozerbitzuak, hodeia, AA) eta arrisku-kontrola (berridazketa bakoitzak urteetan funtzionatu duen zerbait apur dezake).
Zergatik ez „zerotik berridatzi" soilik?
Gure esperientziaren arabera, 10 modernizazio arrakastatsuetatik 9 berridazketa inkrementala da, ez rewrite. Rewrite-ak kontzeptualki tentagarriak dira („orrialde garbiarekin hasiko gara"), baina praktikan hiru oinarrizko arazo dituzte:
- Negozio-logika ikusezina. Sistema zaharrak urteetako negozio-arauak ditu — bezero handienen baldintza bereziak, sektore espezifikoetarako zerga-salbuespenak, 2015eko araudirako konponbideak. Gehiena dokumentatu gabe dago. Rewrite batek guztiak berreraiki behar ditu pertsonen oroimenetik edo kode-analisitik.
- Lan bikoiztua. Sistema berria idazten den bitartean, negozioak zaharrean aldaketak eskatzen ditu (araudiak, bezero berriak, akats txikiak). Taldeak lana bikoizten du (aldaketak bi lekutan) edo sistema zaharra izozten du (negozio-arriskua).
- Big bang deployment. Urtebeteko lanaren ondoren, sistema berria „ia prest" dago. Erabiltzaile guztiak gau bakar batean aldatzeak arrisku monumentala sortzen du. Ustekabeko arazo orok sistema zaharrera itzultzea, taldearen moralaren galera eta negozio-konfiantzaren higadura esan nahi du.
Berridazketa inkrementalak (normalean Strangler Fig ereduari jarraituz) hirurak konpontzen ditu: negozio-logika pixkanaka aurkitzen da, entitate bakoitzeko egiaren iturri bakarra, faseetan hedapena feature flag-ekin.
Sei modernizazio-eredu
Bakoitzak arrisku espezifiko bati erantzuten dio. Proiektu gehienetan batzuk konbinatzen ditugu, modulu bakoitzeko eredua aukeratuz.
Strangler Fig
Sistema zaharra osagai berriekin pixkanaka „inguratzea". Kode zaharrak funtzionatzen jarraitzen du, baina eginbide berri oro mikrozerbitzu berri batera doa eta lehendik dauden moduluak banan-banan ordezkatzen dira. 12-24 hilabeteren ondoren monolito zaharra itzaltzen da.
Anti-corruption layer
Sistema zaharraren bitxikeriak (eremu-izen irakurtezinak, data-formatu arraroak, mota inkoherenteak) babesten dituen egokitzailea. Logika „itsusi" guztia leku batean isolatuta — kode berriak domeinu-eredu garbi batean lan egiten du.
Datu-baseen berridazketa
Refactoring Databases liburuko (Ambler/Sadalage) ereduak: expand-and-contract eskema-migraziorako, datuen baliozkotzea zutabe zaharrak askatu aurretik, bi eskemak paraleloan exekutatzea aplikazioaren migrazioan zehar.
Branch by abstraction
Osagai zaharraren inguruko abstrakzio-geruza bat sartzea, osagai berria paraleloan inplementatzea, trafikoa pixkanaka %0tik %100era aldatzea (feature flag). „Big bang" hedapenik gabe.
Shadow mode
Kode berria zaharrarekin batera exekutatzen da — biek prozesatzen dituzte eskaera berberak, baina sistema zaharreko emaitzak baino ez dira iristen erabiltzaileari. Emaitzak offline konparatzen dira. Bateragarritasuna baieztatu ondoren (tipikoki 2-4 aste) trafikoa kode berrira aldatzen dugu.
Event sourcing migraziorako
Sistema zaharreko negozio-gertaeren korrontea grabatzen dugu eta berrian erreproduzitzen dugu. Honek arkitektura berriaren aurretiazko baliozkotzea ahalbidetzen du ekoizpen-arriskurik gabe, eta edozein egoera historikora itzultzeko gaitasuna.
Modernizazio-egutegi tipikoa
Tamaina ertaineko sistema baterako (~200 mila kode-lerroko monolitoa, 5-10 negozio-modulu):
- 1. hilabetea: Discovery eta dokumentazioa. Arkitekturaren reverse engineering, mendekotasunen mapaketa, datu-fluxuen identifikazioa, negozio-prozesuen dokumentazioa negozio-interesdunen laguntzaz.
- 2. hilabetea: Helburu-arkitektura eta pilotua. Arkitektura berriaren diseinua, teknologien hautaketa, modulurik sinpleenean pilotua (proof of concept). Hurbilketaren lehen baliozkotzea.
- 3-4. hilabeteak: Lehen ekoizpen-modulua moztea. Strangler Fig eredua, shadow mode 2-3 astetan, trafiko-aldaketa, hypercare. Lehen negozio-balio erreala.
- 5-12. hilabeteak: Ondoz ondoko moduluak iteratiboki moztea. Bakoitza 4-6 asteko zikloan: berridazketa → probak → shadow → ekoizpena → hypercare. Prozesuaren etengabeko hobekuntza, modulu bakoitzeko denbora-murrizketa.
- 12-18. hilabeteak: Datu-migrazioa eta monolitoaren erretiratzea. Modulu kritiko guztiak moztu ondoren, datu historikoen migrazioa amaitzen dugu, sistema zaharra itzaltzen dugu, artxibatzen dugu. Ospatu.
Ondare-sistema vs. modernizatua
| Alderdia | Ondare-sistema (tipikoa) | Modernizazioaren ondoren |
|---|---|---|
| Eginbide berri bat bidaltzeko denbora | 4-8 aste (erregresio-arrisku handia) | 3-7 egun (proba automatizatuek arriskua minimizatzen dute) |
| Proba-estaldura | %5-15 (edo bat ere ez) | >%80, CI/CD pipelinen |
| Garatzaileen erabilgarritasuna | Baxua (teknologia zaharkitua) | Altua (stack ezagunak, modernoak) |
| Segurtasuna | Liburutegi zaharrak konpondu gabeko CVErekin | OWASP eskaneatzea, gitleaks, eguneratze automatikoak |
| Eskalatzea | Bertikala (monolitoarentzat baliabide gehiago) | Horizontala (mikrozerbitzu espezifikoen eskalatzea) |
| Behagarritasuna | Erregistroak fitxategietan, metrikarik gabe | Prometheus + Grafana + Sentry + SIEM |
| Compliance (DBEO, EU AI Act, ISO 27001) | Exijentea, frogatzeko garestia | Arkitekturan integratua, auditoriarako prest |
Sei arrisku tipiko — eta nola kudeatzen ditugun
Arriskua: Probarik ez ondare-sisteman
Mitigazioa: Lehenik karakterizazio-probak eraikitzen ditugu (capture tests) — sistemaren uneko portaera grabatzen dugu ekoizpen-erregistroetan eta trafiko-grabazioetan oinarrituta. Gero baino ez dugu berridazketa hasten, probak segurtasun-sare gisa.
Arriskua: Pertsona batean kontzentratutako ezagutza („truck factor 1")
Mitigazioa: Ezagutzaren transferentzia proiektuaren lehen astean hasten da. Sistema ezagutzen duen pertsonarekin egiten diren bilera guztiak grabatu eta transkribatu egiten dira, funtsezko prozesuak dokumentatu, arkitektura-erabakiak justifikatu. Proiektuaren ondoren talde osoak ulertzen du sistema.
Arriskua: Taldearen behin-behineko moteltzea
Mitigazioa: Lehen 2-3 hilabeteetan taldeak sistema zaharra mantentzen du + berria eraikitzen du. Aldaketa-abiaduran moteltze naturala. Honela arintzen dugu: sistema berrira soilik doazen aldaketei lehentasuna emanez, kode zaharrean lehentasun txikiko aldaketak izoztuz.
Arriskua: Datu-migrazioa
Mitigazioa: Datu-migrazio bakoitzak hiru fase ditu: dry-run (ekoizpen-kopia batean), staging (proba-ingurunean benetako eskalako datuekin), ekoizpena (zerbitzu-leihoan edo inkrementalki). Rollback plana hasi aurretik prest.
Arriskua: Erakunde-erresistentzia
Mitigazioa: Negozioarekin komunikazioa lehen egunetik: zergatik modernizatzen dugun, zer aldatzen den erabiltzailearentzat, zein den egutegia, nola neurtzen dugun arrakasta. Lehen iterazioa balio ukigarria azkar erakusteko aukeratzen da (adib. UI berria edo txosten azkarragoa).
Arriskua: Kostuaren azpiestimazioa
Mitigazioa: Discovery (1-2 aste) proiektuaren prezioaren aurretik. 2-3 asteko iterazioak entregagai zehatzekin — errazagoa da ibilbidea zuzentzea „dena batera" proiektu luze batean baino. Aurrekontua %20-30eko bufferrekin aurreikusi gabekoetarako.
Maizen egiten diren galderak
Zer da ondare-sistema bat?
Zergatik modernizatu sistemak funtzionatzen badu?
Ez al da errazagoa dena hutsetik berridaztea?
Modernizazioak negozio-geldialdia eskatzen al du?
Zenbat irauten du modernizazio tipikoak?
Zer teknologietatik migratzen dugu sarrien?
Eta beste sistemekin lehendik dauden integrazioak?
Nola murrizten duzue negozio-arriskua?
Eta existitzen ez den sistemaren dokumentazioa?
Nola konparatzen dira modernizazio-kostuak sistema zaharrari eustearekin?
Has gaitezen auditoria batekin
Aste bateko auditoria teknikoa: uneko egoeraren mapaketa, modernizazio-arlo presaberenak identifikatzea, faseen plana lehen iterazioan negozio-emaitza zehatzekin.