본문 바로가기
IT

🌴 Monolitoaren Infernua Uzteko Bidea: Strangler Fig Patroiaren (Ihes-Marrubiaren Patroia) Giltza

by LemonDKel 2025. 10. 7.
반응형

Sarrera: Monolito itogarriaren dilema

Atzeko garatzaile gehienek pairatzen duten mina da: Sistema informatiko gehienak monolito izeneko egitura erraldoi eta zaharren gainean eraikiak daude. Garai batean eraginkorrak ziren arren, gaur egun mantentze-lanak zailak dira, deployment-ak motelak, eta teknologia berriak txertatzeko oztopo bihurtu dira.

Dilema da: Monolito hori ezin da ukitu, baina hura aldatu gabe ezin da aurrera egin. "Dena berriz idatzi beharko genuke!" dioen ikuspegiak 'Big Bang' baten beldurra eta, sarritan, porrota dakar. Horren aurrean, Strangler Fig Patroia (Ihes-Marrubiaren Patroia) da irtenbidea: sistema zahar eta erraldoia modu seguruan eta pixkanaka modernizatzeko migrazio-estrategia.


1. Zer da Strangler Fig Patroia?

Patroi honen izena naturatik dator, Ihes-Marrubi (Strangler Fig) zuhaitz-espeziearen ekologiatik.

  • Naturaren Alegoria: Ihes-Marrubia beste zuhaitz handi baten (gure kasuan, monolitoa) inguruan hazten da. Poliki-poliki, sustrai eta enbor berriak bere inguruan biltzen ditu, mantenugaiak xurgatuz, eta denborarekin, zuhaitz zaharra ordezkatu eta bera bihurtzen da zuhaitz berri, sendoa (gure kasuan, mikrozerbitzu modernoa).
  • Definizio Teknikoa: Monolitoaren funtzionaltasunak mikrozerbitzu berrietan sortzen dira, eta proxy (artekari) edo gateway baten bidez trafikoa modu kontrolatuan zerbitzu berrietara desbideratzen da. Sistema zaharraren funtzionaltasunak, banan-banan, isolatuta geratzen dira, gero ezabatu ahal izateko.

Funtsezko ideia: Ez dugu monolitoa zuzenean apurtzen. Horren ordez, inguratu eta itotzen dugu, funtzionaltasunak kanpora eramanez.


2. Nola Inplementatu Atzeko Sisteman? (Egitura Nagusia)

Eredu honen gakoa trafikoa modu adimentsuan desbideratzen duen Fatxada (Facade) geruza bat ezartzea da.

A. Fatxada Geruza: Trafiko Kontrolatzailea

Erabiltzailearen edo beste zerbitzu batzuen eskaera guztiak API Gateway edo Karga Banatzaile baten bidez pasatzen dira. Geruza honek erabakitzen du zer eskaerak joan behar duen sistema zaharrera eta zer eskaerak berriaren bidez prozesatu behar duen.

B. Trafikoaren Bideratzea (Routing)

Mikrozerbitzu berri bat inplementatzen denean, bideratze-araua eguneratzen da:

  • Bide Zaharra (Monolitoa): GET /api/v1/eskariak (Oraindik migratu gabeko funtzioa) Monolitora bideratzen da.
  • Bide Berria (Mikrozerbitzua): POST /api/v2/bezeroak (Garatu berri den bezero-kudeaketa zerbitzua) Mikrozerbitzu Berrira bideratzen da.

C. Datuen Migrazioa eta Sinkronizazioa

Hau da zatirik zailena. Funtzio bat monolitoaren datu-basetik (DB) mikrozerbitzu berrira migratzean, datuak sinkronizatuta mantentzeko mekanismoak behar dira, batez ere trantsizio-fasean.

  • Idazketa Bikoitza (Dual Writing): Hasierako fasean, monolitoak DB zaharrera eta DB berrira (mikrozerbitzuarena) idatzi ditzake aldi berean.
  • Irakurketa Bikoitza (Dual Reading): Irakurketa-eskaera guztiak DB berrian balioa aurkitzeko egiten dira lehenik; ezean, DB zaharrera jotzen da.

Datuen eta funtzionaltasunen migrazioa pixkanaka egin ahala, monolitoaren mendekotasuna gutxitzen doa, ihes-marrubiak bere ostalaria itotzen duen bezala.


3. Strangler Fig Patroiaren Abantailak eta Superbotereak

Patroi honek atzeko garatzaile taldeari arrisku minimoarekin berritzeko aukera ematen dio, monolitikora lotuta egon gabe.

1. Arriskuaren Banaketa Ezin Hobea

Sistema osoa batera aldatzeko beldurra desagertzen da. Mikrozerbitzu berri batean arazo larri bat sortzen bada ere, trafikoa berehala desbideratu daiteke berriro monolito egonkorrera, kalteak mugatuz (hau da, 'Hilketa Etengailu' moduko bat).

2. Berritasun Teknologikoaren Askatsuna

Monolitoak erabiltzen duen Java 8 eta Oracle DB zaharretik askatzeko aukera ematen du. Mikrozerbitzu berriak Kotlin edo Go bezalako lengoaia modernoetan eta PostgreSQL edo NoSQL DB-etan inplementatu daitezke, modu independentean.

3. Ekoizpen-Kodearen Erabateko Garbiketa

Monolitoa funtzionaltasunez hustu eta ihes-marrubiak guztiz ordezkatu duenean, jatorrizko monolito-kodea eta DB ezabatu daitezke. Teknologia-zorra (Technical Debt) modu kontrolatuan eta erabatekoan kitatzeko bidea da. Ez da 'berridazketa' hutsa, 'berrarkitektura' graduala baizik.


Ondorioa: Berrikuntza ez da suntsipena, 'Inguratzea' baizik

Strangler Fig Patroia ezinbesteko estrategia da enpresa handi eta ertainetan, non sistema informatikoaren berrikuntzak etengabeko zerbitzua bermatu behar duen.

Patroi honek atzeko garatzaile taldeei segurtasuna sakrifikatu gabe arkitektura berritzeko eta malgutasun handiagoa lortzeko bide-orria eskaintzen die. Monolito erraldoiarekin borrokan nekatuta bazaude, hasi zerbitzu txiki bat sortzen eta hasi pixkanaka lekua irabazten, Ihes-Marrubiaren patroia jarraituz.

Zuen egungo monolitoan, zein da Strangler Fig Patroia aplikatzeko modurik errazena, adibidez, erabiltzaile-profila kudeatzeko funtzioa?

반응형

댓글