GH GambleHub

サンドボックスとテスト環境

1)なぜ私達は選ばれた輪郭を必要とします

サンドボックスとテスト環境では、次のことができます:
  • 生産を危険にさらすことなく、仮説と統合を迅速にテストします。
  • フィードバックサイクルを高速化します(PR→プレビューリンク分)。
  • 安全なコピーでエラーやインシデントを再現します。
  • コントラクト、インテグレーション、ロード、カオステストの実行
  • チームを訓練し、「運動場」でパートナーを装備して下さい。

主な原則:分離、構成パリティ、テスト決定、データセキュリティ、デフォルトの可視性。

2)環境の階層とその目的

ローカル(開発)-ローカル開発:Docker Compose/Testcontainers、軽量プロバイダシミュレータ。
サンドボックスは、偽のデータと実際のプロトコルを備えた外部統合(PSP、 KYC、ゲームアグリゲーター)のためのスタンドです。
QA/テスト-統合とe2eテスト、安定したデータ修正、回帰。
「ステージ/プリプロッド」(Stage/Pre-Prod)-アウトラインができるだけ本番に近い(構成/制限/トポロジ)。
一時的なプレビュー-環境「on PR」(数時間/日の寿命)、オフラインリソースとURL、マージ/クローズ後の自動解体。

パリティルールは「Test/Stage ≈ Prodの設定、ポリシー、インフラストラクチャの依存関係」であり、違いは秘密と限界に限定されています。

3)サンドボックスの種類

1.プロバイダサンドボックス:外部PSP/KYC/ゲームはテストエンドポイントを提供します。シミュレータの層を追加して、まれで誤ったケース(タイムアウト、5xx、不安定な署名)をシミュレートします。
2.機能サンドボックス:ドメインサービス(支払い、ボーナス、成果)の自律的インスタンス+修正。
3.トレーニング/デモサンドボックス:DevPortal、キー、クォータ、レート制限を持つパートナーのためのAPI「ショーケース」。

4)契約、シミュレータ、モキ

契約テスト(協定/Buf):消費者/プロバイダはスキームに同意します。互換性のない変更はCIでブロックされます。
プロバイダシミュレータ:エッジケース(ダブルコルバック、クロックドリフト、期限切れのタイムスタンプ付きHMACシグネチャ)を再生します。

イベント修正(Kafka/NATS): ケースライブラリの支払い。認可された'、'kyc。検証された'、'ゲーム。ラウンド。「落ち着いた」

障害注入:制御遅延、ドロップレート、オーダーメッセージ。

webhooks sandboxでのHMAC署名の例:

X-Timestamp: 1730812800
X-Signature: sha256=hex(hmac_sha256(secret, body + timestamp))

5)テストデータ、GDPR/PCIおよび匿名化

本物のPII/PANオフプロダクションを使用しないでください。
匿名化:合成生成+敏感なフィールドのトークン化;デモアカウントのホワイトリストのみ。
データファクトリ:予測可能なIDとステータスを持つユーザー/トランザクション/セッションファクトリ。
決定論的な種子:テストランと水曜日の間の同一の修正。
保持ポリシー:プレビュー環境とテストデータベースの自動クリーニング。

6)秘密とアクセス

水曜日に別の秘密;一時的なクレジットと制限された役割。
KMS/HSMおよび回転;Gitの秘密を除外しました。
QA/段階のためのRBAC/ABAC;アクセスの監査、交渉によってだけ壊れ目ガラス。

7)非産業環境の観察可能性

ログ-マスキングとPIIなしで、構造化されています。

メトリクス遅延p50/p95/p99、エラーレート、スループット、DLQ、レトライ;

トレース(OTel): 入力リクエストからシミュレータへのエンドツーエンド'trace_id';

ダッシュボードをコードとして-ダッシュボードとアラートは、サービスの横にバージョン管理されます。

8)一時的なプレビュー環境(PRごと)

デフォルトの動作:
  • PR→CIはイメージを収集し、マイグレーションを生成し、Kubernetesのnamespace 'pr- 'を上げます。
  • プレビューURLとテストユーザーのトークンが発行されます。
  • 有効なトレーシング/メトリクス;PRを閉じると、環境が削除されます。
PR上の名前空間のマニフェストの例:
yaml apiVersion: v1 kind: Namespace metadata:
name: pr-4821 labels:
env: preview owner: team-payments

9)ローカル開発: 構成/Testcontainers

