Flexiant Cloud Orchestrator: millega seda süüakse

Flexiant Cloud Orchestrator: millega seda süüakse

IaaS (Virtual Data Center) teenuste pakkumiseks me Rusonyx kasutame kommertsorkestrit Flexiant Cloud Orchestrator (FCO). Sellel lahendusel on üsna unikaalne arhitektuur, mis eristab seda laiemale avalikkusele tuntud Openstackist ja CloudStackist.

Arvutussõlme hüperviisoritena toetatakse KVM, VmWare, Xen, Virtuozzo6/7, aga ka sama Virtuozzo konteinereid. Toetatud salvestusvõimalused hõlmavad kohalikku, NFS-i, Ceph-i ja Virtuozzo salvestusruumi.

FCO toetab mitme klastri loomist ja haldamist ühest liidesest. See tähendab, et saate hallata Virtuozzo klastrit ja KVM + Ceph klastrit, vahetades nende vahel hiireklõpsuga.

Oma tuumaks on FCO terviklik lahendus pilvepakkujatele, mis sisaldab lisaks orkestreerimisele ka arveldamist, koos kõigi seadistustega, maksepluginad, arved, teatised, edasimüüjad, tariifid jne. Arveldusosa ei suuda aga kõiki vene nüansse katta, mistõttu loobusime selle kasutamisest mõne muu lahenduse kasuks.

Olen väga rahul paindliku süsteemiga, mis võimaldab jaotada õigusi kõikidele pilveressurssidele: piltidele, plaatidele, toodetele, serveritele, tulemüüridele – seda kõike saab kasutajate ja isegi erinevate klientide kasutajate vahel “jagada” ja õigusi anda. Iga klient saab luua oma pilves mitu sõltumatut andmekeskust ja hallata neid ühelt juhtpaneelilt.

Flexiant Cloud Orchestrator: millega seda süüakse

Arhitektuuriliselt koosneb FCO mitmest osast, millest igaühel on oma sõltumatu kood ja mõnel on oma andmebaas.

Silmapiir - administraator ja kasutajaliides
Jade – äriloogika, arveldamine, ülesannete haldamine
Tiigerliilia – teenuste koordinaator, juhib ja koordineerib infovahetust äriloogika ja klastrite vahel.
XVPManager – klastri elementide haldamine: sõlmed, salvestusruum, võrk ja virtuaalsed masinad.
XVPAgent – sõlmedesse installitud agent XVPManageriga suhtlemiseks

Flexiant Cloud Orchestrator: millega seda süüakse

Plaanime iga komponendi arhitektuurist üksikasjaliku loo lisada artiklisarja, kui teema muidugi huvi äratab.

FCO peamine eelis tuleneb selle "kastist" olemusest. Lihtsus ja minimalism on teie teenistuses. Juhtsõlme jaoks eraldatakse üks Ubuntu virtuaalmasin, kuhu on installitud kõik vajalikud paketid. Kõik sätted paigutatakse konfiguratsioonifailidesse muutujaväärtuse kujul:

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

Kogu konfiguratsiooni redigeeritakse algselt mallides, seejärel käivitatakse generaator
#build-config, mis genereerib vars-faili ja käsib teenustel konfiguratsiooni uuesti lugeda. Kasutajaliides on kena ja seda saab hõlpsasti brändida.

Flexiant Cloud Orchestrator: millega seda süüakse

Nagu näete, koosneb liides vidinatest, mida kasutaja saab juhtida. Ta saab hõlpsalt lehele vidinaid lisada/eemaldada, luues seeläbi vajaliku armatuurlaua.

Vaatamata oma suletud olemusele on FCO väga kohandatav süsteem. Sellel on töövoo muutmiseks tohutult palju sätteid ja sisenemispunkte:

  1. Toetatakse kohandatud pistikprogramme, näiteks saate kirjutada oma arveldusmeetodi või oma välise ressursi, et pakkuda kasutajale
  2. Toetatud on teatud sündmuste kohandatud päästikud, näiteks esimese virtuaalmasina lisamine kliendile selle loomisel
  3. Toetatakse liidese kohandatud vidinaid, näiteks YouTube'i video otse kasutajaliidesesse manustamist.

Kõik kohandused on kirjutatud FDL-is, mis põhineb Lua-l. Kui tunnete Luat, pole FDL-iga probleeme.

Siin on näide ühest kõige lihtsamast käivitajast, mida me kasutame. See päästik ei võimalda kasutajatel jagada oma pilte teiste klientidega. Teeme seda selleks, et üks kasutaja ei saaks teistele kasutajatele pahatahtlikku pilti luua.

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

