Já už nějakou dobu aplikuji aktualizovat verze často a snažit se co nejdříve používat nejnovější verze. Ono to může být pro někoho možná otravné to dělat každý měsíc, ale uspoří to hromadu času a hromadu problémů, než když se to dělá jednou za x let. Navíc pokud je nějaký problém v nejnovější verzi, tak se často velmi rychle odhalí a opraví. O tom, že ty časté aktualizace jsou mnohem snazší než když se dělá jeden big bang upgrade není třeba ani mluvit.
Předpokladem tohohle řešení je mít většinu pokrytou testy a sledovat co se děje ve frameworku, knihovnách nového.
Tak teď je to přes 30 microservice. Některé jsou jednoduché některé složité. Rozhodně bych neřekl, že nejsou komplexní. Používá se tam tak 5 různých data sources od PostgreSQL, MongoDB přes elasticsearch až po Azure ( což je vždy ten největší pain). Update neznamená okamžité nasazení na produkční prostředí. Musí to projít přes dev a staging. Vždy to dělám tak že výběru jednu komplexní a tu updatuji a nechám týden na dev. Pokud vše funguje updatuji zbytek. Pak posunu jednu microservice dále až na prod a opět nechám chvíli běžet. Pokud je vše ok, tak zbytek nasazují na prod až s jinými změnami.
Takže mám vlastně 4 záchytné body, testy v aplikaci, integrační testy, dev a staging a teprve pak to jde do produkce. Pokud to někdo dělá rovnou na produkci a nebo bez dostatečných testů, tak se pak není čemu divit, že to trvá dlouho. Ono se spíš ukáže, že to je vždy lenost resp. ochota někoho kdo tohle bude dělat, protože výsledek není úplně vidět. Odměnou je spokojený vývojářský tým, security, lepší domluva s vývojáři knihoven/frameworků. A nemusíte řešit pak velké updaty, kde se pak každý boji to udělat, protože neví co se za těch x verzi kde změnilo.