Flexiant Cloud Orchestrator: бул эмне менен коштолот

Flexiant Cloud Orchestrator: бул эмне менен коштолот

IaaS (Виртуалдык маалымат борбору) кызматтарын көрсөтүү үчүн, биз Русоникс биз коммерциялык оркестрди колдонобуз Flexiant Cloud Orchestrator (FCO). Бул чечимдин жалпы коомчулукка белгилүү болгон Openstack жана CloudStackтен айырмалап турган уникалдуу архитектурасы бар.

KVM, VmWare, Xen, Virtuozzo6/7, ошондой эле ошол эле Virtuozzo контейнерлери эсептөө түйүнүнүн гипервизорлору катары колдоого алынат. Колдоого алынган сактоо параметрлери жергиликтүү, NFS, Ceph жана Virtuozzo Storage камтыйт.

FCO бир интерфейстен бир нече кластерлерди түзүүнү жана башкарууну колдойт. Башкача айтканда, Virtuozzo кластерин жана KVM + Ceph кластерин алардын ортосунда чычканды чыкылдатуу менен которуштуруу менен башкара аласыз.

Негизинен, FCO булут провайдерлери үчүн комплекстүү чечим болуп саналат, ал оркестрден тышкары, бардык орнотуулар, төлөм плагиндери, эсеп-фактуралар, эскертмелер, сатуучулар, тарифтер жана башкалар менен эсеп-кысапты камтыйт. Бирок, эсеп-кысап бөлүгү бардык россиялык нюанстарды камтууга жөндөмдүү эмес, ошондуктан биз башка чечимдин пайдасына аны колдонуудан баш тарттык.

Мен бардык булут ресурстарына укуктарды бөлүштүрүүнүн ийкемдүү системасы менен абдан ыраазымын: сүрөттөр, дисктер, өнүмдөр, серверлер, брандмауэрлер - мунун бардыгын колдонуучулардын ортосунда, ал тургай ар кандай кардарлардын колдонуучуларынын ортосунда да “бөлүштүрүүгө” жана укуктарды берүүгө болот. Ар бир кардар булутунда бир нече көз карандысыз маалымат борборлорун түзүп, аларды бир башкаруу панелинен башкара алат.

Flexiant Cloud Orchestrator: бул эмне менен коштолот

Архитектуралык жактан алганда, FCO бир нече бөлүктөн турат, алардын ар биринин өз алдынча коду бар, ал эми кээ бирлеринин өзүнүн маалымат базасы бар.

Скайлайн – администратор жана колдонуучу интерфейси
Jade – бизнес логикасы, эсеп коюу, тапшырмаларды башкаруу
tigerlily – кызматтын координатору, бизнес логикасы менен кластерлердин ортосундагы маалымат алмашууну башкарат жана координациялайт.
XVPManager – кластердик элементтерди башкаруу: түйүндөр, сактоо, тармак жана виртуалдык машиналар.
XVPAgent – XVPManager менен иштешүү үчүн түйүндөргө орнотулган агент

Flexiant Cloud Orchestrator: бул эмне менен коштолот

Ар бир компоненттин архитектурасы тууралуу кеңири баянды макалалар сериясына кошууну пландап жатабыз, эгер, албетте, тема кызыгууну жаратса.

FCO негизги артыкчылыгы анын "кутуланган" мүнөзүнөн келип чыгат. Жөнөкөйлүк жана минимализм сиздин кызматыңызда. Башкаруу түйүнү үчүн Ubuntuдогу бир виртуалдык машина бөлүнгөн, ага бардык керектүү пакеттер орнотулган. Бардык орнотуулар өзгөрмө-маани түрүндө конфигурация файлдарына жайгаштырылат:

# cat /etc/extility/config/vars
…
export LIMIT_MAX_LIST_ADMIN_DEFAULT="30000"
export LIMIT_MAX_LIST_USER_DEFAULT="200"
export LOGDIR="/var/log/extility"
export LOG_FILE="misc.log"
export LOG_FILE_LOG4JHOSTBILLMODULE="hostbillmodule.log"
export LOG_FILE_LOG4JJADE="jade.log"
export LOG_FILE_LOG4JTL="tigerlily.log"
export LOG_FILE_LOG4JXVP="xvpmanager.log"
export LOG_FILE_VARS="misc.log"
…

