Flexiant Cloud Orchestrator: wat it komt mei

Flexiant Cloud Orchestrator: wat it komt mei

Om IaaS (Virtual Data Center) tsjinsten te leverjen, hawwe wy Rusonyx wy brûke in kommersjele orkestrator Flexiant Cloud Orchestrator (FCO). Dizze oplossing hat in frij unike arsjitektuer, dy't it ûnderskiedt fan Openstack en CloudStack, bekend by it algemien publyk.

KVM, VmWare, Xen, Virtuozzo6/7, lykas konteners fan deselde Virtuozzo wurde stipe as compute node hypervisors. Stipe opslachopsjes omfetsje lokaal, NFS, Ceph en Virtuozzo Storage.

FCO stipet it oanmeitsjen en behearen fan meardere klusters út ien ynterface. Dat is, jo kinne in Virtuozzo-kluster en in KVM + Ceph-kluster beheare troch te wikseljen tusken har mei in mûsklik.

Yn har kearn is FCO in wiidweidige oplossing foar wolkproviders, dy't, neist orkestraasje, ek fakturearring omfettet, mei alle ynstellingen, betellingsplugins, faktueren, notifikaasjes, resellers, tariven, ensfh. It fakturearringsdiel is lykwols net yn steat om alle Russyske nuânses te dekken, dus wy hawwe it gebrûk ferlitten foar in oare oplossing.

Ik bin heul bliid mei it fleksibele systeem foar it fersprieden fan rjochten oan alle wolkboarnen: ôfbyldings, skiven, produkten, servers, firewalls - dit alles kin "dield" wurde en rjochten wurde ferliend tusken brûkers, en sels tusken brûkers fan ferskate kliïnten. Elke klant kin ferskate ûnôfhinklike datasintra yn har wolk oanmeitsje en se beheare fanút ien kontrôlepaniel.

Flexiant Cloud Orchestrator: wat it komt mei

Architecturally bestiet FCO út ferskate dielen, elk fan dat hat in eigen ûnôfhinklike koade, en guon hawwe harren eigen databank.

skyline - admin en brûkersynterface
Jade - saaklike logika, fakturearring, taakbehear
tigerlily - tsjinst koördinator, beheart en koördinearret de útwikseling fan ynformaasje tusken saaklike logika en klusters.
XVPManager - behear fan kluster eleminten: knopen, opslach, netwurk en firtuele masines.
XVPAgent - in agint ynstalleare op knopen om te ynteraksje mei XVPManager

Flexiant Cloud Orchestrator: wat it komt mei

Wy binne fan plan in detaillearre ferhaal op te nimmen oer de arsjitektuer fan elke komponint yn in searje artikels, as fansels it ûnderwerp ynteresse wekt.

It wichtichste foardiel fan FCO komt út syn "boxed" natuer. Ienfâld en minimalisme binne ta jo tsjinst. Foar it kontrôleknooppunt wurdt ien firtuele masine op Ubuntu tawiisd, wêryn alle nedige pakketten ynstalleare binne. Alle ynstellingen wurde pleatst yn konfiguraasjebestannen yn 'e foarm fan in fariabele-wearde:

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

De hiele konfiguraasje wurdt yn earste ynstânsje bewurke yn sjabloanen, dan wurdt de generator lansearre
#build-config dy't in vars-bestân sil generearje en de tsjinsten befelje om de konfiguraasje opnij te lêzen. De brûkersynterface is moai en kin maklik wurde markearre.

Flexiant Cloud Orchestrator: wat it komt mei

Sa't jo sjen kinne, bestiet de ynterface út widgets dy't kinne wurde regele troch de brûker. Hy kin maklik widgets tafoegje / fuortsmite fan 'e side, en dêrmei it dashboard oanmeitsje dat hy nedich is.

Nettsjinsteande syn sletten aard is FCO in tige oanpasber systeem. It hat in enoarm oantal ynstellingen en yngongspunten om de workflow te feroarjen:

  1. Oanpaste plugins wurde stipe, bygelyks kinne jo jo eigen fakturearringmetoade of jo eigen eksterne boarne skriuwe om de brûker te foarsjen
  2. Oanpaste triggers foar bepaalde eveneminten wurde stipe, bygelyks it tafoegjen fan de earste firtuele masine oan in kliïnt as it wurdt makke
  3. Oanpaste widgets yn 'e ynterface wurde stipe, bygelyks it ynbêde fan in YouTube-fideo direkt yn' e brûkersynterface.

Alle maatwurk is skreaun yn FDL, dat is basearre op Lua. As jo ​​witte Lua, der sil gjin problemen mei FDL.

Hjir is in foarbyld fan ien fan 'e ienfâldichste triggers dy't wy brûke. Dizze trigger lit brûkers net har eigen ôfbyldings diele mei oare kliïnten. Wy dogge dit om te foarkommen dat ien brûker in kweade ôfbylding foar oare brûkers makket.

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

