AiHummer
Հայերեն
Մուտք
v1.0.x
{ }Swagger

Թարմացման քաղաքականություն

v1.0.x · թարմացվել է 2026-06-26

Կայունությունը արտադրանքի սկզբունք է, ոչ թե հետին պլանի մտածմունք։ AiHummer-ը հետևում է SemVer-ին, կիրառում է forward-safe տվյալների բազայի migration-ներ ավտոմատ կերպով, և կարող է self-update անել CDN-ից — այնպես որ թարմացումները ռուտին են, ոչ թե ռիսկային։

Տարբերակավորում (SemVer)

Թողարկումները հետևում են Semantic Versioning-ին։ Տարբերակը հաղորդվում է /healthz-ով և aihummer version-ով, այնպես որ միշտ կարող եք հաստատել, թե կոնկրետ ինչ է աշխատում նախքան և թարմացումից հետո։

Migration-ները forward-safe են և ավտոմատ

Գործարկման ժամանակ gateway-ն ավտոմատ կիրառում է չավարտված տվյալների բազայի migration-ները։ Երկու հատկություն պահում են սա անվտանգ.

  • Forward-safe. Migration-ները գրված են այնպես, որ ավելի նոր binary-ն աշխատի այն schema-ի դեմ, որին այն migrate է անում, ինչն էլ auto-apply-ն ու rolling թարմացումները դարձնում է անվտանգ։
  • Single-applier՝ advisory lock-ով. Migration-ները աշխատում են PostgreSQL advisory lock-ի տակ, այնպես որ երբ մի քանի gateway միաժամանակ գործարկվում են, միայն մեկն է կիրառում դրանք, իսկ մնացածը սպասում են — երբեք կրկնակի migration։

[!NOTE] Migration-ները միշտ աշխատում են owner database pool-ի վրա։ Սահմանափակ RLS դերը (AIHUMMER_DB_APP_URL) տրաֆիկ սպասարկելու համար է, ոչ թե schema-ի փոփոխությունների։

Self-update CDN-ից

Gateway-ը կարող է ինքն իրեն թարմացնել release CDN-ից։ Վարքագիծը կառավարվում է երեք environment փոփոխականով.

Փոփոխական Նպատակ
AIHUMMER_AUTO_UPDATE off | check | apply — անջատված, միայն-ծանուցում, կամ auto-apply
AIHUMMER_UPDATE_CHANNEL Հետևելի թողարկման ալիք (օր.՝ stable / alfa / beta / dev)
AIHUMMER_DOWNLOAD_BASE_URL Base URL, որից քաշվում է թարմացումը

Թարմացումները հայտնաբերվում են ալիքի latest.json-ի միջոցով CDN-ի վրա։ Կարող եք նաև ձեռքով շարժել թարմացումները CLI-ով.

aihummer update --check   # report whether a newer version is available
aihummer update           # download and apply the update
# gateway.env — notify-only on the stable channel
AIHUMMER_AUTO_UPDATE=check
AIHUMMER_UPDATE_CHANNEL=stable

[!TIP] Սկսեք AIHUMMER_AUTO_UPDATE=check-ով՝ նոր թողարկումների մասին ծանուցվելու համար, և անցեք apply-ին, երբ վստահեք ալիքին անհսկելի rollout-ների համար։

Zero-downtime rollout-ներ

AiHummer-ը կառուցված է առանց անջատման թարմանալու համար.

  • Աշխատեցրեք 2+ gateway proxy-ի հետևում։ Roll արեք դրանք մեկ առ մեկ. readiness probe-ը (/readyz) պահում է վերագործարկվող node-ը ռոտացիայից դուրս, մինչև այն սպասարկում սկսի։
  • Scheduler-ը single-leader է։ Ֆոնային scheduling-ը ընտրում է մեկ leader PostgreSQL advisory lock-ի միջոցով, այնպես որ մի քանի gateway աշխատեցնելը չի կրկնում scheduled աշխատանքը։
  • Առաքումը idempotent է։ Երաշխավորված առաքման outbox-ը գումարած idempotency բանալիները նշանակում են, որ պատասխանը երբեք երկու անգամ չի ուղարկվում վերագործարկման ընթացքում, ինչն էլ fleet-ը roll անելը դարձնում է անվտանգ։

Ո՞ւր հաջորդիվ