თარგმანი Cloudflare-ის ოფიციალური ბლოგპოსტიდან
რა მოხდა
ჩვენ გვქონდა შეფერხება ჩვენს Tenant Service API-ში, რამაც გამოიწვია მრავალი სხვა API-სა და Cloudflare-ის დაფის ფართომასშტაბიანი გათიშვა.
ინციდენტის გავლენა რამდენიმე პრობლემიდან მომდინარეობდა, მაგრამ უშუალო გამომწვევი მიზეზი დაფაში არსებული ხარვეზი იყო. ამ ხარვეზმა გამოიწვია განმეორებითი, არასაჭირო გამოძახებები Tenant Service API-ზე. API გამოძახებები იმართებოდა React useEffect ჰუკის მიერ, მაგრამ ჩვენ შეცდომით ჩავრთეთ პრობლემური ობიექტი მის დამოკიდებულებების მასივში. რადგან ეს ობიექტი ხელახლა იქმნებოდა ყოველი მდგომარეობის ან თვისების ცვლილებისას, React-მა ის “ყოველთვის ახალად” მიიჩნია, რამაც გამოიწვია useEffect-ის ყოველ ჯერზე ხელახლა გაშვება. შედეგად, API გამოძახება ერთხელ ნაცვლად, დაფის ერთი რენდერის დროს მრავალჯერ შესრულდა. ეს ქცევა დაემთხვა Tenant Service API-ის სერვისის განახლებას, რამაც გაართულა არასტაბილურობა და საბოლოოდ გადატვირთა სერვისი, რომელიც შემდეგ ვერ აღდგა.
როდესაც Tenant Service გადაიტვირთა, მან გავლენა მოახდინა სხვა API-ებსა და დაფაზე, რადგან Tenant Service არის ჩვენი API მოთხოვნების ავტორიზაციის ლოგიკის ნაწილი. Tenant Service-ის გარეშე, API მოთხოვნების ავტორიზაცია ვერ შეფასდება. როდესაც ავტორიზაციის შეფასება მარცხდება, API მოთხოვნები აბრუნებს 5xx სტატუსის კოდებს.
ჩვენ ძალიან ვწუხვართ შეფერხების გამო. ამ ბლოგის დანარჩენი ნაწილი დეტალურად განიხილავს რა მოხდა და რა ნაბიჯებს ვდგამთ, რათა თავიდან ავიცილოთ მსგავსი შემთხვევა მომავალში.
ქრონოლოგია
| დრო (UTC) | აღწერა |
|---|---|
| 2025-09-12 16:32 | Cloudflare-ის დაფის ახალი ვერსია გამოვიდა, რომელიც შეიცავს ხარვეზს, რაც გამოიწვევს /organizations endpoint-ზე გაცილებით მეტ გამოძახებას, მათ შორის განმეორებით მცდელობებს წარუმატებლობის შემთხვევაში. |
| 2025-09-12 17:50 | Tenant API Service-ის ახალი ვერსია განთავსდა. |
| 2025-09-12 17:57 | Tenant API Service გადაიტვირთა ახალი ვერსიების განთავსებისას. დაფის ხელმისაწვდომობამ კლება დაიწყო გავლენის დაწყება |
| 2025-09-12 18:17 | Tenant API Service-ისთვის მეტი რესურსის მიწოდების შემდეგ, Cloudflare API-ის ხელმისაწვდომობამ 98%-მდე აიწია, მაგრამ დაფა არ აღდგა. გავლენის შემცირება |
| 2025-09-12 18:58 | დაფის ხელმისაწვდომობის აღდგენის მცდელობისას, შეცდომის შემცველი კოდის ნაწილები მოიხსნა და Tenant Service-ის ახალი ვერსია გამოვიდა. ეს საბოლოოდ ცუდი ცვლილება აღმოჩნდა და კვლავ გამოიწვია API-ის გათიშვა. გავლენის ზრდა |
| 2025-09-12 19:01 | Tenant API Service-ზე ტრაფიკის შესამსუბუქებლად, დროებითი სიჩქარის ლიმიტის წესი გამოქვეყნდა. |
| 2025-09-12 19:12 | Tenant API Service-ის პრობლემური ცვლილებები უკან დაბრუნდა და დაფის ხელმისაწვდომობა 100%-ს დაუბრუნდა. გავლენის დასასრული |
დაფის ხელმისაწვდომობა
Cloudflare-ის დაფაზე სერიოზული გავლენა იქონია ინციდენტის მთელი ხანგრძლივობის განმავლობაში.

