Kaip priversti jūsų internetines sistemas dirbti sklandžiai?

Pastarosiomis dienomis IT sistemos Lietuvoje ir pasaulyje išgyvena ne pačius geriausius laikus. Be sutrikimų veikia tik tos sistemos, kurių architektai apgalvojo galimas didesnes infrastruktūros, aplikacijų apkrovas ir tam pasiruošė iš anksto. Ne išimtis ir Lietuvos švietimo sistema, kuri nebuvo pasiruošusi nuotoliniams mokymams internetu. Nors buvo užtikrinta, kad sistemos atlaikys, jau patį pirmą nuotolinių mokymų rytą sklandžiai neveikė nei viena lietuviška skaitmeninės edukacijos sistema. Mokytojams ir mokiniams teko ieškoti alternatyvių būdų nuotoliniams mokymams. Vieni naudojo Zoom, kiti Messenger, Skype, ar panašias programas. Tačiau buvo žinoma, kad apkrovos stipriai padidės ir programuotojai galėjo tam pasiruošti. Juk neveikiant web svetainėms, ar aplikacijoms, prarandamos ne tik gautinos pajamos, tačiau ir paieškos sistemų reitingai, bei žmonių pasitikėjimas. O tai ilguoju laikotarpiu gali net sužlugdyti verslą.

Taigi, kokie paprasčiausi būdai sumažinti sistemų apkrovimą ir priversti jas dirbti sklandžiai?

Optimizuoti procesus.

Priklausomai nuo to, kokio tipo svetainę norima optimizuoti, reikia atlikti ir atitinkamus pataisymus. Kadangi skirtingų svetainių ir aplikacijų begalės, visų pakeitimų neįmanoma aprašyti. Tačiau galima apibendrinti dažniausiai pasitaikančius:

  • Jei svetainėje daug grafinių elementų, ar video, galima sumažinti kokybę, arba ją automatiškai pritaikyti pagal srauto apkrovimus. Tuomet nors ir nukentės vaizdo kokybė, bet vartotojams turinys bus pasiekiamas žymiai greičiau.
  • Jei naudojama daug CSS, Java, ar kitų scriptų, būtina juos peržiūrėti. Tikėtina, kad daugumą tokių skriptų reikia įkelti tik kai kuriuose puslapiuose, bet tikrai ne visuose.
  • Dinaminio turinio kešavimas (cache). Svetainės dinaminį turinį, kuris retai keičiasi, rekomenduojama saugoti laikinojoje atmintyje (cache). Taip žymiai pagreitinamas svetainės pasiekimo greitis ir mažinamas serverio apkrovimas, nes papildomai nebesikreipiama į API ir duombazes.
  • Statiniam turiniui nustatyti galiojimo laiką. Naršyklei paprašius grafinio elemento, CSS, ar JavaScript failo, jis nebus atnaujinamas tol, kol baigsis jo galiojimo terminas. Taip bus sumažinamas serverio darbas.
  • 404 klaidų pašalinimas. Neegzistuojantys grafiniai elementai, nuorodos vedančios į niekur, ar neegzistuojantys vidiniai puslapiai stabdo svetainės darbą, nes naršyklė vis kreipiasi į neegzistuojantį elementą ir bando jį pasiekti. Nors tai per daug neapkrauna serverio, tačiau ištaisius šias klaidas, lankytojams sukuriamas patikimos svetainės įspūdis ir truputį pagerina paieškų sistemų reitingus. Rekomenduojama atlikti diagnostiką ir pašalinti visas tokias klaidas.
  • CDN (turinio pristatymo tinklas) serverių naudojimas. Jei svetainė sulaukia tūkstančių lankytojų iš viso pasaulio, rekomenduojama naudoti CDN serverius. Tokiu atveju svetainė lankytojui bus siunčiama iš artimiausiai esančio serverio ir veiks greičiau.

Reikia nepamiršti, kad svetainės greitis ne tik svarbus kokybės parametras lankytojams, tačiau tai daro didelę įtaką ir paieškos sistemų algoritmams. Visi nori atsidurti pirmuose paieškų sistemų puslapiuose, todėl reikia stengtis, kad svetainė veiktų greitai. Paprasčiausi nemokami įrankiai įvertinti svetainės greitį: https://tools.pingdom.com/

https://developers.google.com/speed/pagespeed/insights

Konteinerizacija