Бүт конфигурация алгач калыптарда редакцияланат, андан кийин генератор ишке киргизилет
#build-config, ал vars файлын жаратат жана кызматтарга конфигурацияны кайра окууга буйрук берет. Колдонуучунун интерфейси жакшы жана оңой бренд болушу мүмкүн.

Flexiant Cloud Orchestrator: бул эмне менен коштолот

Көрүнүп тургандай, интерфейс колдонуучу тарабынан башкара ала турган виджеттерден турат. Ал барактан виджеттерди оңой эле кошуп/алып салышы мүмкүн, ошону менен өзүнө керектүү аспаптар тактасын түзө алат.

Жабык мүнөзүнө карабастан, FCO - бул өтө ыңгайлаштырылган система. Иш процессин өзгөртүү үчүн көптөгөн орнотуулар жана кирүү пункттары бар:

  1. Ыңгайлаштырылган плагиндер колдоого алынат, мисалы, колдонуучуну камсыз кылуу үчүн өзүңүздүн эсеп коюу ыкмасын же өзүңүздүн тышкы ресурсуңузду жаза аласыз.
  2. Белгилүү окуялар үчүн ыңгайлаштырылган триггерлер колдоого алынат, мисалы, биринчи виртуалдык машинаны кардарга ал түзүлгөндө кошуу
  3. Интерфейстеги ыңгайлаштырылган виджеттер колдоого алынат, мисалы, YouTube видеосун түздөн-түз колдонуучунун интерфейсине кыстаруу.

Бардык ыңгайлаштыруу Lua негизделген FDL жазылган. Эгер сиз Луаны билсеңиз, FDL менен эч кандай көйгөй болбойт.

Бул жерде биз колдонгон эң жөнөкөй триггерлердин биринин мисалы. Бул триггер колдонуучуларга өз сүрөттөрүн башка кардарлар менен бөлүшүүгө жол бербейт. Биз муну бир колдонуучу башка колдонуучулар үчүн зыяндуу сүрөт жаратуусуна жол бербөө үчүн жасайбыз.

function register()
    return {"pre_user_api_publish"}
end
   
function pre_user_api_publish(p)  
    if(p==nil) then
        return{
            ref = "cancelPublishImage",
            name = "Cancel publishing",
            description = "Cancel all user’s images publishing",
            triggerType = "PRE_USER_API_CALL",
            triggerOptions = {"publishResource", "publishImage"},
            api = "TRIGGER",
            version = 1,
        }
    end

    -- Turn publishing off
    return {exitState = "CANCEL"}
   
end

Каттоо функциясы FCO ядросу тарабынан чакырылат. Ал чакырыла турган функциянын атын кайтарат. Бул функциянын “p” параметри чалуу контекстин сактайт жана ал биринчи жолу чакырылганда бош (нөл) болот. Бул бизге триггерди каттоого мүмкүндүк берет. triggerType'де биз триггер жарыялоо операциясынан АЛДЫН АКЧА чакырылып, колдонуучуларга гана таасир этээрин көрсөтөбүз. Албетте, биз системалык администраторлорго бардыгын жарыялоого уруксат беребиз. triggerOptions бөлүмүндө биз триггер иштей турган операцияларды деталдаштырабыз.

Ал эми негизги нерсе кайтаруу {exitState = "CANCEL"}, ошондуктан триггер иштелип чыккан. Колдонуучу башкаруу панелинен өз сүрөтүн бөлүшүүгө аракет кылганда, ал ийгиликсиздикти кайтарат.

FCO архитектурасында кандайдыр бир объект (диск, сервер, сүрөт, тармак, тармак адаптери ж.б.) жалпы параметрлерге ээ болгон Ресурстук объект катары көрсөтүлөт:

  • UUID ресурсу
  • ресурстун аталышы
  • ресурс түрү
  • Ресурс ээси UUID
  • ресурстун абалы (активдүү, жигердүү эмес)
  • ресурстун метадайындары
  • ресурс ачкычтары
  • Ресурска ээлик кылган продуктунун UUID
  • ресурс VDC

