GH GambleHub

Instalarea conductelor și a comunicatelor

1) De ce aveți nevoie de dirijare

Instalarea conductei este o cale de artefact standardizată de la PR la producție cu verificări de calitate și siguranță "în mod implicit. "Obiective:
  • reproducerea asamblării și eliberării;
  • feedback rapid și previzibil;
  • minimizarea riscului (rulare progresivă, phicheflags, rollback);
  • conformitatea și controlul schimbării.

2) Fluxul de alimentare de referință (nivel înalt)

1. PR → verificări automate (scame, unitate, SAST, licențe).
2. Construiți → imagine/pachet determinist, semnătură și SBOM.
3. Test pe Ephemeral → previzualizare-mediu per-PR.

4. Fuzionarea → punerea în scenă:
  • depunerea imaginii;
  • contract-, integrare-, e2e-teste;
  • DAST/IAST, regresii, încărcarea fumului;
  • manual UAT/QA, dacă este necesar.
  • 5. Release Candidate (RC) → congela fereastra → Prod (canar/albastru-verde).
  • 6. Verificări post-implementare și auto-post la bugetul SLO/eroare.
  • 7. Runbook/Changelog → eliberarea de închidere și retrospectivă.

3) Șablon standardizat de conducte YAML (viteza obturatorului)

yaml
.ci/release.pipeline.yml stages: [verify, build, test, stage, approve, release, post]

verify:
- run: make lint test:unit sbom sast sca build:
- run:
docker build -t registry/app:$GIT_SHA.
cosign sign registry/app:$GIT_SHA oras push registry/sbom:$GIT_SHA sbom.json test:
- run: make test:contract test:integration
- run: make deploy:preview && make test:e2e stage:
- run: make deploy:staging IMAGE=registry/app:$GIT_SHA
- run: make test:e2e:staging && make dast approve:
manual gate: CAB/QA lead
- type: manual required_roles: [release_manager, qa_lead]
release:
- run: make release:canary TRAFFIC=5%
- run: make release:progressive STEPS="5,25,50,100"
post:
- run: make verify:slo && make notify && make create:changelog

4) Porți și criterii de pregătire (Porți de calitate)

Cod și securitate: scame, acoperire, SAST/SCA, politică de dependență, fără critică/ridicată.
Contracte: compatibilitatea schemelor (API/evenimente), verificări Pact/Buf.
Încercări: unitate/integrare/e2e p-prag, stabilitate (fulg-rate).
Încărcați fumul: p95/p99 în buget, fără degradare.
DAST/IAST: nu există constatări critice, scenarii de testare a stiloului injector (pen) pentru căi sensibile.
Observație: tablouri de bord/alerte „ca cod” actualizate, cărți de alergare atașate.
CAB/UAT: confirmare în ferestrele de lansare (dacă este necesar de reglementare/afaceri).


5) Strategii de lansare

Canare - o creștere treptată a ponderii traficului (5% → 25% → 50% → 100%), roll-forward/rollback automat pentru SLO și anomalii.
Blue-Green - medii paralele; comutator instantaneu, rollback simplu.
Feature Flags - includerea logică a caracteristicilor fără redistribuire; „lansare întunecată” și capacitatea A/B.
Shadow/Trafic Mirroring - trafic pasiv rula la noua versiune fără a afecta utilizatorii.
Desfășurări de inele - valuri de regiune/chiriaș.


6) Rollbacks și politica de securitate de presă

Auto-rollback prin declanșatoare: creșterea ratei de eroare, p95/TTFB peste prag, creșterea 5xx/timeout, DLQ spike.
Rollback manual: comanda '/rollback <service> <sha> 'în chatbot, un buton în consola de eliberare.
Înghețați ferestrele: eliberarea la evenimente critice (turnee/meciuri de vârf) este interzisă.
Changelog & Release Notes: generație din PR, etichete SemVer, componente, migrații.


7) Migrarea bazelor de date și compatibilitatea

Extindeți → migrați → contract:

1. Adăugați câmpuri/indici compatibili

2. Implementarea aplicațiilor (citește/scrie la ambele scheme);

3. migrarea datelor cu locuri de muncă de fond;

4. șterge vechiul.

Schemele sunt migrații versionate, idempotente, uscate în stadializare.

Protejați SQL distructiv: necesită pavilion/aprobare, backup-uri automate și plan-check.


8) Ficheflags și activare progresivă

Steaguri operaționale separate (pentru funcționarea în siguranță) și steaguri de produs.
Includerea pe audiență: procent, geo, chiriaș, rol.
Indicatori de pavilion: impact de conversie, latență, erori.
În caz de probleme - convoluția steagului este mai rapidă decât rollback.


9) Observabilitatea ca parte a eliberării

