Flexiant Cloud Orchestrator: con que vén

Flexiant Cloud Orchestrator: con que vén

Para proporcionar servizos IaaS (Virtual Data Center), nós Rusonyx utilizamos un orquestrador comercial Flexiant Cloud Orchestrator (FCO). Esta solución ten unha arquitectura bastante única, que a distingue de Openstack e CloudStack, coñecidos polo público en xeral.

KVM, VmWare, Xen, Virtuozzo6/7, así como os contedores do mesmo Virtuozzo son compatibles como hipervisores de nodos de cálculo. As opcións de almacenamento admitidas inclúen o almacenamento local, NFS, Ceph e Virtuozzo.

FCO admite a creación e xestión de múltiples clústeres desde unha única interface. É dicir, pode xestionar un clúster Virtuozzo e un clúster KVM + Ceph cambiando entre eles cun clic do rato.

Na súa esencia, FCO é unha solución completa para provedores de nube, que, ademais da orquestración, tamén inclúe a facturación, con todas as configuracións, complementos de pago, facturas, notificacións, revendedores, tarifas, etc. Non obstante, a parte de facturación non é capaz de cubrir todos os matices rusos, polo que abandonamos o seu uso en favor doutra solución.

Estou moi satisfeito co sistema flexible para distribuír dereitos sobre todos os recursos da nube: imaxes, discos, produtos, servidores, cortalumes; todo isto pódese "compartir" e conceder dereitos entre usuarios e mesmo entre usuarios de diferentes clientes. Cada cliente pode crear varios centros de datos independentes na súa nube e xestionalos desde un único panel de control.

Flexiant Cloud Orchestrator: con que vén

Arquitectónicamente, FCO consta de varias partes, cada unha delas ten o seu propio código independente e algunhas teñen a súa propia base de datos.

Liña do horizonte - interface de usuario e administrador
xade – lóxica empresarial, facturación, xestión de tarefas
lirio tigre – coordinador do servizo, xestiona e coordina o intercambio de información entre a lóxica empresarial e os clusters.
XVPManager – xestión de elementos do clúster: nodos, almacenamento, rede e máquinas virtuais.
XVAxente – un axente instalado nos nodos para interactuar con XVPManager

Flexiant Cloud Orchestrator: con que vén

Pretendemos incluír unha historia detallada sobre a arquitectura de cada compoñente nunha serie de artigos, se, por suposto, o tema esperta interese.

A principal vantaxe de FCO deriva da súa natureza "en caixa". A simplicidade e o minimalismo están ao teu servizo. Para o nodo de control, asógase unha máquina virtual en Ubuntu, na que están instalados todos os paquetes necesarios. Todos os axustes colócanse en ficheiros de configuración en forma de valor variable:

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

Toda a configuración edítase inicialmente en modelos, despois lánzase o xerador
#build-config que xerará un ficheiro vars e ordenará aos servizos que volvan ler a configuración. A interface de usuario é agradable e pódese marcar facilmente.

Flexiant Cloud Orchestrator: con que vén

Como podes ver, a interface consta de widgets que poden ser controlados polo usuario. Pode engadir/eliminar facilmente widgets da páxina, creando así o panel de control que necesita.

A pesar da súa natureza pechada, FCO é un sistema altamente personalizable. Ten unha gran cantidade de opcións e puntos de entrada para cambiar o fluxo de traballo:

  1. Admítense complementos personalizados, por exemplo, pode escribir o seu propio método de facturación ou o seu propio recurso externo para proporcionar ao usuario
  2. Admítense disparadores personalizados para certos eventos, por exemplo, engadir a primeira máquina virtual a un cliente cando se crea
  3. Admítense widgets personalizados na interface, por exemplo, incorporando un vídeo de YouTube directamente na interface de usuario.

Toda a personalización está escrita en FDL, que se basea en Lua. Se coñeces a Lua, non haberá problemas con FDL.

