
GitHub-ի հաշվետվությունը. սխալ Istio քաղաքականությունը և կրկնակի փորձերի փոթորիկը 7 ժ 47 ր տևած խափանման հետևում
Օգոստոսի 17-ին GitHub-ը գրեթե ութ ժամ խափանված էր։ Central US տվյալների կենտրոնում երթևեկության նոր գագաթնակետը գերբեռնեց բալանսավորիչները, իսկ կրկնակի փորձերի վարքագիծը ուժեղացրեց ազդեցությունը Copilot-ի վրա։
GitHub-ը հրապարակել է օգոստոսի 17-ի միջադեպի հաշվետվությունը, որի ընթացքում պլատֆորմի աշխատանքը խաթարված էր։ Ընդհատումը սկսվել է 13:28 UTC-ին, տևել 7 ժամ 47 րոպե և վերացվել է 21:15 UTC-ին։
Ինչ տեղի ունեցավ
Առաջին հրապարակային թարմացումը 13:40 UTC-ին էր, երբ ընկերությունը հայտնեց մի քանի ծառայություններում խափանումների ուսումնասիրման մասին։ 13:45-ին հաղորդվել է մոտ 20% սխալի ցուցանիշի մասին՝ Pull Requests-ում, Issues-ում և այլ բաժիններում, իսկ հետագա թարմացումները՝ API-ի, Actions-ի, Webhooks-ի ու Pages-ի խաթարումը։ Գագաթնակետին վեբ և API երթևեկության սխալները հասել են մոտ 20%-ի, իսկ արխիվների ու պահոցների չմշակված բովանդակության ներբեռնմանը՝ մոտ 50%-ի։ Տուժել են նաև SAML և OIDC նույնականացումը, SCIM-ը և Team Sync-ը, ինչպես նաև Data Residency-ով GitHub Enterprise Cloud-ի Actions-ի աշխատահոսքերը, որոնք կախված են GitHub.com-ում տեղակայված հրապարակային աշխատահոսքի քայլերի սահմանումներից։
Ծառայությունների մեծ մասը վերականգնվել է 16:36 UTC-ին՝ Central US-ի կենտրոնի հետ մեկտեղ։ Actions-ը խաթարված մնաց մինչև մոտ 18:03 UTC, իսկ Copilot Token Service-ը՝ մինչև 21:02 UTC։
Պատճառը. բալանսավորիչների գերբեռնվածություն և կրկնակի փորձերի փոթորիկ
Ըստ GitHub-ի՝ անմիջական պատճառը Central US-ի բալանսավորիչներում ցանցային հագեցվածությունն էր՝ երթևեկության նոր գագաթնակետից։ Istio-ի sidecar pod-ը հասավ զուգահեռության սահմանին և չկարողացավ ճիշտ ինքնամասշտաբավորվել, քանի որ քաղաքականությունը սխալ էր կարգավորված՝ հետևելով հոսթ ծառայության, բայց ոչ sidecar-ի սահմաններին։ Խափանումը կասկադով տարածվեց, մինչև չորս HAProxy հանգույցներ սպառեցին հոսքի սահմանները, ինչը վնասեց gateway-ի նույնականացման ուղին և առաջացրեց նույնականացման լայնածավալ ուշացումներ ու խափանումներ։ Օպտիմիստական կրկնակի փորձերի տրամաբանությունը վատթարացրեց իրավիճակը՝ գերբեռնելով ներքին բալանսավորիչները, սակայն այդ հանգույցներում HAProxy-ի դադարեցումը անմիջապես ու լայնորեն վերականգնեց աշխատանքը։
Երկրորդ խնդիրը. մեկ ներքին endpoint-ից ուշացած պատասխանները գործարկեցին VS Code-ի թաքնված կրկնակի փորձի սխալը, որը երթևեկությունը մեծացրեց մոտ տասն անգամ։ Copilot Token Service-ին ուղղված հարցումները վայրկյանում 7–9 հազարից հասան 70–100 հազարի։ Ընկերությունը դադարեցրեց փոթորիկը՝ ժամանակավորապես նվազեցնելով gateway-ի կրկնակի փորձերի տրամաբանությունը և բալանսավորիչների մակարդակով արգելափակելով Copilot-ի token-ի մուտքային հարցումները 403 պատասխանով, ապա կայք առ կայք վերականգնեց երթևեկությունը։
Ինչ է փոխելու GitHub-ը
Հաշվետվությունը թվարկում է հետագա հինգ քայլ՝ ուղղել ինքնամասշտաբավորման քաղաքականությունները՝ հաշվի առնելով ծառայությունների ցանցի sidecar-ի զուգահեռությունն ու հզորությունը. անցկացնել Istio-ի սահմանների աուդիտ տուժած ծառայություններում. վերանայել կրկնակի փորձերի սահմաններն ու backoff-ը gateway-ներում և կլիենտներում. շտկել VS Code-ի այն կրկնակի փորձերի վարքագիծը, որը մեծացրեց Copilot-ի token-ի երթևեկությունը. և բարելավել բալանսավորիչների հզորության մոնիտորինգը՝ տարածաշրջանային failover-ի պաշտպանության միջոցների հետ միասին։
SiTech — AI-ով հզորացված վեբ մշակում
Ստեղծում ենք արագ ու ժամանակակից կայքեր և AI-ը ներդնում իրական բիզնես գործընթացներում։ Ունե՞ք նախագիծ կամ հարց։ Ուրախ կլինենք օգնել։