Urme: end-to-end "trace _ id' de la gateway la DB/cozi; compararea versiunilor vechi/noi.
Valori: p50/p95/p99, rata de eroare, RPS, saturație, DLQ, retray, Time-to-Wallet/Business KPI.
Jurnale: structurat, PII mascare, "cerere _ id' corelație.
Alerte: buget SLO, pagini urgente de gardă, eliberare auto-convoluție.


10) Securitatea lanțului de aprovizionare

SBOM pentru fiecare construcție, stocare și legare la eticheta de lansare.
Semnături de imagine (cosign), verificare pe un cluster (admitere politică).
Atestat SLSA: origine artefact dovedibilă.
Policy-as-Code (OPA/Conftest): refuzul implicit pentru PR-urile de infrastructură.
Secretele: numai KMS, jetoane de scurtă durată, rotații de conducte.


11) Controlul schimbării și procesele

RFC → CRQ → CAB: suntem de acord asupra schimbării documentate a comportamentului/contractelor în avans.
Calendar de lansare: Ferestre vizibile după produs/regiune/echipă.
Runbooks: pentru fiecare componentă - proceduri pentru activarea/rularea înapoi/diagnosticare.
Postmortem/Retro: după lansări semnificative - analiză și acțiune.


12) Profiluri de testare în stadiu

API/Events-Blocks modificări incompatibile.
Integration/e2e: scenarii end-to-end „depozit”, „KYC”, „retragere”.
Fumul de încărcare: vârfuri reprezentative; monitorizăm limitele resurselor.
Scenarii de haos: deconectarea furnizorului, creșterea latenței, flapping-uri de rețea.
Monitorizarea sintetică: tranzacțiile „trial” pe un program.


13) Makefile exemplu de obiective de eliberare (fragment)

makefile release: verify build test stage approve prod post verify:
@make lint test:unit sbom sast sca build:
docker build -t $(IMG).
cosign sign $(IMG)
test:
@make test:contract test:integration deploy:preview test:e2e stage:
kubectl apply -k deploy/staging approve:
@echo "Waiting for QA/CAB approval..."
prod:
make release:canary TRAFFIC="5 25 50 100"
post:
@make verify:slo notify changelog

14) Roluri și responsabilități

Dev/Team: calitatea codului, teste, migrații, cărți de alergare.
QA: scenarii UAT/regresie, controlul calității pe porți.
SRE/Platform: fiabilitate conducte, observabilitate, politici.
Release Manager: calendar, ferestre, CAB, soluție finală.
Securitate: SAST/DAST/SCA, lanț de aprovizionare, politică secretă.


15) Modelul de maturitate de eliberare

1. De bază - controale manuale, versiuni rare, rollback-uri sunt dificile.
2. Avansat - CI/CD standardizat, contur de stadializare, canar/albastru-verde, versiuni frecvente.
3. Expert - livrare progresivă de către chiriași/regiuni, caracteristică flags-first, policy-as-code, SLO auto-încărcare, trasabilitate completă și SLSA.


16) Foaia de parcurs privind implementarea

M0-M1 (MVP): șablon de conducte, build + sign + SBOM, implementare în stadiu, teste de bază și porți.
M2-M3: canar/albastru-verde, previzualizare per-PR, teste de contract, DAST, controale sintetice.
M4-M6: feature flags platform, shadow traffic, policy-as-code, auto-rollback, release calendar + CAB-workflow.
M6 +: ring-implementări pe regiuni, certificare SLSA și admitere strictă, automatizare completă a runbooks.


17) Lista de verificare înainte de lansare

  • Imagine semnat, SBOM încărcat și eliberarea legat.
  • Contractele sunt compatibile, testele sunt verzi, e2e transmise în stadiu.
  • Migrații verificate (uscat-run), gata de backup, planul rollback descris.
  • Tablouri de bord/alerte au fost actualizate, porțile SLO sunt active.
  • Runbook și Changelog publicat, ferestre de lansare a fost de acord.
  • Steagurile caracteristice sunt configurate pentru activare progresivă.
  • Restricțiile de congelare sunt îndeplinite, de gardă este gata.

Scurtă concluzie

O conductă de stadializare bine concepută transformă eliberările într-o rutină ușor de gestionat: șabloane uniforme, porți de calitate clare, un lanț de aprovizionare sigur, laminarea progresivă și observabilitatea reduc riscul și reduc timpul de schimbare a producției, menținând în același timp controlul asupra calității și măsurătorilor de afaceri.

Contact

Contactați-ne

Scrieți-ne pentru orice întrebare sau solicitare de suport.Suntem mereu gata să ajutăm!

Pornește integrarea

Email-ul este obligatoriu. Telegram sau WhatsApp sunt opționale.

Numele dumneavoastră opțional
Email opțional
Subiect opțional
Mesaj opțional
Telegram opțional
@
Dacă indicați Telegram — vă vom răspunde și acolo, pe lângă Email.
WhatsApp opțional
Format: cod de țară și număr (de exemplu, +40XXXXXXXXX).

Apăsând butonul, sunteți de acord cu prelucrarea datelor dumneavoastră.