ტექნოლოგია

ვებ აპლიკაციების ხელმისაწვდომობა

აპლიკაცია ყოველთვის მზად უნდა იყოს, რომ გაუწიოს სერვისი მომხმარებელს, შეყოვნების გარეშე

თებერვალი 13, 2020


რას ნიშნავს ვებ აპლიკაციების ხელმისაწვდომობა?


სერვისის ხელმისაწვდომობა წარმატებული პროდუქტის ერთ-ერთი ყველაზე მნიშვნელოვანი კომპონენტია. პროდუქტის ონლაინ მიწოდების ერთ-ერთი მთავარი უპირატესობაც ესაა - სერვისის მუდმივი ხელმისაწვდომობა 24 საათის განმავლობაში.


ვიზიტორების ნაკადის ზრდასთან ერთად, ვებ აპლიკაციის გამართული ფუნქციონირებისთვის, აუცილებელია შესაბამისი სერვერული რესურსების არებობაც. ხელმისაწვდომობაც ზუსტად ამას ნიშნავს - აპლიკაცია ყოველთვის მზად უნდა იყოს, რომ გაუწიოს სერვისი მომხმარებელს, შეყოვნების გარეშე.



პირველ რიგში, აუცილებელია ვიცოდეთ, თუ რას ნიშნავს სერვერი და რა რესურსები შეიძლება ჰქონდეს მას. მარტივად რომ ვთქვათ, სერვერი თქვენი ლეპტოპის მსგავსი კომპიუტერია, რომელზეც განთავსებულია საიტი და მასაც იგივენაირი ტიპის რესურსები აქვს, როგორიც თქვენს ლეპტოპს ან თუნდაც სმარტფონს. თუ მოინდომებთ, თქვენს ლეპტოპსაც შეუძლია "ვებ სერვერის" როლის შესრულება და ვიზიტორების მიღება.



სერვერის ძირითადი რესურსები:



ცენტრალური პროცესორი;


ოპერატიული მეხსიერება;


შემნახველი მოწყობილობა (მყარი დისკი, SSD);


გარე სამყაროსთან კავშირი (ინტერნეტი, ინტერნეტის გამტარობა / სიჩქარე)



ვებ აპლიკაციის არქიტექტურის გამარტივებული ვერსია


თუ თქვენს ლეპტოპში გაქვთ გახსნილი ბრაუზერი, მასში წარმოუდგენელი რაოდენობის ტაბი, რომელშიც არავინ იცის, როგორ პოულობთ სასურველს, ამავდროულად ვიდეოს არენდერებთ და შემდეგ ვიდეო თამაშის ჩართვას მოინდომებთ, შეიძლება ლეპტოპის რესურსები არასაკმარისი აღმოჩნდეს და ჩამოთვლილიდან ყველა ქმედების შესრულება შეუძლებელი გახდება. ამ მოვლენას ადამიანურ ენაზე "კომპიუტერმა გაჭედა!"-ს ვეძახით ხოლმე, სინამდვილეში კი თქვენი კომპიუტერის რესურსები უბრალოდ არასაკმარისი აღმოჩნდა იმ დატვრითვისთვის, რაც თქვენ დაავალეთ მას.



საიტის “გაჭედვის” მაგალითი - საგნების არჩევა



ვებ აპლიკაციის მიუწვდომლობის (“გაჭედვის”) ერთ-ერთი მთავარი გამომწვევი მიზეზიც ვიზიტორების რაოდენობისთვის შეუსაბამო რესურსების არსებობაა. ანუ ვებ სერვერს, ან მონაცემთა ბაზის სერვერს არასაკმარისი მოცულობის ოპერატიული მეხსიერება, პროცესორის სიმძლავრე ან მონაცემების გამტარუნარიანობა აქვს. ამის ერთ-ერთი ყველაზე ნათელი მაგალითი ბევრისთვის კარგად ცნობილი, მტკივნეული პროცესი - უნივერსიტეტში საგნების არჩევაა.


იმ უნივერსიტეტებში, სადაც საგნების არჩევა ელექტრონულად ხდება, ბევრ სტუდენტს გაუვლია პროცესი, რომელიც ბევრ მოთმინებას მოითხოვს. სასწავლო პერიოდის დაწყებასთან ერთად, სტუდენტებს უწევთ, რომ კონკურენცია გაუწიონ ათასობით სხვა სტუდენტს, რომელსაც იგივე, მარტივი მისია აქვს - აირჩიოს სასურველი საგნები მომავალი სემესტრისთვის.


პოპულარულ უნივერსიტეტებში, საბაკალავრო პროგრამის ყოველ კურსზე, დაახლოებით 3500 სტუდენტი სწავლობს. რაც ნიშნავს იმას, რომ საგნების არჩევის დღეს, უხეშად 10,000 სტუდენტს უწევს ვებ აპლიკაციაში შესვლა და საგნების არჩევა. იქიდან გამომდინარე, რომ ყველა საგანზე თავისუფალი ადგილების რაოდენობა შეზღუდულია, ეს ნაკადი ერთიანად შედის საიტზე და სავალალო შედეგიც მალევე დგება - საიტი გამართულად ვეღარ ფუნქციონირებს და ვიღებთ 10,000 უკმაყოფილო მომხმარებელს, რომელიც წამში 3-ჯერ ცდილობს საიტზე შესვლას.


