Flexiant Cloud Orchestrator: u nima bilan birga keladi

Flexiant Cloud Orchestrator: u nima bilan birga keladi

IaaS (Virtual ma'lumotlar markazi) xizmatlarini taqdim etish uchun biz Rusonix biz tijorat orkestridan foydalanamiz Flexiant Cloud Orchestrator (FCO). Ushbu yechim juda noyob arxitekturaga ega bo'lib, uni keng ommaga ma'lum bo'lgan Openstack va CloudStack-dan ajratib turadi.

KVM, VmWare, Xen, Virtuozzo6/7, shuningdek, bir xil Virtuozzo konteynerlari hisoblash tugunlari gipervizorlari sifatida qo'llab-quvvatlanadi. Qo'llab-quvvatlanadigan saqlash opsiyalariga mahalliy, NFS, Ceph va Virtuozzo Storage kiradi.

FCO bir interfeysdan bir nechta klasterlarni yaratish va boshqarishni qo'llab-quvvatlaydi. Ya'ni, Virtuozzo klasterini va KVM + Ceph klasterini sichqonchani bosish orqali almashtirish orqali boshqarishingiz mumkin.

Asosiysi, FCO bulutli provayderlar uchun keng qamrovli yechim bo'lib, u orkestratsiyadan tashqari, barcha sozlamalar, to'lov plaginlari, fakturalar, bildirishnomalar, sotuvchilar, tariflar va boshqalar bilan hisob-kitoblarni ham o'z ichiga oladi. Biroq, hisob-kitob qismi barcha rus nuanslarini qoplashga qodir emas, shuning uchun biz boshqa yechim foydasiga foydalanishdan voz kechdik.

Men barcha bulutli resurslarga huquqlarni taqsimlashning moslashuvchan tizimidan juda mamnunman: tasvirlar, disklar, mahsulotlar, serverlar, xavfsizlik devorlari - bularning barchasi foydalanuvchilar o'rtasida va hatto turli mijozlar foydalanuvchilari o'rtasida "ulanish" va huquqlar berilishi mumkin. Har bir mijoz o'z bulutida bir nechta mustaqil ma'lumotlar markazlarini yaratishi va ularni bitta boshqaruv panelidan boshqarishi mumkin.

Flexiant Cloud Orchestrator: u nima bilan birga keladi

Arxitektura nuqtai nazaridan, FCO bir nechta qismlardan iborat bo'lib, ularning har biri o'z mustaqil kodiga ega, ba'zilari esa o'z ma'lumotlar bazasiga ega.

Skyline - administrator va foydalanuvchi interfeysi
Jade – biznes mantig‘i, hisob-kitob, vazifalarni boshqarish
Yo'lbars – xizmat koordinatori, biznes mantig‘i va klasterlar o‘rtasida axborot almashinuvini boshqaradi va muvofiqlashtiradi.
XVPManager – klaster elementlarini boshqarish: tugunlar, saqlash, tarmoq va virtual mashinalar.
XVPAgent – XVPManager bilan ishlash uchun tugunlarga o‘rnatilgan agent

Flexiant Cloud Orchestrator: u nima bilan birga keladi

Biz har bir komponentning arxitekturasi haqida batafsil hikoyani maqolalar seriyasiga kiritishni rejalashtirmoqdamiz, agar mavzu, albatta, qiziqish uyg'otsa.

FCO ning asosiy afzalligi uning "qutili" tabiatidan kelib chiqadi. Oddiylik va minimalizm sizning xizmatingizda. Boshqaruv tugunlari uchun Ubuntu-da bitta virtual mashina ajratilgan, unga barcha kerakli paketlar o'rnatilgan. Barcha sozlamalar konfiguratsiya fayllarida o'zgaruvchan qiymat shaklida joylashtirilgan:

# 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"
…

Butun konfiguratsiya dastlab shablonlarda tahrirlanadi, keyin generator ishga tushiriladi
#build-config, bu vars faylini yaratadi va xizmatlarga konfiguratsiyani qayta o'qishni buyuradi. Foydalanuvchi interfeysi yaxshi va uni osongina markalash mumkin.

Flexiant Cloud Orchestrator: u nima bilan birga keladi

Ko'rib turganingizdek, interfeys foydalanuvchi tomonidan boshqarilishi mumkin bo'lgan vidjetlardan iborat. U sahifadan vidjetlarni osongina qo'shishi/o'chirishi mumkin va shu bilan o'ziga kerakli asboblar panelini yaratadi.

Yopiq tabiatiga qaramay, FCO juda moslashtirilgan tizimdir. Unda ish jarayonini o'zgartirish uchun juda ko'p sozlamalar va kirish nuqtalari mavjud:

  1. Maxsus plaginlar qo'llab-quvvatlanadi, masalan, siz o'zingizning hisob-kitob usulingizni yoki foydalanuvchiga taqdim etish uchun o'zingizning tashqi manbangizni yozishingiz mumkin.
  2. Muayyan hodisalar uchun moslashtirilgan triggerlar qo'llab-quvvatlanadi, masalan, mijoz yaratilganda birinchi virtual mashinani qo'shish
  3. Interfeysdagi maxsus vidjetlar qo‘llab-quvvatlanadi, masalan, YouTube videosini to‘g‘ridan-to‘g‘ri foydalanuvchi interfeysiga joylashtirish.

Barcha sozlashlar Lua-ga asoslangan FDL-da yozilgan. Agar Lua bilsangiz, FDL bilan hech qanday muammo bo'lmaydi.

Mana biz foydalanadigan eng oddiy triggerlardan biriga misol. Ushbu trigger foydalanuvchilarga o'z rasmlarini boshqa mijozlar bilan baham ko'rishga ruxsat bermaydi. Biz buni bir foydalanuvchi boshqa foydalanuvchilar uchun zararli tasvir yaratishning oldini olish uchun qilamiz.

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

Registr funktsiyasi FCO yadrosi tomonidan chaqiriladi. U chaqiriladigan funksiya nomini qaytaradi. Ushbu funktsiyaning "p" parametri qo'ng'iroq kontekstini saqlaydi va birinchi marta chaqirilganda u bo'sh bo'ladi (nil). Bu bizga triggerimizni ro'yxatdan o'tkazish imkonini beradi. TriggerType-da biz tetik nashr qilish operatsiyasidan oldin ishga tushirilishini va faqat foydalanuvchilarga ta'sir qilishini bildiramiz. Albatta, biz tizim ma'murlariga hamma narsani nashr etishga ruxsat beramiz. TriggerOptions-da biz trigger ishga tushadigan operatsiyalarni batafsil bayon qilamiz.

Va asosiysi, {exitState = "CANCEL"} qaytishdir, shuning uchun trigger ishlab chiqilgan. Foydalanuvchi o'z tasvirini boshqaruv panelida baham ko'rishga harakat qilganda, u muvaffaqiyatsizlikni qaytaradi.

FCO arxitekturasida har qanday ob'ekt (disk, server, tasvir, tarmoq, tarmoq adapteri va boshqalar) umumiy parametrlarga ega bo'lgan Resurs ob'ekti sifatida taqdim etiladi:

  • Resurs UUID
  • resurs nomi
  • resurs turi
  • Resurs egasi UUID
  • resurs holati (faol, nofaol)
  • resurs metama'lumotlari
  • resurs kalitlari
  • Resursga egalik qiluvchi mahsulotning UUID
  • resurs VDC

Bu API yordamida ishlaganda, barcha resurslar bir xil printsip bo'yicha ishlaganda juda qulay. Mahsulotlar provayder tomonidan sozlanadi va mijoz tomonidan buyurtma qilinadi. Bizning hisob-kitobimiz yon tomonda bo'lganligi sababli, mijoz paneldan istalgan mahsulotga bepul buyurtma berishi mumkin. Keyinchalik hisob-kitobda hisoblab chiqiladi. Mahsulot soatiga IP-manzil, soatiga qo'shimcha GB disk yoki shunchaki server bo'lishi mumkin.

Kalitlar ular bilan ishlash mantiqini o'zgartirish uchun ma'lum resurslarni belgilash uchun ishlatilishi mumkin. Misol uchun, Weight tugmasi bilan uchta jismoniy tugunni belgilashimiz va ba'zi mijozlarni bir xil kalit bilan belgilashimiz mumkin va shu bilan ushbu tugunlarni shaxsan ushbu mijozlarga ajratamiz. Biz ushbu mexanizmdan VM yonidagi qo'shnilarini yoqtirmaydigan VIP mijozlar uchun foydalanamiz. Funktsionallikning o'zi ancha kengroq ishlatilishi mumkin.

Litsenziyalash modeli jismoniy tugunning har bir protsessor yadrosi uchun to'lovni o'z ichiga oladi. Narxga klaster turlarining soni ham ta'sir qiladi. Agar siz KVM va VMware-dan birgalikda foydalanishni rejalashtirmoqchi bo'lsangiz, masalan, litsenziya narxi oshadi.

FCO to'liq huquqli mahsulot bo'lib, uning funksionalligi juda boy, shuning uchun biz tarmoq qismining ishlashining batafsil tavsifi bilan bir vaqtning o'zida bir nechta maqolalarni tayyorlashni rejalashtirmoqdamiz.

Ushbu orkestr bilan bir necha yil ishlagan bo'lsak, biz uni juda mos deb belgilashimiz mumkin. Afsuski, mahsulot kamchiliklarsiz emas:

  • biz ma'lumotlar bazasini optimallashtirishga majbur bo'ldik, chunki so'rovlar sekinlasha boshladi, chunki ulardagi ma'lumotlar miqdori ko'paydi;
  • bitta baxtsiz hodisadan so'ng, tiklash mexanizmi xato tufayli ishlamadi va biz o'z skriptlarimiz to'plamidan foydalangan holda baxtsiz mijozlarning mashinalarini tiklashga majbur bo'ldik;
  • Tugunning mavjud emasligini aniqlash mexanizmi kodga qattiq ulangan va uni moslashtirib bo'lmaydi. Ya'ni, biz tugunning mavjud emasligini aniqlash uchun o'z siyosatimizni yarata olmaymiz.
  • ro'yxatga olish har doim ham batafsil emas. Ba'zan, ma'lum bir muammoni tushunish uchun juda past darajaga tushishingiz kerak bo'lganda, nima uchun ekanligini tushunish uchun ba'zi komponentlar uchun manba kodingiz etarli emas;

JAMI: Umuman olganda, mahsulotning taassurotlari yaxshi. Biz orkestr ishlab chiquvchilari bilan doimiy aloqadamiz. Yigitlar konstruktiv hamkorlikka moyil.

Oddiyligiga qaramay, FCO keng funksionallikka ega. Kelgusi maqolalarda biz quyidagi mavzularni chuqurroq o'rganishni rejalashtirmoqdamiz:

  • FCO da tarmoq
  • jonli qayta tiklash va FQP protokolini ta'minlash
  • o'zingizning plaginlaringiz va vidjetlaringizni yozish
  • Load Balancer va Acronis kabi qo'shimcha xizmatlarni ulash
  • zaxira
  • tugunlarni sozlash va sozlash uchun yagona mexanizm
  • virtual mashina metama'lumotlarini qayta ishlash

ZY Agar sizni boshqa jihatlar qiziqtirsa, izohlarda yozing. Yangiliklarni kuzatib boring, xabardor bo'lib boring; Biz bilan qoling!

Manba: www.habr.com

a Izoh qo'shish