Flexiant Cloud Orchestrator: s čim se to sve bavi

Flexiant Cloud Orchestrator: s čim se to sve bavi

Za pružanje IaaS usluge (Virtualni podatkovni centar) koristimo Rusonyx komercijalni orkestrator Flexiant Cloud Orchestrator (FCO). Ovo rješenje ima dovoljno jedinstvenu arhitekturu koja ga izdvaja od poznatih Openstack i CloudStack.

Kao hipervizori za compute čvorove podržani su KVM, VmWare, Xen, Virtuozzo6/7, kao i kontejneri iz Virtuozzo-a. Od podržanih spremišta – lokalno, NFS, Ceph i Virtuozzo Storage.

FCO podržava kreiranje više klastera i upravljanje njima iz jednog sučelja. To jest, moguće je upravljati Virtuozzo klasterom i KVM + Ceph klasterom jednostavnim klikom mišom.

U suštini, FCO je sveobuhvatno rješenje za cloud provajdere koje, osim orkestracije, uključuje i billing, sa svim podešavanjima, platnim dodacima, računima, obavijestima, resellerima, tarifama i tako dalje. Međutim, billing dio ne može pokriti sve specifičnosti u Rusiji, stoga smo se odlučili odustati od njegove upotrebe u korist drugog rješenja.

Veoma je pozitivna fleksibilna sustav raspodjele prava na sve resurse oblaka: slike, diskove, proizvode, servere, vatrozide – sve to se može 'dijeliti' i odobravati prava između korisnika, pa čak i između korisnika različitih klijenata. Svaki klijent može u svom oblaku kreirati nekoliko neovisnih podatkovnih centara i upravljati njima iz jedinstvene kontrolne ploče.

Flexiant Cloud Orchestrator: s čim se to sve bavi

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

Skyline – administratorsko i korisničko sučelje
Jade – poslovna logika, billing, upravljanje zadacima
Tigerlily – koordinator usluga, upravlja i koordinira razmjenu informacija između poslovne logike i klastera.
XVPManager – upravljanje elementima klastera: čvorovima, pohranom, mrežama i virtualnim mašinama.
XVPAgent – agent koji se instalira na čvorove za interakciju s XVPManager-om

Flexiant Cloud Orchestrator: s čim se to sve bavi

Detaljno objašnjenje arhitekture svakog komponenta planiramo smjestiti u seriju članaka, ako, naravno, tema izazove interes.

Glavna prednost FCO proizlazi iz njegove „kutijastosti“. Na raspolaganju su vam jednostavnost i minimalizam. Za upravljačku čvoru dodijeljena je jedna virtualna mašina na Ubuntu, u koju se instaliraju svi potrebni paketi. Sva podešavanja se prenose u konfiguracijske datoteke u obliku varijabla-vrijednost:

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

Cjela konfiguracija se prvotno obrađuje u predlošcima, a potom se pokreće generator
#build-config который сформирует файл vars и даст команду сервисам перечитать конфиг. Пользовательский интерфейс приятный и может быть легко забрендирован.

Flexiant Cloud Orchestrator: s čim se to sve bavi

Kao što se može vidjeti, sučelje se sastoji od widgeta, čijom upravljanjem korisnik ima pristup. Može lako dodavati/brisati widgete sa stranice, oblikujući time vlastiti dashboard.

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

  1. Podržani su prilagođeni dodaci, primjerice, možete napisati svoju metodu naplate ili vlastiti vanjski resurs za pružanje korisniku
  2. Podržani su prilagođeni okidači za određene događaje, primjerice, dodavanje prve virtualne mašine klijentu prilikom njegovog stvaranja
  3. Podržani su prilagođeni widgeti u sučelju, primjerice, ugrađivanje videa s YouTube-a izravno u sučelje korisnika.

Sva prilagodba se piše na jeziku FDL, koji se temelji na Lua. Ako znate Lua, neće biti problema s FDL-om.

