Flexiant Cloud Orchestrator: hva det fĂžlger med

Flexiant Cloud Orchestrator: hva det fĂžlger med

For Ä tilby IaaS-tjenester (Virtual Data Center) mÄ vi Rusonyx vi bruker en kommersiell orkestrator Flexiant Cloud Orchestrator (FCO). Denne lÞsningen har en ganske unik arkitektur, som skiller den fra Openstack og CloudStack, kjent for allmennheten.

KVM, VmWare, Xen, Virtuozzo6/7, samt beholdere fra samme Virtuozzo stĂžttes som beregningsnodehypervisorer. StĂžttede lagringsalternativer inkluderer lokal, NFS, Ceph og Virtuozzo Storage.

FCO stĂžtter oppretting og administrasjon av flere klynger fra ett enkelt grensesnitt. Det vil si at du kan administrere en Virtuozzo-klynge og en KVM + Ceph-klynge ved Ă„ bytte mellom dem med et museklikk.

I kjernen er FCO en helhetlig lÞsning for skyleverandÞrer, som i tillegg til orkestrering ogsÄ inkluderer fakturering, med alle innstillinger, betalingsplugins, fakturaer, varsler, forhandlere, tariffer og sÄ videre. Faktureringsdelen er imidlertid ikke i stand til Ä dekke alle russiske nyanser, sÄ vi forlot bruken til fordel for en annen lÞsning.

Jeg er veldig fornĂžyd med det fleksible systemet for Ă„ distribuere rettigheter til alle skyressurser: bilder, disker, produkter, servere, brannmurer - alt dette kan "deles" og gis rettigheter mellom brukere, og til og med mellom brukere av forskjellige klienter. Hver klient kan opprette flere uavhengige datasentre i skyen sin og administrere dem fra ett enkelt kontrollpanel.

Flexiant Cloud Orchestrator: hva det fĂžlger med

Arkitektonisk bestÄr FCO av flere deler, som hver har sin egen uavhengige kode, og noen har sin egen database.

Skyline – admin og brukergrensesnitt
Jade – forretningslogikk, fakturering, oppgavehĂ„ndtering
Tigerlily – tjenestekoordinator, styrer og koordinerer informasjonsutveksling mellom forretningslogikk og klynger.
XVPManager – styring av klyngeelementer: noder, lagring, nettverk og virtuelle maskiner.
XVPAgent – en agent installert pĂ„ noder for Ă„ samhandle med XVPManager

Flexiant Cloud Orchestrator: hva det fĂžlger med

Vi planlegger Ă„ inkludere en detaljert historie om arkitekturen til hver komponent i en serie artikler, hvis emnet selvfĂžlgelig vekker interesse.

FCOs hovedfordel stammer fra dens bruksklare natur. Den tilbyr enkelhet og minimalisme. Én enkelt virtuell maskin er allokert til kontrollnoden. Ubuntu, hvor alle nþdvendige pakker er installert. Alle innstillinger lagres i konfigurasjonsfiler som variabelverdisetninger:

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



Hele konfigurasjonen blir fĂžrst redigert i maler, deretter startes generatoren
#build-config som vil generere en vars-fil og kommandere tjenestene til Ä lese konfigurasjonen pÄ nytt. Brukergrensesnittet er fint og kan enkelt merkes.

Flexiant Cloud Orchestrator: hva det fĂžlger med

Som du kan se, bestÄr grensesnittet av widgets som kan kontrolleres av brukeren. Han kan enkelt legge til/fjerne widgets fra siden, og dermed lage dashbordet han trenger.

Til tross for sin lukkede natur, er FCO et svĂŠrt tilpassbart system. Den har et stort antall innstillinger og inngangspunkter for Ă„ endre arbeidsflyten:

  1. Tilpassede plugins stĂžttes, for eksempel kan du skrive din egen faktureringsmetode eller din egen eksterne ressurs for Ă„ gi brukeren
  2. Egendefinerte utlÞsere for visse hendelser stÞttes, for eksempel Ä legge til den fÞrste virtuelle maskinen til en klient nÄr den opprettes
  3. Egendefinerte widgets i grensesnittet stĂžttes, for eksempel ved Ă„ bygge inn en YouTube-video direkte i brukergrensesnittet.

All tilpasning er skrevet i FDL, som er basert pÄ Lua. Hvis du kjenner Lua, vil det ikke vÊre noen problemer med FDL.

Her er et eksempel pÄ en av de enkleste triggerne vi bruker. Denne utlÞseren tillater ikke brukere Ä dele sine egne bilder med andre klienter. Vi gjÞr dette for Ä hindre en bruker i Ä lage et ondsinnet bilde for andre brukere.

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