API ხელმისაწვდომობა
Cloudflare-ის API-ზე სერიოზული გავლენა იქონია ინციდენტის დროს ორჯერ, როდესაც Tenant API Service გათიშული იყო.

როგორ ვუპასუხეთ
ინციდენტის დროს ჩვენი პირველი მიზანი სერვისის აღდგენაა. ხშირად ეს გულისხმობს ძირითადი პრობლემის უშუალო გამოსწორებას, თუმცა არა ყოველთვის. ამ შემთხვევაში ჩვენ შევამჩნიეთ Tenant Service-ის გაზრდილი გამოყენება, ამიტომ ყურადღება გავამახვილეთ დატვირთვის შემცირებაზე და ხელმისაწვდომი რესურსების გაზრდაზე. ჩვენ დავაყენეთ გლობალური სიჩქარის ლიმიტი Tenant Service-ზე, რათა დაგვეხმარა დატვირთვის რეგულირებაში. Tenant Service არის GoLang პროცესი, რომელიც მუშაობს Kubernetes-ზე ჩვენი მონაცემთა ცენტრების ნაწილში. ჩვენ გავზარდეთ ხელმისაწვდომი პოდების რაოდენობა გამტარუნარიანობის გასაუმჯობესებლად. სანამ ამას ვაკეთებდით, გუნდის სხვა წევრები აგრძელებდნენ იმის გამოძიებას, თუ რატომ ვხედავდით უჩვეულოდ მაღალ გამოყენებას. საბოლოოდ, მოიჯარე სერვისისთვის ხელმისაწვდომი რესურსების გაზრდამ ხელი შეუწყო ხელმისაწვდომობას, მაგრამ არ იყო საკმარისი ნორმალური სერვისის აღსადგენად.

