Flexiant Cloud Orchestrator: ciò chì si manghja

Flexiant Cloud Orchestrator: ciò chì si manghja

Per furnisce servizii IaaS (Virtual Data Center), avemu Rusonyx usemu un orchestratore cummerciale Flexiant Cloud Orchestrator (FCO). Sta suluzione hà una architettura piuttostu unica, chì a distingue da Openstack è CloudStack, cunnisciuti da u publicu generale.

KVM, VmWare, Xen, Virtuozzo6/7, è ancu i cuntenituri da u stessu Virtuozzo sò supportati cum'è ipervisori di nodi di calculu. L'opzioni di almacenamentu supportate includenu u Local, NFS, Ceph è Virtuozzo Storage.

FCO supporta a creazione è a gestione di più clusters da una sola interfaccia. Questu hè, pudete gestisce un cluster Virtuozzo è un cluster KVM + Ceph cambiendu trà elli cù un clic di u mouse.

In u so core, FCO hè una suluzione cumpleta per i fornitori di nuvola, chì, in più di l'orchestrazione, include ancu a fatturazione, cù tutti i paràmetri, plugins di pagamentu, fatture, notificazioni, rivenditori, tariffi, etc. In ogni casu, a parte di fattura ùn hè micca capaci di copre tutte e sfumature russe, cusì avemu abbandunatu u so usu in favore di una altra suluzione.

Sò assai cuntentu di u sistema flexible per a distribuzione di diritti à tutte e risorse di nuvola: imaghjini, dischi, prudutti, servitori, firewall - tuttu questu pò esse "spartitu" è cuncede diritti trà l'utilizatori, è ancu trà l'utilizatori di diversi clienti. Ogni cliente pò creà parechji centri di dati indipendenti in u so nuvulu è gestisce da un unicu pannellu di cuntrollu.

Flexiant Cloud Orchestrator: ciò chì si manghja

Architecturally, FCO hè custituitu di parechje parte, ognuna di quale hà u so propiu codice indipendente, è certi anu a so propria basa di dati.

Sarocchi - interfaccia amministratore è utilizatore
Jade - logica cummerciale, fatturazione, gestione di u travagliu
Tigerlily - coordinatore di serviziu, gestisce è coordina u scambiu d'infurmazioni trà a logica cummerciale è i clusters.
XVPManager - gestione di elementi di cluster: nodi, almacenamiento, rete è macchine virtuali.
XVPAgent - un agente installatu nantu à i nodi per interagisce cù XVPManager

Flexiant Cloud Orchestrator: ciò chì si manghja

Avemu pensatu à include una storia detallata nantu à l'architettura di ogni cumpunente in una seria d'articuli, se, sicuru, u tema suscita interessu.

U vantaghju principali di FCO vene da a so natura "boxed". A simplicità è u minimalismu sò à u vostru serviziu. Per u node di cuntrollu, una macchina virtuale in Ubuntu hè attribuita, in quale sò stallati tutti i pacchetti necessarii. Tutti i paràmetri sò posti in i schedarii di cunfigurazione in a forma di un valore variabile:

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

A cunfigurazione sana hè inizialmente editata in mudelli, dopu u generatore hè lanciatu
#build-config chì generà un schedariu vars è cumanda à i servizii per leghje a cunfigurazione. L'interfaccia d'utilizatore hè bella è pò esse facilmente marcata.

Flexiant Cloud Orchestrator: ciò chì si manghja

Comu pudete vede, l'interfaccia hè custituita da widgets chì ponu esse cuntrullati da l'utilizatore. Puderà facilmente aghjunghje / caccià i widgets da a pagina, creendu cusì u dashboard chì hà bisognu.

Malgradu a so natura chjusa, FCO hè un sistema altamente persunalizabile. Havi un gran numaru di paràmetri è punti d'ingressu per cambià u flussu di travagliu:

  1. I plugins persunalizati sò supportati, per esempiu, pudete scrive u vostru propiu metudu di fattura o u vostru propiu risorsu esternu per furnisce l'utilizatore cù
  2. I triggers persunalizati per certi avvenimenti sò supportati, per esempiu, aghjunghjendu a prima macchina virtuale à un cliente quandu hè creatu
  3. I widgets persunalizati in l'interfaccia sò supportati, per esempiu, incrustendu un video di YouTube direttamente in l'interfaccia d'utilizatore.

Tuttu u persunalizazione hè scrittu in FDL, chì hè basatu annantu à Lua. Se sapete Lua, ùn ci sarà micca prublemi cù FDL.

Eccu un esempiu di unu di i triggers più simplici chì usemu. Stu attivatore ùn permette micca à l'utilizatori di sparte e so imagine cù altri clienti. Facemu questu per impedisce à un utilizatore di creà una maghjina maliciosa per altri utilizatori.

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

