GH GambleHub

Piaskownice i środowiska badawcze

1) Dlaczego potrzebujemy wybranych konturów

Piaskownice i środowiska testowe pozwalają na:
  • szybkie testowanie hipotez i integracji bez ryzyka produkcji;
  • przyspieszyć cykl sprzężenia zwrotnego (PR → podgląd-link w minutach);
  • reprodukować błędy i incydenty na bezpiecznej kopii;
  • Wykonanie testów kontraktowych, integracyjnych, obciążeniowych i chaosu
  • zespoły szkoleniowe i wyposażenie partnerów na „placu zabaw”.

Kluczowe zasady: izolacja, parytet konfiguracji, determinizm testowy, bezpieczeństwo danych, domyślna obserwowalność.

2) Hierarchia środowisk i ich cel

Lokalne (Dev) - lokalny rozwój: Docker Compose/Testcontainers, lekkie symulatory dostawców.
Sandbox to stoisko do integracji zewnętrznych (PSP, KYC, agregatory gier) z fałszywymi danymi i prawdziwymi protokołami.
QA/Test - integracja i testy e2e, stabilne poprawki danych, regresje.
Etap/Pre-Prod - zarys jak najbliżej produkcji (konfiguracje/limity/topologia).
Efemeryczny podgląd - środowisko „na PR” (życia dla godzin/dni), zasoby offline i URL, auto-rozbiórka po połączeniu/zamknięciu.

Zasada parytetu to „ustawienia, zasady i zależności infrastrukturalne w testach/etapach”, różnice są tylko w tajemnicach i granicach.

3) Typy piaskownic

1. Piaskownice dostawcy: zewnętrzne PSP/KYC/gry zapewniają punkty końcowe testów; dodajemy warstwę symulatorów, aby symulować rzadkie i błędne przypadki (timeouts, 5xx, niestabilne podpisy).
2. Piaskownice funkcjonalne: autonomiczne instancje usług domenowych (płatności, premie, osiągnięcia) + poprawki.
3. Piaskownice treningowe/demo: API „showcase” dla partnerów z DevPortal, klucze, kwoty i limit stawki.

4) Kontrakty, symulatory i moki

Testowanie umów (Paktu/Buf): konsument/dostawca uzgadnia systemy; niezgodne zmiany są blokowane na CI.
Symulatory dostawcy: obudowy krawędzi gry (podwójne kolbaki, dryf zegara, podpis HMAC z wygasłym znacznikiem czasowym).
Poprawki zdarzeń (Kafka/NATS): Płatność z biblioteki spraw. autoryzowany „,” kyc. zweryfikowany ',' gra. runda. załatwione ".
Wtrysk usterki: kontrolowane opóźnienia, szybkość spadku, wiadomości poza zamówieniem.

Przykład podpisu HMAC w piaskownicy:

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

5) Dane z badań, RODO/PCI i anonimizacja

Nigdy nie używaj prawdziwej PII/PAN poza produkcją.
Anonimizacja: generacja syntetyczna + tokenizacja pól wrażliwych; whitelisting tylko dla kont demo.
Fabryki danych: fabryki użytkowników/transakcji/sesji z przewidywalnymi identyfikatorami i statusami.
Nasiona deterministyczne: Identyczne poprawki między przebiegami testowymi a środami.
Polityka retencji: automatyczne czyszczenie środowisk podglądu i baz danych testowych.

6) Tajemnice i dostęp

Oddzielne sekrety w środy; kredyty tymczasowe i role ograniczone.
KMS/HSM i obroty; wykluczone tajemnice w Git.
RBAC/ABAC dla QA/Stage; audyt dostępu, break-glass tylko przez negocjacje.

7) Obserwowalność w środowisku nieprzemysłowym

Kłody - ustrukturyzowane, bez PII, z maskowaniem;

Opóźnienie metryki p50/p95/p99, szybkość błędów, przepustowość, DLQ, retrai;

Śledzenie (OTel): end-to-end 'trace _ id' z żądania wejścia do symulatora;

Deski rozdzielcze jako kod - deski rozdzielcze i wpisy są wersjonowane obok usługi.

8) Efemeryczne środowiska podglądu (per-PR)

Zachowanie domyślne:
  • PR → CI zbiera obraz, generuje migracje, podnosi przestrzeń nazw 'pr- ' w Kubernetes;
  • Podgląd adresów URL i żetonów użytkowników testów są wydawane;
  • włączone śledzenie/mierniki; po zamknięciu PR środowisko zostaje usunięte.
Przykładowy manifest dla przestrzeni nazw w PR:
yaml apiVersion: v1 kind: Namespace metadata:
name: pr-4821 labels:
env: preview owner: team-payments

9) Rozwój lokalny: Compose/Testcontainers

Minimal 'docker-compose. yml' do jazdy lokalnej:
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"]

Do automatycznego podnoszenia zależności w testach - Testcontainers z mocowaniami.

10) Badania obciążenia i stabilności

Profile obciążenia: „turnieje”, „fale płatnicze”, „puchary masowe”.
KPI: RPS, p95/p99, ograniczenia zasobów (procesor/pamięć), TTFB, Time-to-Wallet.
Zastrzyki chaosu: odłączenie dostawców, wzrost opóźnień, „płatkowe” sieci.
Zasady wyłącznika/backoff są sprawdzane na etapie; dips przejść do DLQ i replikować.

11) Polityka rollback i replay

Brama powtórzenia zdarzeń z DLQ (tryby ręczne/auto, filtry według klawiszy).
Podstawy migracji: wyczyścić w górę/w dół i sucho w podglądzie/etap; ochrona przed zakłócającymi zmianami.

12) Integracja z DevPortal

Katalog piaskownic i dostawców, wymagania polowe, przykłady zapytań.
Przycisk „Otwórz podgląd” dla każdego PR/oddziału; Widget mierników SLO/SLA.
Generacja kolekcji SDK i Postman/Bezsenność z umów.

13) Bezpieczeństwo obwodu piaskownicy

Lista WAF + IP dla zewnętrznych piaskownic;

kwoty i limity stawek na klucz;

poszczególne domeny/subdomeny; automatyczne usuwanie nieaktywnych kluczy;

skanowanie luk w obrazie i zależności od każdego budynku.

14) Procesy: kto używa i jak

Deweloperzy - lokalnie i podgląd, szybkie opinie.
QA - stabilny test/etap z zarządzanymi danymi i symulatorami.
Partnerzy - zewnętrzna skrzynka piaskowa z DevPortal, kwoty i monitorowanie.
SRE/Platform - profile obciążenia, chaos, weryfikacja SLO.

15) Lista kontrolna uruchamiania piaskownicy

  • Umowy w rejestrze, symulatory obejmują sukces/błędy/timeouts/powtórzenia.
  • Dane z badań syntetyczne, deterministyczne, bez PII/PAN.
  • Sekrety z KMS, role ograniczone, audyt włączone.
  • Dostępne są mierniki/ścieżki/kłody; wpisy do budżetu błędów i DLQ.
  • Efemeryczne podglądy idą w górę na PR i auto-rozbiórki.
  • Profile obciążenia i scenariusze chaosu są opisane kodem.
  • Polityka migracyjna i powtórka zdarzeń sprawdzone na scenie.
  • DevPortal publikuje przewodniki i kolekcje zapytań.

16) Plan działania w zakresie wdrażania

M0-M1 (MVP): środowiska lokalne (Compose), podstawowy symulator PSP/KYC, testy kontraktowe w CI, przestrzenie podglądu w K8s.
M2-M3: katalogi opraw, deski rozdzielcze jako kod, DLQ + ręczna powtórka, profile obciążenia.
M4-M6: pełnoprawna zewnętrzna skrzynka piaskowa z kluczami/kwotami, infrastruktura chaosu, autogen SDK, „dwie wersje równolegle” polityka migracyjna.
M6 +: geo-rozproszony etap z awaryjnym, inteligentny routing dostawców za pośrednictwem SLA w testach, zautomatyzowane skrypty treningowe w DevPortal.

17) Model dojrzałości środowiska (krótki)

1. Podstawowy - jest test/etap, dane ręczne, słaba izolacja.
2. Zaawansowane - symulatory, testy kontraktowe, obserwowalność, częściowe podglądy.
3. Ekspert - per-PR środowiska, chaos/ładunek jako kod, DevPortal, silne bezpieczeństwo i pełna automatyzacja.

Krótki wniosek

Odpowiednio zaprojektowane piaskownice i środowiska badawcze są „poduszką powietrzną” i „akceleratorem” dostawy. Izolacja, parytet z produkcją, symulatory dostawcy, deterministyczne dane testowe, silna obserwacja i automatyzacja środowisk podglądu zapewniają szybki i niezawodny kod → sprawdź → cykl uwalniania, zmniejszając ryzyko regresji i upraszczając skalowanie platformy.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.