Evo primjer jednog od najjednostavnijih okidača koje koristimo. Ovaj okidač ne dopušta korisnicima da dijele svoje vlastite slike s drugim korisnicima. To radimo kako bismo spriječili jednog korisnika da stvori zloćudnu 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 bit će pozvana od strane FCO jezgre. Vratit će ime funkcije koja se treba pozvati. Parametar “p” ove funkcije pohranjuje kontekst poziva, a prilikom prvog poziva bit će prazan (nil). To će nam omogućiti da registriramo naš okidač. U triggerType prikazujemo da se okidač poziva PRIJE operacije objavljivanja i proširuje se samo na korisnike. Administratorima sustava, naravno, dopuštamo da objavljuju sve. U triggerOptions detaljno navodimo operacije za koje će se okidač aktivirati.

I glavno – return {exitState = “CANCEL”}, za što je okidač i razvijen. Vratit će neuspjeh kada korisnik pokuša podijeliti svoju sliku u upravljačkoj ploči.

U arhitekturi FCO – svaki objekt (disk, poslužitelj, slika, mreža, mrežni adapter i dr.) prikazan je kao entitet Resource, koji ima zajedničke parametre:

  • UUID resursa
  • ime resursa
  • tip resursa
  • UUID vlasnika resursa
  • status resursa (aktivan, neaktivan)
  • metapodaci resursa
  • ključevi resursa
  • UUID proizvoda kojem resurs pripada
  • VDC resursa

Ovo je vrlo praktično pri radu putem API-ja, kada se sa svim resursima radi prema istom principu. Proizvode postavlja pružatelj, a naručuje ih klijent. Budući da je naš billing odvojen, klijent može slobodno i besplatno naručiti bilo koji proizvod iz sučelja. Naplata će se izvršiti kasnije u billing-u. Proizvod može biti – IP adresa po satu, dodatni GB diska po satu ili jednostavno poslužitelj.

Ključeve možemo označiti za određene resurse kako bismo promijenili logiku rada s njima. Na primjer, možemo označiti tri fizičke čvorove ključem Weight, i označiti neke klijente tim istim ključem, na taj način izdvajajući te čvorove posebno za te klijente. Ovaj mehanizam koristimo za VIP-klijente koji ne vole susjede blizu svojih VM-ova. Sam funkcionalnost može se primijeniti mnogo šire.

Model licenciranja podrazumijeva plaćanje za svaki jezgri procesora fizičkog čvora. Također, cijena ovisi o broju tipova klastera. Ako se planira zajedno koristiti, na primjer, KVM i VMware, tada će se cijena licence povećati.

FCO je potpuno razvijen proizvod, njegova funkcionalnost je vrlo bogata, stoga planiramo pripremiti nekoliko članaka s detaljnim opisom rada mrežnog dijela.

Radom s ovim orkestratorom nekoliko godina možemo ga ocijeniti kao veoma kvalitetnog. Nažalost, proizvod nije bez nedostataka:

  • morali smo optimizirati Bazu podataka jer su upiti počeli usporavati s povećanjem količine podataka u njima;
  • nakon jedne nesreće zbog greške mehanizam oporavka nije radio, i morali smo pokrenuti mašine nesretnih klijenata vlastitim skupom skripti;
  • mehanizam za otkrivanje nedostupnosti čvora je ukorijenjen u kodu i ne može se prilagoditi. To jest, ne možemo stvoriti vlastite politike određivanja nedostupnosti čvora.
  • Evidentiranje nije uvijek detaljno. Ponekad, kada je potrebno dublje istražiti određeni problem, nedostaje izvorni kod nekih komponenti za razumijevanje uzroka;

UKUPNO: Općenito, dojmovi o proizvodu su dobri. Neprekidno smo u kontaktu s programerima orkestratora. Momci su skloni konstruktivnoj suradnji.

Unatoč svojoj jednostavnosti, FCO nudi široku funkcionalnost. U budućim člancima planiramo dublje istražiti sljedeće teme:

  • organizacija mreže u FCO
  • osiguranje live-recovery i FQP protokola
  • pisanje vlastitih dodataka i widgeta
  • spajanje dodatnih usluga kao što su Load Balancer i Acronis
  • backup
  • unificirani mehanizam konfiguracije i postavljanja nodova
  • obračunavanje metapodataka virtualnih mašina

P.S. Pišite u komentarima ako vas zanimaju i drugi aspekti. Ostanite s nama!

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster