Feature flags - bart.sk Feature flags - bart.sk

Prečo využívať dostupné softvérové aktualizácie?

Častokrát sa stáva, že programátori majú pri dlhodobom vývoji aplikácie zviazané ruky. Niekedy za to môžu zastarané technológie a verzie. Pri voľbe možností, ako zapracovať novú požadovanú funkčnosť, potom nemajú veľmi na výber. V tom najhoršom prípade požiadavku implementovať dokonca nedokážu, pretože to systém alebo niektorá knižnica nedovoľuje/nepodporuje. Riešenie? Aktualizácia!

Na našich projektoch sme sa v uplynulom čase venovali viacerým aktualizáciám serverov a programových súčastí, ktoré sú potrebné na chod jednotlivých aplikácií a zabezpečenie funkcií na ich ďalšiu prevádzku. Takýto krok totiž dokáže do vývoja priniesť nové možnosti a posunúť poskytované služby na vyššiu úroveň. Majitelia eshopov a webov by preto nemali aktualizáciu podceňovať.

Drahé a nepotrebné? To určite nie!

Takáto komplexná aktualizácia systému nie je väčšine ľudí veľmi „po chuti“. Skôr je vnímaná ako nechcený výdavok a zbytočnosť. Veľakrát je však opak pravdou – práve aktualizáciou systému a knižníc sa vývoj a kvalita služieb posúva výrazne k lepšiemu.  Zo skúseností vieme, že vytvárať rôzne obchádzky, ako do staršieho systému priviesť nové funkcie neoficiálnou cestou, alebo vytvorením vlastných náhrad, je často kontraproduktívne. Naopak, po aktualizácii je občas dokonca možné postrehnúť, že časový odhad na zapracovanie nových funkcionalít je nižší, ako pri staršej verzii, a to aj z dôvodu možnosti implementácie jednoduchšieho kódu. Aktualizácia je teda pri „behu na dlhé trate“ výhodná aj z ekonomického hľadiska.

Ako ukážku uvádzame niekoľko príkladov, s ktorými sme sa v poslednej dobe stretli:

Príklad 1

Prípad: Zákazník chce rozšíriť portfólio svojich služieb na ďalšie zahraničné trhy.Dopad: Zvýšenie množstva obsahu a teda aj zvýšenie dopytov na stránku, samotný server a databázu.Prvý krok: Skontrolovať možnosti aktualizácie a optimalizácia servera, programových knižníc a aplikácie pre najbližšie obdobie.Prečo?: Aktualizácia môže napríklad umožniť jednoduchšie narábanie s pamäťou, inovovať spôsob spracovávania požiadaviek či lepšie manažovať vnútorné procesy. To všetko povedie v konečnom dôsledku k rýchlejšiemu vykonávaniu kódu a teda k možnosti zvýšiť množstvo spracovaných dopytov v určitom časovom horizonte.

Príklad 2

Prípad: Zákazník chce zapracovať podporu webp formátu.Dopad: Je potrebné mať k dispozícii server a knižnice, ktoré takéto spracovanie a formát obrázkov podporujú.Prvý krok: Skontrolovať či server podporuje takúto možnosť.Prečo?: V prípade PHP 5.6 takáto možnosť neexistuje – dá sa vyriešiť iba dodatočne vytvorenou „záplatou“, bez aktualizácie no zároveň aj bez dlhodobej podpory. Naopak PHP vo verzii 7.4 a vyššie už automaticky obsahuje knižnice, ktoré funkcionalitu webp formátov podporujú. Ak chceme teda podporu webp formátu implementovať, niekedy stačí „len“ aktualizovať PHP-čko.

Niektoré testy, napr. https://kinsta.com/blog/php-benchmarks/, potvrdzujú, že novšie PHP verzie sú v porovnaní so staršími rýchlejšie a teda dokážu spracovať oveľa viac požiadaviek. To isté platí aj o databázových systémoch.

Ďalšia z dôležitých výhod je podpora nových funkcií, teda zvýšenie možností pre klienta a jeho vývojára, ako požadované vlastnosti zapracovať. Otvára sa nám teda viac priestoru na zlepšovanie služieb pre návštevníkov webov.

Vyššie spomenuté výhody dopĺňa taktiež fakt, že aktualizáciou systému sa zvyšuje aj jeho bezpečnosť a bezpečnosť aplikácií, ktoré na ňom bežia.

Ako robíme komplexnú aktualizáciu my?

V prípade potreby alebo požiadavky na komplexnú aktualizáciu sa venujeme update-u:

  • jadra používaného operačného systému a jeho súčastí,
  • programového jazyka alebo iného používaného jazyka (PHP, NodeJS a i.),
  • databázy (MariaDb, MySQL, MongoDb a i.)
  • správcu knižníc (pre PHP Composer, pre Node NPM a i.)
  • nástroja na automatizáciu úloh pri vývoji webu gulp,
  • a ďalších súčastí.

Niektoré aktualizácie robievame automatizovane. Napríklad ak máme projekt uložený v cloude, ten sám aktualizuje to najpotrebnejšie v rámci servisových okienok. Rovnako sa púšťame do updatov v prípade ukončenia podpory niektorej súčasti (tzv. nútená aktualizácia) či existencie preukázateľných chýb a bezpečnostných rizík.

Na záver si treba uvedomiť, že aktualizácia nie je vždy nutná a v niektorých prípadoch ani potrebná. Pri doslova vynútenej zbytočnej aktualizácii môže skôr dôjsť ku škode, ako k úžitku. Konkrétne ide najmä o mrhanie prostriedkami (čas a peniaze) v pomere k očakávaniam. Preto vždy odporúčame poradiť sa so svojím developerom, ako čo najefektívnejšie využiť možnosti aktualizácie v aktuálnom období, s ohľadom na budúce ciele webovej stránky, aplikácie či eshopu.