Kako optimizirati stroške vzdrževanja spletne aplikacije

Še kakšno desetletje nazaj so imele spletne aplikacije zelo omejen rok trajanja, v povprečju tri do pet let. Enostavno razvoj ni dohajal tempa, s katerim se je razvijal internet. Vzdrževanje je bilo bolj podobno gašenju požarov kot načrtnemu razvoju, dokler aplikacije ni povozil čas ali pa se je povsem zapletla same vase.

Danes je drugače. Splet je prerasel puberteto, tehnologije se konsolidirajo, standardizirajo, izkristalizirale so se najboljše prakse. Nove, modularno zasnovane tehnološke platforme omogočajo razmeroma nebolečo uvedbo nadgradenj in dodelav. Celo takšnih, ki jih v času načrtovanja ni bilo mogoče predvideti. Seveda, če je aplikacija v osnovi pravilno načrtovana.

V mnogih podjetjih še danes, ko se odločajo za razvoj spletne aplikacije ukvarjajo prdvsem s ceno razvoja, vzdrževanje in kasnejše nadgradnje pa puščajo ob strani.

A vzdrževanje kompleksne aplikacije lahko že v dveh ali treh letih preseže začetno investicijo. Medtem ko razvoj traja nekaj mesecev, bomo s stroški vzdrževanja živeli morda naslednjih 10 let ali več!

Zakaj vzdrževanje sploh potrebujemo?

Spletne aplikacije so v bistvu spletne strani, ki izvajajo določene funkcije. So kot mini tovarne. Imajo vhodne surovine (podatke) in izdelujejo proizvode (storitve in informacije).

Recimo, da želimo povečati proizvodnjo. Stroj, ki očitno predstavlja ozko grlo, zamenjamo z novejšim, zmogljivejšim. Vse lepo in prav, a kaj, ko nato ugotovimo, da ta stroj ni kompatibilen z neko drugo napravo. Posodobitev enega stroja tako potegne za sabo niz dodatnih posodobitev in prilagoditev.

Podobno je s spletnimi aplikacijami. Sestavljene so iz vrste soodvisnih procesov, mini aplikacij in komponent. Vse niti niso pod našim nadzorom. Če se na primer Google odloči za nadgradnjo svojega brskalnika, ni nujno, da se bo naša aplikacija v Google Chromu še vedno vedla tako kot je treba. Vsaka takšna posodobitev lahko povzroči težave ali celo nedelovanje aplikacije.

Tipičen primer so spletne strani, zgrajene na popularni platformi Wordpress (WP). Sestavljene so iz osnove predloge (teme) in dodatnih funkcij (modulov, plug-inov) različnih ponudnikov, s katerimi spletno stran prilagodimo potrebam naročnika. Pri WP zgledno skrbijo za varnost osnovne platforme, zato so varnostne posodobitve zelo pogoste.

Vsaka varnostna nadgradnja lahko povzroči kaskado dogodkov. Kar naenkrat se nek modul ne razume več s posodobljeno temo. Vpeljevanje vedno novih varnostnih različic zato zahteva stalno testiranje in posodabljanje tudi tistih komponent, ki niso del osnovne varnostne posodobitve.

Wordpress je mogoče najbolj očiten primer, vendar logika stalnega prilagajanja v večji ali manjši meri velja tudi za ostale platforme. In tehnološke spremembe so šele začetek.

Kaj najbolj vpliva na obseg vzdrževanja?

Strošek vzdrževanja se v veliki meri nanaša na število delovnih ur, potrebnih za vzdrževanje spletne strani ali aplikacije. Čeprav so vzdrževalna dela zelo različna, kot bomo videli v nadaljevanju, pa kumulativno na obseg vzdrževanja vplivajo zlasti trije dejavniki:

  • obseg
  • struktura (kompleksnost),
  • obiskanost (promet);

Podobno kot sta fičko in mercedes oba avtomobila, čeprav še zdaleč ne enaka, tudi preprosta spletna stran nima prav veliko skupnega z vzdrževanjem kompleksne intranetne rešitve ali pa spletne trgovine. Sicer tudi prva zahteva neko minimalno vzdrževanje, ki pa ne po zahtevnosti ne po količini ni primerljivo z vzdrževanjem drugih dveh. Posledično še nikomur ni uspelo sestaviti splošno veljavnega cenika vzdrževalnih storitev. Po meri razvite rešitve so že po definiciji vsaka primer zase, zato lahko vzdrževalne stroške svoje bodoče rešitve zgolj okvirno ocenimo glede na zgornje kriterije, da si ustvarimo približno sliko.

Obseg

Obseg aplikacije neposredno vpliva na količino vsebine, ki jo moramo pripraviti in nato osveževati. Več spletnih vsebin pomeni več dela z optimizacijo uporabniške izkušnje in uredništvom, posledično pa tudi s tehničnim vzdrževanjem.

Pri obsežnejših, večjezičnih spletnih portalih je zato smiselno analizirati potrebe urednikov in izbrati uredniški (CMS) sistem, ki jim bo kar najbolj poenostavil delo. Upravljate več spletnih mest? Poslujete v več jezikih? Spletno orodje, ki omogoča centralno upravljanje (brez nepotrebnega podvajanja vsebin), lahko uredniku prihrani tudi  več ur nepotrebnega dela na dan.

Struktura