მას შემდეგ, რაც Tenant Service-მა კვლავ ნორმალურად ფუნქციონირება დაიწყო და API ძირითადად აღდგა, ჩვენ მაინც შევამჩნიეთ მნიშვნელოვანი რაოდენობის შეცდომები, რომლებიც სერვისიდან მოდიოდა. ჩვენ ვივარაუდეთ, რომ ესენი პასუხისმგებელნი იყვნენ დაფის მიმდინარე ხელმისაწვდომობის პრობლემებზე და შევქმენით პატჩი სერვისისთვის იმ მოლოდინით, რომ ის გააუმჯობესებდა API-ის მდგომარეობას და დაფას ჯანსაღ მდგომარეობას დაუბრუნებდა. საბოლოოდ ამ ცვლილებამ სერვისი კიდევ უფრო გააუარესა და სწრაფად უკან დაბრუნდა. მეორე შეფერხება ჩანს ზემოთ მოცემულ გრაფიკზე.
მტკივნეულია ასეთი შეფერხების ქონა. თუმცა, იყო რამდენიმე რამ, რამაც ხელი შეუწყო გავლენის შემცირებას. ჩვენმა ავტომატურმა გაფრთხილების სერვისმა სწრაფად გამოავლინა სწორი ადამიანები ზარზე შესაერთებლად და გამოსწორებაზე მუშაობის დასაწყებად. გარდა ამისა, ეს იყო ხარვეზი მართვის პლანში (control plane), რომელსაც აქვს მკაცრი გამიჯვნა მონაცემთა პლანისგან (data plane). ამრიგად, შეფერხებამ არ იმოქმედა Cloudflare-ის ქსელში არსებულ სერვისებზე. Cloudflare-ის მომხმარებლების უმეტესობაზე არ იმოქმედა, თუ ისინი არ ახორციელებდნენ კონფიგურაციის ცვლილებებს ან არ იყენებდნენ ჩვენს დაფას.
მომავალი ნაბიჯები
ჩვენ გვჯერა, რომ მნიშვნელოვანია შეცდომებისგან სწავლა და ეს ინციდენტი არის შესაძლებლობა გარკვეული გაუმჯობესებების განსახორციელებლად. ეს გაუმჯობესებები შეიძლება დაიყოს მსგავსი ცვლილების გავლენის შემცირების/გამორთვის გზებად ან ჩვენი დაკვირვების ინსტრუმენტების გაუმჯობესებად, რათა მომავალი მოვლენების დროს გუნდი უკეთ იყოს ინფორმირებული.
გავლენის შემცირება
გამოშვებისთვის ვიყენებთ Argo Rollouts-ს, რომელიც აკონტროლებს განთავსებებს შეცდომებზე და ავტომატურად აბრუნებს ამ სერვისს გამოვლენილი შეცდომის შემთხვევაში. ჩვენ გადაგვაქვს ჩვენი სერვისები Argo Rollouts-ზე, მაგრამ ჯერ არ განგვიახლებია Tenant Service მის გამოსაყენებლად. რომ ყოფილიყო დანერგილი, ჩვენ ავტომატურად დავაბრუნებდით Tenant Service-ის მეორე განახლებას, რითაც შევზღუდავდით მეორე შეფერხებას. ეს სამუშაო გუნდის მიერ უკვე იყო დაგეგმილი და ჩვენ გავზარდეთ მიგრაციის პრიორიტეტი.
როდესაც Tenant Service გადავტვირთეთ, ყველას დაფამ დაიწყო API-ის ხელახალი ავთენტიფიკაცია. ამან გამოიწვია API-ის კვლავ არასტაბილურობა, რამაც პრობლემები შექმნა ყველას დაფასთან. ეს ნიმუში ხშირია და მას ხშირად “მქუხარე ნახირს” (Thundering Herd) უწოდებენ. როდესაც რესურსი ან სერვისი ხელმისაწვდომი ხდება, ყველა ცდილობს ერთდროულად გამოიყენოს იგი. ეს ჩვეულებრივი მოვლენაა, მაგრამ გამძაფრდა ჩვენი დაფის ლოგიკაში არსებული ხარვეზის გამო. ამ ქცევის გამოსწორება უკვე გამოვიდა ჰოთფიქსის სახით, გავლენის დასრულებიდან მალევე. ჩვენ ასევე შევიტანთ ცვლილებებს დაფაში, რომლებიც მოიცავს შემთხვევით შეფერხებებს, რათა გავფანტოთ განმეორებითი მცდელობები და შევამციროთ კონკურენცია.
დაბოლოს, Tenant Service-ს არ ჰქონდა გამოყოფილი საკმარისი სიმძლავრე ასეთი დატვირთვის მატებებისთვის. ჩვენ მნიშვნელოვნად მეტი რესურსი გამოვყავით ამ სერვისისთვის და ვაუმჯობესებთ მონიტორინგს, რათა წინასწარ მივიღოთ შეტყობინება, სანამ ეს სერვისი სიმძლავრის ლიმიტებს მიაღწევს.
ხილვადობის გაუმჯობესება
ჩვენ დაუყოვნებლივ დავინახეთ ჩვენი API-ის გამოყენების ზრდა, მაგრამ გაგვიჭირდა იმის იდენტიფიცირება, რომელი მოთხოვნები იყო განმეორებითი და რომელი ახალი. რომ გვცოდნოდა, რომ ახალი მოთხოვნების მუდმივად დიდი მოცულობა გვქონდა, გაგვიადვილდებოდა პრობლემის, როგორც დაფაში არსებული ციკლის, იდენტიფიცირება. ჩვენ ვამატებთ ცვლილებებს იმის შესახებ, თუ როგორ ვიძახებთ ჩვენს API-ებს ჩვენი დაფიდან, რათა მოვიცვათ დამატებითი ინფორმაცია, მათ შორის, არის თუ არა მოთხოვნა განმეორებითი თუ ახალი.
ჩვენ ძალიან ვწუხვართ შეფერხების გამო. ჩვენ გავაგრძელებთ ამ საკითხის გამოძიებას და ჩვენი სისტემებისა და პროცესების გაუმჯობესებას.
Cloudflare-ის კავშირის ღრუბელი იცავს მთელ კორპორატიულ ქსელებს, ეხმარება მომხმარებლებს ეფექტურად შექმნან ინტერნეტ-მასშტაბის აპლიკაციები, აჩქარებს ნებისმიერ ვებგვერდს ან ინტერნეტ აპლიკაციას, იცავს DDoS შეტევებისგან, აცილებს ჰაკერებს და შეუძლია დაგეხმაროთ თქვენს გზაზე Zero Trust-ისკენ.
ეწვიეთ 1.1.1.1 ნებისმიერი მოწყობილობიდან, რათა დაიწყოთ ჩვენი უფასო აპლიკაციის გამოყენება, რომელიც თქვენს ინტერნეტს უფრო სწრაფსა და უსაფრთხოს ხდის.
ჩვენი მისიის შესახებ, დავეხმაროთ უკეთესი ინტერნეტის შექმნას, მეტის გასაგებად, დაიწყეთ აქედან. თუ ახალ კარიერულ მიმართულებას ეძებთ, შეამოწმეთ ჩვენი ვაკანსიები.