Vilniaus darzeliu registracija – complete failure

Taigi, atejo ir man ta diena, kai teko registruoti vaika i darzeli.

Kovo 25 d. (per sunaus gimtadieni), 8 valanda ryto turejo prasideti vaiku registracija i darzelius per vilnius.lt svetaine. Atsikelus, iskarto nuskubau jungtis. 7:55 man atsidare svetaine, ir pagalvojau, ura! Neluzo si karta!

5 minutes veliau, supratau, kad visgi niekas nepasikeite.

vilnius.lt 504

Siokie tokie pastebejimai is mano puses kol registravau vaika penkias valandas.

Si sistema jau veikia keleta metu, ir kiekvienais metais susiduriama su ta pacia problema. Siais metais, sausi, buvo jau bandyta paleist registracija, bet ji ‘nepavilko’ viso srauto. Todel nutarta ja pataisyti, paoptimizuoti, ir paleido vel kovo 25 d. Deja, savo darbo vilnius.lt IT skyrius neatliko. Pranese, kad viska sutvarke, bet matyt benchmarku nepaleido istestuot, ar tikrai sutvarke.

Siokie tokie pastebejimai, ka galima butu patvarkyti:

Jokio CDN?

Visi paveiksliukai/css/js yra pateikiami is to pacio http://www.vilnius.lt, nenaudojant jokio cdn’o. Jeigu butu naudojamas cdn’as, ar bent jau isskirti atskiri serveriukai statiniam kontentui, situacija pageretu, nes nereiketu pagrindinio http://www.vilnius.lt apkrauti bereikalingom uzklausom kai ju ir taip per daug. Yra ir nemokamu cdn’u, yra ir mokamu cdn’u, ir galima ijungti cdn’a tik tam tikram laikui kai yra didziausia apkrova.

AJAX is cool!

Darzeliu sistema tikrai naudoja daug ajax uzklausu. Bet … ar jos visos reikalingos? Pvz, registruojant vaika, reikia uzpildyti asmens koda, uzpildzius padaroma ajax uzklausa patikrinti, ar jis yra teisingas (t.y. validus), tada daroma dar uzklausa, kad is asmens kodo gauti informacija apie gimimo data, dar veliau daroma dar karta panasi uzklausa (kodel panasios 2 uzklausos – nezinau). Sita dali galima laisvai padaryti is JS puses, nes nera sunkus algoritmas asmens kodo validumui patikrinti, arba gimimo datos istraukimui is asmens kodo. Bet ne, geriau padaryti 3+ uzklausas vien tik sitam reikalui.

Nepamirskim ir visu kitu lauku. Pvz. adresas  – jei as gyvenu ‘Zaumenhofo’ gatvei, ir pradedu rasyti ‘Zaumenhof’, tai po trecios raides daromas ajax requestas kiekvienai raidei, kad dabaigtu adresa. T.y. ‘Zau’, ‘zaum’, ‘zaume’, ‘zaumen’, ‘zaumenh’, ‘zaumenho’, ‘zaumenhof’, ‘zaumenhofo’ – cia jau 8 uzklausos. Aisku, kai sistema veikia gerai (t.y. ne tada, kai buna visas bumas) tai gal uztenka irasyt ‘zau’ ir jau ras jums adresa, bet kai ji neveikia, tai nespeji gaut rezultatu ir rasai pilna adresa. O dar ta pati adresa reikia irasyti antram teveliui ir vaikui, t.y. dauginam is 8 is 3 kartu ir gaunasi 24 papildomi requestai.

Kiekvienas kitas dropdownas veikia panasiai, kazka pasirenki ir siunti ajax uzklausa. Ju per visa registracija turbut yra keleta simtu, bet neskaiciavau…

Sia dali galima butu tiesiog nusiust i atskirus serverius, kurie apdorotu tik tokio pobudzio informacija, kad neapkrauti tu vargseliu serveriu kurie daro viska kita.

Ziema uzklupo netiketai

Kaip ir kas met, ziema uzklumpa netiketai, daznai netgi antroj grodzio pusei. ‘Keliukai’ tam nesugeba pasiruosti, nes nu, is kur imanoma zinot, kad ateis ziema?

Tokia pati situacija ir pas vilnius.lt darzelius – IS KUR galima zinoti, kad kovo 25d. jie startuos ta prakeikta darzeliu registracija. JEIGU zinotu, tai galetu bent jau papildomu serveriu tam darbui skirti…