Lietuvoje kol kas dar mažai konteinerių entuziastų, tačiau vis dažniau jais domimasi. Skirtingai nei virtualūs serveriai (VPS), konteineriai nenaudoja įrangos abstrakcijos lygmens, tad daugiau resursų skiriama tiesioginei naudingai užduočiai atlikti. Tai leidžia naudoti žymiai mažiau resursų, bei konteinerius paleisti vos tik prisireikia – per sekundės dalį. Konteinerizacija taip pat supaprastina darbą programuotojams, nes jiems nebereikia rūpintis, kokią operacinė sistema bus naudojama. Taip pat, programuotojai gali konteinerius susikurti ir savo asmeniniame kompiuteryje ir ten išsibandyti, kaip veikia jų kuriamos aplikacijos.

Dažniausiai konteineriais pradedama domėtis tuomet, kai svetainė, ar aplikacija patiria didžiules apkrovas, o jau naudojamas pats galingiausias serveris ir vertikaliai plėstis nebėra kur. Tai vienas iš scenarijų, tačiau konteinerizacija, tai pat, gali padėti taupyt. Dažnai įmonėms nenaudinga nuomotis daug dedikuotų serverių, ar juos įsigyti patiems, nes dalies serverių prireikia tik tuomet, kai padidėja apkrovos. Konteinerizavus aplikacijas ir perkėlus jas į duomenų centrą, siūlantį valandinius mokėjimus, galima dalį serverių nuomotis sudarant ilgalaikį kontraktą (mėnesiui, metams ir pan.). Kitą dalį, pakilus apkrovoms, automatiškai paruošiant per kelias minutes ir paleidžiant juose turimus konteinerius. Apkrovoms nurimus, valandinių serverių galima tiesiog iškart atsisakyti. Taip konteinerizuota sistema bus ne tik pasiruošusi horizontaliai išsiplėsti atsiradus didesnėms apkrovoms, bet susitraukti, kai jų nelieka užtikrinant optimalų finansinių išteklių naudojimą.

Konteinerių technologija yra atviro kodo (open source) ir nemokama, tačiau reikalauja specifinių žinių. Daugiau informacijos galima rasti čia: https://www.docker.com/

Galingesnis serveris.

Pats paprasčiausias būdas priversti svetainę, ar web aplikaciją veikti greičiau, perkelti ją į spartesnį serverį. Visų pirma, rekomenduojama išanalizuoti, kurių resursų trūksta. Dažniausiai neužtenka interneto srauto, procesoriaus ar operatyviosios atminties (RAM). Jei serveryje jau įdiegta stebėjimo programa (monitoring), galima aiškiai matyti, kokių resursų trūksta ir pagal tai pasirinkti naują serverį. Kartais serverio net nebūtina keisti, galima paprašyti tiekėjo, kad pridėtų papildomos atminties, padidintų interneto pralaidumą, ar įdėtų galingą vaizdo plokštę jei jos netikėtai prisireikia. Taip įmanoma svetainę priversti dirbti žymiai sparčiau vos per kelias valandas.

Ilgametę serverių prieglobos patirtį turinčios UAB „Cherry Servers“ specialistai mielai konsultuoja kokį serverį pasirinkti, kad internetinis projektas veiktų optimaliai. Kartu su partnerių pagalba siūloma konteinerizuoti aplikacijas ir jas perkelti į tam puikiai pritaikytą infrastruktūrą.

UAB „Cherry Servers“ yra dedikuotų debesijos resursų tiekėja, pirmoji Europoje pasiūliusi pilnai automatizuotas ir dedikuotas IT infrastruktūros paslaugas, kurios gali būti naudojamos pagal pareikalavimą, mokant tik už panaudos valandas. Tai itin aktualu įmonėms, kurioms didesnio serverių kiekio reikia tik per pikus, arba reikia greitai apdoroti didžiulius informacijos kiekius (big data). Galima ženkliai sutaupyti, kai pastoviai nuomojamasi tik dalis serverių, o kita dalis užsakoma trumpajam laikotarpiui tik apkrovoms padidėjus. Šiuo metu „Cherry Servers“ aptarnauja klientus iš daugiau nei 140 skirtingų pasaulio šalių, padėdama smulkiam ir vidutiniam verslui augti skaitmeninėje erdvėje lengviau. Kadangi šiuo metu ypatingai svarbus interneto pralaidumas, įmonė džiaugiasi galėdama pasiūlyti itin spartų interneto pralaidumą – 3Gbps daugumai serverių. Techninė pagalba teikiama 24 valandas per parą, 7 dienas per savaitę.

Pranešimą paskelbė: Marius Rimkus, Cherry Servers