Დატვირთვის ტესტირება: მოთამაშეთა პროფილები და ტრაფიკის მწვერვალები
1) რატომ უნდა მოდელირდეს პროფილები და არა „საშუალო ტემპერატურა“
IGaming დატვირთვას აქვს მაღალი ასაფეთქებელი ნივთიერებები: პრომო/ტურნირები/ნაკადები იძლევა RPS- ს მრავალჯერადი აწევას, ხოლო მოქმედებების განაწილება არათანაბრად (ლოგინი - ანაბარი, განაკვეთები/გამომავალი). ტესტი უნდა ასახავდეს სეგმენტების ქცევას (ახალბედა, VIP, „ბონუს მონადირეები“, მობილური), წინააღმდეგ შემთხვევაში მიიღებთ „მწვანე გრაფიკებს“ და წითელ ინციდენტებს.
ძირითადი SLO (მაგალითი 30 დღის განმავლობაში):- ლოგინი: წარმატება 99. 9%, p95-250 ms
- ანაბარი: წარმატება 99. 85%, p95-400 ms
- ფსონი (WS): p95 RTT მესიჯი 120 ms, disconnect rate-0. 5%
- თამაშის დაწყება: წარმატება 99. 8%, p95-800 ms
2) მოთამაშეთა პროფილები (ქცევითი სცენარები)
A. Newbie (ახალი მოთამაშე) - პიკის ტრაფიკის 25-40%
გზა: რეგისტრაცია - ლოგინი, სარეკლამო ანაბრის ნახვა (მცირე თანხები), 1-2 სლოტის გაშვება
მახასიათებლები: UX შეცდომების მაღალი წილი, გადახდის გადახდა, გვერდებს შორის გადახტომა
B. Regular (დაბრუნება) - 40-50%
გზა: ლოგინი - სწრაფი ანაბარი/დეპოზიტის გარეშე, 3-5 თამაში, იშვიათი დასკვნა
მახასიათებლები: სტაბილური სესიები მგრძნობიარეა p95> 200 ms WS- ზე
C. Bonus-hunter (პრომო) - 10-20% აქციებით
გზა: ბონუსის რეგისტრაცია, გააქტიურება, მინიმალური განაკვეთები, სწრაფი გაყვანის მცდელობა
მახასიათებლები: ადიდებული k '/promo/claim ', რეაგირების ბოროტად გამოყენება, ხშირი 429 სწორი ლიმიტის გარეშე
D. High-roller/VIP - 1% ევრო, მაგრამ მაღალი შემოწმება
გზა: ლოგინი - დიდი ანაბარი, მსუბუქი თამაშები/მაღალი განაკვეთები, დასკვნა
მახასიათებლები: მგრძნობიარეა თამაშის პროვაიდერის ნებისმიერი შეფერხების/გაყალბების მიმართ, კრიტიკულია გადახდის SLA
E. Bettor (სპორტი/ლაივი)- გზა: ლოგინი - კვოტირების გამოწერა, ხშირი განაკვეთები „ვიწრო ფანჯრებში“ (10-30 წმ-მდე)
- მახასიათებლები: პულსირების დატვირთვა WS/კოეფიციენტების ქეშზე, მიზნები/VAR
3) ტრაფიკის მოდელები და ტაიმინგი
Open vs Closed model
Open (Poisson, arrivals/sec) - შესაფერისია საზოგადოებრივი სარეკლამო და ნაკადებისთვის (მომხმარებლები „მოდიან საკუთარი თავისთვის“).
Closed (ფიქსირებული. ვირტუალური მომხმარებლების რაოდენობა think time) - სტაბილური სესიებისთვის (VIP, მსუბუქი თამაშები).
შაბლონის ტრაფიკი:- Ramp: x1-x5 ხაზოვანი აჩქარება 10-20 წუთში
- Burst: x3-x10 „აფეთქება“ 30-120 წმ-ზე (პრემია/ჯეკპოტი/გოლი)
- Wave: ქედები ყოველ 5-10 წუთში (ნაკადი/ტურნირის რაუნდი)
- Soak: 2-12 სთ სტაბილური დატვირთვა (გაჟონვა, GC, აღწერილობა, დეგრადაცია)
4) კრიტიკული flow და მეტრიკა
ავთენტიფიკაცია და პროფილი
RPS '/login ', '/2fa/verify', p95/p99, error-rate, lock/ratelimit
გადახდები
თამაშის კარიბჭეები
Slot/live მაგიდის გაშვება: success-ratio, time-first-spin, პროვაიდერის უკმარისობა
WebSocket: ნაერთები მწვერვალზე, შეტყობინებები/წმ, RTT, rate-limit/429, reconnects/min
პრომო/პრემია
'/promo/claim ', '/freespin/activate': 200/4xx/5xx, წილი 409/კონკურენტული აპდეიტები, საფულის კასკადები
შენახვა და ხაზები
Saturation: CPU, DB-connections, pool-timeouts, queue lag, GC pauses
5) გეო და ქსელის რეალობა
ბაზრის გეოგრაფიული განაწილება (EU/LatAm/MEA/APAC) და ASN მიქსი (მობილური ქსელები, ჰოსტინგები).
ლატენტობა edge-origin (Anycast/CDN), მობილური RTT, პაკეტის ზარალი.
A/B: CDN- ით და გვერდის ავლით (origin) - „სუფთა“ ზურგჩანთების შესაფასებლად.
6) ტესტის მონაცემების დიზაინი
ფსევდონიმი ანგარიშები, BIN ბარათები რეგიონებისთვის, ვალუტებისთვის, KYC მდგომარეობისთვის.
რეალისტური ქცევითი ტაიმინგები: think-time 1-7 casual, 0. 3–1. 2 - დან ცოცხალი განაკვეთებისთვის.
არაიდემპოტენტური ოპერაციების კონტროლი (გამომავალი/ანაბარი): მშრალი რეჟიმი PSP sandbox- ისთვის, საფულის დანამატი.
Anti frode/bot ფილტრები: whitelist ტესტის ASN/IP/devais, წინააღმდეგ შემთხვევაში WAF/anti-bot „აყენებს“ სტენდს.
7) ტესტის გეგმა (გამოშვების შაბლონი/პრომო)
1. მცირე დატვირთვა: მწვერვალის 10-20%, 30 წთ
2. Capacity ramp: x1 → target → x1. 5 სამიზნე მწვერვალიდან, 10-15 წუთი საფეხურზე
3. Burst სერია: 3-5 ტალღები 60-120-ით x3-x5 მიმდინარე დონიდან
4. Soak: 4-8 საათი 60-80% მწვერვალზე (გაჟონვა, დეგრადაცია)
5. Failover/Chaos: ერთი PSP/PoP გამორთვა, თამაშის პროვაიდერის დეგრადაცია, ერთი shard BD- ის ვარდნა
6. WS ქარიშხალი: მასობრივი ჩანაწერი + 5-10 × შეტყობინებები 2-3 წუთში
7. პრომო-ქარიშხალი : /promo/claim + რეგისტრაცია + ანაბარი 60-წამში „ფანჯარა“
გასვლის კრიტერიუმები: ყველა SLO მწვანე ზონაში; headroom - 30% CPU/კონექტებში; PSP კვოტები არ აღემატება; ტესტის შემდეგ არ არის რიგების ზრდა და p99.
8) ინფრასტრუქტურული შაბლონები მწვერვალების გასამკლავებლად
Warm-pool/provisioned concurrency (ფუნქციები/კონტეინერები), pre-scale პრომო წინ.
დაკავშირება და შეზღუდვები upstream (DB/PSP) + მოთხოვნის რიგები.
Idempotence keys დეპოზიტებზე/ვებჰუკებზე.
Backpressure: 429/503 ერთად 'Retry-After', „მძიმე“ რუთების დეგრადაცია (რეპორტები/ძებნა).
კოეფიციენტების ქეში/edge ქეში და თამაშების მეტამონაცემები.
9) ანტი რეგრესი: რაც პირველ რიგში „იშლება“
ხალხმრავალი DB აუზები p99 და დროა
Wallet-locking მასობრივი ბალანსის აპარატებში- PSP-rate limits - ჭიდაობის და დუბლების ზვავი
- WS-broadcast ათასობით ხელმოწერის გარეშე
- ძალიან აგრესიული WAF წესები FPR- ს ლოგინზე/ანაბარზე
10) დაკვირვება ტესტის დროს
Dashbords RED/USE + ბიზნეს ძაბვები (login-debozit, განაკვეთი, დასკვნა).
მისაბმელები end-end „ნელი „/მცდარი მოთხოვნებისთვის (100% sample შეცდომები).
ტესტის ეტაპის მარკერები (ramp/burst) მეტრიკებში/ლოგოებში.
PSP/თამაშების პროვაიდერების ცალკეული პანელები, retrais ხაზი, idempotence ჰიტები.
11) გუნდი და პროცესი
ომის ოთახი: სპექტაკლის ინჟინერი, ზურგჩანთა, SRE, რისკი/გადასახადები, WAF/უსაფრთხოება, პროდუქტი.
Runbook: რას ვაკეთებთ p99> სამიზნეზე, თუ როგორ ვამცირებთ დატვირთვას, ვის ვუწოდებთ პროვაიდერს.
ანგარიში: SLO, გამტარუნარიანობა, ვიწრო ადგილები, ღირებულება, რეკომენდაციები კოდის/არქიტექტურის/კვოტების შესახებ.
12) კაპასიტის გეგმა: მოთამაშეთა რიცხვიდან RPS- მდე
შეფასება (მაგალითი):- მწვერვალზე მოთამაშეები: 50k
- მოქმედების საშუალო სიხშირე: 0. 25–0. 5 req/s თითო მოთამაშისთვის (მობილური ქვემოთ, ცოცხალი ზემოთ)
- სავარაუდო API RPS: 12. 5k-25k + მომსახურების მოთხოვნები (საფულე, პროვაიდერები, ქეში)
- WS: 30-60k აქტიური კონექტორები, 3-8 msg/s მაგიდაზე/თემაზე
- დაამატეთ 30-50% headroom burst და retrai
13) სტენდის მომზადების შემოწმების სია
- მონაცემები: ანგარიშები/საფულეები/ბარათები/ვალუტები/ქვეყნები/თამაშები, ფსევდონიმები
- გადახდის იზოლაცია: sandbox + Webhuk supers, „ცოცხალი“ გაუქმების აკრძალვა
- Edge/CDN/WAF როგორც გაყიდვაში; ASN ტესტის „რბილი“ რეჟიმში ანტიბოტი
- დაკვირვება: დაშბორდები, ალერტები, კვალი ჩართულია
- Autoskale და warm-pool მორგებულია; დოკუმენტირებული ტყვიების/კონექტების ლიმიტები
- კანარის დროშა „მძიმე“ ფიგურებისთვის (მოხსენებები, მასობრივი ექსპორტები)
14) ინსტრუმენტები (სახელმძღვანელო)
გენერატორები: k6, Gatling, Locust (HTTP/WS), JMeter (WebSocket მოდულის ჩათვლით)
Fid Emulators: ციტატების/თამაშების პროვაიდერების კასტომიური სკრიპტები
მიმღები ტრაფიკი: tcpreplay/ingress მარცვლეული ანონიმიზაციით და ნორმალიზაციით
15) პროფილის მაგალითი „პრომო ტურნირი, დაწყებამდე 60 წამი“ (შემთხვევა)
ტალღა − 5 წუთი და 0:- Open arrivals: 400-დან 2,500 req/s (login/refresh)
- '/promo/claim ': bursts თითო 1000 rps 3 × 20 s
- WS: + 15k connect, + 5 msg/s თემაზე „leaderboard“
- გაათბეთ ქეში და warm-pool
- Rate-limit '/promo/claim ': 10/min IP, 2/min ანგარიში, 30-იანი უარყოფითი პასუხის ქეში
- Idempotence და ბონუსის დარიცხვის ხაზი (batch 50-100/tact)
- რბილი 429 ერთად 'Retry-After' + UI პროგრესი
წარმატების კრიტერიუმები: არ არსებობს SLO ლოგინის/დეპოზიტის დეგრადაცია, p95 WS <150 ms, <0. შეცდომების 5% claim, რიგების გაფართოების არარსებობა.
რეზიუმე
IGaming- ის დატვირთვა ქცევითი მოდელირებაა და არა „ენდოპოინტის სროლა“. ჯერ დაადგინეთ SLO და მოთამაშეთა პროფილები, შემდეგ შეარჩიეთ ტრაფიკის მოდელი (Open/closed), შექმნათ რეალური სკრიპტები ლოგინის/დეპოზიტის/განაკვეთების/პრომო გეო და PSP ლიმიტით, შეამოწმეთ bursts და soak, ჩართეთ დაკვირვება და მოამზადეთ ავტო სკეიტი. გააძლიერეთ შედეგი კაპასიტის გეგმისა და runbook 'ami - ასე რომ, თქვენ შეხვდებით საგზაო მწვერვალებს სიურპრიზებისა და კონვერტაციის დაკარგვის გარეშე.
