Pomohu starší aplikaci dostat do stavu, ve kterém ji lze bezpečně provozovat a rozvíjet. Aktualizace PHP, frameworku a knihoven rozdělím na zvládnutelné kroky s kontrolou dopadu na každodenní provoz.
Typicky jde o systém na nepodporované verzi PHP, obtížné nasazování, křehké závislosti nebo kód, do kterého se tým bojí zasahovat.
Co je součástí spolupráce
Audit verze PHP, frameworku, závislostí a způsobu nasazení.
Prioritizovaný plán modernizace podle rizika a obchodního přínosu.
Doplňování testů kolem kritických procesů před rizikovými změnami.
Postupné aktualizace s možností průběžně vydávat běžné opravy.
Postup
Jak spolupráce probíhá
1
Technická inventura
Zjistím verze, závislosti, způsob provozu a místa s největším dopadem na firmu.
2
Ochranná síť
Pro nejdůležitější scénáře připravím testy, kontrolní postupy a bezpečné zálohy.
3
Postupné upgrady
Změny rozdělím tak, aby byly srozumitelné, vratné a daly se samostatně ověřit.
4
Další údržba
Po modernizaci nastavíme průběžné aktualizace, aby znovu nevznikl velký technologický dluh.
Výchozí situace
Stará verze PHP bývá jen viditelná část problému
Za odloženými aktualizacemi často stojí směs nepodporovaných knihoven, ručního nasazování, chybějících testů a částí, jejichž obchodní pravidla už nikdo přesně nezná. Samotná změna verze proto nestačí. Nejdřív sestavím inventuru závislostí a provozních vazeb.
Zvláštní pozornost dostanou přihlášení, objednávky, importy, plánované úlohy a další toky, jejichž chyba by se projevila až po nasazení.
Volba postupu
Modernizace po vrstvách omezuje počet neznámých v jednom kroku
Odděluji změny běhového prostředí, frameworku, databázové vrstvy a aplikačního chování. Každá etapa má vlastní způsob kontroly a lze u ní určit, zda přináší nutný bezpečnostní posun, jednodušší údržbu nebo prostor pro novou funkci.
U převzatých objednávkových a portálových aplikací se tento přístup osvědčuje víc než jednorázová náhrada. Systém zůstává použitelný a technický dluh se zmenšuje v místech, která mají skutečný význam.
Provozní rizika
Změna je hotová až tehdy, když ji lze bezpečně nasadit
Před rizikovou etapou doplním kontrolu kritických scénářů, ověřím migrace dat a připravím návratový postup. Po nasazení sleduji nejen technické chyby, ale také plánované úlohy, exporty a návaznosti, které se nemusí projevit při prvním otevření stránky.
Kompatibilita vlastního kódu i externích knihoven.
Databázové migrace navržené s ohledem na objem a provoz.
Pravidelné aktualizace po dokončení hlavní modernizace.
Z praxe
Související reference
Starší PHP aplikace
Obchodní a objednávkový systém
Postupný rozvoj převzaté PHP aplikace pro každodenní práci obchodníků: od nabídek a objednávek přes CRM a helpdesk až po notifikace a datové exporty.
Dlouhodobý rozvoj převzatého Symfony systému, ve kterém různé role pracují s rozsáhlými dokumentovými agendami, vyhledáváním a výstupy pro další použití.
Většinu přípravy a změn lze provést bez odstávky. Krátké servisní okno může být potřeba při nasazení změn databáze nebo infrastruktury, vždy se ale plánuje předem.
Lze současně přidávat nové funkce?
Ano, pokud jsou etapy dobře oddělené. Kritické upgrady je vhodné nemíchat s velkou funkční změnou v jednom kroku.
Modernizujete i Nette a Symfony aplikace?
Ano. Pracuji se staršími i současnými verzemi PHP, Symfony a Nette a postupuji podle reálných omezení konkrétního projektu.