Жаңарту саясаты
Тұрақтылық – бұл өнімнің принципі, кейін ойланған нәрсе емес. AiHummer осыны ұстанады SemVer, қолданылады алға қауіпсіз дерекқор миграцияларын автоматты түрде, және мүмкін өзін-өзі жаңарту CDN арқылы — сондықтан жаңартулар қауіпті емес, күнделікті жүргізілетін болып табылады.
Нұсқалау (SemVer)
Жеткізілімдер Семантикалық нұсқау нөмірлеуді ұстанады. Нұсқа осы арқылы көрсетіледі /healthz және арқылы aihummer version, сондықтан жаңартудан бұрын және кейін қандай бағдарламалар жұмыс жасап жатқанын әрқашан дәл тексере аласыз.
Миграциялар алдыға қауіпсіз және автоматты
Бастау кезінде шлюз күтілген дерекқор миграцияларын автоматты түрде қолданады. Бұл қауіпсіздікті екі қасиет қамтамасыз етеді:
- Алға қауіпсіз. Миграциялар жаңа бинарлық нұсқа бұрынғысына сәйкес жұмыс істейтіндей етіп жазылады ол өтетін схема, бұл автоматты қолдануды және біртіндеп жаңартуды қауіпсіз ететін нәрсе.
- Кеңес беру құлпы арқылы бір реттік қолданушы. Миграциялар астыңда іске асады PostgreSQL кеңес беру құлпы, сондықтан бірнеше шлюз бір уақытта басталғанда тек біреуі оларды қолданады және қалғандары күтеді — ешқашан екі есе көші-қон болмайды.
[!NOTE] Миграциялар әрдайым иесі бар дерекқор пулында жүргізіледі. Шектелген RLS рөлі (
AIHUMMER_DB_APP_URL) бұл трафикті қызмет көрсету үшін арналған, схема өзгерістері үшін емес.
Жаңарту
Жаңа нұсқалар жеткізушінің шығарылым CDN-інен алынады. Жаңартудың штаттық тәсілі — серверде бір ғана команда:
aihummer update --check # жаңарақ нұсқа бар-жоғын ғана хабарлайды
aihummer update # жүктеп алып, қолданады
--check ештеңе жазбайды, сондықтан root талап етпейді. Ал жаңартуды
қолдану орнату түбірін өзгертіп, қызметті қайта іске қосады, сол себепті sudo
арқылы орындалады.
Күтілетін нәтиже: --check ағымдағы және қолжетімді нұсқаларды басып
шығарады да, ештеңені өзгертпей аяқталады. aihummer update артефактіні жүктеп
алады, оның sha256 бақылау сомасы мен cosign қолтаңбасын тексереді, бинарлық
файлды ауыстырады, қызметті қайта іске қосады — содан кейін aihummer version
жаңа нұсқаны көрсетеді. Тексеру сәйкес келмесе, жаңарту файл ауыстырылғанға
дейін үзіледі: жұмыс істеп тұрған нұсқа қозғалмайды.
[!NOTE] Автоматты жаңартуды жеткізуші қосады, сіз емес. Автожаңартудың режимі мен кестесі шығарылымға қызмет көрсетудің құрамына кіреді және жеткізушінің қолтаңбасы қойылған нұсқауымен беріледі. Оған сәйкес ауыстырғыштар веб интерфейсте де,
aihummer settingsішінде де жоқ, алgateway.envфайлына жазылған автожаңарту айнымалыларын шлюз оқымайды — оларды сол жерден көрсеңіз, олар ештеңеге әсер етпейді. Өз кестеңізбен жаңарту үшін жоғарыдағыaihummer updateкомандасын қолданыңыз.
Кері қайтару
Не кері қайтарылады — тармақтап:
- Бинарлық файл — алдыңғы нұсқаға қайтарыла алады (бұрынғы шығарылымдардың артефактілері CDN-де қалады; қажет нұсқаны қайта орнатыңыз).
- Дерекқор сұлбасы — миграциялар алға қарай қауіпсіз, сондықтан алдыңғы бинарлық файл жаңа сұлбамен жұмыс істейді; бөлек сұлба кері қайтару жоқ.
- Плагиндер — нұсқалар әр орнату үшін бөлек басқарылады; қажет болса плагинді каталогтан кері қайтарыңыз.
- Конфигурация — жаңарту кезінде өзгермейді; қажет болса сақтық көшірмеден қалпына келтіріледі.
Нөлдік тоқтау уақытымен енгізу
AiHummer үзіліссіз жаңартуға арналған:
- Прокси арқылы 2+ шлюздерді іске қосыңыз. Оларды бір-бірден ораңыз; дайындық зондтары
(
/readyz) түйін қызмет көрсетіп тұрғанша оны қайта іске қосу процессінен шығарып тұрады. - Жоспарлаушы бір жетекшіге ие. Фондық жоспарлау бір ғана көшбасшыны таңдайды бірнеше шлюздерді іске қосу қайталанбайтындай, PostgreSQL кеңес беру құлы арқылы жоспарланған жұмыс.
- Жеткізу идемпотентті. Сенімді жеткізу және идемпотенттік кілттер дегеніміз жауап ешқашан қайтадан қайта іске қосқанда жіберілмейді, бұл бір айналымдық нәрсені жасайды қақпаларыңыз арқылы қауіпсіз қайта іске қосу.
Келесі қайда
- Қайта жүктеуді рөлдеуді бақылаушы зондтар: systemd және денсаулықты тексерулер.
- Үлкен жаңартудан бұрын сақтық көшірме жасаңыз: Сақтық көшірмелер және апаттан қорғау.
- Жеткізілімді көріңіз: Бақылануы.