Stabilitāte ir produkta princips, nevis pēctecība. AiHummer seko SemVer, piemērojams automātiskas drošas datu bāzes migrācijas uz priekšu, un var pašatjaunināšanās no CDN — tāpēc jauninājumi ir rutīna, nevis riskanti.
Versiju noteikšana (SemVer)
Izlaidumi seko semantisko versiju numurēšanai. Versija tiek ziņota ar /healthz un pēc aihummer version, tāpēc jūs vienmēr varat precīzi pārbaudīt, kas darbojas pirms un pēc jaunināšanas.
Migrācijas ir drošas un automātiskas
Palaistā laikā vārteja automātiski lieto gaidāmas datubāzes migrācijas. Divi īpašumi nodrošina šo drošību:
Uz priekšu droši. Migrācijas ir rakstītas tā, lai jaunāka binārā versija darbotos pret
shēma, uz kuru tā migrē, kas padara automātisko piemērošanu un pakāpeniskas jaunināšanas drošas.
Vienlaicīgs lietotājs, izmantojot konsultatīvo bloķēšanu. Migrācijas darbojas zem PostgreSQL
brīdinājuma slēdzene, tāpēc, kad vairākas vārtejas sāk darboties vienlaikus, tās piemēro tikai viena
un pārējie gaida — nekad dubultu migrāciju.
[!NOTE]
Migrācijas vienmēr tiek veiktas uz īpašnieka datubāzu grupu. Ierobežotā RLS loma
(AIHUMMER_DB_APP_URL) ir paredzēts satiksmes apkalpošanai, nevis shēmas izmaiņām.
Atjaunināšana
Jaunās versijas tiek ņemtas no piegādātāja laidienu CDN. Standarta veids, kā
atjaunināties, ir viena komanda uz servera:
aihummer update --check # tikai paziņot, vai ir jaunāka versijaaihummer update # lejupielādēt un piemērot
--check neko neraksta un tāpēc neprasa root tiesības. Pati piemērošana
pārraksta instalācijas sakni un pārstartē pakalpojumu, tāpēc to palaiž ar sudo.
Gaidāmais rezultāts:--check izvada pašreizējo un pieejamo versiju un beidz
darbu, neko nemainot. aihummer update lejupielādē artefaktu, pārbauda tā sha256
kontrolsummu un cosign parakstu, nomaina bināro failu un pārstartē pakalpojumu —
pēc tam aihummer version rāda jauno versiju. Ja pārbaude nesakrīt, atjaunināšana
tiek pārtraukta pirms faila nomaiņas: strādājošā versija paliek neskarta.
[!NOTE]
Automātisko atjaunināšanu ieslēdz piegādātājs, nevis jūs. Automātiskās
atjaunināšanas režīms un grafiks ietilpst laidiena apkalpošanā un tiek iestatīti
ar parakstītu piegādātāja rīkojumu. Atbilstošu pārslēdzēju nav ne tīmekļa
saskarnē, ne aihummer settings, bet gateway.env ierakstītos automātiskās
atjaunināšanas mainīgos vārteja nelasa — ja tos tur redzat, tie neko
neietekmē. Lai atjauninātos pēc sava grafika, izmantojiet iepriekš minēto
komandu aihummer update.
Atgriešana atpakaļ
Ko var atgriezt atpakaļ — pa punktiem:
Binārais fails — var atgriezties uz iepriekšējo versiju (iepriekšējo laidienu
artefakti paliek CDN; instalējiet vajadzīgo versiju no jauna).
Datubāzes shēma — migrācijas ir uz priekšu drošas, tāpēc iepriekšējais
binārais fails strādā ar jaunāko shēmu; atsevišķas shēmas atgriešanas nav.
Spraudņi — versijas tiek pārvaldītas katrai instalācijai atsevišķi; ja
nepieciešams, atgrieziet iepriekšējo spraudņa versiju no kataloga.
Konfigurācija — atjaunināšanas laikā netiek mainīta; vajadzības gadījumā to
atjauno no rezerves kopijas.
Izvēršanas process bez dīkstāves
AiHummer ir veidots, lai veiktu jaunināšanu bez pārtraukuma:
Palaidiet 2+ vārtus aiz starpniekservera. Mest tos pa vienam; gatavības sondēšana
(/readyz) aiztur restartējošu mezglu no rotācijas, līdz tas sāk darboties.
Ieplānotājs ir ar vienu līderi. Fona grafika izpilde izvēlas vienu līderi
caur PostgreSQL padomu bloķēšanu, tāpēc vairāku vārteju palaišana nedublējas
plānotie darbi.
Piegāde ir idempotenta. Uzticama piegāde un idempotences atslēgas nozīmē
atbilde nekad netiek nosūtīta divreiz pēc restartēšanas, kas arī padara to par ritējošu
droša restartēšana visos jūsu vārtos.
Stabilitāte ir produkta princips, nevis pēctecība. AiHummer seko **SemVer**, piemērojams **automātiskas drošas datu bāzes migrācijas uz priekšu**, un var **pašatjaunināšanās** no CDN — tāpēc jauninājumi ir rutīna, nevis riskanti.
## Versiju noteikšana (SemVer)
Izlaidumi seko semantisko versiju numurēšanai. Versija tiek ziņota ar `/healthz` un pēc `aihummer version`, tāpēc jūs vienmēr varat precīzi pārbaudīt, kas darbojas pirms un pēc jaunināšanas.
## Migrācijas ir drošas un automātiskas
Palaistā laikā vārteja automātiski lieto gaidāmas datubāzes migrācijas. Divi īpašumi nodrošina šo drošību:
- **Uz priekšu droši.** Migrācijas ir rakstītas tā, lai jaunāka binārā versija darbotos pret
shēma, uz kuru tā migrē, kas padara automātisko piemērošanu un pakāpeniskas jaunināšanas drošas.
- **Vienlaicīgs lietotājs, izmantojot konsultatīvo bloķēšanu.** Migrācijas darbojas zem **PostgreSQL
brīdinājuma slēdzene**, tāpēc, kad vairākas vārtejas sāk darboties vienlaikus, tās piemēro tikai viena
un pārējie gaida — nekad dubultu migrāciju.
> [!NOTE]
> Migrācijas vienmēr tiek veiktas uz īpašnieka datubāzu grupu. Ierobežotā RLS loma
> (`AIHUMMER_DB_APP_URL`) ir paredzēts satiksmes apkalpošanai, nevis shēmas izmaiņām.
## Atjaunināšana
Jaunās versijas tiek ņemtas no piegādātāja laidienu CDN. Standarta veids, kā
atjaunināties, ir viena komanda uz servera:
```bash
aihummer update --check # tikai paziņot, vai ir jaunāka versija
aihummer update # lejupielādēt un piemērot
```
`--check` neko neraksta un tāpēc **neprasa root tiesības**. Pati piemērošana
pārraksta instalācijas sakni un pārstartē pakalpojumu, tāpēc to palaiž ar `sudo`.
**Gaidāmais rezultāts:** `--check` izvada pašreizējo un pieejamo versiju un beidz
darbu, neko nemainot. `aihummer update` lejupielādē artefaktu, pārbauda tā sha256
kontrolsummu un cosign parakstu, nomaina bināro failu un pārstartē pakalpojumu —
pēc tam `aihummer version` rāda jauno versiju. Ja pārbaude nesakrīt, atjaunināšana
tiek pārtraukta **pirms** faila nomaiņas: strādājošā versija paliek neskarta.
> [!NOTE]
> **Automātisko atjaunināšanu ieslēdz piegādātājs, nevis jūs.** Automātiskās
> atjaunināšanas režīms un grafiks ietilpst laidiena apkalpošanā un tiek iestatīti
> ar parakstītu piegādātāja rīkojumu. Atbilstošu pārslēdzēju nav ne tīmekļa
> saskarnē, ne `aihummer settings`, bet `gateway.env` ierakstītos automātiskās
> atjaunināšanas mainīgos vārteja **nelasa** — ja tos tur redzat, tie neko
> neietekmē. Lai atjauninātos pēc sava grafika, izmantojiet iepriekš minēto
> komandu `aihummer update`.
### Atgriešana atpakaļ
Ko var atgriezt atpakaļ — pa punktiem:
- **Binārais fails** — var atgriezties uz iepriekšējo versiju (iepriekšējo laidienu
artefakti paliek CDN; instalējiet vajadzīgo versiju no jauna).
- **Datubāzes shēma** — migrācijas ir uz priekšu drošas, tāpēc iepriekšējais
binārais fails strādā ar jaunāko shēmu; atsevišķas shēmas atgriešanas nav.
- **Spraudņi** — versijas tiek pārvaldītas katrai instalācijai atsevišķi; ja
nepieciešams, atgrieziet iepriekšējo spraudņa versiju no kataloga.
- **Konfigurācija** — atjaunināšanas laikā netiek mainīta; vajadzības gadījumā to
atjauno no rezerves kopijas.
## Izvēršanas process bez dīkstāves
AiHummer ir veidots, lai veiktu jaunināšanu bez pārtraukuma:
- **Palaidiet 2+ vārtus aiz starpniekservera.** Mest tos pa vienam; gatavības sondēšana
(`/readyz`) aiztur restartējošu mezglu no rotācijas, līdz tas sāk darboties.
- **Ieplānotājs ir ar vienu līderi.** Fona grafika izpilde izvēlas vienu līderi
caur PostgreSQL padomu bloķēšanu, tāpēc vairāku vārteju palaišana nedublējas
plānotie darbi.
- **Piegāde ir idempotenta.** Uzticama piegāde un idempotences atslēgas nozīmē
atbilde nekad netiek nosūtīta divreiz pēc restartēšanas, kas arī padara to par ritējošu
droša restartēšana visos jūsu vārtos.
## Kur uz nākamo
- Paraugi, kas ierobežo ritināšanas restartu:
[systemd un veselības pārbaudes](/lv/v1.0/operations/systemd-health).
- Veiciet dublējumu pirms lielas jaunināšanas:
[Dublējumi un katastrofu atjaunošana](/lv/v1.0/operations/backups-dr).
- Skatieties izvēršanu:
[Novērojamība](/lv/v1.0/operations/observability).