De registerfunksje sil oproppen wurde troch de FCO-kernel. It sil de namme weromjaan fan 'e funksje dy't moat wurde neamd. De parameter "p" fan dizze funksje bewarret de opropkontekst, en de earste kear dat it wurdt neamd, sil it leech wêze (nul). Wat sil tastean ús te registrearjen ús trigger. Yn triggerType jouwe wy oan dat de trigger wurdt oproppen FOAR de publikaasjeoperaasje, en allinich brûkers beynfloedet. Fansels litte wy systeembehearders alles publisearje. Yn triggerOptions detailje wy de operaasjes wêrfoar de trigger sil ûntstean.

En it wichtichste ding is werom {exitState = "CANCEL"}, dat is wêrom de trigger waard ûntwikkele. It sil mislearring werombringe as de brûker besiket har ôfbylding te dielen yn it kontrôlepaniel.

Yn 'e FCO-arsjitektuer wurdt elk objekt (skiif, server, ôfbylding, netwurk, netwurkadapter, ensfh.) fertsjintwurdige as in boarne-entiteit, dy't mienskiplike parameters hat:

  • Boarne UUID
  • boarne namme
  • boarne type
  • Boarne eigner UUID
  • boarne status (aktyf, ynaktyf)
  • boarne metadata
  • boarne kaaien
  • UUID fan it produkt dat de boarne hat
  • boarne VDC

Dit is heul handich as jo wurkje mei in API, as alle boarnen wurde wurke neffens itselde prinsipe. Produkten wurde konfigurearre troch de provider en besteld troch de klant. Sûnt ús fakturearring oan 'e kant is, kin de klant elk produkt frij bestelle fan it paniel. It wurdt letter berekkene yn fakturearring. It produkt kin in IP-adres per oere wêze, in ekstra GB skiif per oere, of gewoan in server.

Kaaien kinne brûkt wurde om bepaalde boarnen te markearjen om de logika fan it wurkjen mei har te feroarjen. Bygelyks, wy kinne markearje trije fysike knopen mei de Gewicht kaai, en markearje guon kliïnten mei deselde kaai, dêrmei allocate dizze knopen persoanlik oan dizze kliïnten. Wy brûke dit meganisme foar VIP kliïnten dy't net leuk buorlju neist harren VMs. De funksjonaliteit sels kin folle breder brûkt wurde.

It lisinsjemodel omfettet beteljen foar elke prosessorkearn fan in fysike knooppunt. De kosten wurde ek beynfloede troch it oantal klustertypen. As jo ​​​​bygelyks KVM en VMware tegearre brûke, sille de kosten fan 'e lisinsje ferheegje.

FCO is in folweardich produkt, syn funksjonaliteit is heul ryk, dus wy binne fan plan om ferskate artikels tagelyk te meitsjen mei in detaillearre beskriuwing fan it funksjonearjen fan it netwurkdiel.

Nei't wy ferskate jierren mei dizze orkestrator wurke hawwe, kinne wy ​​it markearje as heul geskikt. Och, it produkt is net sûnder gebreken:

  • wy moasten de databank optimalisearje, om't queries begon te fertragen as de hoemannichte gegevens yn har tanommen;
  • nei ien ûngelok wurke it herstelmeganisme net troch in brek, en wy moasten de auto's fan ûngelokkige kliïnten weromhelje mei ús eigen set fan skripts;
  • It meganisme foar it opspoaren fan knooppuntûnbeskikberens is hardwired yn 'e koade en kin net oanpast wurde. Dat is, wy kinne ús eigen belied net oanmeitsje foar it bepalen fan 'e ûnbeskikberens fan in knooppunt.
  • logging is net altyd detaillearre. Soms, as jo moatte gean omleech nei in hiel leech nivo foar in begripe in bepaald probleem, do hast net genôch boarnekoade foar guon komponinten in begripe wêrom;

TOTAL: Yn 't algemien binne de yndrukken fan it produkt goed. Wy binne yn konstant kontakt mei de orkestratorûntwikkelders. De jonges binne sinich foar konstruktive gearwurking.

Nettsjinsteande syn ienfâld hat FCO brede funksjonaliteit. Yn takomstige artikels binne wy ​​fan plan om djipper te ferdjipjen yn 'e folgjende ûnderwerpen:

  • netwurk by FCO
  • it leverjen fan live-herstel en FQP-protokol
  • it skriuwen fan jo eigen plugins en widgets
  • ekstra tsjinsten ferbine lykas Load Balancer en Acronis
  • reservekopy
  • ferienige meganisme foar it konfigurearjen en konfigurearjen fan knopen
  • ferwurkjen firtuele masine metadata

Z.Y. Skriuw yn 'e kommentaren as jo ynteressearre binne yn oare aspekten. Bliuw op 'e hichte!

Boarne: www.habr.com

Add a comment