Registrifunktsiooni kutsub välja FCO kernel. See tagastab kutsutava funktsiooni nime. Selle funktsiooni parameeter "p" salvestab kõne konteksti ja esmakordsel kutsumisel on see tühi (null). See võimaldab meil oma päästiku registreerida. TriggerType'is näitame, et päästik kutsutakse välja ENNE avaldamistoimingut ja see mõjutab ainult kasutajaid. Loomulikult lubame süsteemiadministraatoritel kõike avaldada. Jaotises triggerOptions kirjeldame üksikasjalikult toiminguid, mille puhul päästik käivitub.

Ja peamine on tagastamine {exitState = “CANCEL”}, mistõttu päästik töötati välja. Kui kasutaja proovib oma pilti juhtpaneelil jagada, kuvatakse tõrge.

FCO arhitektuuris on mis tahes objekt (ketas, server, pilt, võrk, võrguadapter jne) esindatud ressursiüksusena, millel on ühised parameetrid:

  • Ressursi UUID
  • ressursi nimi
  • ressursi tüüp
  • Ressursi omaniku UUID
  • ressursi olek (aktiivne, mitteaktiivne)
  • ressursi metaandmed
  • ressursivõtmed
  • Ressursi omava toote UUID
  • ressurss VDC

See on väga mugav API-ga töötamisel, kui kõik ressursid töötavad samal põhimõttel. Tooted konfigureerib pakkuja ja tellib klient. Kuna meie arveldamine on kõrval, saab klient paneelist vabalt tellida mis tahes toodet. See arvutatakse hiljem arveldamisel. Toode võib olla IP-aadress tunnis, täiendav GB ketas tunnis või lihtsalt server.

Klahve saab kasutada teatud ressursside märgistamiseks, et muuta nendega töötamise loogikat. Näiteks võime märgistada kolm füüsilist sõlme kaaluklahviga ja märkida mõned kliendid sama võtmega, eraldades need sõlmed neile klientidele isiklikult. Me kasutame seda mehhanismi VIP-klientide jaoks, kellele ei meeldi nende VM-i kõrval naabrid. Funktsionaalsust ennast saab kasutada palju laiemalt.

Litsentsimismudel hõlmab füüsilise sõlme iga protsessori tuuma eest tasumist. Kulusid mõjutab ka klastritüüpide arv. Kui plaanite näiteks KVM-i ja VMware'i koos kasutada, siis litsentsi hind tõuseb.

FCO on täisväärtuslik toode, selle funktsionaalsus on väga rikkalik, seega plaanime koostada korraga mitu artiklit koos võrguosa toimimise üksikasjaliku kirjeldusega.

Olles selle orkestraatoriga mitu aastat töötanud, võime selle märkida väga sobivaks. Paraku pole tootel puudusi:

  • pidime andmebaasi optimeerima, sest päringud hakkasid aeglustuma, kuna neis olevate andmete hulk suurenes;
  • pärast ühte õnnetust taastamismehhanism vea tõttu ei töötanud ja pidime oma skriptide komplekti kasutades õnnetute klientide autosid taastama;
  • Sõlme kättesaamatuse tuvastamise mehhanism on koodiga ühendatud ja seda ei saa kohandada. See tähendab, et me ei saa luua oma eeskirju sõlme kättesaamatuse määramiseks.
  • logimine ei ole alati üksikasjalik. Mõnikord, kui peate konkreetse probleemi mõistmiseks langema väga madalale tasemele, ei ole teil piisavalt lähtekoodi, et mõned komponendid mõistaksid, miks;

KOKKU: Üldiselt on muljed tootest head. Oleme pidevas kontaktis orkestraatorite arendajatega. Poisid on valmis konstruktiivseks koostööks.

Vaatamata oma lihtsusele on FCO-l lai funktsionaalsus. Edaspidistes artiklites kavatseme süveneda järgmistesse teemadesse:

  • võrgustik FCO-s
  • reaalajas taastamise ja FQP protokolli pakkumine
  • oma pistikprogrammide ja vidinate kirjutamine
  • lisateenuste, nagu Load Balancer ja Acronis, ühendamine
  • varukoopia
  • ühtne mehhanism sõlmede seadistamiseks ja konfigureerimiseks
  • virtuaalmasina metaandmete töötlemine

ZY Kirjutage kommentaaridesse, kui olete huvitatud muudest aspektidest. Püsige lainel!

Allikas: www.habr.com

Lisa kommentaar