ZStack функционалды архитектурасының негізгі мүмкіндіктері:
- Асинхронды архитектура: асинхронды хабарлама, асинхронды әдіс және асинхронды HTTP қоңырауы.
- ZStack әртүрлі қызметтерді қосу үшін хабарлар шинасын пайдаланады. Қызмет басқа қызметке қоңырау шалғанда, бастапқы қызмет тағайындалған қызметке хабар жібереді, кері қоңырау функциясын тіркейді, содан кейін бірден кері қайтарады. Тағайындалған қызмет тапсырманы аяқтағаннан кейін, ол бастапқы қызметпен тіркелген кері шақыру функциясын іске қосу арқылы тапсырманың нәтижесін хабарлайды. Асинхронды хабарламаларды параллель өңдеуге болады.
- ZStack қызметтері бір-бірімен асинхронды хабарламалар арқылы байланысады. Қызметтер ішінде сәйкес құрамдас бөліктер мен плагиндер де асинхронды әдістер арқылы шақырылады. Бұл әдістер асинхронды хабарламаларды шақыру әдістеріне ұқсас.
- ZStack ішіндегі әрбір плагиннің сәйкес агенті бар. ZStack кері шақыру URL мекенжайын әрбір сұраудың HTTP тақырыбына орналастырады. Осылайша, агенттер тапсырмаларды орындағаннан кейін жауаптарды қоңырау шалушының URL мекенжайына жібере алады.
- Асинхронды хабарламаға, асинхронды әдіске және асинхронды HTTP қоңырауына негізделген ZStack барлық құрамдастардың асинхронды әрекеттерді орындай алатынын қамтамасыз ететін деңгейлі архитектураны жасайды.
- Асинхронды архитектурасының арқасында жалғыз ZStack басқару түйіні секундына ондаған мың қатарлас API сұрауларын өңдей алады және бір уақытта ондаған мың серверлер мен жүздеген мың виртуалды машина даналарын басқара алады.
- Азаматтығы жоқ қызмет: бір сұрау басқа сұраулардан тәуелсіз.
- ZStack жүйесінде есептеу түйінінің агенттері, сақтау агенттері, желі қызметтері, консоль агенттері қызметтері және конфигурация қызметтері жіберген сұрауларды басқа сұрауларды пайдаланбай өңдеуге болады. Жіберілген сұраулар барлық қажетті ақпаратты қамтиды және байланысты түйіндерге ешқандай ақпаратты сақтау немесе сақтау қажет емес.
- ZStack бірегей идентификатор ретінде олардың UUID идентификаторын пайдалана отырып, дәйекті хэш сақинасы арқылы басқару түйіндері және есептеу түйіндері сияқты ресурстардың түпнұсқалығын растайды. Тұрақты хэштеу сақинасымен хабарлама жіберушіге қай қызмет данасы хабарды өңдейтінін білу қажет емес. Қызметтерге қандай ресурстарды басқаратыны туралы ақпаратты сақтау және алмасу қажет емес. Қызметтердің барлығы кіріс хабарламаларды өңдеу болып табылады.
- ZStack басқару түйіндері арасында аз ақпарат таратылады. Осылайша, кемінде екі басқару түйіні жоғары қолжетімділік пен масштабтау талаптарын қанағаттандыра алады.
- Азаматтығы жоқ қызмет көрсету механизмі жүйені сенімдірек етеді. Серверді қайта іске қосу кез келген күй ақпаратының жоғалуына әкелмейді. Ол сондай-ақ деректер орталығын үлкейтуді және кішірейтуді жеңілдетеді.
- Блоксыз архитектура: дәйекті хэштеу алгоритмі
- Тұрақты хэштеу алгоритмі бір ресурстың барлық хабарларының әрқашан бірдей қызмет данасы арқылы өңделуін қамтамасыз етеді. Осылайша, хабарламалар синхрондау мен параллельділіктің күрделілігін азайта отырып, көрсетілген түйінде жиналады.
- ZStack құлыптау дауын болдырмау үшін жұмыс кезегін пайдаланады. Кезекті тапсырмалар жадта жұмыс кезегі ретінде сақталады. Жүйенің параллельділігін жақсарту үшін жұмыс кезегі кез келген ресурстың кез келген операциясын қатар өңдей алады.
- Кезекке негізделген, блокталмаған архитектура тапсырмаларды параллель орындауға мүмкіндік береді, осылайша жүйе өнімділігін жақсартады.
- Процесстегі микросервистердің архитектурасы: микросервистерді бөлу
- ZStack әртүрлі қызметтерді оқшаулау және басқару үшін хабарлар шинасын пайдаланады, мысалы, виртуалды машина данасы қызметтері, идентификациялық аутентификация қызметтері, суретті түсіру қызметтері, көлем қызметтері, желі қызметтері және сақтау қызметтері. Барлық микросервистер бірдей басқару түйіні процесіне оралған. Бұл қызметтер бір-бірімен хабарлама шинасы арқылы байланысады. Барлық хабарламалар хабарлар шинасына жіберілгеннен кейін хабарларды қайта жіберу үшін тағайындалған қызмет тұрақты хэштеу сақинасымен таңдалады.
- Процесстегі микросервистер микросервистердің ішіндегі әрбір қызметтің дербес жұмыс істеуін қамтамасыз ете отырып, концентратор және спикер архитектурасын қамтамасыз етеді. Бұл архитектура сонымен қатар жоғары орталықтандырылған басқару бизнесін ажыратады және жүйе автономиясы мен оқшауланудың жоғары дәрежесін қамтамасыз етеді. Кез келген қызметтің істен шығуы басқа құрамдастарға әсер етпейді. Бұл жүйенің сенімділігі мен тұрақтылығына тиімді кепілдік береді.
- Әмбебап плагин жүйесі: плагиндердің көлденең кеңеюін қолдайды.
- ZStack-те әрбір плагин қызметтерді дербес қамтамасыз етеді. Кез келген жаңадан қосылған плагин басқа бар плагиндерге әсер етпейді.
- ZStack плагиндерді екі үлгіге бөледі: стратегия үлгісі және бақылаушы үлгісі. Саясат үлгісінің плагиндері ата-аналық сыныптың интерфейстерін иеленеді, содан кейін нақты іске асыруды жасайды. Бақылаушы үлгісінің плагиндері бағдарламадағы ішкі іскери логика оқиғаларының өзгерістерін бақылау үшін тыңдаушыны тіркейді. Қолданбада оқиға анықталғаннан кейін бақылаушы үлгісінің плагиндері оқиғаға автоматты түрде әрекет етеді және сәйкес бизнес ағынына әсер ету үшін код бөлігін орындайды.
- ZStack плагиндердің көлденең кеңеюін қолдайды. Жүйенің жалпы архитектурасы берік болған кезде бұлтты тез жаңартуға болады.
- Жұмыс процесі механизмі: реттілікке негізделген басқару, қатені қайтару
- ZStack XML файлдарын пайдаланып әрбір жұмыс процесін нақты анықтайды. Қателер орын алса, кез келген ағынды кері айналдыруға болады. Жұмыс процесі барлық бұрын орындалған қадамдарды кері қайтара алады және қадам қатеге тап болса, орындалу уақытында қоқыс ресурстарын тазалай алады.
- Әрбір жұмысшы процесі бизнес логикасын одан әрі бөлу үшін ішкі ағынды қамтуы мүмкін.
- Тегтер жүйесі: бизнес логикасын кеңейтеді және ресурс сипаттарын қосады.
- ZStack бастапқы бизнес логикасын кеңейту үшін жүйелік тегтер мен плагиндерді пайдаланады.
- Ресурстарды топтау және арнайы тегтері бар ресурстарды іздеу үшін тегтерді пайдалануға болады.
- Каскадтық құрылым: ресурстардағы каскадты операцияларды қолдайды.
- ZStack ресурстарда каскадты операцияларды орындау үшін каскадты құрылымды пайдаланады. Каскад құрылымы операцияны бір ресурстан басқа ресурстарға каскадтауға мүмкіндік береді. Мысалы, ресурстағы жою немесе жою әрекеті ұрпақ ресурстарына каскадты болуы мүмкін.
- Ресурстарды плагин арқылы каскадты құрылымға қосуға болады. Каскадтық құрылымға қосылу немесе одан шығу басқа ресурстарға әсер етпейді.
- Каскадты механизм ZStack конфигурациясын ресурс конфигурациясының өзгерістерін қанағаттандыру үшін икемді және қарапайым етеді.
- Ansible көмегімен толық автоматтандыру: Ansible көмегімен агентсіз, автоматтандырылған орналастыру
- Ansible бағдарламасымен (агенттерді қажет етпейтін) толық интеграцияланған ZStack автоматты түрде тәуелділіктерді орната алады, физикалық ресурстарды теңшей алады және агенттерді қолдана алады. Бұл бүкіл процесс пайдаланушылар үшін ашық және қосымша араласуды қажет етпейді. Агенттерді жай ғана қайта қосу арқылы жаңартуға болады.
- Кешенді сұрау API: Әрбір ресурстың әрбір сипатын сұрауға болады.
- ZStack миллиондаған сұрау шарттарын, күрделі сұрау API интерфейстерін және кез келген шарттар комбинациясын қолдайды.