Registerfunksjonen kalles opp av FCO-kjernen. Det vil returnere navnet pÄ funksjonen som skal kalles. "p"-parameteren til denne funksjonen lagrer anropskonteksten, og fÞrste gang den kalles opp vil den vÊre tom (null). Som vil tillate oss Ä registrere triggeren vÄr. I triggerType indikerer vi at triggeren pÄkalles FØR publiseringsoperasjonen, og kun pÄvirker brukere. SelvfÞlgelig lar vi systemadministratorer publisere alt. I triggerOptions beskriver vi operasjonene som utlÞseren vil utlÞses for.

Og det viktigste er retur {exitState = “CANCEL”}, som er grunnen til at triggeren ble utviklet. Det vil returnere feil nĂ„r brukeren prĂžver Ă„ dele bildet sitt i kontrollpanelet.

I FCO-arkitekturen er ethvert objekt (disk, server, bilde, nettverk, nettverksadapter, etc.) representert som en ressursenhet, som har vanlige parametere:

  • Ressurs UUID
  • ressursnavn
  • ressurstype
  • Ressurseier UUID
  • ressursstatus (aktiv, inaktiv)
  • ressursmetadata
  • ressursnĂžkler
  • UUID for produktet som eier ressursen
  • ressurs VDC

Dette er veldig praktisk nÄr du arbeider med en API, nÄr alle ressurser jobbes etter samme prinsipp. Produktene konfigureres av leverandÞren og bestilles av kunden. Siden vÄr fakturering er pÄ siden, kan kunden fritt bestille ethvert produkt fra panelet. Det vil bli beregnet senere i faktureringen. Produktet kan vÊre en IP-adresse per time, en ekstra GB disk per time, eller bare en server.

NĂžkler kan brukes til Ă„ merke visse ressurser for Ă„ endre logikken i arbeidet med dem. For eksempel kan vi merke tre fysiske noder med vektnĂžkkelen, og merke noen klienter med samme nĂžkkel, og dermed allokere disse nodene personlig til disse klientene. Vi bruker denne mekanismen for VIP-klienter som ikke liker naboer ved siden av VM-ene sine. Selve funksjonaliteten kan brukes mye bredere.

Lisensmodellen innebÊrer Ä betale for hver prosessorkjerne i en fysisk node. Kostnaden pÄvirkes ogsÄ av antall klyngetyper. Hvis du planlegger Ä bruke KVM og VMware sammen, for eksempel, vil kostnaden for lisensen Þke.

FCO er et fullverdig produkt, funksjonaliteten er veldig rik, sÄ vi planlegger Ä forberede flere artikler samtidig med en detaljert beskrivelse av funksjonen til nettverksdelen.

Etter Ä ha jobbet med denne orkestratoren i flere Är, kan vi markere den som svÊrt egnet. Dessverre, produktet er ikke uten feil:

  • vi mĂ„tte optimalisere databasen fordi spĂžrringene begynte Ă„ avta etter hvert som mengden data i dem Ăžkte;
  • etter en ulykke fungerte ikke gjenopprettingsmekanismen pĂ„ grunn av en feil, og vi mĂ„tte gjenopprette bilene til uheldige kunder ved Ă„ bruke vĂ„rt eget sett med skript;
  • Mekanismen for Ă„ oppdage node utilgjengelighet er koblet inn i koden og kan ikke tilpasses. Det vil si at vi ikke kan lage vĂ„re egne retningslinjer for Ă„ fastslĂ„ utilgjengelighet av en node.
  • logging er ikke alltid detaljert. Noen ganger, nĂ„r du trenger Ă„ gĂ„ ned til et veldig lavt nivĂ„ for Ă„ forstĂ„ et bestemt problem, har du ikke nok kildekode til at enkelte komponenter kan forstĂ„ hvorfor;

TOTAL: Generelt er inntrykkene av produktet gode. Vi er i kontinuerlig kontakt med orkestratorutviklerne. Gutta er innstilt pÄ et konstruktivt samarbeid.

Til tross for sin enkelhet har FCO bred funksjonalitet. I fremtidige artikler planlegger vi Ä gÄ dypere inn i fÞlgende emner:

  • nettverk i FCO
  • gir live-gjenoppretting og FQP-protokoll
  • skrive dine egne plugins og widgets
  • kobler til tilleggstjenester som Load Balancer og Acronis
  • backup
  • enhetlig mekanisme for Ă„ konfigurere og konfigurere noder
  • behandle virtuell maskin metadata

ZY Skriv i kommentarfeltet hvis du er interessert i andre aspekter. FĂžlg med!

Kilde: www.habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig webhotell med DDoS-beskyttelse, VPS VDS-servere | ProHoster