Flexiant Cloud Orchestrator: sa čime se jede

Flexiant Cloud Orchestrator: sa čime se jede

Za pružanje IaaS (Virtuelni Data Center) usluge, mi Rusonyx koristimo komercijalni orkestrator Flexiant Cloud Orchestrator (FCO). Ovo rješenje ima prilično jedinstvenu arhitekturu, koja ga razlikuje od Openstack-a i CloudStack-a, poznatih široj javnosti.

KVM, VmWare, Xen, Virtuozzo6/7, kao i kontejneri iz istog Virtuozzoa su podržani kao hipervizori računarskih čvorova. Podržane opcije skladištenja uključuju lokalno, NFS, Ceph i Virtuozzo skladište.

FCO podržava kreiranje i upravljanje višestrukim klasterima iz jednog interfejsa. To jest, možete upravljati virtuozzo klasterom i KVM + Ceph klasterom tako što ćete se prebacivati ​​između njih klikom miša.

U svojoj osnovi, FCO je sveobuhvatno rješenje za cloud provajdere, koje osim orkestracije uključuje i naplatu, sa svim postavkama, dodatke za plaćanje, fakture, obavijesti, prodavce, tarife itd. Međutim, obračunski dio nije u stanju pokriti sve ruske nijanse, pa smo odustali od njegove upotrebe u korist drugog rješenja.

Veoma sam zadovoljan fleksibilnim sistemom za distribuciju prava na sve resurse u oblaku: slike, diskove, proizvode, servere, firewall - sve se to može "dijeliti" i dodijeliti prava između korisnika, pa čak i između korisnika različitih klijenata. Svaki klijent može kreirati nekoliko nezavisnih centara podataka u svom oblaku i upravljati njima sa jedne kontrolne table.

Flexiant Cloud Orchestrator: sa čime se jede

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

linija horizonta – administratorsko i korisničko sučelje
žad – poslovna logika, naplata, upravljanje zadacima
tigerlily – koordinator usluga, upravlja i koordinira razmjenu informacija između poslovne logike i klastera.
XVPManager – upravljanje elementima klastera: čvorovi, skladište, mreže i virtuelne mašine.
XVPAgent – agent instaliran na čvorovima za interakciju sa XVPManagerom

Flexiant Cloud Orchestrator: sa čime se jede

Planiramo da u seriju članaka uključimo detaljnu priču o arhitekturi svake komponente, ako, naravno, tema izazove interesovanje.

Glavna prednost FCO proizlazi iz njegove „upakirane“ prirode. Jednostavnost i minimalizam su Vam na usluzi. Za kontrolni čvor je dodijeljena jedna virtuelna mašina na Ubuntu-u u koju su instalirani svi potrebni paketi. Sve postavke su smještene u konfiguracijske datoteke u obliku promjenljive 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 u početku uređuje u šablonima, a zatim se pokreće generator
#build-config koji će generirati vars datoteku i narediti servisima da ponovo pročitaju konfiguraciju. Korisničko sučelje je lijepo i može se lako brendirati.

Flexiant Cloud Orchestrator: sa čime se jede

Kao što vidite, interfejs se sastoji od widgeta koje korisnik može kontrolisati. On može lako dodati/ukloniti widgete sa stranice, stvarajući tako kontrolnu tablu koja mu je potrebna.

Uprkos svojoj zatvorenoj prirodi, FCO je veoma prilagodljiv sistem. Ima ogroman broj postavki i ulaznih tačaka za promjenu toka posla:

  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 prve virtualne mašine klijentu kada se kreira
  3. Podržani su prilagođeni widgeti u interfejsu, na primjer, ugrađivanje YouTube videa direktno u korisnički interfejs.

Sva prilagođavanja su napisana u FDL-u, koji je baziran na Lua. Ako poznajete Lua, neće biti problema sa FDL-om.

Evo primjera jednog od najjednostavnijih okidača koje koristimo. Ovaj okidač ne dozvoljava korisnicima da dijele svoje slike s drugim klijentima. Ovo radimo kako bismo spriječili jednog korisnika da kreira 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

Funkciju registra će pozvati FCO kernel. Vratit će ime 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 registrujemo naš okidač. U triggerType označavamo da se okidač poziva PRIJE operacije objavljivanja i utječe samo na korisnike. Naravno, dozvoljavamo administratorima sistema da objave sve. U triggerOptions detaljno opisujemo operacije za koje će se okidač aktivirati.

A glavna stvar je povratak {exitState = “CANCEL”}, zbog čega je okidač razvijen. Vratiće grešku kada korisnik pokuša da podeli svoju sliku na kontrolnoj tabli.

U FCO arhitekturi, svaki objekat (disk, server, slika, mreža, mrežni adapter, itd.) je predstavljen kao Resursni entitet, koji ima zajedničke parametre:

  • UUID resursa
  • naziv resursa
  • tip resursa
  • UUID vlasnika resursa
  • status resursa (aktivan, neaktivan)
  • metapodaci resursa
  • ključevi resursa
  • UUID proizvoda koji posjeduje resurs
  • resurs VDC

Ovo je vrlo zgodno kada radite koristeći API, kada svi resursi rade po istom principu. Proizvode konfiguriše dobavljač, a naručuje klijent. S obzirom da je naš obračun 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 server.

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 pomoću Weight ključa, a neke klijente označiti istim ključem, a na taj način dodijeliti te čvorove lično tim klijentima. Ovaj mehanizam koristimo za VIP klijente koji ne vole komšije pored svojih VM-ova. Sama funkcionalnost se može koristiti mnogo šire.

Model licenciranja uključuje plaćanje za svaku procesorsku jezgru fizičkog čvora. Na cijenu također utiče broj tipova klastera. Na primjer, ako 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.

Nakon nekoliko godina rada sa ovim orkestratorom, možemo ga označiti kao veoma pogodnog. Nažalost, proizvod nije bez nedostataka:

  • morali smo optimizirati bazu podataka jer su upiti počeli usporavati kako se količina podataka u njima povećavala;
  • nakon jedne nesreće, mehanizam za oporavak nije radio zbog greške i morali smo oporaviti automobile nesretnih klijenata koristeći vlastiti set skripti;
  • Mehanizam za otkrivanje nedostupnosti čvora je ugrađen u kod i ne može se prilagoditi. To jest, ne možemo kreirati vlastite politike za utvrđivanje nedostupnosti čvora.
  • evidentiranje nije uvijek detaljno. Ponekad, kada morate da se spustite na veoma nizak nivo da biste razumeli određeni problem, nemate dovoljno izvornog koda za neke komponente da biste razumeli zašto;

UKUPNO: Općenito, utisci o proizvodu su dobri. U stalnom smo kontaktu sa programerima orkestratora. Momci su raspoloženi za konstruktivnu saradnju.

Uprkos svojoj jednostavnosti, FCO ima široku funkcionalnost. U budućim člancima planiramo dublje proći kroz sljedeće teme:

  • umrežavanje u FCO
  • pružanje oporavka uživo i FQP protokola
  • pisanje vlastitih dodataka i widgeta
  • povezivanje dodatnih usluga kao što su Load Balancer i Acronis
  • backup
  • jedinstveni mehanizam za konfigurisanje i konfigurisanje čvorova
  • obrada metapodataka virtuelne mašine

ZY Pišite u komentarima ako vas zanimaju drugi aspekti. Stay tuned!

izvor: www.habr.com

Dodajte komentar