Zlasti za bolj kompleksne rešitve velja, da se vzdrževanje začne že v fazi načrtovanja. Premišljeno (modularno) zasnovana arhitektura lahko namreč bistveno poceni kasnejše vzdrževanje in poenostavi nadaljnji razvoj.

Žal na tej točki veliko naročnikov pade na izpitu. Odločijo se za najcenejšega ponudnika, ki si praviloma ne beli glave s tem, kako bo kasneje potekalo vzdrževanje (od tod tudi nizka cena). Pravzaprav mu ustreza, če bo za vzdrževanje porabil več (plačanih) ur kot bi bilo potrebno.

Obiskanost in aktivnost

Koliko obiska pričakujete? Kaj bodo uporabniki počeli v aplikaciji? Od obiska, zlasti od števila hkratnih zahtevkov in količine zapisov v bazo je odvisno, kje bo gostovala aplikacija in kako bo organizirano shranjevanje podatkov.

Ti parametri pridejo najbolj do izraza pri spletnih trgovinah. Pričakujete kampanjski obisk v obliki izrazitih prometnih konic? Pravočasno se pripravite na razne “črne petke” in zagotovite pripravljenost sistemsko-razvojne ekipe.

Kaj storitev vzdrževanja zajema?

Vzdrževanje aplikacije lahko razdelimo na tehnično (ki lastniku prinaša miren spanec) in vsebinsko (ki mu pomaga razvijati posel). Tehnično vzdrževanje se deli na 1) vzdrževanje aplikacije in 2) vzdrževanje infrastrukture (strežnikov in aplikativnega okolja). V kolikor infrastrukturo najemate, govorimo o gostovanju (hosting). Cena vzdrževanja je torej sestavljena iz treh storitev, za katere lahko skrbijo ločeni ponudniki.

 
Kako optimizirati vzdrževanje

 1. Načrtujte vnaprej

Vzdrževalni stroški bodo nižji in bolj predvidljivi, če bomo aktivnosti vnaprej načrtovali (prediktivno vzdrževanje). Bolj ko so stvari načrtovane, lažje je organizirati in porazdeliti delo, nižji (ali vsaj bolj pričakovani in enakomerno porazdeljeni) so stroški. Odpravljanje posledic (reaktivno vzdrževanje) se tako skrči le na primere, ki jih ni mogoče predvideti vnaprej.

Varčevanje pri stroških na način, da zanemarjamo redna vzdrževalna dela in izpuščamo varnostne posodobitve, se hitro izkaže za izjemno drago. Spomnimo se lanksega napada virusa WannaCry, ki je ohromil podjetja in javne službe povsod po svetu. Analize so pokazale, da so vdor omogočile varnostno neposodobljene verzije operacijskega sistema Windows. Posledice poznamo vsi.

2. Poskrbite za dobro koordinacijo

Dobra koordinacija med deležniki lahko prepreči marsikatero uro nepotrebnega čakanja in razčiščevanja nesporazumov. Pri načrtovanju aktivnosti poskrbite, da so vsi potrebni akterji pravočasno obveščeni in da so na razpolago.

E-pošta pri izvajanju vzdrževalnih nalog ni ravno priporočljivo komunikacijsko sredstvo. Bolj učinkovita so ticketing orodja kakršna sta Jira ali Redmine, ki vsem vpletenim omogočata transparentno spremljanje dogajanja, hitro klasifikacijo nalog in delegiranje zadolžitev. To so učinkovita sodobna komunikacijska pomagala, ki pa ne nadomestijo občasnega srečanja in med naročnikom in izvajalcem.

3. Omejite posledice kritičnih dogodkov

Kritičnim situacijam se ne boste povsem izognili. Vdori in hackerski napadi se dogajajo tudi v boljših družinah (Yahoo, Sony PlayStation).

S pripravo akcijskega načrta za ravnanje v kritičnih situacijah (disaster plan), v katerem je natančno določen postopek ob takšnih dogodkih, boste preprečili dodatno zmedo v že tako napetih situacijah. Če za ključno aplikacijo skrbi zunanji ponudnik, opredelite glavne akterje, njihove zadolžitve in odzivne čase v pogodbi o zagotavljanju vzdrževalnih storitev ali s tujko SLA (Service Level Agreement).

Za zaključek: nalijte si čistega vina 

Vzdrževanje nikakor ni samo implementacija nadgradenj in fiksanje bugov. Je bistveno več kot to.

Kje bo težišče v vašem konkretnem primeru, je odvisno od tega, kaj od aplikacije pričakujete. Delujete v občutljivi panogi, kjer je na prvem mestu varnost podatkov? Potrebujete morda fleksibilno rešitev, zmožno hitrih prilagoditev? Se bo vsebina intenzivno menjala, tudi večkrat na dan?

Šele ko si boste odgovorili na ta vprašanja, si boste lahko ustvarili celotno sliko in ocenili stroške bodoče aplikacije. Seveda gre laže, če imate s takšnimi ocenami že kaj izkušenj. Če ne, pokličite v Creatim, nalili vam bomo čistega vina. Preden pa pridemo do vina, se bomo najprej ob kavi v miru  pogovorili o tem, kaj potrebujete, da bo vaša rešitev kar najbolj služila svojemu namenu.

In kakšne so vaše izkušnje z vzdrževanjem? Imate kakšen praktičen nasvet, dogodek, iz katerega ste se kaj naučili? Veseli bomo, če boste vaše izkušnje in mnenje delili z nami.



Creatim Creatim Ržišnik Perc


Nazaj