DevOps тәжірибесі және CI/CD
1) Мақсаттар мен қағидаттар
Жылдам және қауіпсіз: қысқа циклдар, шағын өзгерістер топтамасы, автоматты тексеру.
Қайталануы: инфрақұрылым код ретінде (IaC), орта = код + саясат.
Бақылау қабілеті: метриктер/трейстер/қораптағы логтар, SLO келісім-шарт ретінде.
Комплаенс: аудит, өзгерістерді бақылау, деректерді өңірлік оқшаулау.
Алтын ереже: «Алдымен сапа, содан кейін жылдамдық - әйтпесе жылдамдық ешқашан пайда болмайды».
2) Тармақтау және қоршау
Trunk-based + feature flags - негізгі таңдау.
Қысқа фиче-бұтақтар (2-5 күнге ≤), күнделікті merge trunk.
Инкрементальды жеткізуге және қауіпсіз кері шегінуге арналған жалаулар (server-side).
Git-ортасы: 'dev' → 'stage' → 'prod' (+ аймақтық 'prod-eu', 'prod-latam').
Артефактілерді насихаттау: бір жиналған бейне орта арқылы жылжиды (immutable tag by digest).
GitFlow: реттегіш құрастырулардың сирек релиздері/SDK - онда релиз-тармақтар + «hardening».
3) Сапа пирамидасы және «қызыл сызық»
1. Статикалық талдау (SAST, линтерлер, лицензиялар).
2. Unit/Property-based тестілері (секунд).
3. API және оқиғалар үшін Contract-tests (CDC) (OpenAPI/AsyncAPI, Schema Registry).
4. Интеграциялық (Testcontainers, жергілікті брокерлер).
5. Сыни жолдардың E2E: тіркеу → KYC → депозит → ойынды іске қосу → шығару.
6. Төлем/әмиян/ойын провайдерлері үшін жүктеме/хаос-тестілер.
Сапа өтпейді → деплой бұғатталады. change-record жоқ «қолмен алып тастау» жоқ.
4) Бағдарламалық қамтамасыз ету тізбегі (supply chain)
Әрбір сурет/пакет үшін SBOM (CycloneDX/SPDX).
Артефактілердің қолтаңбалары (cosign), admission бағдарламасында «тек қол қойғандар» саясаты.
SCA/Dependabot: осалдықтар мен лицензиялар.
Provenance/SLSA: ойнатылатын жинақтар, жабық билд-агент, attestations.
Құпиялар: менеджерде (KMS/External Secrets), репо/логтарда ешбір құпия жоқ.
5) GitOps и IaC
Infra as Code: Бұлт үшін Terraform/Pulumi; k8s үшін Helm/Kustomize.
GitOps-контроллер (ArgoCD/Flux): декларативті манифесттер, PR-ревью, audit trail.
Терезелер/үсіктер: турнирлік апталар/ең жоғары сағаттар - прод-релиздердің авто-үзілісі.
OPA/Kyverno саясаты: no ': latest', non-root, read-only FS, hostPath тыйым салу.
6) Прогрессивті жеткізу
Canary: 1 → 5 → 10 → 25 → 50 → 100% guardrail өлшемдері бойынша (p95 latency, 5xx, error budget burn).
Blue-Green: жылдам қосқыш + қайтару жоспары.
Shadow/Mirroring: жауап беруге әсер етпейтін сұрауларды көшіру (жаңа PSP адаптерлері үшін).
Feature flags: сегменттер бойынша қосу (өңір/рөл/серіктес/арна) + kill-switch.
7) ДБ көші-қоны (expand-and-contract)
Қадам 1: Схеманы кеңейтеміз (жаңа бағандар/индекстер) - ескі кодпен үйлесімді.
2-қадам: екі нұсқада/өрісте жазатын кодты сақтау.
3-қадам: Фон джобасы, прогресс метрикасы деректерінің көшуі.
4-қадам: Оқуды жаңа өрістерге ауыстыру.
5-қадам: ескісін жою - жеке релиз.
Прайм-таймда бұғаттайтын DDL-ге тыйым салу; жоғары кестелер үшін - онлайн-көші-қон.
8) Бақылау және SLO
Метриктер: RPS, p50/95/99, 4xx/5xx, saturation (CPU/mem/queue), DLQ/лаг брокерлері.
Бизнес-метриктер: TTP (time-to-play), TtW (time-to-wallet), FTD-success, KYC-TtV.
Трестер: шлюзден ДБ-ға дейінгі trace-id.
SLO: мысалы, 'Deposit p95 ≤ 300-500 мс', 'success ≥ 98. 5%`, `availability ≥ 99. 9%`.
Burn rate алерта + деградация кезіндегі автоматты үзіліс.
9) Инциденттер, постмортемалар, ауысымдар
Сыни ағындарға арналған Runbooks (депозит/ақша шығару/АКҚ, live-ойындар).
Басымдық шкаласы: P1...P4, иесі, ETA, коммуникация (баннер, статус-бет, серіктестер).
Blameless action items және күні бар постмортем.
Әрбір N минут сайын on-call кезектесу, чат-хабарландыру, мәртебелік жаңарту.
Док-трек: кім/қашан/не салды (commit, артефакт, орта, жалау).
10) Қауіпсіздік және комплаенс (DevSecOps)
SAST/DAST/IAST, CI құпия-сканерленген.
mTLS сервис, JWT кіші TTL, кілттерді ротациялау.
Логтарда/трестерде Masking PII/PAN; WORM әкімшілік әрекеттер журналдары.
Geo-segregation: кластерлер/өңірлер бойынша ДҚ, шлюз арқылы бағыттау.
Change management: сезімтал аймақтар үшін (әмиян/лимиттер).
11) DORA-метрика және FinOps
Deployment Frequency (күнделікті шағын релиздер).
Lead Time for Changes (идеал: сағат).
MTTR (қалпына келтіру: минут/сағат).
Change Failure Rate (мақсаты ≤ 15%).
FinOps: қоршаған ортаның құны, RPS-кэш, жылы пулдар, воркерлердің авто-үзілісі, «cost per transaction».
12) iGaming-ерекшелігі
Шыңдар (турнирлер/лайв): ірі өзгерістерді қатыру, кэшті/бейнелерді жылыту, квота бустері.
Төлемдер/әмиян: жеке пулдар/тораптар, жоғары SLO, өңірлер бойынша канареялық rollout, PSP провайдерлерінің қосарланған телеметриясы.
ҚҰС/комплаенс: жеке cadence релиздері, комплаенс міндетті пост-апруттары.
Серіктестер/аффилиаттар: қауіпсіз SDK, қолдау терезесі және ескі клиенттердің мониторингі бар API нұсқасы.
13) CI/CD мысалы (YAML, GitHub Actions → ArgoCD)
yaml name: ci-cd on:
push:
branches: [ main ]
paths: [ "services/wallet/" ]
jobs:
build_test_scan:
runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- name: Setup Node uses: actions/setup-node@v4 with: { node-version: 22 }
- run: npm ci --omit=dev working-directory: services/wallet
- run: npm test -- --ci working-directory: services/wallet
- name: Lint & SAST run: npm run lint && npm run sast working-directory: services/wallet
- name: Build image run:
docker build -t registry. local/wallet:${{ github. sha }} -f Dockerfile.
cosign sign --key $COSIGN_KEY registry. local/wallet:${{ github. sha }}
- name: SBOM & Scan run:
syft packages registry. local/wallet:${{ github. sha }} -o cyclonedx-json > sbom. json trivy image --exit-code 1 --severity HIGH,CRITICAL registry. local/wallet:${{ github. sha }}
- name: Push image run: docker push registry. local/wallet:${{ github. sha }}
deploy_stage:
needs: build_test_scan runs-on: ubuntu-latest steps:
- uses: actions/checkout@v4
- name: Bump Helm values (image tag)
run: yq -i '.image. tag = "${{ github. sha }}"' helm/wallet/values-stage. yaml
- name: Create PR to gitops repo run: gh pr create -R org/gitops -B stage -H stage-bump/wallet-${{ github. sha }} -t "wallet:${{ github. sha }}" -b "Promote to stage"
promote_prod:
if: github. ref == 'refs/heads/main'
needs: deploy_stage runs-on: ubuntu-latest steps:
- name: Gate: SLO/quality checks run:./scripts/gates/check_stage_health. sh # p95, 5xx, e2e ok
- name: Canary 10%
run:./scripts/gitops/canary. sh wallet ${{ github. sha }} 10
- name: Auto-pause on degradation run:./scripts/gates/guardrails. sh./scripts/gitops/rollback. sh wallet
- name: Roll to 100%
run:./scripts/gitops/rollout. sh wallet ${{ github. sha }} 100
14) Чек парақтары
Main дегенге дейін
- Unit/CDC/интеграция жасыл.
- Линтерлер/SAST/лицензиялар таза.
- OpenAPI/AsyncAPI және ДБ көшіру схемалары жаңартылды.
- Фиче-жалаулар қосылды, фоллбектер анықталды.
Prod бағдарламасына шығару алдында
- Суретке қол қойылды, SBOM қоса берілді, HIGH/CRIT осалдықтары жабық.
- Дашбордтар/алерттар құрылды; SLO-гейттер қосылған.
- Кері қайтару жоспары, kill-switch, Shadow (қажет болса).
- Аймақтық шектеулер мен деректер саясаты расталды.
Оқиғалар
- Runbook табылды және өзекті.
- Пайдаланушыларға/серіктестерге қатынас (үлгі, ETA).
- 48 сағатта постмортем, күні көрсетілген action items.
15) Қарсы үлгілер
«Әрбір орта үшін қайта жинаймыз» (промоушн артефактісі жоқ).
Аудит/қайталаусыз деплойның қол қадамдары.
ДБ «маңдайына» көші-қон, сәйкессіз жауаптар API.
CI айнымалыларындағы немесе репозиторийдегі құпиялар.
Жалаусыз/қайтарусыз апатты фичтер.
Канареялық релизде SLO/guardrails болмауы.
PII/PAN бар логтар, бүркемелеудің болмауы.
16) Пайдалы microcopy үлгілері
Босату (серіктестер):- "Біз төлем модулін жаңартуды кезең-кезеңмен іске қосамыз (10% → 100%). 2 минутқа дейін қысқа мерзімге кешіктірілуі мүмкін. ETA аяқталуы - 21:00 EET"
- "X төлем провайдері тұрақсыз. Оқуға қабылдау 15 минутқа дейін созылуы мүмкін. Біз түзету жұмыстарын жүргізіп жатырмыз. Келесі мәртебені жаңарту - 30 минуттан кейін"
- "Кешіктірулердің артуына байланысты жаңарту тоқтатылды. Алдыңғы нұсқасын қайтарып жатырмыз. Деректер мен операциялар сақталды"
17) Енгізу процесі (4 спринт)
1. Сапа және пайплайн стандарттары: SAST/Unit/CDC, бірыңғай сурет, қолтаңбалар, SBOM.
2. GitOps + қоршаған орта: Helm/Kustomize, ArgoCD, артефакт промоушн, құпия саясаты.
3. Прогрессивті релиздер мен SLO-гейттер: canary/shadow, guardrails, автопауза.
4. Сенімділігі мен құны: хаос-тесттер, автоскейл/жылы пулдар, FinOps-дашбордтар.
Қорытынды шпаргалка
Trunk + flags + шағын партиялар = стресссіз жылдамдық.
Бірыңғай қол қойылған артефакт + SBOM = бақыланатын жеткізу тізбегі.
GitOps + саясаты = қайталану және аудит.
Canary/Blue-Green + SLO-гейттер = қауіпсіз релиздер.
БД үшін Expand-and-contract = нөлдік тоқтап тұру.
Бақылау және DORA = басқарылатын жақсартулар.
Өңірлік оқшаулау және комплаенс = заңдарға сәйкестігі және сенім.