A funzione di registru serà chjamata da u kernel FCO. Ritornarà u nome di a funzione da esse chjamata. U paràmetru "p" di sta funzione guarda u cuntestu di a chjama, è a prima volta chì hè chjamatu serà viotu (nilu). Chì ci permetterà di registrà u nostru trigger. In triggerType indichemu chì u trigger hè invucatu PRIMA di l'operazione di pubblicazione, è affetta solu l'utilizatori. Di sicuru, permettenu à l'amministratori di u sistema di pubblicà tuttu. In triggerOptions detallemu l'operazioni per quale u trigger sparerà.

È u principale hè u ritornu {exitState = "CANCEL"}, chì hè per quessa chì u trigger hè statu sviluppatu. Ritornarà fallimentu quandu l'utilizatore prova di sparte a so maghjina in u pannellu di cuntrollu.

In l'architettura FCO, ogni ughjettu (discu, servitore, imaghjini, rete, adattatore di rete, etc.) hè rapprisintatu cum'è una entità Resource, chì hà paràmetri cumuni:

  • UUID di risorsa
  • nome di risorsa
  • tipu di risorsa
  • UUID di u pruprietariu di risorsa
  • statutu di risorsa (attivu, inattivu)
  • metadati di risorsa
  • chjavi di risorse
  • UUID di u pruduttu chì pussede a risorsa
  • risorsa VDC

Questu hè assai cunvenutu quandu u travagliu cù una API, quandu tutte e risorse sò travagliatu secondu u listessu principiu. I prudutti sò cunfigurati da u fornitore è urdinati da u cliente. Siccomu a nostra fatturazione hè à u latu, u cliente pò liberà cumandà qualsiasi pruduttu da u pannellu. Serà calculatu dopu in fattura. U pruduttu pò esse un indirizzu IP per ora, un GB supplementu di discu per ora, o solu un servitore.

Chjavi ponu esse usatu per marcà certe risorse per cambià a logica di travaglià cun elli. Per esempiu, pudemu marcà trè nodi fisichi cù a chjave Weight, è marcate certi clienti cù a listessa chjave, cusì assignendu sti nodi personalmente à questi clienti. Utilizemu stu mecanismu per i clienti VIP chì ùn piacenu micca i vicini vicinu à i so VM. A funziunalità stessu pò esse usata assai più largamente.

U mudellu di licenza implica pagà per ogni core di processore di un node fisicu. U costu hè ancu affettatu da u numeru di tippi di cluster. Se pensa à aduprà KVM è VMware inseme, per esempiu, u costu di a licenza aumenterà.

FCO hè un pruduttu cumpletu, a so funziunalità hè assai ricca, cusì avemu pensatu à preparà parechji articuli à una volta cù una descrizzione detallada di u funziunamentu di a parte di a reta.

Dopu avè travagliatu cù questu orchestratore per parechji anni, pudemu marcà cum'è assai adattatu. Alas, u pruduttu ùn hè micca senza difetti:

  • avemu avutu à ottimisà a basa di dati perchè e dumande cuminciaru à rallentà cum'è a quantità di dati in elli cresce;
  • dopu à un accidente, u mecanismu di ricuperazione ùn hà micca travagliatu per via di un bug, è avemu avutu à ricuperà e vitture di i clienti disgraziati cù u nostru propiu set di script;
  • U mecanismu per a rilevazione di a indisponibilità di u nodu hè cablatu in u codice è ùn pò micca esse persunalizatu. Questu hè, ùn pudemu micca creà e nostre pulitiche per determinà a indisponibilità di un node.
  • logging ùn hè micca sempre detallatu. Calchì volta, quandu avete bisognu à falà à un livellu assai bassu per capisce un prublema particulare, ùn avete micca abbastanza codice fonte per alcuni cumpunenti per capiscenu perchè;

TOTAL: In generale, l'impressioni di u pruduttu sò boni. Semu in cuntattu constante cù i sviluppatori di l'orchestratori. I picciotti sò disposti à a cooperazione constructiva.

Malgradu a so simplicità, FCO hà una larga funziunalità. In l'articuli futuri, pensamu di approfondisce i seguenti temi:

  • networking à FCO
  • furnisce u protokollu di ricuperazione in diretta è FQP
  • scrive i vostri plugins è widgets
  • culligamentu di servizii supplementari cum'è Load Balancer è Acronis
  • copia di salvezza
  • mecanismu unificatu per cunfigurà è cunfigurà i nodi
  • trasfurmà i metadati di a macchina virtuale

ZY Scrivite in i cumenti si site interessatu in altri aspetti. Restate à sente !

Source: www.habr.com

Add a comment