Бул API менен иштөөдө, бардык ресурстар бирдей принцип боюнча иштегенде абдан ыңгайлуу. Продукт провайдер тарабынан конфигурацияланат жана кардар тарабынан заказ кылынат. Биздин эсеп-кысап тарапта болгондуктан, кардар панелден каалаган продуктуга эркин заказ бере алат. Ал кийинчерээк эсепке алынат. Продукт саатына IP дареги, саатына кошумча ГБ диск же жөн эле сервер болушу мүмкүн.

Ачкычтар алар менен иштөө логикасын өзгөртүү үчүн белгилүү бир ресурстарды белгилөө үчүн колдонулушу мүмкүн. Мисалы, биз үч физикалык түйүндү Weight ачкычы менен белгилей алабыз жана кээ бир кардарларды ошол эле ачкыч менен белгилей алабыз, ошону менен бул түйүндөрдү бул кардарларга жекече бөлүштүрөбүз. Биз бул механизмди VM жанындагы кошуналарды жактырбаган VIP кардарлар үчүн колдонобуз. Функционалдыктын өзүн алда канча кеңири колдонсо болот.

Лицензиялоо модели физикалык түйүндүн ар бир процессор өзөгү үчүн төлөөнү камтыйт. Баага кластердин түрлөрүнүн саны да таасир этет. Эгер сиз KVM жана VMware программаларын чогуу колдонууну пландаштырсаңыз, мисалы, лицензиянын баасы жогорулайт.

FCO - бул толук кандуу продукт, анын функционалдуулугу абдан бай, ошондуктан биз тармактык бөлүгүнүн иштешин деталдуу баяндоо менен бир эле учурда бир нече макалаларды даярдоону пландаштырып жатабыз.

Бул оркестр менен бир нече жыл иштегендиктен, биз аны абдан ылайыктуу деп белгилей алабыз. Тилекке каршы, продукт кемчиликтери жок эмес:

  • биз маалымат базасын оптималдаштырууга туура келди, анткени алардагы маалыматтардын көлөмү көбөйгөн сайын сурамдар жайлай баштады;
  • бир кырсыктан кийин, калыбына келтирүү механизми катадан улам иштебей калды жана биз өзүбүздүн скрипттердин топтомун колдонуп, бактысыз кардарлардын унааларын калыбына келтирүүгө туура келди;
  • Түйүндүн жетишсиздигин аныктоо механизми кодго туташтырылган жана аны ыңгайлаштыруу мүмкүн эмес. Башкача айтканда, түйүндүн жеткиликтүү эместигин аныктоо үчүн өзүбүздүн саясатыбызды түзө албайбыз.
  • каттоо дайыма эле майда-чүйдөсүнө чейин эмес. Кээде, белгилүү бир көйгөйдү түшүнүү үчүн өтө төмөн деңгээлге түшүү керек болгондо, эмне үчүн экенин түшүнүү үчүн кээ бир компоненттер үчүн булак коду жетишсиз;

КОРУТУНДУ: Жалпысынан алганда, буюмдун таасирлери жакшы. Биз оркестрди иштеп чыгуучулар менен дайыма байланыштабыз. Жигиттер конструктивдүү кызматташууга умтулушат.

Жөнөкөйлүгүнө карабастан, FCO кеңири функцияларга ээ. Кийинки макалаларда биз төмөнкү темаларга тереңирээк киришүүнү пландап жатабыз:

  • FCO тармагында иштөө
  • жандуу-калыбына келтирүү жана FQP протоколун камсыз кылуу
  • өз плагиндериңизди жана виджетиңизди жазуу
  • Load Balancer жана Acronis сыяктуу кошумча кызматтарды туташтыруу
  • камдык көчүрмө
  • түйүндөрдү конфигурациялоо жана конфигурациялоо үчүн бирдиктүү механизм
  • виртуалдык машинанын метадайындарын иштетүү

PS Башка аспектилерге кызыксаңыз, комментарийге жазыңыз. Байланыштуу болуңуз!

Source: www.habr.com

Комментарий кошуу