GH GambleHub

Ածխաջրածինների ռազմավարությունները 'կապույտ-green և canary

(Բաժին ՝ Տեխնոլոգիաներ և ենթակառուցվածքներ)

Live ռեզյումե

Blue-green-ը տալիս է ակնթարթային անցում երկու ամբողջական ապակիների միջև (Blue/Green) ամենապարզ արձագանքով։ Canary-ը աստիճանաբար ավելացնում է նոր տարբերակի մասնաբաժինը SLO-Gatts-ի վերահսկողության տակ (լատենտ, error-rate, բիզնես-չափումներ)։ IGaming-ի համար սա միջոց է առանց dountaime-ի ներմուծման և գործողությունների գագաթնակետին, պահպանելով կայուն p99 և որակը։

1) Ե՞ րբ ընտրել

Blue-green-ը արագ օրինագծեր է, նվազագույն բարդություն, անհրաժեշտ է «կրկնակի» կլաստեր/ռեսուրսային բյուջե։ Լավ է API/առջևի համար առանց բարդ state-2019։

Canary-ը ռիսկի բարձրացումն է (նոր ֆլոո, կրիտիկական փոփոխություններ), թույլ է տալիս «բռնել» դեգրադացիան 1-5 տոկոսով։ Պահանջում է հեռուստացույցներ և ավտոմատ խաղեր։

2) Ճարտարապետական սկզբունքները

1. Երթուղայնացումը L7 մակարդակում 'հավասարակշռիչ/Ingress/ծառայություն-մեշ (կշռված մոդուլներ, cookie/flag-routing)։

2. Մեկուսացված կախվածությունները 'կազմաձևը, ֆիչեֆլագները, գաղտնիքները, քեշները' առանձին ստուգումների համար։

3. Տվյալների համատեղելիությունը ՝ wwww.BD-ը միասին (expand www.migrate .ract)։

4. Դիտարկումը 'առանձին կոդեր/տարբերակների պիտակներ մետրերում/logs/treiss։

5. Ավտոմեքենաներ 'համեմատություն p95/p99, error-rate, բիզնես-KPI; ավտոմատ rollback։

3) Blue-green: Հիմնական pattern

Հոսք

1. Մենք շրջում ենք Green-ը (Blue-ի պատճենը) արտադրում ենք քաշներ/միացություններ։

2. Մենք սկսում ենք health/smoke թեստերը։

3. Մենք անցնում ենք Green-ի վրա (SNA/LB/Ingress)։

4. Մենք պահում ենք Blue-ը «տաք» վիճակում որպես fallback մինչև պատուհանի վերջը։

Օրինակ 'Ingress (գաղափար)

yaml
Annotated/Backend Option - In Prod, it is usually controlled by the spec operator/rollout:
rules:
- host: api. example. com http:
paths:
- path: /
backend:
service:
name: api-green # used to be api-blue port:
number: 80

Պլյուսներ/մինուսներ

Պարզ արձագանք (վերադարձրեցին Blue)։

Էքսպոզիցիայի կանխատեսելի ժամանակը։

Պահանջում է ռուսական ռեսուրսներ։

«Մեծ պայթյունի» ռիսկը առանց կանարյան չափման։

4) Canary 'աստիճանական բարձրացում

Հոսք

1. Progon shadow-2019 (oporational) 241 տոկոսը իրական տնային տնտեսությունների 355 տոկոսը 2425 տոկոսն էր, 50 տոկոսը '100 տոկոսն։

2. Յուրաքանչյուր փուլում 'SLO/բիզնես-մետրիտների խաղեր։

3. Դեգրադացիայի դեպքում 'auto-rapat և ախտորոշման արտեֆակտների պահպանումը։

Օրինակ ՝ Argo Rollouts (հատված)

yaml apiVersion: argoproj. io/v1alpha1 kind: Rollout metadata: { name: payments-api }
spec:
strategy:
canary:
canaryService: payments-canary stableService: payments-stable steps:
- setWeight: 5
- pause: { duration: 5m }
- analysis:
templates:
- templateName: slo-latency
- setWeight: 25
- pause: { duration: 10m }
- analysis:
templates:
- templateName: error-rate
- setWeight: 50
- pause: { duration: 20m }
- setWeight: 100

Օրինակ ՝ Flagger + Istio/NGINX (գաղափարը)

