Flexiant Cloud Orchestrator: što dolazi

Flexiant Cloud Orchestrator: što dolazi

Za pružanje IaaS (Virtual Data Center) usluga, mi Rusoniks koristimo komercijalnog orkestratora Flexiant Cloud Orchestrator (FCO). Ovo rješenje ima prilično jedinstvenu arhitekturu, koja ga razlikuje od Openstacka i CloudStacka, poznatih široj javnosti.

KVM, VmWare, Xen, Virtuozzo6/7, kao i spremnici iz istog Virtuozza podržani su kao hipervizori računalnih čvorova. Podržane opcije pohrane uključuju lokalnu, NFS, Ceph i Virtuozzo pohranu.

FCO podržava stvaranje i upravljanje višestrukim klasterima iz jednog sučelja. To jest, možete upravljati Virtuozzo klasterom i KVM + Ceph klasterom tako da se između njih izmjenjujete klikom miša.

U svojoj srži, FCO je sveobuhvatno rješenje za pružatelje usluga u oblaku, koje osim orkestracije uključuje i naplatu, sa svim postavkama, dodatke za plaćanje, fakture, obavijesti, preprodavače, tarife i tako dalje. Međutim, dio za naplatu ne može pokriti sve ruske nijanse, pa smo napustili njegovu upotrebu u korist drugog rješenja.

Jako sam zadovoljan fleksibilnim sustavom raspodjele prava na sve resurse u oblaku: slike, diskove, proizvode, servere, vatrozide - sve se to može "dijeliti" i dodjeljivati ​​prava između korisnika, pa čak i između korisnika različitih klijenata. Svaki klijent može stvoriti nekoliko neovisnih podatkovnih centara u svom oblaku i njima upravljati s jedne upravljačke ploče.

Flexiant Cloud Orchestrator: što dolazi

Arhitektonski, FCO se sastoji od nekoliko dijelova od kojih svaki ima svoj neovisni kod, a neki imaju svoju bazu podataka.

Linija horizonta – administrativno i korisničko sučelje
Žad – poslovna logika, naplata, upravljanje zadacima
Tigerlily – koordinator usluge, upravlja i koordinira razmjenu informacija između poslovne logike i klastera.
XVPManager – upravljanje elementima klastera: čvorovi, pohrana, mreža i virtualni strojevi.
XVPAgent – agent instaliran na čvorovima za interakciju s XVPManagerom

Flexiant Cloud Orchestrator: što dolazi

Detaljnu priču o arhitekturi svake komponente planiramo uključiti u seriju članaka, ako, naravno, tema pobudi interes.

Glavna prednost FCO-a proizlazi iz njegove "kutijaste" prirode. Jednostavnost i minimalizam su vam na usluzi. Za kontrolni čvor dodijeljen je jedan virtualni stroj na Ubuntuu u koji su instalirani svi potrebni paketi. Sve postavke smještene su u konfiguracijske datoteke u obliku varijable-vrijednosti:

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

Cijela konfiguracija se inicijalno uređuje u predlošcima, a zatim se pokreće generator
#build-config koji će generirati vars datoteku i narediti uslugama da ponovno pročitaju konfiguraciju. Korisničko sučelje je lijepo i lako se može brendirati.

Flexiant Cloud Orchestrator: što dolazi

Kao što vidite, sučelje se sastoji od widgeta kojima korisnik može upravljati. On može jednostavno dodati/ukloniti widgete sa stranice, stvarajući tako nadzornu ploču koja mu je potrebna.

Unatoč svojoj zatvorenoj prirodi, FCO je vrlo prilagodljiv sustav. Ima ogroman broj postavki i ulaznih točaka za promjenu tijeka rada:

  1. Podržani su prilagođeni dodaci, na primjer, možete napisati vlastiti način naplate ili vlastiti vanjski resurs kako biste korisniku pružili
  2. Podržani su prilagođeni okidači za određene događaje, na primjer, dodavanje prvog virtualnog računala klijentu kada se stvori
  3. Podržani su prilagođeni widgeti u sučelju, na primjer, ugradnja YouTube videa izravno u korisničko sučelje.

Sve prilagodbe napisane su u FDL-u, koji se temelji na Lua. Ako znate Lua, neće biti problema s FDL-om.

Evo primjera jednog od najjednostavnijih okidača koje koristimo. Ovaj okidač ne dopušta korisnicima dijeljenje vlastitih slika s drugim klijentima. To činimo kako bismo spriječili jednog korisnika da stvori zlonamjernu sliku za druge korisnike.

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 kernel će pozvati funkciju register. Vratit će naziv funkcije koju treba pozvati. Parametar “p” ove funkcije pohranjuje kontekst poziva, a prvi put kada se pozove bit će prazan (nula). Što će nam omogućiti da registriramo naš okidač. U triggerType označavamo da se okidač poziva PRIJE operacije objavljivanja i da utječe samo na korisnike. Naravno, dopuštamo administratorima sustava da sve objave. U triggerOptions detaljno opisujemo operacije za koje će se aktivirati okidač.

A glavna stvar je return {exitState = “CANCEL”}, zbog čega je razvijen okidač. Vratit će grešku kada korisnik pokuša podijeliti svoju sliku na upravljačkoj ploči.

U FCO arhitekturi, bilo koji objekt (disk, poslužitelj, slika, mreža, mrežni adapter itd.) predstavljen je kao resursni entitet koji ima zajedničke parametre:

  • UUID resursa
  • naziv resursa
  • vrsta resursa
  • UUID vlasnika resursa
  • status resursa (aktivno, neaktivno)
  • metapodaci resursa
  • ključevi resursa
  • UUID proizvoda koji posjeduje resurs
  • resurs VDC

Ovo je vrlo zgodno kada se radi pomoću API-ja, kada svi resursi rade prema istom principu. Proizvode konfigurira dobavljač, a naručuje ih klijent. Budući da je naša naplata sa strane, klijent može slobodno naručiti bilo koji proizvod sa panela. Obračunat će se kasnije u obračunu. Proizvod može biti IP adresa po satu, dodatni GB diska po satu ili samo poslužitelj.

Ključevi se mogu koristiti za označavanje određenih resursa kako bi se promijenila logika rada s njima. Na primjer, možemo označiti tri fizička čvora s tipkom Weight i označiti neke klijente s istim ključem, čime se ti čvorovi osobno dodjeljuju tim klijentima. Ovaj mehanizam koristimo za VIP klijente koji ne vole susjede pored svojih VM. Sama funkcionalnost može se koristiti mnogo šire.

Model licenciranja uključuje plaćanje svake procesorske jezgre fizičkog čvora. Na cijenu također utječe broj tipova klastera. Ako, na primjer, planirate koristiti KVM i VMware zajedno, cijena licence će se povećati.

FCO je punopravni proizvod, njegova funkcionalnost je vrlo bogata, pa planiramo pripremiti nekoliko članaka odjednom s detaljnim opisom funkcioniranja mrežnog dijela.

Radeći s ovim orkestrom nekoliko godina, možemo ga ocijeniti vrlo prikladnim. Nažalost, proizvod nije bez nedostataka:

  • morali smo optimizirati bazu jer su upiti počeli usporavati kako se količina podataka u njima povećavala;
  • nakon jedne nesreće, mehanizam oporavka nije radio zbog buga, te smo morali oporaviti automobile nesretnih klijenata pomoću vlastitog skupa skripti;
  • Mehanizam za otkrivanje nedostupnosti čvora ugrađen je u kod i ne može se prilagoditi. Odnosno, ne možemo kreirati vlastita pravila za određivanje nedostupnosti čvora.
  • evidentiranje nije uvijek detaljno. Ponekad, kada se trebate spustiti na vrlo nisku razinu da biste razumjeli određeni problem, nemate dovoljno izvornog koda za neke komponente da biste razumjeli zašto;

UKUPNO: Općenito, dojmovi o proizvodu su dobri. U stalnom smo kontaktu s programerima orkestratora. Dečki su raspoloženi za konstruktivnu suradnju.

Unatoč svojoj jednostavnosti, FCO ima široku funkcionalnost. U budućim člancima planiramo se dublje pozabaviti sljedećim temama:

  • umrežavanje u FCO
  • pružanje live-recovery i FQP protokola
  • pisanje vlastitih dodataka i widgeta
  • povezivanje dodatnih usluga kao što su Load Balancer i Acronis
  • sigurnosna kopija
  • unificirani mehanizam za konfiguriranje i konfiguriranje čvorova
  • obrada metapodataka virtualnog stroja

ZY Napišite u komentarima ako vas zanimaju drugi aspekti. Ostanite s nama!

Izvor: www.habr.com

Dodajte komentar