რა თქმა უნდა, ამის გამომწვევი მიზეზი სერვისის მომწოდებლის, ანუ უნივერსიტეტის მხარეს უნდა ვეძებოთ, რადგან მან მოსალოდნელი ნაკადისთვის არასაკმარისი რესურსები გამოყო, მაგრამ ხშირ შემთხვევაში, თავად მომხმარებელსაც შეაქვს მნიშვნელოვანი წვლილი. გასათვალისწინებელია, რომ ვებ სერვისები, სადაც საგნების არჩევა ხდება, მთელი წლის განმავლობაში არც ისე ბევრ ვიზიტორს ემსახურება ერთდროულად და ყველაზე დიდი წილი წელიწადში ორჯერ, სულ რამდენიმე დღეზე მოდის. რას აკეთებენ ასეთ დროს სტუდენტები? რა თქმა უნდა, F5 დღის ყველაზე ხშირად გამოყენებულ ღილაკად იქცევა. რაც კიდევ უფრო მეტად აუარესებს მდგომარეობას. 


ნაკადისთვის შეუსაბამო რესურსების გამოყოფა უფრო მეტი ზიანის მომტანია. რაც უფრო მეტია სხვაობა ამ ორს შორის, მით უფრო მეტჯერ მიმართავს მომხმარებელი F5 ღილაკს, მით უფრო მეტი დრო დასჭირდება სერვისს თითო მოთხოვნის შესასრულებლად და შედეგიც მით უფრო მწვავე იქნება.


გამოსავალი




გამოსავალი ბევრ ცვლადზეა დამოკიდებული, მაგრამ ერთ-ერთი ყველაზე მნიშვნელოვანი, ვებ აპლიკაციისთვის შესაბამისი სერვერული რესურსების გამოყოფაა. იმ შემთხვევაში, როდესაც ნაკადის რადიკალური ზრდა წინასწარ ცნობილია, რესურსების წინასწარ გამოყოფაც შესაძლებელია, მაგრამ ეს ყოველთვის ცნობილი არაა და არც ზუსტი გათვლაა მარტივი. უფრო ეფექტური გამოსავალი რესურსების ავტომატური ზრდაა, მომხმარებლების ზრდის შესაბამისად. სადაც თქვენი აპლიკაციის წინ იდგება “მენეჯერი” რომელიც მომხმარებლის ნაკადს სწორად გაანაწილებს და საჭიროებისამებრ, თქვენ აპლიკაციას “გაამრავლებს, რათა ყველა მომხმარებელს ჰქონდეს წვდომა.


ზედაპირული რჩევის სახით შეგვიძლია რჩევის მიცემა ვებ აპლიკაციის მომწოდებლებისთვის:


- თუ ვიზიტორების ნაკადის ზრდა წინასწარ ცნობილია, თქვენმა ტექნიკურმა გუნდმა აპლიკაცია შესაბამისად უნდა გამართოს.


- სასურველია, რომ ტექნიკურ გუნდს ეს ინფორმაცია მხოლოდ ერთი საათით ადრე არ გადასცეთ.


- ჩაატარეთ წინასწარი ტესტირება და დარწმუნდით, რომ გაზრდილი ნაკადის შემთხვევაში, თქვენი აპლიკაცია გამართულად იმუშავებს.


- სერვისის მოულოდნელი ხელმოუწვდომლობა ხშირ შემთხვევაში იმის გამო ხდება, რომ არ იცით, როგორ იქცევა თქვენი სერვისი დატვირთვის ქვეშ და რომელი კომპონენტი გამოდის მწყობრიდან მარტივად. აწარმოეთ სტატისტიკა!


- ერთი მასშტაბური შეყოვნება შეიძლება ძალიან ძვირი დაგიჯდეთ. სერვერული ინფრასტრუქტურის მოწყობის და მართვის ხარჯები აუცილებელი ინვესტიციაა.



ხოლო მომხმარებლებს კი უფრო მარტივად შეუძლიათ საკუთარი წვლილის შეტანა - თუ ჭედავს, გვერდის წამში 10-ჯერ გადატვირთვა კარგს არაფერს მოიტანს. მაგრამ მაინც ყველა ამას ვაკეთებთ, სხვანაირად ან საგნების არჩევას დაგვასწრებს ვინმე ან The National-ის ღონისძიების ყველა ბილეთს იყიდიან და ჩვენ ყურსასმენებში მოგვიწევს მოსმენა.



ავტორი: გიორგი ლიუბარეცი / George Lubaretsi


Localinsights-ის თანადამფუძნებელი და ტექნიკური ლიდი, Backend პროგრამული ინჟინერი, პროგრამული არქიტექტორი, Python, Django, Kubernetes, Google Cloud Platform, GIS, Web Crawling, ETL/ELT სისტემები.