Mine põhisisuni

Vanamoodsast süsteemist välja saamine

10 aastat vana süsteemi järkjärguline väljavahetamine, ilma riskantse üleminekuta

Tagasi tehtud tööde juurde
Vanamoodsast süsteemist välja saamine
0%
Katkestusi
-40%
Tech Debt
Elastne
Skaleeruvus
Tehnoloogiad
Süsteemi AuditStrangler FigDockerAWS

01 / Probleem

Kümne aastaga kasvanud koodibaas kannab endas palju otsuseid, mille tegemise põhjus on ammu ununenud. Iga muudatus algab uurimisest - mida see katki teha võib? - ja kuna automaatteste pole, testitakse muudatust tihti alles otse elaval saidil. Uue versiooni avaldamine on käsitsi ja võtab kaks tundi, ning igaüks, kes seda teinud on, teab selle pinget. Suurim oht pole kokkujooksmine, vaid see, et süsteem muutub liiga hirmutavaks, et seda puutuda - nii jäävad uued funktsioonid tegemata ja konkurendid lähevad mööda.

02 / Meie lähenemine

Mõte on lihtne: vana süsteemi ei lülitata välja enne, kui uus osa on valmis üle võtma. Alustame auditist - paneme kirja, mis on olemas, mis on kõige halvemas seisus ja mis tekitab kõige rohkem peavalu. Seejärel võtame ühe selgelt piiritletud osa, näiteks sisselogimise või tootekataloogi, ja ehitame selle korralikult uuesti, koos testidega. Liiklus suunatakse uuele versioonile järk-järgult, iga nädalaga veidi rohkem, kuni vana osa saab vaikselt välja lülitada. Äri töötab kogu aeg edasi.

<SYSTEM_FLOW />

Süsteemi audit ja kaardistus
Ühe iseseisva osa valik
Uuesti ehitus koos testidega
Liikluse suunamine, vana välja

03 / Tulemus

Kogu töö vältel pole olnud ühtegi planeeritud seisakut ega ühtki riskantset üleminekuhetke. Versiooni avaldamine, mis võttis kaks tundi, kestab nüüd kaheksa minutit ja käib ise. Meeskond saab iga nädala lõpus uue osa elavale saidile panna ilma pikkade aruteludeta, kas see on ohutu - testid vastavad selle eest. Vähem aega kulub tulekustutamisele ja rohkem päris arendamisele.

Miks see oluline on:

  • Äri töötab kogu aeg - hooldusaknaid pole, riskantseid üleminekuid ei tule.
  • Versiooni avaldamine, mis võttis kaks tundi, võtab nüüd kaheksa minutit.
  • Tippkoormusteks ei pea enam õhtul käsitsi servereid ette valmistama.
  • Testid teevad muudatused turvaliseks, nii kulub vähem aega tulekustutamisele.
  • Uued arendajad saavad süsteemist aru - see on dokumenteeritud ja testitud.

04 / Väljakutsed

Kõige raskem oli peidetud sõltuvuste leidmine - kümne aastaga tekkinud kaudsed seosed osade vahel, mida ükski dokument ei kajasta. Jälgisime, mis on tegelikult omavahel seotud, vaadates kuidas süsteem käitub ja milliseid päringuid teeb. Teine väljakutse oli inimlik: kui teste pole, tundub iga muudatus ohtlik, ja meeskond oli muutunud ettevaatlikuks. Esimesed nädalad läksid suuresti olemasolevate funktsioonide testide kirjutamisele - alles siis sai ümberehitus hoo sisse.

Kas seisad silmitsi sarnase väljakutsega?

Saame rakendada sama arhitektuurset täpsust ka Sinu projektis.

Räägime projektist