Flexiant Cloud Orchestrator: s čim se ga uživa

Flexiant Cloud Orchestrator: s čim se ga uživa

Za zagotavljanje storitev IaaS (Virtualni podatkovni center) uporabljamo Rusonyx komercialni orkestrator Flexiant Cloud Orchestrator (FCO). To rešitev odlikuje edinstvena arhitektura, ki jo razlikuje od bolj znanih rešitev, kot sta Openstack in CloudStack.

Kot hipervizorji za compute vozlišča podpiramo KVM, VmWare, Xen, Virtuozzo6/7, ter konteinerje istoimenske znamke Virtuozzo. Med podprtimi shrambe so lokalne, NFS, Ceph in Virtuozzo Storage.

FCO omogoča ustvarjanje več grozdov in upravljanje z njimi iz enega vmesnika. To pomeni, da lahko upravljate grozd Virtuozzo in grozd KVM + Ceph, tako da preklapljate med njimi z enim klikom miške.

FCO je v bistvu celovita rešitev za ponudnike oblačnih storitev, ki poleg orkestracije vključuje tudi billing, z vsemi nastavitvami, plačilnimi vtičniki, računi, obvestili, posredniki, tarifami in tako naprej. Vendar pa zadostni del billing rešitve ne pokriva vseh ruski specifik, zato smo se odločili, da od nje odstopimo v korist druge rešitve.

Zelo pozitivno je, da imamo prilagodljiv sistem za razporeditev pravic na vse vire oblačne storitve: slike, diske, izdelke, strežnike, požarne zidove – vse to lahko "deli" in dodeljuje pravice med uporabniki, celo med uporabniki različnih strank. Vsaka stranka lahko v svojem oblaku ustvari več neodvisnih podatkovnih centrov in z njimi upravlja iz enotne nadzorne plošče.

Flexiant Cloud Orchestrator: s čim se ga uživa

Arhitekturno FCO sestavljajo več delov, od katerih ima vsak svoj neodvisen kodo, nekateri pa tudi svojo lastno bazo podatkov.

Skyline – administratorski in uporabniški vmesnik
Jade – poslovna logika, billing, upravljanje nalog
Tigerlily – koordinator storitev, upravlja in usklajuje izmenjavo informacij med poslovno logiko in grozdi.
XVPManager – upravljanje elementov grozda: vozli, shrambe, omrežja in virtualnih strojev.
XVPAgent – agent, nameščen na vozliščih za interakcijo z XVPManagerjem

Flexiant Cloud Orchestrator: s čim se ga uživa

Podrobno pripoved o arhitekturi vsake komponente načrtujemo vključiti v serijo člankov, če bo tema seveda vzbudila zanimanje.

Glavna prednost FCO proizlazi iz njegove "kutijaste" strukture. Na raspolaganju su vam jednostavnost i minimalizam. Za upravljačku nodu dodeljuje se jedna virtuelna mašina na Ubuntu-u, na koju se instaliraju svi potrebni paketi. Sve postavke su smeštene u konfiguracione datoteke u obliku varijabla-vrednost:

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

Cela konfiguracija se prvobitno uređuje u šablonima, zatim se pokreće generator
#build-config который сформирует файл vars и даст команду сервисам перечитать конфиг. Пользовательский интерфейс приятный и может быть легко забрендирован.

Flexiant Cloud Orchestrator: s čim se ga uživa

Kao što se može videti, interfejs se sastoji od vidžeta, čija je kontrola dostupna korisniku. On može lako dodavati/uklanjati vidžete sa stranice, čime formira svoj potrebni dashboard.

I pored svoje zatvorenosti, FCO je veoma prilagodljiv sistem. Ima mnoštvo postavki i tačaka za promenu workflow-a:

  1. Podržani su prilagođeni dodaci, na primer, možete napisati svoju metodu za naplatu ili vlastiti eksterni resurs za korisnika
  2. Podržani su prilagođeni okidači za određene događaje, kao što je dodavanje prve virtuelne mašine klijentu prilikom njegovog kreiranja
  3. Podržani su prilagođeni vidžeti u interfejsu, na primer, možete ugraditi video s YouTube-a direktno u korisnički interfejs.

Sve prilagodbe se rade na jeziku FDL, koji se bazira na Lua. Ako znate Lua, s FDL-om nećete imati problema.

