Dlaczego ważne jest śledzenie wersji jądra platformy
Czym jest „rdzeń platformy” i dlaczego wersje są krytyczne
Przez „rdzeń” rozumiemy domeny, w których błędy nie są wybaczone: portfel i księga, zakłady/obliczanie rundy, pula gotówkowa (depozyty/płatności), identyfikacja (KYC/AML/RG), umowy z dostawcami gier oraz rozliczenie/raportowanie.
Każda aktualizacja ma wpływ na pieniądze, regulacje, zaufanie. Dlatego wersje jądra nie są "numerem pakietu. json", oraz narzędzie zarządzania zmianą i odpowiedzialnością.
Dlaczego wersje utworów
1. Zarządzanie ryzykiem pieniężnym. Wyraźnie wiemy, który kod zapłacił za rundę/płatność - usuwa spory i przyspiesza analizę incydentów.
2. Interoperacyjność integracji. Dostawcy gier/płatności są powiązani z umowami. Wersja = gwarantuje, że pola, statusy i zasady biznesowe są takie same.
3. Zgodność i audyt. Regulator wymaga odtwarzalności: "co budować, jaki schemat, jaka kontrola. "Wersja jest kotwicą bazy dowodów.
4. Szybkie zwolnienia bez przestojów. Versioning pozwala na zwolnienie kompatybilnych zmian i roll canary.
5. Zarządzanie wypadkami. Rollback/roll-forward są proste, gdy istnieją znakowane artefakty, migracje i matryca kompatybilności.
6. Przejrzystość dla zespołów produktów. Kiedy „umowa jest stabilna do X.Y”, fronty/marketing/analityka planuje bez niespodzianek.
Polityka wersji (SemVer dla jądra)
Używamy majora SemVera. DROBNE. PATCH '+ „korekta schematu” i „wersja umowy zdarzenia”:- PATCH (x.y. Z) - korekty bez zmiany API/schematów/logiki obliczeniowej. Rollout jest szybki, rollback jest trywialny.
- MINOR (x.Y.z) - kompatybilne rozszerzenia: nowe „nieważne” pola, nowe wydarzenia, flagi. Migracje „tylko rozszerzone”.
- MAJOR (X.y. z) - zmiany łamiące: usunięcie pól/zdarzeń, zmiana zasad obliczania, nowe niezmienne księgi.
- „schemaVer” (DB/ledger/directories), „contractVer” (zdarzenia autobusowe i haki internetowe), „calcVer” (silnik zasad obliczeniowych/bonusowych).
Umowy i kompatybilność wsteczna
Umowy dla konsumentów zewnętrznych i wewnętrznych
API/webhooks/events: versioning URL ('/v2/... "), nagłówek (" X-Contract-Version "), pole" schemaVer "w ładunku użytkowym.
Imprezy w autobusie: pole „Wer”, cichy zakaz (zmiany w typie pola, znaczenie statusu).
DB: rozszerzyć → migrate → migracje kontraktowe.
Możesz dodać, zmienić - ostrożnie, usunąć - za pomocą „cienia”
Dodawanie pól - tylko nieważne/domyślne.
Zmiana znaczenia następuje tylko w MAJOR wraz z równoległą publikacją „starego” pola ('_ legacy') dla okresu przejściowego.
Deletion - po deprecacji i telemetrii „kto jeszcze czyta stare”.
Schemat i migracja danych
Rozwiń: dodaj kolumnę/indeks, wprowadź nowe wydarzenie - bez dotykania istniejących czytników.
Migracja: wypełnić/przeliczyć wartości w tle (partia/online), włączyć podwójny wpis (dual-write) w nowym miejscu.
Kontrakt: przetłumaczyć czytelników, usunąć dziedzictwo w następnym MAJOR.
Narzędzia: migracje pod flagą funkcji, tabele cieni, online DDL, niezmienne na poziomie bazy danych (ograniczenia kontrolne) i domeny.
Weryfikacja rozliczeń: pieniądze, zakłady, premie
Osobno naprawić 'calcVer' - wersja logiki obliczania pieniędzy (stopa/hold/settle/VOID, bonus i zasady zakładów).
Na każdym polu. settled ',' wypłata. zakończone „,” bonus. wydane "napisz" calcVer ".
W sporze można odtworzyć obliczenia dokładnie z logiką, która obowiązywała w czasie zdarzenia.
Przełączanie kanarka „calcVer” według procentu ruchu/regionu/kategorii gier.
Obserwowalność do wersji
Znaczniki ze śladu: 'чId',' gitSha ',' semver ',' schemaVer ',' contractVer ',' calcVer 'we wszystkich krytycznych przęsłach (zakład, rozliczanie, wypłata).
Deski rozdzielcze według wersji: błędy, opóźnienia, delty płetw według wersji.
Wpisy do „dryfu wersji”: gdy niektórzy konsumenci opon czytać niewłaściwy obwód.
Bezpieczeństwo i zgodność
Podpisano zmienione artefakty (obrazy, migracje); są przechowywane w niezmiennym rejestrze/wiadrze.
DR/audit: można podnieść środowisko „tak jak było w dniu T” (obraz, migracje do wersji, migawki bazy danych).
Wersje AML/RG/KYT są również wersjami (np. Ver) i ich dziennikami aplikacji.
Procedury uwalniania
1. Przegląd umów: wykaz zmian oznaczonych jako „PATCH/MINOR/MAJOR”, wpływ na konsumentów zewnętrznych/wewnętrznych.
2. Testy wsteczno-kompatybilne: kontrole starych klientów/zdarzeń (testy kontraktowe).
3. Rollout kanaryjski: 1-5% ruchu; p95 metrów, błędów, rozbieżności finansowych.
4. Telemetria korzystania ze spuścizny: kto jeszcze słucha 'v1', które pola są czytelne - plan deprecate.
5. Pakiet comm: co zmienia się po zakończeniu życia starszych wersji, jak migrować.
Przykładowe matryce kompatybilności (przykład)
Przykłady umów
Wydarzenie autobusowe z wersją:json
{
"event": "runda. osiedlony”, „Ver”: „2. 4”, „schemaVer”: „księga-3. 1”, „calcVer”: „portfel-7. 2 „,” roundId': „R-2025-10-17-PRAGM-12,” „zakłady”: [{„betId':” b _ 9f2 „,” kołek „:” 5. 00 „, „wypłata”:” 180. 00 "," wynik ":" WIN "}]," ts': "2025-10-17T14:23:12. 031Z, „” traceId': „tr_5f1”
}
ODPOCZYNEK z wersją kontraktową:
GET/v2/portfel/balance
Wersja X-Contract: 2. 3
Anty-wzory
„Ciche” zmiany: zmienić rodzaje/znaczenia pól bez MAJOR i deprecate.
Mieszaj migrację danych i logikę pieniędzy w jednym wydaniu bez podwójnego zapisu.
Flagi globalne zamiast wersji (nie można przywrócić, „co działało wtedy”).
Brak testów kontraktowych i katalog schematów.
Usuń spuściznę bez użycia telemetrii - partnerzy/deski rozdzielcze break.
Pojedynczy numer „gdzieś w wiki” bez artefaktów/podpisów nie jest powtarzalny.
Podstawowa lista kontrolna dyscypliny wersji
Normy
- Rodzina wersji: „semver”, „schemaVer”, „contractVer”, „calcVer”, „Ver”.
- Katalog danych z historią i właścicielami.
Umowy
- Punkty końcowe/zdarzenia, nagłówek/pole wersji.
- Procedura odchylenia z datami i telemetrią użytkowania.
Migracja
- Expand → Migrate → Kontrakt, dual-write, онлава-DDL.
- Tabele cieni i niezmienne na poziomie bazy danych.
Wydania
- Rollout kanaryjski, matryca kompatybilności, plan wsteczny.
- Podpisane obrazy/migracje, niezmienione artefakty.
Obserwowalność
- Znaczniki wersji w trace/logs/metrics.
- Błędy/opóźnienia/Deski rozdzielcze Fin Delta według wersji.
Zgodność/DR
- Powtarzalny wzrost środowiska „w dniu T”.
- Dzienniki aplikacji Ver (AML/RG/KYT).
Podstawową wersją jest „ubezpieczenie” pieniędzy i tempo rozwoju produktów. Dzięki niemu platforma ewoluuje przewidywalnie: pojawiają się nowe możliwości bez podziałów, finanse pozostają powtarzalne, integracje są kompatybilne, audyty są spokojne. Zrób wersje częścią procesu (kontrakty, migracje, telemetria, wydania) - a Twój backend wytrzyma lata zmian bez utraty P&L i reputacji.