Kitaip sakant, jie gi patys zino, kokios buna apkrovos tom dienom, kodel negalima tam pasiruosti? Suprantu, kad pirkti daug serveriu vien tam, kad atlaikyti ta viena-dvi dienas mamuciu/tevuciu registraciju butu gal neprotinga, bet gyvenam 2015-tais metais, aplinkui daug visokiu *demesio, tuoj bus panaudotas buzzwordas* DEBESU, CLOUDU</small>, kur galima nupirkti serveri, ar desimt, o gal net 100 porai dienu. Ir nebrangus jie yra. Tam paciam amazone galetu nupirkti pvz 20 serveriu, pajungti juos i savo backenda, ir uz tas pora dienu sumoketi kelesdesimt doleriu. Kaina nedidele, bet uztat nebutu tokio didelio pazoro pries visa Vilniu, Lietuva ir pasauli.

O gal pradekime siusti laiskus per pasto karveli?

Nesusije su performansu, bet sunku nepastebeti prierasa apie ateinanti laiska, kad, jei negavote / neradote laisko, tai reiketu paieskoti brukaluose (spam folderyje).

Taigi, gaunam laiska, i Inboxa, ir ziurim… ziurim..
Return-Path: NO-REPLY@vilnius.lt
Received: from mail.vilnius.lt (mail.vilnius.lt. [195.182.82.88])
by mx.google.com with ESMTPS id ol7si1269421pbb.71.2015.03.25.01.57.07
for XXX
(version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
Wed, 25 Mar 2015 01:57:08 -0700 (PDT)
Received-SPF: none (google.com: NO-REPLY@vilnius.lt does not designate permitted sender hosts) client-ip=195.182.82.88;
Authentication-Results: mx.google.com;
spf=none (google.com: NO-REPLY@vilnius.lt does not designate permitted sender hosts) smtp.mail=NO-REPLY@vilnius.lt
Received: from HUB2.vilnius.vilnius.lt (10.13.3.4) by mail.vilnius.lt
(192.168.2.2) with Microsoft SMTP Server (TLS) id 14.2.347.0; Wed, 25 Mar
2015 10:53:24 +0200
Received: from w3r4.vilnius.lt (10.187.87.164) by HUB2.vilnius.vilnius.lt
(10.13.3.224) with Microsoft SMTP Server id 14.2.347.0; Wed, 25 Mar 2015
10:55:03 +0200
Date: Wed, 25 Mar 2015 10:55:57 +0200
To: XXX
From: no-reply@vilnius.lt
Subject: Prisijungimo duomenys
Message-ID: <e3cf4223db7449aa8e31488bfd238c9b@w3r4.vilnius.lt>
X-Priority: 3
X-Mailer: PHPMailer 5.2.9 (https://github.com/PHPMailer/PHPMailer/)
MIME-Version: 1.0
Content-Type: multipart/alternative;
boundary="b1_e3cf4223db7449aa8e31488bfd238c9b"
Return-Path: no-reply@vilnius.lt
X-Originating-IP: [10.187.87.164]

Na, neskaitant tu idomiu vidiniu tinklu ir keistu laisku ‘persiuntinejimo’ tarp serveriu keleta kartu (is serverio A 10.187.87.164, i serveri B 10.13.3.224 (taip pat 192.168.2.2), i serveri C 10.3.3.4), matome, kad nera naudojamas nei SPF (nurodo, kuris IP gali siusti laiskus is @vilnius.lt) nei DKIM (nurodo, kad laiskas atsiustas su @vilnius.lt is tikruju buvo is ten siustas) nei nera DMARC (nurodo, ka daryti su laiskais kurie nera SPF/DKIM validus). Tai… gal laikas sias NAUJAS, desimtmecio senumo (isskirus DMARC), technologijas pagaliau naudoti ir valstybinese imonese? Sios technologijos yra labai baisiai brangios (free), uztrunka daug laiko jas idiegti (nieko apie jas nezinant, tai gal koks pusvalandukas ar valandyke uztruktu), ir reikalauja daug specialistu darbo.

Suletejes duomenu apdorojimas, ar visgi visiskai netinkamai veikianti paslauga?

Kaip cia radijuose sneka ir internetuose raso: “Registracija į darželius vyksta, tačiau yra sulėtėjęs duomenų apdorojimas”. Keista fraze. Pagal mane, “suletejas duomenu apdorojimas” yra tada, kai duomenys surenkami be jokiu problemu, o tada del duomenu kiekio / kitu bedu, jie apdorojami lietai. Siuo atveju, deja, manau yra visiskai ne ta situacija. Siuo metu “laimingieji”, kurie sugeba prisijungti, paduoda duomenys. O tie nelaimingieji, nepaduoda. Pirmieji eina i eile pirmi, antrieji pasilieka gale.

Pavizdys: naudojamas nginx, ir nginx turi galimybe vartotojus siusti pagal hasha visada i tuos pacius backendus (nezinau, ar pas juos taip daroma, bet cia tik prielaida parodyt kad suletejas != neveikiantis). Taigi, jei turim 100 klientu su skirtingais adresais, ir tarkim 3 serverius,tai 33% (A) eina i serveri 1, 33% (B) i serveri 2, ir 33% (C) i serveri 3. Viskas gerai? Ne….
Jeigu 100% vartotoju A ir 100% vartotoju B bando registruotis – tai jiems ta registracija net neatsidarys, nes serveris 1 ir serveris 2 bus tiesiog uzdusinti. O jeigu is visu vartotoju C eina registruotis tik pvz 20% ? Tai jiems serveriai atsidarines, registruosis ir ziurek, jie pirmi eilei!

Taigi, cia ne ‘suletejas’ apdorojimas, cia paslaugos neveikimas, ir laimes/algoritmo klausimas, kam pasiseke patekti i serveri, kuris nera apkrautas per daug tuo metu.

Atsiprasau, prirasiau nes tikrai uzkniso sios nesamones.

EDIT: dadejau pastraipa apie pasto karvelius ir suletejusi apdorojima, pamirsau parasyti.

Vilniaus darzeliu registracija – complete failure

12 thoughts on “Vilniaus darzeliu registracija – complete failure

  1. Edvinas says:

    man labiausiai įstrigo ši pastraipa: “Registracijos išvakarėse savivaldybė pranešė, kad sistemą tobulino ir jos patikimumą patvirtino informacinių technologijų kompanijos IBM, DPA ir BAIP”. Su pirmu esu susidūręs tiek pats, tiek ir tamsta (aix ir wesphere rulez), tad ko tikėtis jau buvo galima nujausti :-]

    1. Taigi as jau paminejau “Yra ir nemokamu cdn’u, yra ir mokamu cdn’u, ir galima ijungti cdn’a tik tam tikram laikui kai yra didziausia apkrova.” – tiksliu provaideriu neminiu, a tai konkurencijos taryba dar pasirodys!🙂

    1. Nelabai, mano mygtukine turi tik visokius qwx mygtukus, niekas dar nepadovanojo lipduku su lietuviskom raidem😦 siaip nepretenduoju i lietuvos top100 ar net top10000 blogeriu, ir liautuviskai rasau reciau nei angliskai ar perliskai ar pehashpiskai.

      1. Karolis says:

        Tai gal tada “angliskai”, o ne “liautuviskai” ir rašykite?
        Jei tikslinė auditorija yra lietuviai, tai turėkit pagarbos bent bandyti rašyti lietuviškai.

  2. Tiksline auditorija yra zmones gyvenantys lietuvoje, kuriems idomi yra virsuj aprasyta problema, o ne tie, kuriems svarbu, kad butu rasoma ‘nesveplai’.
    Problema lengvai issprendziama – jei nepatinka mano rasymo stilius, tiesiog neskaitote ir paspaudziate ten iksiuka ar dar koki mygtuka lango virsuje. Dar galite susikurti koki blacklista puslapiu, kuriu geriau neskaityti, nes autorius svepluoja.

    1. Ir, beje, jeigu tai ka parasiau yra idomu, o tiesiog akys degina lietuvisku raidziu nebuvimas – prasom, teksta turite, pakoreguokite i LIETUVIU kalba, ir duokite man – atnaujinsiu. O jei tekstas nedomina tai prasom skaityt pries tai esanti komentara🙂

  3. Aivaras says:

    Atleisk, bet ties kažkelintu skyriumi užsi*!#%&@$ parsint tą jovalą. Nemoki rašyti lietuviškai – nieko tokio, aš irgi nemoku. Tai rašyk angliškai. Vis tiek skaitys tik tie, kurie ir taip angliškai nuolat skaito, o ir šiaip blogas angliškas iš esmės.
    Vienžo nei savęs nei skaitytojo negerbi.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s