Evo primera jednog od najjednostavnijih okidača koje koristimo. Ovaj okidač ne dozvoljava korisnicima da dele svoje sopstvene slike sa drugim klijentima. To radimo kako bismo sprečili jednog korisnika da stvori zlonamernu 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

Funkcija register će biti pozvana od strane jezgra FCO-a. Ona će vratiti ime funkcije koja treba biti pozvana. Parametar “p” ove funkcije čuva kontekst poziva, i pri prvom pozivu biće prazan (nil). Što će nam omogućiti da registrujemo naš okidač. U triggerType ukazujemo da se okidač poziva PRE operacije objavljivanja, i odnosi se samo na korisnike. Administratorima sistema, naravno, dozvoljavamo da objavljuju sve. U triggerOptions detaljno opisujemo operacije za koje će okidač delovati.

I najvažnije – return {exitState = “CANCEL”}, za šta je okidač i razvijen. Vratit će neuspeh kada korisnik pokuša da deli svoju sliku u kontrolnoj tabli.

V arhitekturi FCO je vsaka stvar (disk, strežnik, slika, omrežje, omrežni adapter itd.) predstavljen kot entiteta Resource, ki ima skupne parametre:

  • UUID vira
  • ime vira
  • tip vira
  • UUID lastnika vira
  • status vira (aktiven, neaktiven)
  • metapodatki vira
  • ključi vira
  • UUID produkta, kateremu pripada vir
  • VDC vira

To je zelo priročno pri delu po API-ju, ko se z vsemi viri ravna po enakem principu. Produkte nastavi ponudnik, stranka pa jih naroči. Ker imamo billing ločeno, lahko stranka prosto in brezplačno naroča kateri koli produkt iz nadzorne plošče. Ta bo kasneje izračunan v billing-u. Produkt je lahko – ip naslov na uro, dodaten GB diska na uro ali preprosto strežnik.

Ključi lahko označijo določene vire za spremembo logike dela z njimi. Na primer, lahko označimo tri fizične vozle s ključem Teža in nekatere stranke s tem istim ključem, s čimer izpostavimo te vozle tem strankam. Ta mehanizem uporabljamo za VIP-stranke, ki ne marajo imeti sosedov blizu svojih VM. Sam funkcionalnost pa se lahko uporablja še precej širše.

Model licenciranja predvideva plačilo za vsako jedro procesorja fizičnega vozla. Prav tako vpliva na ceno število tipov grozdov. Če je načrtovano skupno uporabo, na primer KVM in VMware, se cena licence poveča.

FCO je popoln produkt, njegova funkcionalnost je zelo bogata, zato nameravamo pripraviti kar nekaj člankov z podrobno razlago delovanja omrežnega dela.

Po večletnem delu s tem orkestratorjem lahko ugotovimo, da je zelo kakovosten. Nažalost, produkt ni brez napak:

  • morali smo optimizirati DB, saj so začetni zahtevki začeli upočasnjevati pri rasti števila podatkov v njih;
  • po eni nesreči zaradi napake ni deloval mehanizem za obnovitev, zato smo morali postaviti naprave nesrečnih strank z lastnim naborom skript;
  • mehanizem za zaznavanje nedostopnosti vozla je vtkano v kodo in ni predmet prilagoditve. To pomeni, da ne moremo ustvariti lastnih politik za določanje nedostopnosti vozla.
  • Dnevniki ne zavalways podrobnie. Inogda, kogda nuzhno spustitsya na ochen' nizkii uvelichitel' dlya razbora opredelennoy problemy, ne khvataet исходного кoda nekotorykh komponentov dlya ponimaniya prichin;

ITOGO: V tselom, vpechatleniya ot produkta khoroshie. My nakhodiemsya v postoyannom kontakte s razrabotchikami orkestratora. Parni raspolozheny k konstruktnomu sotrudnichestvu.

Nesmotrya na svoyu prostotu, FCO obladayet shirokoy funktsional'nost'yu. V budushchikh stateyakh my planiruem ugлубitsya v sleduyushchie temy:

  • organizatsiya seti v FCO
  • obespechenie live-recovery i protokola FQP
  • napisanie sobstvennykh pluginov i vidzhetov
  • podklyucheniye dopolnitel'nykh servisov, takikh kak Load Balancer i Acronis
  • bekap
  • unifitsirovannyy mekhanizm konfiguratsii i nastroiki nod
  • obrabotka metadannykh virtual'nykh mashin

Z. Y. Pishite v kommentariyakh, esli interesny i drugie aspekty. Stay tuned!

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster