Тұрақтылық — кейінге қалдырылған нәрсе емес, өнім қағидаты. AiHummer SemVer-ді
ұстанады, алға-қауіпсіз дерекқор миграцияларын автоматты түрде қолданады
және CDN-нен өзін-өзі жаңарта алады — сондықтан жаңартулар тәуекелді емес,
кәдімгі рәсім болады.
Нұсқалау (SemVer)
Релиздер Семантикалық нұсқалауды ұстанады. Нұсқа /healthz арқылы және
aihummer version арқылы хабарланады, сондықтан жаңартуға дейін және одан кейін
нақты не жұмыс істеп тұрғанын әрқашан растай аласыз.
Миграциялар алға-қауіпсіз әрі автоматты
Іске қосылу кезінде шлюз күтудегі дерекқор миграцияларын автоматты түрде
қолданады. Екі қасиет мұны қауіпсіз етеді:
Алға-қауіпсіз. Миграциялар жаңарақ бинарлық файл өзі көшетін схемамен
жұмыс істейтіндей жазылады, бұл авто-қолдану мен жылжымалы жаңартуларды
қауіпсіз етеді.
Advisory lock арқылы жалғыз қолданушы. Миграциялар PostgreSQL advisory
lock астында орындалады, сондықтан бірнеше шлюз бір уақытта іске қосылғанда
оларды тек біреуі қолданады да, қалғаны күтеді — ешқашан қос миграция болмайды.
[!NOTE]
Миграциялар әрқашан иеленуші дерекқор пулында орындалады. Шектелген RLS рөлі
(AIHUMMER_DB_APP_URL) — трафикке қызмет көрсетуге арналған, схема
өзгерістеріне емес.
CDN-нен өзін-өзі жаңарту
Шлюз релиз CDN-нен өзін-өзі жаңарта алады. Бұл әрекет үш орта айнымалысымен
басқарылады:
Айнымалы
Мақсаты
AIHUMMER_AUTO_UPDATE
off | check | apply — өшірілген, тек хабарлау немесе авто-қолдану
AIHUMMER_UPDATE_CHANNEL
Бақыланатын релиз арнасы (мыс., stable / alfa / beta / dev)
AIHUMMER_DOWNLOAD_BASE_URL
Жаңарту тартылатын базалық URL
Жаңартулар арнаның CDN-дегі latest.json арқылы табылады. Сондай-ақ
жаңартуларды CLI арқылы қолмен басқара аласыз:
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]
Жаңа релиздер туралы хабарлама алу үшін AIHUMMER_AUTO_UPDATE=check-тен
бастаңыз, ал арнаға қадағалаусыз таратулар үшін сенетін болғанда apply-ге
көшіңіз.
Тоқтаусыз таратулар
AiHummer іркіліссіз жаңартылатындай етіп жасалған:
Прокси артында 2+ шлюз іске қосыңыз. Оларды бір-бірлеп таратыңыз;
дайындық зонды (/readyz) қайта іске қосылып жатқан түйінді ол қызмет
көрсете бастағанша айналымнан тыс ұстайды.
Жоспарлаушы — жалғыз лидерлі. Фондық жоспарлау PostgreSQL advisory lock
арқылы жалғыз лидерді сайлайды, сондықтан бірнеше шлюзді іске қосу жоспарланған
жұмысты қайталамайды.
Жеткізу идемпотентті. Кепілдендірілген жеткізу outbox-ы плюс идемпотенттік
кілттер қайта іске қосу кезінде жауаптың екі рет жіберілмеуін қамтамасыз
етеді, бұл флотты таратуды қауіпсіз етеді.
Тұрақтылық — кейінге қалдырылған нәрсе емес, өнім қағидаты. AiHummer **SemVer**-ді
ұстанады, **алға-қауіпсіз дерекқор миграцияларын автоматты түрде** қолданады
және CDN-нен **өзін-өзі жаңарта** алады — сондықтан жаңартулар тәуекелді емес,
кәдімгі рәсім болады.
## Нұсқалау (SemVer)
Релиздер Семантикалық нұсқалауды ұстанады. Нұсқа `/healthz` арқылы және
`aihummer version` арқылы хабарланады, сондықтан жаңартуға дейін және одан кейін
нақты не жұмыс істеп тұрғанын әрқашан растай аласыз.
## Миграциялар алға-қауіпсіз әрі автоматты
Іске қосылу кезінде шлюз күтудегі дерекқор миграцияларын автоматты түрде
қолданады. Екі қасиет мұны қауіпсіз етеді:
- **Алға-қауіпсіз.** Миграциялар жаңарақ бинарлық файл өзі көшетін схемамен
жұмыс істейтіндей жазылады, бұл авто-қолдану мен жылжымалы жаңартуларды
қауіпсіз етеді.
- **Advisory lock арқылы жалғыз қолданушы.** Миграциялар **PostgreSQL advisory
lock** астында орындалады, сондықтан бірнеше шлюз бір уақытта іске қосылғанда
оларды тек біреуі қолданады да, қалғаны күтеді — ешқашан қос миграция болмайды.
> [!NOTE]
> Миграциялар әрқашан иеленуші дерекқор пулында орындалады. Шектелген RLS рөлі
> (`AIHUMMER_DB_APP_URL`) — трафикке қызмет көрсетуге арналған, схема
> өзгерістеріне емес.
## CDN-нен өзін-өзі жаңарту
Шлюз релиз CDN-нен өзін-өзі жаңарта алады. Бұл әрекет үш орта айнымалысымен
басқарылады:
| Айнымалы | Мақсаты |
|---|---|
| `AIHUMMER_AUTO_UPDATE` | `off` \| `check` \| `apply` — өшірілген, тек хабарлау немесе авто-қолдану |
| `AIHUMMER_UPDATE_CHANNEL` | Бақыланатын релиз арнасы (мыс., stable / alfa / beta / dev) |
| `AIHUMMER_DOWNLOAD_BASE_URL` | Жаңарту тартылатын базалық URL |
Жаңартулар арнаның CDN-дегі `latest.json` арқылы табылады. Сондай-ақ
жаңартуларды CLI арқылы қолмен басқара аласыз:
```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]
> Жаңа релиздер туралы хабарлама алу үшін `AIHUMMER_AUTO_UPDATE=check`-тен
> бастаңыз, ал арнаға қадағалаусыз таратулар үшін сенетін болғанда `apply`-ге
> көшіңіз.
## Тоқтаусыз таратулар
AiHummer іркіліссіз жаңартылатындай етіп жасалған:
- **Прокси артында 2+ шлюз іске қосыңыз.** Оларды бір-бірлеп таратыңыз;
дайындық зонды (`/readyz`) қайта іске қосылып жатқан түйінді ол қызмет
көрсете бастағанша айналымнан тыс ұстайды.
- **Жоспарлаушы — жалғыз лидерлі.** Фондық жоспарлау PostgreSQL advisory lock
арқылы жалғыз лидерді сайлайды, сондықтан бірнеше шлюзді іске қосу жоспарланған
жұмысты қайталамайды.
- **Жеткізу идемпотентті.** Кепілдендірілген жеткізу outbox-ы плюс идемпотенттік
кілттер қайта іске қосу кезінде жауаптың екі рет жіберілмеуін қамтамасыз
етеді, бұл флотты таратуды қауіпсіз етеді.
## Әрі қарай қайда
- Жылжымалы қайта іске қосуды реттейтін зондтар:
[systemd және денсаулық тексерулері](/en/v1.0/operations/systemd-health).
- Ірі жаңартуға дейін сақтық көшірме жасаңыз:
[Сақтық көшірмелер және апаттан қалпына келтіру](/en/v1.0/operations/backups-dr).
- Таратуды бақылаңыз:
[Бақыланушылық](/en/v1.0/operations/observability).