yaml apiVersion: flagger. app/v1beta1 kind: Canary metadata: { name: games-api }
spec:
targetRef:
apiVersion: apps/v1 kind: Deployment name: games-api service:
port: 80 analysis:
interval: 1m threshold: 5 metrics:
- name: request-success-rate thresholdRange: { min: 99 }
- name: request-duration thresholdRange: { max: 300 }
webhooks:
- name: smoke url: http://tester/smoke

5) Պրոգրես և կառավարել վիճակը

Քեշի/աղբյուրները 'տաքացրեք Redis/HTTP-kash/CDN, պատրաստեք warm-pool-ը BD/PSA-ին։

ML/LLM/մոդելներ 'քաշի/ինդեքսների/սաղմեդինգների բեռնումը, KV-kash, առաջնային հարցումներ «տաքացման» համար։

Ֆայլեր/արտեֆակտներ ՝ ստատիկ բովանդակություն, ձևանմուշներ, դելեգներ, նախօրոք ներկայացրեք տեղական volume/sidecar-ին։

Ֆիչեֆլագները ՝ rollout լսարանի 1-5 տոկոսով/2019, emergency-kill հնարավորությունը։

6) Տվյալների հիմքերը '«expand no migrate no. ract» ռազմավարությունը։

1. Expand: ավելացնել nullable/նոր սյունակներ/ինդեքսներ, աջակցել երկու տարբերակները։

2. Migrate: կոդը օգտագործում է նոր սխեմա։ հին ճանապարհները մնում են վաիդային։

3. Direract: հեռացրեք հին դաշտերը/ինդեքսները ամբողջական բացումից հետո։

Ամսագրերում գրանցեք սխեմայի և հաճախորդի տարբերակը։ բոլոր փոփոխությունները համընդհանուր են։

Ծանր միգրացիայի համար 'ֆոնային ջոբներ, throttling և «stop-the-World» պատուհաններ համաձայն։

7) Դիտարկումը և խաղերը (SLO/SLA)

MSE-մետրիկները ՝ p50/p95/p99, error-rate, saturation (CPU/GPU/IO), queue-depth, սառը մեկնարկի ժամանակ։

Բիզնես մետրիկները 'վճարումների փոխակերպումը, մրցույթի հաջողությունը, ելույթի ժամանակը (TTW), գովազդային արձագանքը։

Բովանդակության որակը/LLM: tokens/s, պատասխանը, թունավորությունը, RAG-score։

Գեյթ 'Auto-promoushen/rack, երբ դուրս է գալիս շեմից և/կամ ընկնելիս «օգտակար մետրեր»։

«Քաղաքականության» (կեղծ) օրինակ


gate:
p95_latency_ms <= 250 error_rate %  <= 1. 0 payment_conv  >= baseline - 0. 3%
action:
promote      rollback

8) Ռելիզի նվագախումբը և ինտեգրումը CI/CD-ի հետ։

GitOps: տարբերակների/քաշի փոփոխությունները PR-ի միջոցով են մանիֆեստ-ռեպոզորիայի մեջ։

Ավտոմեքենաները 'smoke/e2e-ը մինչև մրցույթի սկիզբը։

Թողարկման պլանը 'ռուսական canary քայլերը, պատասխանատու, ChatOps-ի ալիքները, պատուհանը։

Արտեֆակտների արխիվացումը 'խողովակաշարեր, dashbords, համեմատության լոգներ։

9) Multiregion և edge

Կարգը 'սկզբում «ամենաքիչ կրիտիկական» տարածքը/RIR, ապա հիմնական։

Latency-based routing: Հետևեք տեղական SLO-ին։ Մի խառնվեք առանց պատճառի։

DR-տեսլականը 'Blue-A-ում կարող է դառնալ DR պլատֆորմը Green-ի համար տարածաշրջանում-B

10) Անվտանգությունն ու կոմպլանենցիան ածխաջրածին

Ստորագրված պատկերներ/գծապատկերներ, SBSA; admission-քաղաքական ազդանշանների ստուգում։

Գաղտնիքները 'միայն արտաքին ղեկավարներ; անկախ տարբերակներ Blue/Green համար։

PII/ինտենսիվությունը 'մի հեռացրեք PII-ի հետ «օտար» տարածաշրջանի միջոցով։ համեմատությամբ լույսերը քողարկեք։

