რა სჭირს Booking.moh.gov.ge-ის და რისი შეცვლაა საჭირო — პროგრამისტების პასუხი
როგორც ვიცით, დღეს 15:00-ზე, Booking.moh.gov.ge-ზე ფაიზერით ვაქცინაციის რეგისტრაცია დაიწყო, თუმცა როგორც წინა შემთხვევაში მოხდა, საიტი ამჯერადაც გაითიშა და მოსახლეობა ვაქცინაციაზე რეგისტრაციას ვერ ახერხებს.
სოციალურ ქსელებში არაერთმა პროგრამისტმა გამოხატა თავისი აზრი, რომ საიტი უბრალოდ გაუმართავადაა აწყობილი და ამ პრობლემების თავიდან არიდება საკმაოდ მარტივი გზებითაც შეიძლებოდა.
ჩვენ რამდენიმე პროგრამისტს დავუკავშირდით და აღნიშნულ ფაქტთან დაკავშირებით მათი აზრი მოვისმინეთ.
PolicyFly-ს პროგრამულ ინჟინერთან, გიორგი ლუბარეცთან საუბრით გავიგეთ, რომ საიტს რამდენიმე მნიშვნელოვანი პრობლემა აქვს.
"პირველ რიგში, ჯანდაცვის სამინისტროს შეეძლო, რომ წინასწარ გაეთვალა ვებაპლიკაციაზე სავარაუდო დატვირთვა, შემდეგ შეემოწმებინა აპლიკაცია ამ მომხმარებლების რაოდენობაზე სხვადასხვა ავტომატური ხელსაწყოებით. ინდუსტრიის პრაქტიკაა ეს. როგორც ჩანს, მათ ეს არ გაუკეთებიათ და დატვირთვის შემოწმება მოხდა რეალურ მომხმარებლებზე", — აღნიშნავს გიორგი NEXT.On.ge-სთან საუბრისას.
გიორგიმ ისიც აგვიხსნა, რომ თვითონ აპლიკაციის შევსების ფორმები ცუდად ოპტიმიზირებულია, რაც იმას გულისხმობს, რომ ვიზიტის დასაჯავშნად ადამიანს 8 სხვადასხვა საფეხურის გავლა უწევს, რაც ამდენივე მოთხოვნის გაგზავნას ნიშნავს სერვერთან. ასეთ დროს, თითოეულ საფეხურზე ხარვეზის აღმოჩენის შემთხვევაში, პროცესის დაწყება ხელახლა გვიწევს, რაც სერვერს კიდევ უფრო მეტად ტვირთავს.
"სრულიად შესაძლებელია, რომ ჯავშნის ფორმა შემცირდეს ერთ საფეხურამდე. მაგალითად — ირჩევ ვაქცინას, ირჩევ ქალაქს, დროს, შეგყავს პირადი მონაცემები და აგზავნი ფორმას და ამ ყველაფერს აკეთებ მხოლოდ ერთი მოთხოვნით, ერთ გვერდზე. ისიც გაურკვეველია, რატომ არის პრიორიტეტული დაწესებულების არჩევა და რატომ არის ის დროზე უფრო მნიშვნელოვანი. ესეც დამატებითი დაბრკოლებაა ისედაც გაუმართავ პროცესში", — ამბობს გიორგი ლუბარეცი.
იმისათვის, რომ საიტთან დაკავშირებულ პრობლემებზე უფრო მეტი გაგვეგო, ჩვენ გიორგი იაშვილს, საქართველოს სამეცნიერო კიბერუსაფრთხოების ასოციაციის (SCSA) ტექნიკურ დირექტორსაც დავუკავშირდით — "ამ ეტაპისთვის რთულია კონკრეტული კომენტარის გაკეთება, მაგრამ ასეთი ტიპის გათიშვები ახასიათებს სიტუაციას, როცა სერვერზე ცდილობს შესვლას იმაზე მეტი მომხმარებელი, ვიდრე რესურსით არის გათვალისწინებული. შედეგად სერვერი ვერ უძლებს დატვირთვას და შესაბამისი სერვისი ითიშება".
"ასეთი ტიპის "თავდასხმები" ასევე არსებობს გამიზნული და მათ DDoS (distributed denial of service) ეწოდება, როდესაც მავნე ტრაფიკი იგზავნება ათასობით და ზოგჯერ მილიონობით დაზომბილი ბოტის მიერ ერთ კონკრეტულ სერვერთან, რაც იწვევს ამ უკანასკნელის გათიშვას", — აღნიშნავს გიორგი იაშვილი.
როგორც ვხედავთ, ინდუსტრიაში ჩართული ადმიანების მოსაზრებები ერთმანეთს ემთხვევა. საიტის ნაკლოვანებები მკვეთრად ჩანს. ამის გამოსასწორებლად ჯანდაცვის სამინისტროს საკმარისი დრო ჰქონდა, რადგან ვაქცინების პირველი პარტიის ჩამოსვლისას საიტს ზუსტად ასეთი რამ დაემართა.
აღნიშნულ პრობლემასთან დაკავშირებით გვესაუბრა ალექსანდრე სუკიასოვიც — 63 Bits-ის პარტნიორი.
როგორც უკვე ვთქვით, მსგავსი სისტემების პრობლემა მდგომარეობს იმაში, რომ ძალიან ბევრი ადამიანი ცდილობს შესვლას ვებგვერდზე ერთდროულად. სავარაუოდ სერვერი და სისტემა ვერ უძლებს დატვირთვას და ამის გამო ვერავინ ახერხებს სერვისის მიღებას.
"Booking.moh.gov.ge-ის შემთხვევაში ბევრი გამომწვევი მიზეზი შეიძლება იყოს, თუ რატომ კვდება დაჯავშნის სისტემა. ეს შეიძლება იყოს ცუდი პროგრამული კოდი, სუსტი სერვერი და სხვა. თუმცა ამისათვის არსებობს უმარტივესი გადაწყვეტილება, იმ შემთხვევაშიც, თუ არ გვაქვს ამ 3 გამომწვევი მიზეზის გამოსწორების შესაძლებლობა, ეს გადაწყვეტილება არის რიგის მართვის სისტემა. ანუ პირობითად, საიტს აქვს შესაძლებლობა ერთდროულად მოემსახუროს 1000 კაცს. ვრთავთ რიგის მართვის სისტემას და საიტზე ვუშვებთ 1000 კაცს. დანარჩენი 99 000 კი თავის რიგს ელოდება რიგის სისტემაში", — გვეუბნება ალექსანდრე სუკიასოვი.
იმისათვის რომ ტექნიკურ დეტალებშიც მეტად გავრკვეულიყავით, ჩვენ Helix-ის აღმასრულებელ დირექტორს, თორნიკე გელაშვილსაც ვესაუბრეთ.
სისტემაში არის ორი დამოუკიდებელი ნაწილი, ვებგვერდის ვიზუალური მხარე (ფრონტი) და სცენის მიღმა მდგომი სერვისები (ბექი). ეს ორი სისტემა გადაჯაჭვულია და ერთმანეთს ხელს უშლის, ტექნიკური რესურსების გაზიარება ხდება მათ შორის, რისი საჭიროებაც რეალურად არ არის. ეს ორი ერთმანეთისგან დამოუკიდებელად უნდა არსებობდეს იზოლირებულ გარემოში. დღეს ბევრჯერ გაითიშა ვებგვერდის ფრონტის მხარე, რაც უბრალოდ არ უნდა ხდებოდეს.
თორნიკეც იმავეს გვეუბნება, რაც სხვა პროგრამისტებმაც დაადასტურეს — "უფრო სერიოზული პრობლემა არის ბექის მხარეს, სადაც ხდება მონაცემების დამუშავება. იმდენად დიდი რაოდენობის ხალხი ცდილობს რეგისტრაციას, რომ სისტემა უბრალოდ ვერ უმკლავდება."
"რამდენადაც არ უნდა გაზარდო რესურსები ჰირიზონტალურად თუ ვერტიკალურად, თითქმის შეუძლებელია სერვისის უწყვეტად მიწოდება ასეთი დატვირთვისას. ვიწრო გვირაბს შევადარებდი, სადაც ათობით ათასი ადამიანი ცდილობს გაძრომას და ფინიშზე პირველი მისვლას, ხან გვირაბი დაზიანდება, ხან ადამიანი, რაც ყველაფერს აფერხებს. ყოველთვის არსებობს ერთი ან მეტი მცირე რგოლი, რომელიც გაჭედავს მთელს პროცესს, ამას ჩვენ bottle neck-ს ვეძახით. ამას ემატება გარე რესურსებთან ურთიერთობა — მომხმარებლის პირადი ინფორმაციია გადამოწმება რეესტრში, SMS-ის გაგზავნა და ა.შ.", — გვიყვება თორნიკე გელაშვილი
თორნიკე გვიხსნის, რომ ასეთ დროს ერთ-ერთი მიდგომა არის პროცესების ასინქრონულად დამუშავება რიგების (ე.წ. queue) მეშვეობით, რაც გულისხმობს შემდეგს — ყველა შემოსული მოთხოვნა დგება რიგში და მათი დამუშავება ხდება იმ რაოდენობის პორციებად, რისი დამუშავების საშუალებაც აქვს სისტემას. სანამ შენი მოთხოვნა მუშავდება, შენ უბრალოდ ელოდები და არ გიწევს ყოველ 20 წამში ღილაკზე დაჭერა იმის გამო, რომ სადღაც შეცდომა გაიპარა. ასე მუშაობს Amazon-ის შეკვეთების განთავსების სისტემა და უმკლავდება საკმაოდ დიდ დატვირთვებს.
"ზოგადად, ჩემი გამოცდილებით, პროგრამული უზრუნველყოფის შექმნისას სისტემის სტრეს ტესტირება ან ბოლო ეტაპზე ხდება ან საერთოდ არ ხდება, რასაც ყოველთვის ასეთ შედეგებამდე მივყავართ. საძირკველშივე უნდა დაიგეგმოს სწორი არქიტექტურა. დეველოპმენტის პერიოდში მუდმივად უნდა დაიტესტოს და გაკეთდეს შესაბამისი ოპტიმიზაციები", — აღნიშნავს თორნიკე.
როგორც ვხედავთ, პრობლემის აღმოფხვრის გზებში თორნიკე გელაშვილის, გიორგი ლუბარეცისა და ალექსანდრე სუკიასოვის აზრები ერთმანეთს ემთხვევა, თუმცა რატომ ვერ მოიფიქრა ეს Booking.moh.gov.ge-ზე პასუხისმგებელმა IT სამსახურმა, გაუგებარია.
კომენტარები