AiHummer
Română
AutentificareCont personal
v1.2.x
{ }Swagger

Politică de actualizare

v1.2.x · actualizat 2026-08-04

Stabilitatea este un principiu al produsului, nu o idee ulterioară. AiHummer urmează SemVer, se aplică migrații de baze de date sigure în avans automat, și poate auto-actualizare de la un CDN — astfel încât actualizările sunt de rutină mai degrabă decât riscante.

Versiuni (SemVer)

Lansările urmează Semantic Versioning. Versiunea este raportată de /healthz și de către aihummer version, astfel încât să poți confirma întotdeauna exact ce rulează înainte și după un upgrade.

Migrațiile sunt sigure și automate

La pornire, gateway-ul aplică automat migrațiile de bază de date în așteptare. Două proprietăți mențin acest lucru în siguranță:

  • Sigur înainte. Migrațiile sunt scrise astfel încât un binar mai nou să funcționeze împotriva schema la care migrează, ceea ce face ca aplicarea automată și actualizările treptate să fie sigure.
  • Aplicant unic prin blocare consultativă. Migrațiile rulează sub un PostgreSQL blocare de avertizare, astfel încât atunci când mai multe gateway-uri pornesc simultan doar unul le aplică și restul așteaptă — niciodată o migrație dublă.

[!NOTE] Migrațiile rulează întotdeauna pe pool-ul bazei de date a proprietarului. Rolul RLS restricționat (AIHUMMER_DB_APP_URL) este pentru a deservi traficul, nu pentru modificări de schemă.

Actualizarea

Versiunile noi sunt preluate din CDN-ul de lansări al furnizorului. Modalitatea obișnuită de a actualiza este o singură comandă pe server:

aihummer update --check   # doar raportează dacă există o versiune mai nouă
aihummer update           # descarcă și aplică actualizarea

--check nu modifică nimic și de aceea nu are nevoie de root. Aplicarea propriu-zisă rescrie rădăcina instalării și repornește serviciul, așa că se rulează cu sudo.

Rezultat așteptat: --check afișează versiunea curentă și pe cea disponibilă și se încheie fără să schimbe nimic. aihummer update descarcă artefactul, îi verifică suma de control sha256 și semnătura cosign, înlocuiește binarul și repornește serviciul — după care aihummer version arată versiunea nouă. Dacă verificarea nu corespunde, actualizarea se oprește înainte de înlocuirea fișierului: versiunea care rulează rămâne neatinsă.

[!NOTE] Actualizarea automată este activată de furnizor, nu de dvs. Regimul și programul actualizării automate fac parte din întreținerea lansărilor și sunt stabilite printr-o directivă semnată a furnizorului. Pentru ele nu există comutatoare nici în interfața web, nici în aihummer settings, iar variabilele de actualizare automată scrise în gateway.env nu sunt citite de poartă — dacă le vedeți acolo, nu au niciun efect. Pentru a actualiza după propriul program, folosiți comanda aihummer update de mai sus.

Revenire

Ce se poate readuce la starea anterioară, punct cu punct:

  • Binarul — poate fi readus la versiunea anterioară (artefactele lansărilor precedente rămân pe CDN; reinstalați versiunea dorită).
  • Schema bazei de date — migrațiile sunt sigure înainte, așa că binarul anterior funcționează cu schema nouă; o revenire separată a schemei nu există.
  • Pluginurile — versiunile sunt gestionate pentru fiecare instalare în parte; la nevoie readuceți din catalog versiunea anterioară a unui plugin.
  • Configurația — nu este modificată de actualizare; la nevoie se restaurează dintr-o copie de rezervă.

Implementări fără timp de nefuncționare

AiHummer este construit pentru a fi actualizat fără întrerupere:

  • Rulează 2+ gateway-uri în spatele unui proxy. Aruncă-le câte unul; sondele de pregătire (/readyz) menține un nod care repornește în afara rotației până când începe să deservească.
  • Programatorul are un singur lider. Programarea în fundal alege un singur lider printr-un lock consultativ PostgreSQL, astfel încât rularea mai multor gateway-uri să nu se dubleze muncă programată.
  • Livrarea este idempotentă. Livrarea fiabilă plus cheile de idempotenta înseamnă o răspunsul nu este trimis niciodată de două ori după o repornire, ceea ce face ca un rolling reporniți în siguranță prin gateway-urile dvs.

Unde următor?