Աուդիտ 'ով է բաց թողել, թե ինչ խաղացողներ են աշխատել, որտեղ է արձագանքում։

11) Միգրացիայի օրինակներ

NGINX 'cookie/վերնագիր (գաղափար)

nginx map $http_x_canary $canary {
default 0;
"1"   1;
}

upstream api_stable { server stable:80; }
upstream api_canary { server canary:80; }

server {
location / {
if ($canary) { proxy_pass http://api_canary; }
proxy_pass http://api_stable;
}
}

Feature-flag «fractional rollout» (կեղծ)

yaml feature: new_checkout rollout:
percentage: 5 criteria:
country: ["TR", "BR", "MX"]
cohort: "new-users"
kill_switch: true

12) Runbooks (տիպիկ սցենարներ)

P99-ի աճը 'դադարեցնել պրոմոուշենը նախատեսվում է բարձրացնել batch/timeout-ը, անջատել ծանր ֆիչերը դրոշի միջոցով, որպեսզի վերագործարկեն ենթատեսակների մի մասը։

Վճարման հակադարձման անկումը 'համեմատել PMS-երթուղիները/fichi, միացրեք shadow-տրամաբանությունը, արձագանքել կայուն։

Խնդիրը BD-ի միգրացիայի հետ 'սառեցնել ձայնագրումը, ներառել read-only ռեժիմը, արձագանքել սխեմաները (եթե հնարավոր է), արտակարգ ուղղման ջոբները։

PII 'կտրել կանացի տարբերակը, գաղտնիքների վերականգնումը, զեկույցը և աուդիտը։

13) Ներդրման չեկի ցուցակ

1. Ռուսական քաղաքականություն. Որտեղ blue-green, որտեղ canary; որ համարվում է «քննադատական»։

2. Պարեք հավասարակշռված երթուղայնացումը (Ingress/mesh/երթուղիչ)։

3. Շտկեք SLO-շեմի խաղերը և ավտոմեքենաները։

4. Իրականացրեք expand www.migrate www.ract-ը BD-ի համար։ միգրացիայի թեստեր։

5. Միացրեք քեշը/մոդելները և warm-pool-ը։

6. Մուտքագրեք GitOps-ը և ընտրեք բոլոր հիբրիդային գործողությունները։

7. Պատկերացրեք մետրի համեմատությունը (canared vs կայուն)։

8. Անցկացրեք game-day 'ընդօրինակեք խաղի/ձախողումը/BD խնդիրը։

9. Փաստաթղթավորեք runbooks և «կարմիր կոճակը» (kill-switch)։

10. Պլանավորեք բազմապատկումներ հերթով, ոչ թե միաժամանակ։

14) Anti-patterna

Կանարյան թողարկումը առանց գեյտերի և հեռուստատեսության, հետագայում հայտնաբերվեց քայքայումը։

BD սխեմայի խառնուրդը 'քանդող բջիջները նախքան կոդի բացումը։

Մեկ ընդհանուր քեշը/հերթը Blue-ի և Green-ի համար, առանց մեկուսացման, փոխադարձ ազդեցություն է ունենում։

RF-փոխակերպումը ցածր TTL-ից առանց ստուգման '«flapping»)։

Գաղտնիքները/ալգորիթմները, որոնք ընդհանուր են երկու ստուգումների համար, բարդ արձագանք են։

Առանց shadow/smoke - «մեծ պայթյունի» ռիսկը։

Kill-switch/feature-flag-ի բացակայությունը արագ անջատման համար։

Արդյունքները

Blue-green-ն ապահովում է ակնթարթային և պարզ փոխակերպում, canary - կառավարվող ռիսկը և խնդիրների վաղ հայտնաբերումը։ IGaming-ում երկու pattern-ները համադրվում են 'կանար «սուր» փոփոխությունների վրա + blue-green որպես հիմնական մեխանիզմ առանց dountaim։ Ավելացրեք SLO գեյտերը, GitOps-ը, տաքացումը, BD-ի համատեղելիությունը և կախվածության մեկուսացումը, և ալգորիթմները կանխատեսելի կլինեն, արագ, իսկ p99 և բիզնես մետրերը կայուն կլինեն նույնիսկ պինդ ժամանակահատվածում։

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Telegram
@Gamble_GC
Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։