AiHummer
Lietuvių
PrisijungtiPaskyra
v1.1.x
{ }Swagger

Atnaujinimo politika

v1.1.x · atnaujinta 2026-08-04

Stabilumas yra produkto principas, o ne požiūris po fakto. AiHummer laikosi SemVer, taikomas automatiškai saugios į priekį duomenų bazės migracijos, ir gali savarankiškai atnaujinti iš CDN — todėl atnaujinimai yra įprasti, o ne rizikingi.

Versijų valdymas (SemVer)

Leidimai laikosi semantinio versijavimo. Versiją nurodo /healthz ir pagal aihummer version, todėl visada galite tiksliai patvirtinti, kas veikia prieš ir po atnaujinimo.

Migracijos yra saugios ateičiai ir automatinės

Paleidimo metu vartai automatiškai taiko laukiančius duomenų bazės migracijas. Dvi savybės užtikrina tai saugiai:

  • Saugu į priekį. Migracijos yra rašomos taip, kad naujesnė dvejetainė versija veiktų su schema, į kurią jis migruoja, todėl automatinis taikymas ir slankiojantys atnaujinimai yra saugūs.
  • Vienkartinis taikymas per patarimų užraktą. Migracijos vykdomos pagal PostgreSQL įspėjamasis užraktas, todėl kai keli vartai prasideda vienu metu, tik vienas jų juos taiko o likusieji laukia — niekada dvigubo migracijos.

[!NOTE] Migracijos visada vykdomos naudojant pagrindinę duomenų bazės talpyklą. Apribota RLS rolė (AIHUMMER_DB_APP_URL) yra skirta aptarnauti srautą, o ne schemų keitimams.

Atnaujinimas

Naujos versijos parsiunčiamos iš tiekėjo leidimų CDN. Įprastas būdas atsinaujinti — viena komanda serveryje:

aihummer update --check   # tik pranešti, ar yra naujesnė versija
aihummer update           # atsisiųsti ir pritaikyti

--check nieko nerašo, todėl nereikalauja root teisių. Pats pritaikymas perrašo diegimo šaknį ir perkrauna tarnybą, todėl paleidžiamas per sudo.

Laukiamas rezultatas: --check išveda esamą ir prieinamą versijas ir baigia darbą nieko nekeisdamas. aihummer update atsisiunčia artefaktą, patikrina jo sha256 kontrolinę sumą ir cosign parašą, pakeičia dvejetainį failą ir perkrauna tarnybą — po to aihummer version rodo naują versiją. Jei patikra nesutampa, atnaujinimas nutraukiamas prieš failo pakeitimą: veikianti versija lieka nepaliesta.

[!NOTE] Automatinį atnaujinimą įjungia tiekėjas, o ne jūs. Automatinio atnaujinimo režimas ir tvarkaraštis priklauso leidimo priežiūrai ir nustatomi pasirašytu tiekėjo nurodymu. Atitinkamų jungiklių nėra nei žiniatinklio sąsajoje, nei aihummer settings, o į gateway.env įrašytų automatinio atnaujinimo kintamųjų vartai neskaito — jei juos ten matote, jie nieko nekeičia. Kad atsinaujintumėte pagal savo tvarkaraštį, naudokite aukščiau pateiktą komandą aihummer update.

Atstatymas

Ką galima grąžinti atgal — po vieną:

  • Dvejetainis failas — galima grįžti į ankstesnę versiją (ankstesnių leidimų artefaktai lieka CDN; įdiekite reikiamą versiją iš naujo).
  • Duomenų bazės schema — migracijos yra saugios į priekį, todėl ankstesnis dvejetainis failas veikia su naujesne schema; atskiro schemos atstatymo nėra.
  • Papildiniai — versijos tvarkomos kiekvienam diegimui atskirai; prireikus grąžinkite ankstesnę papildinio versiją iš katalogo.
  • Konfigūracija — atnaujinant nekeičiama; prireikus atkuriama iš atsarginės kopijos.

Atnaujinimai be prastovų

AiHummer sukurta atnaujinimams be nutrūkimo:

  • Vykdykite 2+ vartus už tarpinio serverio. Vartykite juos po vieną; pasiruošimo zondas (/readyz) palaiko perkraunamą mazgą už borto tol, kol jis pradeda teikti paslaugas.
  • Tvarkaraštis turi vieną vadovą. Fono planavimas išrenka vieną lyderį per PostgreSQL patarimų užraktą, todėl kelių vartų paleidimas nesukelia dubliavimosi planuojami darbai.
  • Pristatymas yra idempotentinis. Patikimas pristatymas kartu su idempotencijos raktai reiškia atsakymas niekada nėra siunčiamas du kartus per perkrovimą, kas ir sukuria ritinimą saugiai paleiskite iš naujo per savo vartus.

Kur toliau