Aquí tes un exemplo dun dos disparadores máis sinxelos que usamos. Este disparador non permite aos usuarios compartir as súas propias imaxes con outros clientes. Facemos isto para evitar que un usuario cree unha imaxe maliciosa para outros usuarios.

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 función de rexistro será chamada polo núcleo FCO. Devolverá o nome da función que se vai chamar. O parámetro "p" desta función almacena o contexto de chamada, e a primeira vez que se chame estará baleiro (cero). O que nos permitirá rexistrar o noso disparador. En triggerType indicamos que o disparador se invoca ANTES da operación de publicación e só afecta aos usuarios. Por suposto, permitimos que os administradores do sistema publiquen todo. En triggerOptions detallamos as operacións para as que se disparará o disparador.

E o principal é devolver {exitState = “CANCEL”}, polo que se desenvolveu o disparador. Devolverá un erro cando o usuario intente compartir a súa imaxe no panel de control.

Na arquitectura FCO, calquera obxecto (disco, servidor, imaxe, rede, adaptador de rede, etc.) represéntase como unha entidade Resource, que ten parámetros comúns:

  • UUID do recurso
  • nome do recurso
  • tipo de recurso
  • UUID do propietario do recurso
  • estado do recurso (activo, inactivo)
  • metadatos de recursos
  • claves de recursos
  • UUID do produto propietario do recurso
  • recurso VDC

Isto é moi cómodo cando se traballa cunha API, cando todos os recursos se traballan segundo o mesmo principio. Os produtos son configurados polo provedor e pedidos polo cliente. Dado que a nosa facturación está a un lado, o cliente pode pedir libremente calquera produto do panel. Calcularase máis tarde na facturación. O produto pode ser un enderezo IP por hora, un GB adicional de disco por hora ou só un servidor.

As claves pódense utilizar para marcar certos recursos para cambiar a lóxica de traballar con eles. Por exemplo, podemos marcar tres nodos físicos coa clave de peso e marcar algúns clientes coa mesma clave, asignando así estes nodos persoalmente a estes clientes. Usamos este mecanismo para clientes VIP aos que non lles gustan os veciños xunto ás súas máquinas virtuales. A propia funcionalidade pódese usar moito máis amplamente.

O modelo de licenza implica pagar por cada núcleo de procesador dun nodo físico. O custo tamén se ve afectado polo número de tipos de clúster. Se pensas usar KVM e VMware xuntos, por exemplo, o custo da licenza aumentará.

FCO é un produto completo, a súa funcionalidade é moi rica, polo que pensamos preparar varios artigos á vez cunha descrición detallada do funcionamento da parte da rede.

Despois de varios anos traballando con este orquestrador, podemos marcalo como moi axeitado. Por desgraza, o produto non está exento de defectos:

  • tivemos que optimizar a base de datos porque as consultas comezaron a diminuír a medida que aumentaba a cantidade de datos nelas;
  • despois dun accidente, o mecanismo de recuperación non funcionou debido a un erro, e tivemos que recuperar os coches de clientes desafortunados usando o noso propio conxunto de scripts;
  • O mecanismo para detectar a non dispoñibilidade do nodo está conectado ao código e non se pode personalizar. É dicir, non podemos crear as nosas propias políticas para determinar a indisponibilidade dun nodo.
  • o rexistro non sempre está detallado. Ás veces, cando necesitas baixar a un nivel moi baixo para comprender un problema en particular, non tes suficiente código fonte para que algúns compoñentes entendan por que;

TOTAL: En xeral, as impresións do produto son boas. Estamos en contacto constante cos desenvolvedores do orquestrator. Os mozos están dispostos á cooperación construtiva.

A pesar da súa sinxeleza, FCO ten unha ampla funcionalidade. Nos próximos artigos pensamos afondar nos seguintes temas:

  • networking en FCO
  • proporcionando recuperación en vivo e protocolo FQP
  • escribindo os teus propios complementos e widgets
  • conectar servizos adicionais como Load Balancer e Acronis
  • copia de seguridade
  • mecanismo unificado para configurar e configurar nós
  • procesando metadatos da máquina virtual

ZY Escribe nos comentarios se che interesan outros aspectos. Estade atentos!

Fonte: www.habr.com

Engadir un comentario