GH GambleHub

DevOps实践和CI/CD

1)目标和原则

快速和安全:短周期,小批量更改,自动检查。
可重复性:基础架构为代码(IaC),环境=代码+策略。
可观察性:量度/treas/log开箱即用,SLO作为合同。
合规性:审计,变更控制,区域数据隔离。

黄金规则: "首先是质量,然后是速度-否则速度永远不会出现。"

2)分支和环境

基于trunk+feature flags-基本选择。

短的fiche分支(≤ 2-5天),每日行驶在干线上。
用于增量交付和安全回滚的标志(服务器侧)。
Git环境:"dev" → "stage" → "prod"(+区域"prod-eu","prod-latam")。
人工制品促销:一个收集到的图像通过环境(不可思议的标记通过文摘)进行推广。

当GitFlow:罕见的监管组件/SDK版本是当时的发行分支+"硬化"。

3)质量金字塔和"红线"

1.静态分析(SAST,linter,许可证)。
2.单位/基于属性的测试(秒)。
3.API和事件(OpenAPI/AsyncAPI,Schema Registry)的合同测试(CDC)。
4.整合(Testcontainers,本地经纪人)。
5.E2E关键途径:注册→ KYC →存款→游戏启动→退出。
6.用于支付/钱包/游戏提供商的负载/混沌测试。

质量不通过,→被阻塞。没有"手动例外"而不进行更改记录。

4)软件供应链(供应链)

每个映像/软件包的SBOM(CycloneDX/SPDX)。
工件签名(cosign),管理中的"仅签名"策略。
SCA/Dependabot:漏洞和许可证。

Provenance/SLSA: 可重现的组件,封闭的广告牌代理,attestations.

秘密:在管理器(KMS/外部秘密)中,回购/逻辑中没有一个秘密。

5) GitOps и IaC

Infra as Code:云的Terraform/Pulumi;Helm/Kustomize for k8s。
GitOps控制器(ArgoCD/Flux):声明性宣言,公关评论,审核路径。
窗口/冻结:锦标赛周/高峰时段-自动暂停发布。
OPA/Kyverno策略:no":latest", non-root, read-only FS, hostPath禁令。

6)渐进式交付

金丝雀:guardrail度量的1→5→10→25→50→100%(p95 latency,5xx,error budget burn)。
蓝绿色:快速开关+回滚计划。
Shadow/Mirroring:复制请求而不影响响应(针对新的PSP适配器)。
Feature flags:逐段启用(区域/角色/合作伙伴/通道)+kill-switch。

7)DB迁移(外包和合同)

步骤1:扩展模式(新列/索引)-与旧代码兼容。
步骤2:将代码丢弃到两个版本/字段中。
步骤3:后台乔布数据迁移,进度指标。
步骤4:将读取切换到新字段。
步骤5:删除旧版本-单独发布。
黄金时段禁止DDL阻塞;对于高表-在线迁移。

8)可观察性和SLO

度量标准:RPS,p50/95/99,4xx/5xx,aturation(CPU/mem/queue),DLQ/Lag经纪人。
业务指标:TTP(时间到游戏),TtW(时间到钱包),FTD-success,KYC-TtV。
Traces:从网关到DB的trace-id。

SLO: 例如"Deposit p95 ≤ 300-500 ms","成功≥ 98。5%`, `availability ≥ 99.9%`.

Burn rate alerta+降级时自动暂停发布。

9)事件,验尸后,轮班

关键流(存款/输出/KUS,现场游戏)的运行手册。
优先级量表:P1...P4,所有者,ETA,沟通(横幅,状态-页面,合作伙伴)。
Blameless具有动作项和日期。
呼叫交替,聊天警报,每N分钟进行状态更新。
码头足迹:谁/何时/何处布置(commit,工件,环境,标志)。

10)安全和合规性(DevSecOps)

SAST/DAST/IAST,CI中的秘密扫描。
mTLS servis↔servis,JWT与小TTL,键轮换。
Logs/Trace中的Masking PII/PAN;WORM管理操作日志。
Geo-segregation: 按区域分组/DB,通过网关路由。
更改管理:用于敏感区域(钱包/限制)的滴答声/应用。

11) DORA度量和FinOps

部署频率(每日小版本)。
Lead Time for Changes(理想:时钟)。
MTTR(恢复:分钟/小时)。
更改失败率(目标≤ 15%)。
FinOps:环境成本,RPS缓存,温暖池,自动停顿窃听器,"按交易成本"。

12) iGaming特点

高峰(比赛/轻量级):冻结重大变化,加热缓存/图像,配额提升。
付款/钱包:单独的池/节点,升级的SLO,按地区分列的金丝雀滚动,PSP提供商的双重遥测。
CUS/合规性:单独的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
💡 想法:我们收集并签名单个图像,发布SBOM,通过GitOps进行推广;prod rollaut是金丝雀,带有guardrails。

14)支票单

在main的merge之前

  • 单位/CDC/集成绿色。
  • Linters/SAST/许可证清洁。
  • 已更新OpenAPI/AsyncAPI模式和DB迁移。
  • 添加了Fiche标志,并定义了Fallbacks。

在prod中发布之前

  • 映像已签名,附有SBOM,HIGH/CRIT漏洞已关闭。
  • 创建了Dashbords/Alertes;SLO门已连接。
  • 回滚计划,kill-switch, Shadow(如果需要)。
  • 区域限制和数据政策得到确认。

事件

  • Runbook被发现并相关。
  • 用户/合作伙伴通信(模板,ETA)。
  • Postmortham在48小时,动作项目与日期。

15)反模式

"我们为每个环境重新组装"(没有人工制品促销活动)。
无审计/可重复性的手动降级步骤。
DB"正面"迁移,API响应不兼容。
CI变量或存储库中的秘密。
没有旗帜/回滚的灾难性仙女。
金丝雀释放时缺乏SLO/guardrails。
使用PII/PAN的徽标,没有掩盖。

16)有用的微拷贝模式

发行版(合作伙伴):
  • "我们分阶段推出支付模块更新(10%→100%)。入学可能会短暂延迟2分钟。ETA完成-EET晚上9点"
事件(产品中的横幅):
  • "支付提供商X不稳定。入学可能需要长达15分钟的时间。我们正在努力修复。下一次状态更新是30分钟后"
回滚:
  • "更新因延误增加而暂停。我们将返回以前的版本。保存数据和操作"

17)实施过程(4冲刺)

1.质量和管道标准:SAST/Unit/CDC、单一映像、签名、SBOM。
2.GitOps+随行人员:Helm/Kustomize,ArgoCD,工件促销活动,秘密政策。

3.渐进版本和SLO门: canary/shadow, guardrails, autows.

4.可靠性和成本:混沌测试,自动轨道/温暖池,FinOps-dashbords。

最终的spargalka

Trunk+flags+小批量=无压力速度。
单个签名工件+SBOM=受控供应链。
GitOps+策略=可复制性和审核性。
Canary/Blue-Green+SLO门=安全版本。
DB的扩展和合同=零停机时间。
可观察性和DORA=可管理的改进。
区域隔离和遵守=遵守法律和信任。

Contact

联系我们

如需任何咨询或支持,请随时联系我们。我们随时准备提供帮助!

开始集成

Email — 必填。Telegram 或 WhatsApp — 可选

您的姓名 可选
Email 可选
主题 可选
消息内容 可选
Telegram 可选
@
如果填写 Telegram,我们也会在 Telegram 回复您。
WhatsApp 可选
格式:+国家代码 + 号码(例如:+86XXXXXXXXX)。

点击按钮即表示您同意数据处理。