Docker և Kubernetes iGaming-ում 'deploy ռազմավարություն
1) iGaming համատեքստը 'պլատֆորմի պահանջները
Real-time (Live-խաղեր, դրույքաչափեր, մրցույթային իրադարձություններ) կատարվում է խիստ p95 API/WS-ով։
Պիկի կղզիներ (strims/promo) արագ ավտո սկեյլ առանց սառը մեկնարկի։- Փողը և կոմպլանսը նպաստում են կոնտուրների մեկուսացմանը, ածխաջրածինների հետադարձելիությանը, հասանելիության և ներմուծման վերահսկմանը։
- Մուլտֆիլմի իրավասությունները/բրենդները (namespaces/projects), ցանցային և ռեսուրսային մեկուսացման քաղաքականությունը։
Հիմնական SLO: Login 3699։ 9 տոկոսը, դեպոզիտ 2499։ 85%, p95 API 24250-400 ms, p95 WS RTT 35120 մզ։
2) Ռուսական ճարտարապետությունը Kubernetes-ում
Շերտեր ՝ Ingress/Edge/API/gattwey wwinds ծառայություններ (դրամապանակ, պրոֆիլ, պրոմո, հակաֆրոդ) wwwwww.in/strims։
Մեկուսացում ՝ «namespace» brand/market կամ «բջիջը» (cell) տարածաշրջանի վրա։ Առանձին NodePoome (public API/batch/ws-realtim)։
Ցանցային քաղաքական գործիչները ՝ «NetworkPolicy», «deny by no» սկզբունքով, առանձին egress քաղաքականությունը PSA/KYC/խաղերի պրովայդերներ։
Մոսկվա: «Storts Class» -ը, որը կրկնօրինակվում է գոտու/տարածաշրջանի սահմաններում, BD/kash օպերատորները (Postgres/MySQL, Redis, Kafka)։
3) Բեռնարկղային պատկերներ 'որակ և անվտանգություն
Multi-arch (amd64/arm64), distroless կամ slast-հիմքեր, միայն անհրաժեշտ binarniks։
SBIM-ը և խոցելիությունների սկանավորումը, պատկերների ստորագրումը (Cosport), ընդունման քաղաքականությունը («Imant PolicyWebhook»)։
Immutable-tagging: sha256 "; «latest» -ը արգելված է։
Runtime-պրոֆիլներ ՝ «ReadOnlyRootem Sysystem», «runAsNonRooot», «seccope/AppPArmor», նվազագույն Capabilities։
4) Թողարկման ռազմավարությունները 'երբ և ինչ ընտրել և ընտրել
RollingCorate (լռելյայն)
Առանց անցյալի. API-ի մեծամասնության համար։- Readiness/liveness/startup probes, www.Unavailable/www.Surge։
Blue-Green
Զուգահեռ ապակիներ Blue և Green; անցումը կատարվում է Ingress/Lenta.ru մակարդակում։
Լավ է սխեմաների/եզրերի մեծ փոփոխության համար։ արագ rollback.
Canary
Մրցույթի աստիճանական տոկոսը (5-10-25-50-100)։
Trigerim SLO-gates: p95, error-rate, անոմալիաներ ավանդների/տոկոսադրույքների մեջ։
Տարբերակները ՝ Windows Mesh (Istio/Linkerd), Ingress-վերահսկիչը կանարյան սենսացիաներով։
A/B и Shadow
Shadow: Հացահատիկի մի մասը տեղադրված է նոր թողարկման վրա առանց օգտագործողի պատասխանի (մաքուր հեռաչափություն)։
A/B: ֆունկցիոնալ փորձարկումներ դրոշների հետ (feature-flags) և խաղացողների/շուկաների հատվածները։
5) GitOps-ը և միգրացիայի կառավարումը
GitOps (Argo CD/Flux): կլաստերները կարդում են Git-ի ցանկալի վիճակը։ բոլոր փոփոխությունները PR-ի և խանդի միջոցով։
Ձևանմուշները ՝ Helm/Kustomize, մեկ չարտերի գրադարան։- Գաղտնիքները ՝ արտաքին ղեկավարներ (Vox/Cloud SM), «ExternalSecrets »/« Secrets Store CSI»; KFC-բանալիները և լուծարումը։
Propline (պարզեցված)
1. CI-ն հավաքում է ռեգիստրում ռուսական կոդավորման ստորագրված պատկերը։
2. PR-ն փոխում է պատկերի/www.GitOps-ի տարբերակը։
3. Կանարյան rollout-ի հետ SLO-gatts-ը ավտոմատ բացակայում է կամ auto-rollback-ը։
6) Ավտոսկեյլինգը պիկի տակ և WS բեռ
HPA-ը (RPS, p95 latency, queue lag), ոչ միայն CPU/RAM-ը։
KEDA-ը իրադարձական սկեյլի համար (Kafka, RabbitMQ, Redis, HTTP-queue)։- MSA-ն ամենօրյա հարցումների/սահմանների ուղղության համար։
- Cluster Autoscaler + warm-plus nod (pre-provision) պրոմո/ռոտր ժամանակ։
- Առանձնահատուկ NodePoope (ավելի շատ ցանցային ձայնագրիչներ), «PodExport Budget» փափուկ նորարարության համար, sticky-routing (Session Affinity) Ingress/Mesh-ի միջոցով։
7) Stateful-ուրվագծեր 'դրամապանակ, BD, հերթեր,
Օպերատորները (Postgres/MySQL, Redis Sentinel/Cluster, Kafka Operance) 'կառավարական կրկնօրինակումը, «PITR», ավտոմատ բեքապները։
RPO/RTO քաղաքականությունը 'գոտու ներսում սինխրոն կրկնապատկում, ասինխրոն' DR տարածաշրջաններում։- Idempotency/wwww.box դեպոզիտների համար/wwww.d.com, inbox-pattern-ի համար PSA-ի և խաղերի պրովայդերների համար։
- Storts Class-ը արագ IOPS-ով։ դրամապանակի համար առանձին դաս է և համագործակցում տեղական SSD (և կրկնօրինակումը) հետ։
8) Ցանցային շերտը և խաղախաղերը
Ingress (Nginx/Envoy/HAProxy/ALB) mTSA-ից բեկենդների, HTTP/2/3, HSTS, rate-limits։
Windows Mesh: Կանարական երթուղիներ, retrai/tim-auta, circuit-breakers, TSA-ի ներսում լռելյայն։
Egress-դռները 'սպիտակ ցուցակներ PMS/KYC/պրովայդերների, RF և IP-ի վերահսկման համար։
9) Observability-ը և SLO-gatts-ը։
OpenTelemetry: API-ի ճակատի միջով անցնող ուղիները վճարում/խաղային պրովայդեր; Սխալների 100% -ը և «դանդաղ» սպանը։
RED/USE-մետրիկները + բիզնես SLI (դեպոզիտի/տոկոսադրույքի/եզրակացության հաջողությունը)։- JSON-ի լոգները '«trace _ id», WORM-ի համար։
- Releault-gates: Միայն եթե SLO-ն կանաչ է թեստային մասնիկի վրա։
10) Անվտանգություն 'supply chain-ից մինչև rantaim
Policy as Code: OPA/Gatekeeper/Kyverno (արգելքը privileged, պահանջը 'runAsNonRoot ", լիմիտներ, ստորագրության պոմպային ստուգումներ)։
Գաղտնիքները և բանալիները 'միայն Secret Express; «envFrom» նվազագույնի հասցնել, sidecar-գաղտնիքների խմբակցությունը։
Webhooks/webhuks պրովայդերներ ՝ HMAC ստորագրություններ, idempotency, որոնք պատրաստված են egress-ի միջոցով։
Compli.ru: Օրինագծերի, արտեֆակտների, հասանելի (RBAC/MFA), KUS/logs արտեֆակտների գեո մեկուսացված պահպանումը։
11) Multi-տարածք, failover և DR
Մոսկվա-standbay տարածաշրջաններում (առնվազն դրամապանակի/լոգինի/վճարումների համար)։- Մոսկվա-ռոտինգը ՝ GSLB/Anycript; health-checks SLI (լոգին/դեպոզիտ/տոկոսադրույք)։
- Աղետալի փոխակերպումը 'DR-cutover կոճակը (freeze writes no promote DB) տաքացնելով գլանաձև հոսքը։
- Ուսուցումները 'եռամսյակային GameDay-ը PSA-ի «անկման» հետ, գոտիները, խաղերի պրովայդերը։
12) Միգրացիայի և վերջույթների կառավարումը
Feature-flags (DigMap/External External Express) - ծանր գործառույթների անջատումը վթարի ժամանակ։- Versioned disgi (heshi, www.ksum-ծանոթություններ Pod-ում), canary deg rolaute-ում։
- Runtime overrides-ը Mesh/Ingress (Time-uta, retry-քաղաքականություն) մակարդակում առանց պատկերների ռեբիլդի։
13) Տնտեսագիտություն և արտադրողականություն
NodePoope-ը նպատակներով ՝ RPS-API, WS-realtim, batch/ETL։
Spot/Preemptible для batch/ETL с `PodPriority` и `PodDisruptionBudget`.
Փաթեթային կազմումը և տաքացումը (JIT/cash ձևանմուշներ) cold-start նվազեցնելու համար։- Ռեսուրսային բյուջեները ՝ reques.ru/limits, SNA առաջարկություններ, սահմանափակումներ BD/PSA, connational pooling։
14) Մանիֆեստի ձևանմուշները (բեկորներ)
Deploy.ru-ը կանարյան միջոցով Ingress-ի անունների միջոցով
yaml apiVersion: apps/v1 kind: Deployment metadata:
name: payments-api spec:
replicas: 6 strategy:
type: RollingUpdate rollingUpdate: {maxSurge: 2, maxUnavailable: 1}
template:
metadata:
labels: {app: payments-api, version: v2}
spec:
securityContext: {runAsNonRoot: true}
containers:
- name: app image: registry/payments@sha256:...
ports: [{containerPort: 8080}]
resources:
requests: {cpu: "300m", memory: "512Mi"}
limits:  {cpu: "1",  memory: "1Gi"}
readinessProbe:
httpGet: {path: /healthz, port: 8080}
periodSeconds: 5HPA-ն կաստոմային մետրիկայի վրա (RPS/latency Prometheus Adapter)
yaml apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: {name: payments-api}
spec:
scaleTargetRef: {apiVersion: apps/v1, kind: Deployment, name: payments-api}
minReplicas: 6 maxReplicas: 60 metrics:
- type: Pods pods:
metric:
name: rps_per_pod target:
type: AverageValue averageValue: "120"NetworkPolicy (միայն Ingress Gatway և անհրաժեշտ egress)
yaml apiVersion: networking. k8s. io/v1 kind: NetworkPolicy metadata: {name: payments-restrict}
spec:
podSelector: {matchLabels: {app: payments-api}}
policyTypes: ["Ingress","Egress"]
ingress:
- from: [{namespaceSelector: {matchLabels: {gw: ingress}}}]
egress:
- to: [{ipBlock: {cidr: 10. 0. 0. 0/8 +] # ներքին ծառայություններ
- to: [{namespaceSelector: {matchLabels: {svc: psp-egress}}}]15) Chek-Time (112-ready)
- Պատկեր ստորագրվել է, SBSA-ն հավաքված է, խոցելիությունը 'թույլատրելի մակարդակում։
- Մանիֆեստները անցնում են policy chek (Kyverno/OPA), առնվազն արտոնություն։
- Readiness/Startup probes ճիշտ, «PDB» և «PodPriority»։
- Կանարեկային պլան ՝ 5% - 10% - 25% 2450% 24100% SLO-gatts և Auto-rollback։
- HPA/KEDA + Cluster Autoscaler; warm-pul nood տակ։
- Գաղտնիքները Vox/SM-ից; անկյունները տարբերակված են։ Ֆիչ դրոշները պատրաստ են քայքայման։
- e2e երթուղին միացված է; ալերտներ SLI (դեպոզիտ/տոկոսադրույք/եզրակացություն)։
- DR պլանը և «կոճակը» ստուգված են պատին. bekaps/PITR թեստավորված են։
- Ինչպե՞ ս արձագանքել, թե ինչպես անցնել PFC/խաղային պրովայդերին, ում կանչել գիշերը։
16) Anti report և տիպիկ թակարդներ
Readiness-ի ժամանակահատվածը չափազանց կարճ է, քան վաղ 5xx-ը rollout-ում։
Միակ BD փամփուշտը առանց սահմանների նշվում է լավինի սկեյլում։- Փոփոխական միջավայրում գաղտնիքները առանց արտահոսքի ռոտացիայի։
- Mesh առանց limits/tim-uts-ի կախված է ապակայունացնող պրովայդերների վրա։
- HPA-ն միայն CPU-ի միջոցով WS/API-ն ժամանակ չունի ավելացնելու։
Ռեզյումե
iGaming-ում դոպլոյի ռազմավարությունը վստահելի բեռնարկղային պրակտիկայի համադրություն է (անվտանգ պատկերներ, հասանելիության քաղաքականություն), խելացի ֆորումներ (canary/blue-green c SLO-gatts), ճիշտ ավտո սկեյլ։ (HPA/KEDA + warm-nods գագաթների համար), stateful-shakurs օպերատորներ և multi-multi-2019 RF։ Ավելացրեք GitOps-ը, ուղին վճարումների և խաղերի պրովայդերների, ցանցային քաղաքականության և տնտեսությունների միջոցով: ապահով փողի և խաղացողների համար։