最小限のdocker-compose。ローカルで実行するにはyml':
yaml version: "3. 9"
services:
api:
build:.
environment:
- DB_URL=postgres://postgres:postgres@db:5432/app? sslmode=disable
- KAFKA_BROKER=kafka:9092 ports: ["8080:8080"]
depends_on: [db, kafka]
db:
image: postgres:16 environment: [POSTGRES_PASSWORD=postgres]
ports: ["5432:5432"]
kafka:
image: bitnami/kafka:latest environment:
- KAFKA_ENABLE_KRAFT=yes
- KAFKA_CFG_PROCESS_ROLES=controller,broker
- KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
- KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@localhost:9093 ports: ["9092:9092"]

テスト中の依存関係を自動的に解除するには-Testcontainersで修正を行います。

10)負荷および安定性テスト

ロードプロファイル:「トーナメント」、「支払い波」、「マスフラフ」。
KPI: RPS、 p95/p99、リソース制限(CPU/メモリ)、 TTFB、タイムツーウォレット。
カオスインジェクション:プロバイダの切断、レイテンシの増加、「フレーク」ネットワーク。
サーキットブレーカ/バックオフポリシーはステージでチェックされます。dipはDLQに移動して複製します。

11)ロールバックとリプレイポリシー

DLQからのイベントのリプレイゲートウェイ(手動/自動モード、キーによるフィルタ)。
マイグレーションベース:プレビュー/ステージでアップ/ダウンとドライランをクリアします。破壊的な変更に対する保護。

12) DevPortalとの統合

サンドボックスとプロバイダのカタログ、フィールド要件、クエリの例。
各PR/ブランチの「プレビューを開く」ボタン。SLO/SLAメトリクスウィジェット。
契約からSDKとPostman/Insomniaコレクションの生成。

13) Sandboxの周囲の保証

外部サンドボックスのWAF+IP-allowlist;

キーごとのクォータとレート制限。
個々のドメイン/サブドメイン;非アクティブなキーの自動削除。
画像の脆弱性と各ビルドへの依存性をスキャンします。

14)プロセス: 誰が使用し、どのように

開発者-ローカルおよびプレビュー、迅速なフィードバック。
QA-管理されたデータおよびシミュレータとの安定したテスト/段階。
パートナー-DevPortal、クォータ、監視機能を備えた外部サンドボックス。
SRE/Platform-負荷プロファイル、カオス、SLO検証。

15)サンドボックス起動チェックリスト

  • レジストリの契約、シミュレータは成功/エラー/タイムアウト/繰り返しをカバーします。
  • テストデータ合成、決定論的、PII/PANなし。
  • KMSからの秘密、制限された役割、監査可能。
  • メトリック/トレイル/ログが利用可能です。エラー予算とDLQへのアラート。
  • 一時的なプレビューはPRで上がり、自動解体されます。
  • ロードプロファイルとカオスシナリオはコードによって記述されます。
  • Stageでマイグレーションポリシーとイベントリプレイをチェック。
  • DevPortalは、ガイドとクエリーコレクションを公開します。

16)実装ロードマップ

M0-M1 (MVP):ローカル環境(Compose)、基本的なPSP/KYCシミュレータ、CIの契約テスト、K8sのプレビュースペース。
M2-M3:据え付け品のカタログ、コードとしてダッシュボード、DLQ+手動再生、負荷プロフィール。
M4-M6:キー/クォータ、カオスインフラストラクチャ、SDK autogen、「並行して2つのバージョン」移行ポリシーを備えた本格的な外部サンドボックス。
M6+:フェイルオーバーと地理分散ステージ、テストでSLAを介したプロバイダのスマートなルーティング、DevPortalの自動トレーニングスクリプト。

17)環境成熟度モデル(簡潔な)

1.基本-テスト/ステージ、手動データ、弱い分離があります。
2.高度-シミュレータ、契約テスト、観察可能性、部分的なプレビュー。
3.エキスパート-PRごとの環境、コードとしてのカオス/ロード、DevPortal、強力なセキュリティ、フルオートメーション。

簡単な結論

適切に設計されたサンドボックスとテスト環境は、配信の「エアバッグ」と「アクセラレータ」です。分離、本番環境とのパリティ、プロバイダシミュレータ、決定的なテストデータ、強力な観測性、プレビュー環境の自動化により、高速で信頼性の高いコード→チェック→リリースサイクルが提供され、回帰のリスクを低減し、プラットフォームのスケーリングを簡素化します。

Contact

お問い合わせ

ご質問やサポートが必要な場合はお気軽にご連絡ください。いつでもお手伝いします!

統合を開始

Email は 必須。Telegram または WhatsApp は 任意

お名前 任意
Email 任意
件名 任意
メッセージ 任意
Telegram 任意
@
Telegram を入力いただいた場合、Email に加えてそちらにもご連絡します。
WhatsApp 任意
形式:+国番号と電話番号(例:+81XXXXXXXXX)。

ボタンを押すことで、データ処理に同意したものとみなされます。