Sabitlik məhsul prinsipidir, sonradan düşünülən bir şey deyil. AiHummer SemVer-i
izləyir, irəliyə-təhlükəsiz verilənlər bazası miqrasiyalarını avtomatik tətbiq
edir və CDN-dən öz-özünə yenilənə bilir — beləliklə yeniləmələr riskli
deyil, adi rutin olur.
Versiyalaşdırma (SemVer)
Buraxılışlar Semantik Versiyalaşdırmanı izləyir. Versiya /healthz və
aihummer version tərəfindən bildirilir, beləliklə yeniləmədən əvvəl və sonra
dəqiq nəyin işlədiyini həmişə təsdiqləyə bilərsiniz.
Miqrasiyalar irəliyə-təhlükəsiz və avtomatikdir
Başlanğıcda gateway gözləyən verilənlər bazası miqrasiyalarını avtomatik tətbiq
edir. İki xüsusiyyət bunu təhlükəsiz saxlayır:
İrəliyə-təhlükəsiz. Miqrasiyalar elə yazılır ki, yeni binar onun miqrasiya
etdiyi sxemə qarşı işləyir, bu da avtomatik-tətbiqi və yayımlama yeniləmələrini
təhlükəsiz edir.
Advisory kilidi ilə tək-tətbiqçi. Miqrasiyalar PostgreSQL advisory
kilidi altında işləyir, beləliklə bir neçə gateway eyni anda başladıqda yalnız
biri onları tətbiq edir, qalanları isə gözləyir — heç vaxt ikiqat miqrasiya
olmur.
[!NOTE]
Miqrasiyalar həmişə sahib verilənlər bazası hovuzunda işləyir. Məhdud RLS rolu
(AIHUMMER_DB_APP_URL) trafikə xidmət etmək üçündür, sxem dəyişiklikləri üçün
deyil.
CDN-dən öz-özünə yenilənmə
Gateway buraxılış CDN-dən özünü yeniləyə bilər. Davranış üç ətraf mühit dəyişəni
ilə idarə olunur:
Dəyişən
Məqsəd
AIHUMMER_AUTO_UPDATE
off | check | apply — söndürülmüş, yalnız-bildiriş, və ya avtomatik-tətbiq
Yeniləmələr CDN-dəki kanalın latest.json-u vasitəsilə aşkar edilir.
Yeniləmələri CLI ilə əllə də idarə edə bilərsiniz:
aihummer update --check # report whether a newer version is availableaihummer update # download and apply the update
# gateway.env — notify-only on the stable channelAIHUMMER_AUTO_UPDATE=checkAIHUMMER_UPDATE_CHANNEL=stable
[!TIP]
Yeni buraxılışlardan xəbərdar olmaq üçün AIHUMMER_AUTO_UPDATE=check ilə
başlayın və nəzarətsiz yayımlamalar üçün kanala etibar etdikdən sonra apply-a
keçin.
Sıfır-fasiləli yayımlamalar
AiHummer kəsinti olmadan yenilənmək üçün qurulub:
Proksi arxasında 2+ gateway işlədin. Onları bir-bir yayımlayın; hazırlıq
zondu (/readyz) yenidən başlayan node-u xidmət edənə qədər rotasiyadan kənar
saxlayır.
Planlayıcı tək-liderlidir. Fon planlaşdırması PostgreSQL advisory kilidi
vasitəsilə tək lider seçir, beləliklə bir neçə gateway işlətmək planlaşdırılmış
işi təkrarlamır.
Çatdırılma idempotentdir. Zəmanətli-çatdırılma outbox-u üstəgəl idempotentlik
açarları o deməkdir ki, yenidən başlatma arasında cavab heç vaxt iki dəfə
göndərilmir, bu da parkın yayımlanmasını təhlükəsiz edir.
Sabitlik məhsul prinsipidir, sonradan düşünülən bir şey deyil. AiHummer **SemVer**-i
izləyir, **irəliyə-təhlükəsiz verilənlər bazası miqrasiyalarını avtomatik tətbiq
edir** və CDN-dən **öz-özünə yenilənə** bilir — beləliklə yeniləmələr riskli
deyil, adi rutin olur.
## Versiyalaşdırma (SemVer)
Buraxılışlar Semantik Versiyalaşdırmanı izləyir. Versiya `/healthz` və
`aihummer version` tərəfindən bildirilir, beləliklə yeniləmədən əvvəl və sonra
dəqiq nəyin işlədiyini həmişə təsdiqləyə bilərsiniz.
## Miqrasiyalar irəliyə-təhlükəsiz və avtomatikdir
Başlanğıcda gateway gözləyən verilənlər bazası miqrasiyalarını avtomatik tətbiq
edir. İki xüsusiyyət bunu təhlükəsiz saxlayır:
- **İrəliyə-təhlükəsiz.** Miqrasiyalar elə yazılır ki, yeni binar onun miqrasiya
etdiyi sxemə qarşı işləyir, bu da avtomatik-tətbiqi və yayımlama yeniləmələrini
təhlükəsiz edir.
- **Advisory kilidi ilə tək-tətbiqçi.** Miqrasiyalar **PostgreSQL advisory
kilidi** altında işləyir, beləliklə bir neçə gateway eyni anda başladıqda yalnız
biri onları tətbiq edir, qalanları isə gözləyir — heç vaxt ikiqat miqrasiya
olmur.
> [!NOTE]
> Miqrasiyalar həmişə sahib verilənlər bazası hovuzunda işləyir. Məhdud RLS rolu
> (`AIHUMMER_DB_APP_URL`) trafikə xidmət etmək üçündür, sxem dəyişiklikləri üçün
> deyil.
## CDN-dən öz-özünə yenilənmə
Gateway buraxılış CDN-dən özünü yeniləyə bilər. Davranış üç ətraf mühit dəyişəni
ilə idarə olunur:
| Dəyişən | Məqsəd |
|---|---|
| `AIHUMMER_AUTO_UPDATE` | `off` \| `check` \| `apply` — söndürülmüş, yalnız-bildiriş, və ya avtomatik-tətbiq |
| `AIHUMMER_UPDATE_CHANNEL` | İzləniləcək buraxılış kanalı (məs. stable / alfa / beta / dev) |
| `AIHUMMER_DOWNLOAD_BASE_URL` | Yeniləmənin çəkildiyi baza URL |
Yeniləmələr CDN-dəki kanalın `latest.json`-u vasitəsilə aşkar edilir.
Yeniləmələri CLI ilə əllə də idarə edə bilərsiniz:
```bash
aihummer update --check # report whether a newer version is available
aihummer update # download and apply the update
```
```ini
# gateway.env — notify-only on the stable channel
AIHUMMER_AUTO_UPDATE=check
AIHUMMER_UPDATE_CHANNEL=stable
```
> [!TIP]
> Yeni buraxılışlardan xəbərdar olmaq üçün `AIHUMMER_AUTO_UPDATE=check` ilə
> başlayın və nəzarətsiz yayımlamalar üçün kanala etibar etdikdən sonra `apply`-a
> keçin.
## Sıfır-fasiləli yayımlamalar
AiHummer kəsinti olmadan yenilənmək üçün qurulub:
- **Proksi arxasında 2+ gateway işlədin.** Onları bir-bir yayımlayın; hazırlıq
zondu (`/readyz`) yenidən başlayan node-u xidmət edənə qədər rotasiyadan kənar
saxlayır.
- **Planlayıcı tək-liderlidir.** Fon planlaşdırması PostgreSQL advisory kilidi
vasitəsilə tək lider seçir, beləliklə bir neçə gateway işlətmək planlaşdırılmış
işi təkrarlamır.
- **Çatdırılma idempotentdir.** Zəmanətli-çatdırılma outbox-u üstəgəl idempotentlik
açarları o deməkdir ki, yenidən başlatma arasında cavab heç vaxt iki dəfə
göndərilmir, bu da parkın yayımlanmasını təhlükəsiz edir.
## Sonra hara
- Yayımlama yenidən başlatmasını idarə edən zondlar:
[systemd və sağlamlıq yoxlamaları](/en/v1.0/operations/systemd-health).
- Əsas yeniləmədən əvvəl ehtiyat nüsxələyin:
[Ehtiyat nüsxələr və fəlakətdən bərpa](/en/v1.0/operations/backups-dr).
- Yayımlamanı izləyin:
[Müşahidə qabiliyyəti](/en/v1.0/operations/observability).