BE1027660A1 - Een systeem en werkwijze voor de configuratie van een grootschalige gedistribueerde infrastructuur - Google Patents

Een systeem en werkwijze voor de configuratie van een grootschalige gedistribueerde infrastructuur Download PDF

Info

Publication number
BE1027660A1
BE1027660A1 BE20195684A BE201905684A BE1027660A1 BE 1027660 A1 BE1027660 A1 BE 1027660A1 BE 20195684 A BE20195684 A BE 20195684A BE 201905684 A BE201905684 A BE 201905684A BE 1027660 A1 BE1027660 A1 BE 1027660A1
Authority
BE
Belgium
Prior art keywords
state
orchestration
infrastructure
finite
modules
Prior art date
Application number
BE20195684A
Other languages
English (en)
Other versions
BE1027660B1 (nl
Inventor
Bart Vanbrabant
Borger Wouter De
Stefan Walraven
Original Assignee
Inmanta Nv
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inmanta Nv filed Critical Inmanta Nv
Priority to BE20195684A priority Critical patent/BE1027660B1/nl
Priority to EP20789587.1A priority patent/EP4042278A1/en
Priority to US17/767,479 priority patent/US20230125626A1/en
Priority to PCT/EP2020/078450 priority patent/WO2021069683A1/en
Publication of BE1027660A1 publication Critical patent/BE1027660A1/nl
Application granted granted Critical
Publication of BE1027660B1 publication Critical patent/BE1027660B1/nl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

Een orkestratiesysteem en werkwijze voor het configureren van een grootschalige gedistribueerde infrastructuur met een meervoudig aantal subsystemen. Een orkestratiemodel met een meervoudig aantal voorgedefinieerde modules is voorzien voor het implementeren van gewenste toestanden in de gedistribueerde infrastructuur. Bepaalde modules van het orkestratiemodel zijn gekoppeld aan een multi-state finite-state machine omvattende een lijst van gewenste toestanden. Een dynamische toestandsverandering van ten minste één finite-state machine van een gewenste toestand naar een andere worde uitgevoerd, als reactie op één of meerdere gedetecteerde events die een overgangsvoorwaarde aansturen.

Description

Een system en werkwijze voor de configuratie van een grootschalige gedistribueerde infrastructuur
DOMEIN VAN DE UITVINDING De uitvinding heeft betrekking op een werkwijze en systeem voor het configureren en/of orkestreren van een grootschalige gedistribueerde infrastructuur met meerdere subsystemen. De uitvinding heeft verder betrekking op het wijzigen van de configuratie als gevolg van aanpassingen, bijvoorbeeld naar aanleiding van netwerkgebeurtenissen.
ACHTERGROND VAN DE UITVINDING Grootschalige gedistribueerde systemen worden meestal gebruikt door bedrijven zoals Microsoft, Google, Facebook, Twitter enz. die grootschalige digitale services leveren waarop veel gebruikers in grote mate vertrouwen. Daarnaast leveren bedrijven als Oracle, Amazon, SAP, SalesForce, etc. ook grootschalige softwareproducten en -services waar veel bedrijven voor hun dagelijkse werkzaamheden op vertrouwen. Bijna alle bedrijven vertrouwen op softwaresystemen om te kunnen functioneren in hun dagelijkse activiteiten, zoals banken, kleinhandelaren, de overheid en zelfs productiebedrijven. De in computers geïmplementeerde systemen zijn alomtegenwoordig geworden en worden steeds complexer omdat ze afhankelijk zijn van veel andere software en services.
De voortdurende groei van het cloud computing-paradigma vergroot de beheersuitdaging omdat het gedistribueerde systemen in staat stelt om snel te schalen door het inzetten van extra nodes. Ze kunnen dynamisch evolueren naar zeer grote afmetingen en bovendien schalen ze dynamisch af wanneer de belasting afneemt om de operationele kosten te verminderen. Cloud computing verhoogt de schaal en de dynamiek van gedistribueerde softwaresystemen op vele manieren, evenals het tempo van de configuratie-updates dat operators moeten aanhouden.
De in de computer geïmplementeerde producten en services hebben de neiging om vaak te mislukken en de kosten van de daaruit resulterende stilstand zijn relatief hoog. Vaak worden de storingen veroorzaakt door configuratiefouten. Dit is een klasse van fouten waar gedistribueerde systemen bijzonder gevoelig voor zijn door hun complexe interacties en onderlinge afhankelijkheid tussen de services en de uitrolomgeving. Deze onderlinge afhankelijkheden doen zich voor op alle lagen van de softwarestack, variërend van netwerkservices tot middleware- services en applicatiecomponenten. Grote en complexe infrastructuurinstallaties kunnen uiterst moeilijk efficiënt te beheren zijn, aangezien voor de subsystemen afzonderlijke configuraties nodig kunnen zijn. Gedistribueerde omgevingen zoals grote telecommunicatienetwerken, clusters van computersystemen, datacenters, industriële netwerken, netwerksystemen enz. kunnen het beheer van een zeer groot aantal subsystemen zoals servicecomponenten en resources met zich meebrengen. De infrastructuur kan enorm en rommelig zijn met een groot aantal configuraties van machines en typen machines. De handmatige configuratie van de subcomponenten en resources kan echter een moeilijke taak zijn die veel tijd en werk vraagt van de systeembeheerders. Zo kan de te beheren infrastructuur een groot aantal subnetwerken (bijv. glasvezelnetwerk, DSL-netwerk enz.), modems, switches, tussenliggende nodes, apparaten, datacenters, (virtuele) machine enz. omvatten. Het werk van operators om grote gedistribueerde systemen te beheren kan vervelend en repetitief zijn, omdat vergelijkbare bewerkingen en veranderingen op meerdere machines moeten worden uitgevoerd.
Operators proberen hun werk te automatiseren met behulp van bijvoorbeeld ad-hocscripts. Scripts automatiseren bepaalde aspecten van de configuratie en het beheer van de machines en de software die erop draait (besturingssysteem, services en applicaties). Operatorscripts zijn vaak op maat gemaakt voor hun omgeving, ad hoc en zeer kwetsbaar omdat ze in de loop van vele jaren zijn geëvolueerd zonder een goede kwaliteitsgarantie.
In typische situaties kan voor een gewenste eindservice van belang die aan gebruikers moet worden geleverd met de beschikbare infrastructuur een samenstelling van meerdere resources en servicecomponenten nodig zijn die samen de eindservice kunnen leveren. Een dergelijke samenstelling vereist vaak een zorgvuldige configuratie en aanwending van middelen. De subsystemen die worden gebruikt voor het verlenen van een service moeten op een doeltreffende en compatibele manier met elkaar in verbinding staan. De werklast die gebruikers geven kan worden doorgegeven door het initialiseren van een ingezette service. Het is echter ook wenselijk dat de service storingen op subsysteemniveau adequaat kan afhandelen voor het verlenen van een robuuste service bij het afhandelen van externe gebeurtenissen, verzoeken van gebruikers en/of schommelingen in de werklast.
De levering van een gevraagde service met behulp van een bestaande infrastructuur kan een groot aantal heterogene subsystemen, resources en/of servicecomponenten omvatten. Het handmatig beheren van de verschillende machines en taken kan vervelend zijn en ook gevoelig voor menselijke fouten. Bovendien kan de algemene complexiteit van het beheer toenemen wanneer de resources tot meerdere administratieve domeinen behoren (bijvoorbeeld verschillende bedrijven, landen enz.), waarvoor vaak input van meerdere partijen nodig is. Zo kan een communicatiepad van een bepaalde bron naar een bepaalde bestemming bijvoorbeeld netwerken van verschillende partijen kruisen (bijvoorbeeld netwerkexploitanten, -providers enz.). Voor het opzetten van een dergelijk communicatiepad in de infrastructuur kan het nodig zijn de configuratie op verschillende gedistribueerde subsystemen van de infrastructuur te wijzigen. Zodra de subsystemen correct zijn geconfigureerd, kan de communicatie daadwerkelijk tot stand worden gebracht met behulp van het pad.
Een hoge mate van complexiteit kan ook optreden wanneer een nieuwe service wordt ingezet op een bestaande infrastructuur. Het beheer van de levenscyclus van de bestaande service kan ook moeilijk zijn. Dit kan nog erger worden in een complexe applicatieomgeving; bijvoorbeeld een omgeving waarin een workflow wordt georkestreerd die wordt gevormd door meerdere applicatieprocessen. De huidige technologieën voor systeembeheer kunnen dergelijke situaties niet doeltreffend aanpakken.
Traditionele geautomatiseerde orkestrators vertrouwen doorgaans sterk op de kennis van domeinexperts over de onderliggende infrastructuur en subsysteemvereisten. Vaak gaat het bij het handmatige werk om het tijdrovend configureren van bestaande subsystemen van de infrastructuur en het aanpassen van de configuratie en de implementatiestappen voor een nieuwe service, zodat deze met succes kan worden ingezet.
Vaak wordt een eerder dwingende aanpak gehanteerd. In deze aanpak kan een dwingend script worden gebruikt voor het configureren van de subsystemen van een infrastructuur. Met een dwingend script is het echter misschien niet mogelijk om de uiteindelijke toestand te beoordelen, wat de verificatie of een eindresultaat bemoeilijkt. Er moet rekening worden gehouden met alle mogelijke voorwaarden, wat in de praktijk niet altijd kan. Bovendien is de dwingende scriptbenadering gevoelig voor een initiële toestand. Daarnaast is er vaak een gebrek aan traceerbaarheid omdat er niet voldoende informatie is over wat er gaande is en hoe de eigenlijke infrastructuur eruit ziet.
Tools voor configuratiebeheer bieden een meer gestructureerde aanpak van de automatisering van het systeembeheer. Deze hulpmiddelen bestaan in een breed scala aan automatiserings- en abstractiemogelijkheden. Aan de ene kant van het spectrum bevinden zich 5 tools die slechts een kader bieden om aangepaste scripts te verspreiden, te plannen en uit te voeren en om rapporten van de uitvoering te genereren. Aan de andere kant van het spectrum bevinden zich instrumenten die een gewenst model voor toestandsorkestratie (bijv. configuratie) van de beheerde infrastructuur bieden.
In managementplatforms voor configuratie van een gewenste toestand bewaart een centrale opslagplaats een inputspecificatie die de gewenste configuratie van de beheerde gedistribueerde infrastructuur/systeem beschrijft. Een of meer translation agents genereren de gewenste toestand van elk van de resources die de tool beheert op verschillende apparaten. Een deployment agent op elk beheerd inrichting haalt, door middel van pull of push, de gewenste toestand op van elk van de resources die het beheert. De deployment agent dwingt vervolgens de gewenste toestand van elk van zijn beheerde resources af. De bestaande managementplatforms voor configuratie van een gewenste toestand kunnen de toename van de snelheid van de configuratiewijzigingen en de toename van de complexiteit van gedistribueerde applicaties niet langer bijbenen, beide trends worden grotendeels gedreven door het grotere belang van cloud computing en het leveren van SaaS.
Er is behoefte aan een orkestrator voor de inzet van een nieuwe service of voor het management van bestaande services op een infrastructuur die beter schaalbaar is, minder gevoelig is voor fouten en/of efficiënter is, waardoor bijvoorbeeld minder tijdrovende handmatige handelingen nodig zijn. Het is wenselijk dat de orkestrator zich beter kan lenen voor automatisering, waardoor er minder administratoracties in de deployment workflow nodig zijn.
SAMENVATTING VAN DE UITVINDING Het is een doel van de uitvinding om te voorzien in een systeem en een werkwijze die ten minste een van de bovengenoemde nadelen wegneemt.
Daarnaast of als alternatief, is het een doel van de uitvinding om te voorzien in een verbeterd systeem en een betere werkwijze voor het configureren van een gewenste toestand.
Daarnaast of als alternatief is het een doel van de uitvinding om de automatisering van een herconfiguratieproces in een infrastructuur te verbeteren.
Daarnaast of als alternatief is het een doel van de uitvinding om de noodzaak van handmatige (her)configuratie van subsystemen van een infrastructuur te verminderen, met name wanneer een nieuwe service en/of een nieuwe functie op de infrastructuur wordt geactiveerd.
Daartoe voorziet de uitvinding in een orkestratiesysteem voor het configureren van een grootschalige gedistribueerde infrastructuur met meerdere subsystemen; waarin het orkestratiesysteem een declaratief orkestratiemodel omvat voor het implementeren van gewenste toestanden in de gedistribueerde infrastructuur, waarin het orkestratiemodel een meervoudig aantal op voorhand gedefinieerde modules omvat die elk een gewenste toestand implementeren, waarin modules met gewenste toestanden op een hoger niveau communicatief verbonden zijn met modules met gewenste toestanden op een lager niveau en waarin ten minste één subverzameling van de gewenste toestanden op een lager niveau toepasbare configuratieparameters voor subsystemen van de infrastructuur biedt; waarin ten minste één module van het orkestratiemodel is gekoppeld aan een machine met meerdere tostanden met een lijst van gewenste toestanden, waarbij de finite-state machine zo is geconfigureerd dat deze zich op elk gewenst moment in één geselecteerde gewenste toestand uit de lijst bevindt; waarin elke finite-state machine ten minste een reeks servicekenmerken bij zich heeft die dienen als input voor het aan die finite- state machine gekoppelde orkestratiemodel; en waarin het orkestratiesysteem is geconfigureerd om gebeurtenissen te bewaken een dynamische toestandsovergang van ten minste één finite-state machine van de ene naar de andere gewenste toestand uit te voeren in reactie op een of meer gedetecteerde gebeurtenissen die een overgangstoestand teweegbrengen.
De gewenste toestand verklaart de toestand waarin de services en/of subsystemen (bv. apparaten) van de infrastructuur zich moeten bevinden, in plaats van dwingende instructies te gebruiken. Het kan goedkoper om de configuratie te leren, aan te nemen, te implementeren en te onderhouden via de configuratie van gewenste toestanden. Het orkestratiesysteem maakt een snelle aanpassing van de configuraties van de subsystemen (bijvoorbeeld apparaten, services enz.) in de infrastructuur mogelijk, waardoor de controleerbaarheid wordt verbeterd. Het systeem biedt ook een veerkracht tegen dreigende storingen omdat de inzet op elk moment consequent kan worden herhaald, teruggerold, aangepast enz. om een gewenste eindtoestand te garanderen. De complexiteit van het beheer van de infrastructuur kan effectief worden verminderd en de infrastructuur kan beter worden gecontroleerd en/of aangepast. Zo kan het orkestratiesysteem bijvoorbeeld zorgen voor een ononderbroken inzetbaarheid, waardoor het mogelijk is om vaak in te zetten, zonder de complexiteit van scripting. De orkestrator maakt een soepele en betrouwbare werking van grootschalige infrastructuren mogelijk, waardoor de terugverdientijd van nieuwe services die met behulp van de infrastructuur worden geleverd (bijv. cloud computing) wordt gereduceerd.
Het orkestratiesysteem kan zorgen voor een herhaalbare inzet, configuratie en conformiteit. Er kan beter voor worden gezorgd dat onderdelen van een infrastructuur (bijvoorbeeld een datacenter) de juiste configuratie hebben, waardoor fouten worden voorkomen en dure uitroldefecten worden voorkomen. Het orkestratiesysteem kan als onderdeel van de service worden geüpdatet (bijv. applicatie, datatransmissieservice, cloudservice enz.), zodat de kennis die nodig is om de service in te zetten up- to-date en gebruiksklaar is.
De meervoudige gewenste toestand die met de finite-state machines wordt bereikt, biedt een groot aantal voordelen. Aangezien de finite-state machines een lijst met meerdere gewenste toestanden hebben, kan het orkestratiesysteem reageren op gebeurtenissen (bijv. dingen die gebeuren, de gebruiker vraagt om een wijziging, het bewakingssysteem meldt dat een pad niet meer beschikbaar is). De gebeurtenissen kunnen een toestandsovergang in de finite-state machine in gang zetten, zodat de gewenste toestand van de module in een andere (nieuwe) gewenste toestand wordt gebracht. Als gevolg van deze overgang kan een herconfiguratie worden uitgevoerd die door de module is gedefinieerd. Het orkestratiesysteem kan worden geconfigureerd om te proberen naar de eindtoestand (gewenste toestand) te gaan. Deze eindtoestand staat vast, waarbij geen overgangstoestanden nodig zijn om tot de gewenste eindtoestand te komen. De finite-state machine gekoppeld aan elke module van de minstens één module is altijd in precies één toestand op elk moment. De gewenste toestand kan echter worden gewijzigd in een van de andere gewenste toestanden die door de finite-state machine zijn gedefinieerd, en die door een of meer gebeurtenissen worden geactiveerd.
Een gebeurtenis kan bijvoorbeeld overeenkomen met een verzoek van een gebruiker om een netwerk-/serviceconfiguratie van een netwerkinfrastructuur te wijzigen. In reactie op het ontvangen van het verzoek kan het orkestratiesysteem één of meer wijzigingen in de netwerkconfiguratie aanbrengen om het verzoek tot wijziging van de netwerkconfiguratie van het netwerk uit te voeren. De infrastructuur kan opnieuw worden geconfigureerd door het uitvoeren van de vastgestelde één of meer netwerk-/serviceconfiguratiewijzigingen. Het orkestratiesysteem volgens de uitvinding kan een universeel orkestratieplatform bieden voor het beheren, configureren en/of exploiteren van een grootschalig gedistribueerd (sub)systeem in de infrastructuur. Het orkestratieplatform kan een algemeen configuratiecontrole- en managementhulpmiddel bieden. Het orkestratiemodel kan worden gebouwd op basis van de specifieke kenmerken van de infrastructuur.
Het orkestratiesysteem kan configuratiewijzigingen in de infrastructuur uitvoeren op basis van de gewenste toestanden van de modules. Het orkestratiesysteem kan de subsystemen van de infrastructuur configureren en/of herconfigureren wanneer een toestandsovergang van ten minste één van de finite-state machines in werking treedt.
Een geïntegreerd platform voor configuratiebeheer kan de behoefte aan aangepaste scripts effectief verminderen. Een dergelijke frameworkbenadering die door het orkestratiesysteem wordt geboden, kan de ontwikkeling van aangepaste scripts die met het configuratiemodel integreren, vergemakkelijken. De definitie van het orkestratiemodel kan een stabiele interface voor de scripts bieden. Het orkestratiemodel kan een beschrijving op hoog niveau geven van een gedistribueerde infrastructuur.
In de orkestratie kunnen ook de volgende termen worden gebruikt. Een 'service inventory' kan een database zijn met service-
instanties. Een 'entity type' kan de specificatie van een gewenste toestand geven, de definitie van een specifieke abstractie, waaraan verfijningen worden gekoppeld. Een 'service type' kan duiden op een specifiek soort service, gevormd door en entiteitstype gekoppeld aan een specifieke levenscyclus. Een 'service instance' kan een instantie van een servicetype zijn, d.w.z. een unieke identiteit, een versienummer, een verzameling actuele invoerparameters, een actuele levenscyclustoestand, een verzameling voorgaande invoerparameters en een verzameling kandidaat- invoerparameters.
Het moge duidelijk zijn dat de module een service instantie kan zijn. In sommige voorbeelden kan een module worden gezien als een abstractie van een submodel van het orkestratiemodel dat wordt bestuurd door de finite-state machine.
Een service instance is, gezien de huidige toestand, de huidige inputparameters en het type, deterministisch verfijnd tot inzetbare intenties op laag niveau. Specifieke overgang kan de kenmerkverzamelingen manipuleren. Bij het aanvragen van een update kan de gebruiker bijvoorbeeld een nieuwe verzameling van waarden uploaden naar de kandidaatinputparameters. Deze kandidaatinput kan worden gevalideerd. Eenmaal goedgekeurd, kunnen ze effectief worden gemaakt door promotie: kandidaat wordt actief, actief wordt prioritair. Bij terugdraaien kan een overgang gedegradeerd worden: actief wordt kandidaat, prior wordt actief.
Het werken met gewenste toestanden kan het moeilijker maken om te reageren op gebeurtenissen die met de werking van de infrastructuur te maken hebben. Dit wordt effectief opgelost door middel van de uitvinding met behulp van de 'multi-state desired state approach’. Het orkestratiesysteem biedt een dynamische gewenste toestandsbenadering (cf. multi-state) om een betrouwbare netwerkservice te leveren met behulp van de infrastructuur. Op deze manier kan adequaat worden ingespeeld op veranderende omstandigheden in de infrastructuur. De finite-state machines kunnen op basis van gedetecteerde gebeurtenissen naar een nieuwe gewenste toestand overschakelen.
Optioneel is dit de overgang van een huidige toestand van de finite-state machine naar een nieuwe toestand gebeurt in reactie op een externe gebeurtenis gedetecteerd door het orkestratiesysteem of op een interne gebeurtenis van ten minste de voltooiing of de mislukking om ten minste een deel van de huidige gewenste toestand te realiseren.
Het 'multi-state desired state'-orkestratiesysteem kan verschillende bedrijfsmodi definiëren als verschillende toestanden in state machines. De state machine kan verschillende nodes omvatten die elk gekoppeld zijn aan een bepaalde gewenste toestand. Voorwaardelijk, op basis van de gedetecteerde gebeurtenissen, kan de toestand van de finite- state machines de overgang naar een andere gewenste toestand bewerkstelligen. Voorbeelden van gebeurtenissen zijn wanneer een ander pad moet worden gebruikt om een verbinding tussen twee punten tot stand te brengen; detectie van een storing door een bewakingseenheid; een klant die een parameterupdate aanvraagt enz. De externe gebeurtenissen kunnen worden gemodelleerd in de state machines met overdrachten tussen verschillende toestanden. Een gewenste toestand kan overeenkomen met een orkestratiemodel, waarbij de toestanden in de finite-state machine bepaalt welke gewenste toestand wordt geselecteerd.
De gewenste toestand op een hoger niveau kan bijvoorbeeld gelijk blijven (bijvoorbeeld verbinding tussen A en B), maar de manier waarop deze zich verfijnt tot onafhankelijke stappen met modules op lager niveau, kan worden veranderd door een toestandsovergang van de finite-state machines van de module (of eender welke modules op een lager niveau) die door gebeurtenissen (bijvoorbeeld externe gebeurtenissen van de buitenwereld) wordt geactiveerd. Als bijvoorbeeld pad X niet meer mogelijk is voor het bereiken van de verbinding tussen A en B, dan kan een gelijke doelstelling op hoog niveau worden geïnterpreteerd als het doorlopen van pad Y. De verandering van pad X naar pad Y kan worden geïmplementeerd door een module op lager niveau die wordt geactiveerd door de gebeurtenis dat pad X bijvoorbeeld niet meer bruikbaar is.
Voordeel hiervan is dat door de benadering met meerdere gewenste toestanden minder handmatig onderhoud nodig kan zijn om de infrastructuur operationeel te houden voor het leveren van een bepaalde gewenste service.
Optioneel omvat het orkestratiesysteem een bus voor het communiceren van gebeurtenissen. De event bus kan bijvoorbeeld gebeurtenissen van de gedistribueerde apparaten, applicaties, services en/of subsystemen van de infrastructuur doorgeven aan het orkestratiesysteem.
Daarnaast of als alternatief kunnen ook externe gebeurtenissen via de event bus naar het orkestratiesysteem worden verzonden.
Optioneel omvat het orkestratiesysteem een of meer application programming interfaces (API's), waarbij het orkestratiesysteem zo is geconfigureerd dat toestandsovergang van de finite-element machine worden geactiveerd door een of meer application programming interfaces (API's) aan te roepen. Optioneel worden deze aanroepen geconfigureerd om een van de verzamelingen van kenmerken te manipuleren die geassocieerd zijn met de finite-state machine.
Het orkestratiesysteem kan gewenste toestanden op basis van gebeurtenissen hebben. Een overgang van de finite-state machine van de ene toestand naar een volgende toestand kan worden getriggerd door een APlI-aanroep. Dit kan worden weergegeven door een rand van de finite-state machine die bepaalt welke overgangen zijn toegestaan en onder welke voorwaarden. De randen van de finite-state machine kunnen bepaalde triggers accepteren, bijvoorbeeld API-aanroep, volgorde van gebeurtenissen en/of expliciete verzoeken. De overgangen kunnen worden uitgevoerd op basis van verschillende soorten gebeurtenissen of triggers. De gebeurtenis die de overgang in gang zet, kan bijvoorbeeld gebaseerd zijn op resources, bijvoorbeeld als de inzet van de eigenlijke service een bepaalde toestand bereikt, als een bepaalde service met succes tot stand is gebracht enz. Verder kan, bijvoorbeeld, als een levenscyclus extern wordt gewijzigd, de gewenste toestand ook worden gewijzigd (die wordt toegepast in het netwerk met als gevolg een herconfiguratie van een of meer subsystemen van de infrastructuur).
De verlening van services kan beter worden geautomatiseerd door middel van het orkestratiesysteem. Ook de evolutie van een service gedurende de hele levenscyclus kan efficiënter worden geautomatiseerd.
De invoer van het orkestratiesysteem kan de gewenste toestand van het gehele beheerde gedistribueerde systeem beschrijven in een enkel configuratiemodel van de orkestrator. Dit kan een geïntegreerd model zijn dat het orkestratiesysteem in staat stelt de acties af te leiden die nodig zijn om de werkelijke toestand van het gedistribueerde systeem in de gewenste toestand te brengen. Een meervoudig aantal machines, virtuele machines, services, subsystemen enz. kan effectief worden beheerd in een gedistribueerde infrastructuur met een bijbehorend geïntegreerd configuratiemodel. Het moge duidelijk zijn dat het orkestratiesysteem ook heterogene apparaten, zoals servers, netwerkapparatuur, programmeerbare infrastructuur enz., kan beheren vanuit één geïntegreerd (orkestrator) configuratiemodel.
Het orkestratiesysteem kan worden geconfigureerd om de gewenste toestand te vergelijken met de configuratie op elk beheerd subsysteem (bijv. inrichting, service, virtuele machine enz.) en een plan af te leiden om naar de gewenste toestand te gaan (met name convergentie). Aangezien het orkestratiesysteem convergentie ondersteunt, kunnen afwijkingen van de gewenste toestand automatisch worden gecorrigeerd.
Optioneel kunnen toestandsovergangen ervoor zorgen dat de verzamelingen van kenmerken op een vooraf bepaalde manier worden gemanipuleerd.
Optioneel wordt een netwerkservice uitgevoerd in de gedistribueerde infrastructuur, waarbij de netwerkservice kan worden gestuurd met behulp van gedetecteerde gebeurtenissen die aan het orkestratiesysteem worden gecommuniceerd.
Optioneel vertegenwoordigen de verschillende toestanden vermeld op de lijst van toestanden van de state machine de verschillende stappen van een implementatielevenscyclus van een netwerkservice.
Voor de serviceverlening in de telecommunicatiesector kunnen bijvoorbeeld verschillende levenscycli worden gedefinieerd. De finite-state machine kan de toestand van een service effectief afdwingen/uitvoeren op basis van een geselecteerde levenscyclus.
Optioneel omvat het orkestratiemodel informatie over de soorten subsystemen (bv. netwerkelementen, routers, switches enz. die op zichzelf staan of in een virtuele omgeving kunnen worden opgenomen), de mogelijkheden van de subsystemen (bv. kracht van de processor, geheugen, bandbreedte enz.), de geografische locaties van de subsystemen en dergelijke. Daarnaast, of als alternatief, kan het orkestratiemodel historische informatie omvatten die verband houdt met de subsystemen met betrekking tot het verlenen van de service (bv. statistieken, doorgeefverzoeken, forwardsnelheden enz. die verband houden met een of meer netwerkelementen). Het orkestratiesysteem kan de subsystemen zodanig configureren dat de service wordt verleend op basis van de ontvangen informatie van het orkestratiemodel, zodat de service op een efficiëntere manier wordt verleend (zo kunnen bijvoorbeeld resources en/of functies aan bepaalde subsystemen worden toegewezen).
Het orkestratiesysteem kan worden geconfigureerd om de subsystemen te controleren en gebeurtenissen te detecteren. Zo kan het orkestratiesysteem bijvoorbeeld toestandsinformatie ontvangen van een of meer infrastructuursubsystemen die de service verlenen en kan het een gebeurtenis detecteren die een wijziging van de service kan rechtvaardigen. Zo kunnen een of meer subsystemen het orkestratiesysteem bijvoorbeeld toestandsinformatie geven over het gebruik van de resources, een frequentie van ontvangen multicastverkeer, een frequentie van doorgeefverzoeken (bijvoorbeeld naar andere subsystemen en/of van andere subsystemen en/of netwerkelementen en/of gebruikersapparaten), een hoeveelheid dropped data-pakketten, fouten of storingen enz.
Het orkestratiesysteem kan de toestandsinformatie controleren en kan een gebeurtenis detecteren, zoals een storing, een gebruik van een netwerkpad dat aan een drempelwaarde voldoet, een gebruik van resources van een bepaald subsysteem dat aan een drempelwaarde voldoet, een hoeveelheid pakketverlies dat aan een drempelwaarde voldoet, of dergelijke.
Op basis van de detectie van de gebeurtenis kan het orkestratiesysteem een instructie geven om een toestand van ten minste één van de finite-state machines, gekoppeld aan de modules van het orkestratiemodel, te wijzigen. De nieuwe gewenste toestand kan worden afgedwongen in de infrastructuur, bijvoorbeeld door een bepaald subsysteem opdracht te geven een configuratie te wijzigen (bijvoorbeeld door een hoeveelheid te gebruiken resources te verhogen om de service te verlenen, een cache te vergroten om doorgeefverzoeken te ondersteunen, een andere functie te bieden bij de ondersteuning van de service enz.)
Optioneel wordt de finite-state machine geconfigureerd om over te gaan van een eerste toestand naar een tweede toestand die wordt geactiveerd door een of meer gebeurtenissen. In sommige voorbeelden is een voorwaarde voor het initiëren van een overgang de detectie van een opeenvolging van gebeurtenissen. Optioneel worden de finite-state machines van de modules elk gekoppeld aan een service-instantie. Optioneel wordt de finite-state machine geconfigureerd om een rollbackfunctionaliteit te bieden, waarbij in reactie op een rollbackgebeurtenis de finite-state machine wordt geconfigureerd om een rollbackovergang uit te voeren door naar een volgende toestand in de finite- state machine te gaan, waarbij de inputs naar de module waaraan de toestandsinformatie is gekoppeld worden hersteld naar de opgeslagen inputs.
Het is belangrijk om te beseffen dat een vorige gewenste toestand niet de specifieke toestand is waarin de toestandsinformatie zich voor de overgang bevond, maar dat het de verzameling van parameters is die de input vormen voor de module waaraan de toestandsinformatie is gekoppeld. Een rollback kan een normale overgang zijn, als reactie op een gebeurtenis, bijv. een storing tijdens het implementeren, het overgaan naar een volgende toestand (in de state machine) (bijv. rollback-in-progress), terwijl tegelijkertijd de ingangen naar de module worden hersteld in de opgeslagen toestand.
Optioneel wordt tijdens een toestandsovergang van een bepaalde finite-state machine van een vorige gewenste toestand naar een nieuwe gewenste toestand, de vorige gewenste toestand opgeslagen, waarin het orkestratiesysteem is geconfigureerd om automatisch terug te gaan naar de vorige gewenste toestand van de bepaalde finite-state machine als aan een rollbackvoorwaarde is voldaan.
De gewenste toestand op hoog niveau kan bijvoorbeeld bepalen om de netwerkbandbreedte van een bepaalde service te upgraden. De wijziging kan worden aangebracht en geverifieerd door het orkestratiesysteem. De aanpassing kan worden uitgerold in het netwerk. Configuratiewijzigingen kunnen bijvoorbeeld op verschillende elementen worden gepusht. Als er echter een storing optreedt bij het toepassen van configuratiewijzigingen op een van de elementen (bijvoorbeeld een bepaalde beperking die fysiek aanwezig is in de machines die niet in het orkestratiemodel zijn gemodelleerd, waardoor een mislukking optreedt), kan een rollback worden uitgevoerd in de state machine (geactiveerd door de storing), die de configuratiewijzigingen terugdraait naar de vorige toestand. Op deze manier kan bijvoorbeeld de netwerkbandbreedte worden teruggebracht naar de vorige bandbreedte. Als gevolg daarvan kunnen de subsystemen opnieuw worden onderzocht en kunnen de subsystemen waar de wijziging succesvol was, worden teruggebracht naar de vorige configuratie. Door middel van de finite-state machines kan dit proces volledig automatisch worden uitgevoerd, zodat het niet nodig 1s om handmatig op de machines te controleren of het is ingesteld op de geüpgradede netwerkbandbreedte. Voordeel is dat de succesvolle aanpassing of de mislukte aanpassing kan worden gebruikt als een evenement om de finite-state machine over te schakelen naar een andere toestand.
Optioneel wordt aan de rollbackvoorwaarde voldaan wanneer ten minste één stap in een transitiecampagne die op het orkestratiemodel wordt uitgevoerd, mislukt.
Optioneel houdt het orkestratiesysteem drie versies van configuraties en/of parameters van de subsystemen van de infrastructuur bij, namelijk een vorige oude versie, een huidige versie en een volgende versie. Als bijvoorbeeld een parameter wordt gewijzigd, wordt de volgende verzameling van parameters bepaald en kan het orkestratiesysteem de versie valideren en bijwerken. Het orkestratiesysteem kan controleren of de nieuwe verzameling van parameters acceptabel 1s voor de uitrol, bijvoorbeeld controleren of alle beperkingen in het orkestratiemodel toelaatbaar zijn. Als de wijziging niet acceptabel is, kan een terugdraaiing worden uitgevoerd.
Optioneel wordt het orkestratiesysteem geconfigureerd om een geldigheidscontrole uit te voeren wanneer een overgang wordt geïnitieerd, waarbij de Optioneel wordt het orkestratiesysteem geconfigureerd om een geldigheidscontrole uit te voeren wanneer een overgang wordt geïnitieerd, waarbij de finite-state machine wordt geconfigureerd om te controleren of de overgang naar de gewenste toestand is toegestaan. wordt geconfigureerd om te controleren of de overgang naar de gewenste toestand is toegestaan.
Optioneel wordt het orkestratiesysteem geconfigureerd om configuratieartefacten te genereren uit een compleet en verfijnd configuratiemodel. Het orkestratiesysteem kan wijzigingen aanbrengen die nodig zijn om de toestand van de beheerde resources te wijzigen in de gewenste toestand die in het configuratiemodel is beschreven.
Optioneel zijn de modules in opeenvolgende lagen gerangschikt voor het verfijnen van de gewenste toestanden van hoog naar laag niveau, waarbij de gewenste toestand van een module in een hogere laag wordt verfijnd in een of meerdere gewenste toestanden van modules in een daaropvolgend lager niveau, waarbij de modules in de hogere laag een gewenste toestand van een hoger niveau hebben dan de modules in de daaropvolgende lagere laag en waarbij ten minste een subverzameling van de gewenste toestanden van het lagere niveau de uitrolbare configuratieparameters aanleveren voor de services en/of subsystemen van de infrastructuur. Optioneel is de verfijning afhankelijk van de huidige toestand en kenmerkverzamelingen van een van de bijbehorende state machines.
De modules kunnen in verschillende implementatielagen worden weergegeven. Sommige gewenste toestanden op een lager niveau kunnen leiden tot het instellen van configuratieparameters van subsystemen van de infrastructuur (bijv. apparaten, virtuele machines enz.). Het verfijningsproces kan worden uitgevoerd door middel van de finite-state machine. Zo kunnen bijvoorbeeld de levenscycli van een service worden gemodelleerd met behulp van de finite-state machines die in het orkestratiesysteem worden gebruikt.
Het orkestratiesysteem kan worden geconfigureerd om de toewijzing van configuratieparameters voor specifieke services of subsystemen volledig te automatiseren, eventueel op basis van bewakingsinformatie om het controlecircuit te sluiten. Het orkestratiesysteem kan op declaratieve wijze configuratiewijzigingen afdwingen, waarbij de configuratieconcepten op hoog niveau worden verfijnd tot inzetbare configuraties met behulp van modules op hoger en lager niveau in het orkestratiemodel.
Optioneel wordt het orkestratiesysteem geconfigureerd om een geïntegreerde configuratiegeneratie te bieden, waarbij op uitvoeringsniveau configuratieartefacten worden gegenereerd (zoals configuratiebestanden, definities van netwerkschakelaars, servicetoestand enz.) vanuit een configuratie op hoger niveau. Het orkestratiesysteem kan configuraties inzetten en de orkestratie van configuratiewijzigingen op een geleidelijke, gecontroleerde en robuuste manier beheren.
Optioneel is het orkestratiemodel herconfigureerbaar.
Optioneel is het orkestratiemodel een modulair en herbruikbaar configuratiemodel.
Zo kunnen veranderingen in de infrastructuur eenvoudig worden doorgevoerd in het orkestratiemodel.
Het orkestratiesysteem kan worden geconfigureerd om het implementatieproces te beheren, alle huidige toestanden van de modules bij te houden en hun configuratie te implementeren.
Het orkestratiesysteem kan zijn toestand in een database opslaan.
Een compiler kan de broncode van het orkestratiemodel compileren tot inzetbare resources.
De inzetbare resources kunnen worden geëxporteerd naar een machine (bijv. virtuele machine) waarop het orkestratiesysteem draait.
Deze machine kan worden gecontroleerd via een algemene gebruikersinterface (bijv. web dashboard) of een opdrachtregeltool.
Communicatie met de machine kan plaatsvinden middels API-aanroepen.
Optioneel zijn de modules van het orkestratiemodel herconfigureerbaar, waarbij ten minste de lijst van toestanden en de voorwaarden voor de toestandsovergangen gedefinieerd door de finite-state machine gekoppeld aan de modules van het orkestratiemodel aanpasbaar zijn.
Het configuratiemodel kan een configuratie op een hoog abstractieniveau uitdrukken, en dat model verfijnen tot het abstractieniveau waarop de configuratie wordt afgedwongen op reële infrastructuren.
Op deze manier kan de configuratie van een gedistribueerde infrastructuur en de uitvoeringsomgeving ervan van begin tot eind worden beheerd.
De gebruiker kan het orkestratiemodel wijzigen.
De modules en hun rangschikking kunnen in het orkestratiemodel worden aangepast.
Bovendien kan het orkestratiesysteem de gebruiker desgewenst in staat stellen een specifiek pad te selecteren of specifieke subsystemen voor bepaalde services te selecteren.
Het orkestratiemodel kan een geïntegreerd model zijn met meerdere abstractieniveaus. Het modelleren van relaties tussen configuratieparameters in het orkestratiemodel kan duplicatie van configuratieparameters verminderen. Daarnaast of als alternatief kunnen plug-ins de opname van rekenroutines die in programmeertaal voor algemene doeleinden zijn ontwikkeld, mogelijk maken.
Optioneel is het orkestratiesysteem aangepast om ten minste een van een grootschalige telecommunicatie-infrastructuur, een cloudinfrastructuur, een webservice-infrastructuur of een database- infrastructuur te beheren.
De infrastructuur kan bijvoorbeeld bekabelde en/of draadloze netwerkarchitecturen hebben, of een combinatie van bekabelde en draadloze netwerkarchitecturen. In de telecommunicatie bijvoorbeeld is het beheer en de configuratie van een infrastructuur een uitdaging, omdat er veel verschillende soorten machines zijn die communicatief met elkaar verbonden zijn in de infrastructuur, waarvoor meestal een groot aantal verschillende soorten configuraties nodig zijn. Vaak kost het veel tijd om nieuwe functies en/of services vrij te geven met behulp van een bestaande infrastructuur. Dit komt vooral omdat er veel handmatig werk moet worden verricht om de infrastructuur goed te configureren. Dit kan effectief behandeld worden door het orkestratiesysteem volgens de uitvinding. De gewenste toestand kan beter worden gecontroleerd en er kan worden vastgesteld of een infrastructuur voldoet aan de gewenste operationele voorwaarden voor het verlenen van een service.
Het orkestratiesysteem kan worden gebruikt voor het onderhoud, de administratie of het beheer van ten minste één van een infrastructuur of een netwerk. Er kan worden voorzien in een automatisch configuratiebeheer of configuratie-instelling van infrastructuren, netwerken en/of netwerkelementen. Het orkestratiesysteem kan communicatieprotocollen omvatten die netwerkapplicaties ondersteunen waarbij software wordt verplaatst of configuratieparameters voor netwerkapplicaties worden gebruikt.
De infrastructuur kan voorzien in gedistribueerde computerservices en alle andere soorten resource-on-demand services. Het orkestratiesysteem kan de resource-on-demand services beter beheren, met inbegrip van het ter beschikking stellen van middelen om aan de eisen van de gebruikers te voldoen.
Het orkestratiesysteem kan worden geconfigureerd voor het leveren van een intent-gebaseerde serviceorkestratie. Het orkestratiesysteem kan via een netwerk een verzoek van een klant ontvangen voor netwerkservices op een infrastructuur.
De configuraties van de subsystemen van de infrastructuur kunnen zodanig worden ontworpen dat het lezen, opslaan en bijwerken met behulp van het orkestratiesysteem is toegestaan.
Optioneel wordt het orkestratiesysteem geconfigureerd om: informatie te ontvangen die verband houdt met een service die met de infrastructuur moet worden verleend; informatie te ontvangen in verband met een meervoudig aantal subsystemen van de infrastructuur (bv.
netwerkapparaten) die de service verlenen; het meervoudig aantal subsystemen van de infrastructuur te configureren om de service te verlenen; het bewaken van externe gebeurtenissen die relevant zijn voor de service; het detecteren van een overgangsgebeurtenis op basis van de bewaakte externe gebeurtenissen; en het geven van instructies om een of meer toestandsovergangen van een of meer finite-state machines naar nieuwe gewenste toestanden uit te voeren op basis van de detectie van de overgangsevent, waarbij de nieuwe gewenste toestanden in de infrastructuur worden afgedwongen, wat resulteert in het wijzigen van de subsysteemconfiguraties.
Optioneel omvat het orkestratiesysteem een generatie-eenheid die het mogelijk maakt om stapsgewijs de configuratiebeschrijvingen op hoog niveau te verfijnen en de configuratieartefacten automatisch te genereren. Optioneel omvat het orkestratiesysteem een afdwingeenheid die de gegenereerde configuratieartefacten geleidelijk aan op het beheerde gedistribueerde systeem of de infrastructuur inzet. Het orkestratiesysteem kan worden geconfigureerd om het initiële configuratiemodel aan te passen aan een compleet configuratiemodel dat de gewenste toestand van alle resources in het gedistribueerde systeem omvat die het orkestratiesysteem beheert.
De afdwingeenheid kan worden geconfigureerd om de gegenereerde gewenste toestand af te dwingen op het gedistribueerde systeem en zijn uitvoeringsomgeving. De afdwingeenheid kan de toestand van de middelen in het gedistribueerde systeem beheren die in het voltooide configuratiemodel worden weergegeven. Het afdwingen van de gewenste toestand kan worden uitgevoerd door het orkestratiesysteem, de deployment agents.
Optioneel is de deployment agent geconfigureerd om de infrastructuur met regelmatige tussenpozen te repareren en/of te wijzigen. Optioneel wordt de agent geconfigureerd om een gewenste toestand af te dwingen wanneer het orkestratiesysteem daarom vraagt. Met regelmatige tussenpozen kan de agent controleren of de huidige toestand van alle resources die hij beheert overeenkomt met de gewenste toestand die het orkestratiesysteem biedt.
De deployment agents kunnen worden geconfigureerd om de gewenste toestand in het model te vergelijken met de huidige toestand van de beheerde middelen. Uit deze vergelijking kunnen de acties worden afgeleid om de huidige toestand naar de gewenste toestand te brengen. De deployment agent kan het concept van convergentie toepassen om ervoor te zorgen dat storingen tijdens acties of ontbrekende runtime- afhankelijkheden tijdens het implementatieproces worden opgelost. Dit proces kan ook automatisch externe veranderingen als gevolg van bugs, handmatige veranderingen enz. detecteren en terugdraaien.
De deployment agent kan een onderdeel zijn van de enforcement unit die daadwerkelijk configuratiewijzigingen afdwingt. Het moge duidelijk zijn dat ook externe agents kunnen worden ingezet. In sommige voorbeelden kunnen ook externe enforcement units worden gebruikt.
Optioneel kan het orkestratiesysteem op interactieve wijze wijzigingen in de infrastructuur doorvoeren, waarbij de door de gebruiker aangebrachte wijzigingen naar de agent worden geduwd. Het orkestratiesysteem kan worden geconfigureerd om de volledige en incrementele gewenste toestand naar de agent te duwen. Bijvoorbeeld, een voltooiing of mislukking van (delen van) een deployment door de agent kan ook een overgang teweegbrengen (bijvoorbeeld van een 'deploying' toestand naar een 'up' toestand).
Het moge duidelijk zijn dat de gebeurtenissen door het orkestratiesysteem via een netwerk kunnen worden ontvangen. In sommige voorbeelden is een evenement een aanvraag voor een netwerkdienst, de aanvraag voor een netwerkdienst inclusief bijvoorbeeld gewenste prestatieparameters. In sommige voorbeelden is het verzoek zonder informatie over specifieke hardware, specifiek type hardware, specifieke locatie of specifieke netwerklocatie voor het leveren van de gevraagde netwerkdienst. De toewijzing en configuratie van netwerkmiddelen voor de levering van de netwerkdienst kan worden beheerd en geëxploiteerd door het orkestratiesysteem.
Optioneel wordt ten minste een topmodule van het orkestratiemodel gekoppeld aan een finite-state machine. In een voorbeeld wordt alleen de topmodule gekoppeld aan een finite-state machine. In sommige andere voorbeelden kunnen modules in tussenliggende lagen en/of lagere lagen ook state machines omvatten die daaraan gekoppeld zijn. Volgens een aspect voorziet de uitvinding in een werkwijze voor het configureren van een grootschalige gedistribueerde infrastructuur met meerdere subsystemen, de werkwijze omvat de volgende stappen: het aanbieden van een orkestratiesysteem met inbegrip van een declaratief orkestratiemodel voor het implementeren van gewenste toestanden in de gedistribueerde infrastructuur, waarbij in het orkestratiemodel een meervoudig aantal vooraf gedefinieerde modules wordt aangeboden die elk een gewenste toestand implementeren, waarbij in modules met gewenste toestanden op een hoger niveau communicatief worden verbonden met modules met gewenste toestanden op een lager niveau, en waarbij ten minste één deelverzameling van de gewenste toestanden op een lager niveau inzetbare configuratieparameters voor subsystemen van de infrastructuur biedt; ten minste één module van het orkestratiemodel wordt gekoppeld aan een multitoestand finite-state machine, inclusief een lijst van gewenste toestanden, waarbij de finite-state machine die wordt geconfigureerd om op elk moment in één geselecteerde gewenste toestand van de lijst van gewenste toestanden te verkeren, waarbij in elke finite-state machine ten minste één verzameling servicekenmerken aanwezig is die dienen als input voor het aan die finite-state machine gekoppelde orkestratiemodel; en het bewaken van gebeurtenissen door middel van het orkestratiesysteem, en het uitvoeren van een dynamische toestandsovergang van ten minste één finite-state machine van de ene gewenste toestand naar de andere als reactie op één of meer gedetecteerde gebeurtenissen die een overgangstoestand teweegbrengen.
De bewaking van gebeurtenissen kan ook worden uitgevoerd door een extern systeem, bijvoorbeeld communicatief gekoppeld aan het orkestratiesysteem. Het orkestratiesysteem kan worden geconfigureerd om de bewaakte gebeurtenissen te ontvangen.
Een uitrol van een nieuwe dienst en/of functie van de infrastructuur kan beter worden afgehandeld. De infrastructuur kan efficiënter worden opgezet en/of geconfigureerd. De automatische configuratie van de infrastructuur kan worden verbeterd om de gewenste communicatie en/of diensten op de infrastructuur mogelijk te maken.
De orkestrator kan de subsystemen initieel configureren om de dienst te verlenen met behulp van de infrastructuur en kan een of meer subsystemen herconfigureren op basis van het toezicht op het netwerk en/of externe gebeurtenissen, waarbij de herconfiguratie wordt bereikt door het aanpassen van een gewenste toestand van ten minste één finite-state machine gekoppeld aan een module van het orkestratiemodel.
De orkestrator kan de subsystemen in eerste instantie configureren om de dienst te verlenen met behulp van de infrastructuur en kan een of meer subsystemen herconfigureren op basis van het toezicht op het netwerk en/of externe gebeurtenissen, waarbij de herconfiguratie wordt bereikt door het aanpassen van een gewenste toestand van ten minste één finite-state machine gekoppeld aan een module van het orkestratiemodel.
Daarnaast of als alternatief kan de orkestratiewerkwijze of het systeem een dynamische wijziging van de dienst mogelijk maken op basis van externe gebeurtenissen en/of op basis van het toezicht op de subsystemen van de infrastructuur die de dienst verleent.
Optioneel wordt, in reactie op gebeurtenissen, een instructie aangemaakt om een of meer toestandsovergangen in een of meer finite-state machines te initiëren, gekoppeld aan de modules van het orkestratiemodel, waarbij de toestandsovergangen resulteren in de implementatie van een of meer configuratiewijzigingen in de subsystemen van de infrastructuur. Bijvoorbeeld, een API-aanroep kan een toestandsovergang initialiseren. Voordeel hiervan is dat een in het orkestratiemodel gedefinieerd configuratieverfijningsproces kan worden gekoppeld aan een meervoudig aantal state machines gekoppeld aan ten minste een deelverzameling van de modules van het orkestratiemodel. Op deze manier kan het in het orkestratiemodel gedefinieerde verfijningsproces dynamisch worden gemaakt. De subsystemen van de infrastructuur kunnen anders worden geconfigureerd wanneer de finite-state machine zich in een andere toestand bevindt.
Het orkestratiemodel kan een verfijning omvatten waarbij de doelstelling op hoog niveau wordt afgebroken tot een veelheid van tussentijdse doelstellingen, en naar aanleiding van de definitieve doelstellingen (zie de eigenlijke configuratiewijzigingen). Het moge duidelijk zijn dat deze verfijning op verschillende manieren kan worden ontworpen.
Volgens een aspect voorziet de uitvinding in een computerprogramma dat is geconfigureerd voor het uitvoeren van de stappen van de werkwijze, wanneer deze op een controller worden uitgevoerd, volgens de uitvinding.
Overeenkomstig een aspect, biedt de uitvinding een inrichting voor de configuratie van een grootschalige gedistribueerde infrastructuur met een groot aantal subsystemen, waarbij het inrichting een verwerkingseenheid omvat met een processor gekoppeld aan een werkgeheugen dat de verwerkingseenheid toelaat om de werkwijze uit te voeren volgens de uitvinding.
Overeenkomstig een aspect voorziet de uitvinding in computersoftware voor de uitvoering van netwerkdienstenorkestratie, en in het bijzonder in computersoftware voor de uitvoering van de gewenste toestand/interne netwerkdienstenorkestratie. Een multitoestand-orkestratie kan worden toegepast waarbij de overgang van een actuele/huidige gewenste toestand naar een andere nieuwe gewenste toestand op basis van gebeurtenissen plaatsvindt.
Overeenkomstig een aspect voorziet de uitvinding in een software- en systeembeheer in infrastructuren, zoals genetwerkte computeromgevingen en/of telecommunicatienetwerken.
Overeenkomstig een aspect heeft de uitvinding betrekking op een niet-transitoir machinaal leesbaar medium dat instructies omvat die, wanneer ze worden uitgevoerd, ervoor zorgen dat een machine de werkwijze volgens de uitvinding uitvoert.
Volgens een aspect voorziet de uitvinding in een computersysteem omvattende: ten minste één processor; en ten minste één niet-transitoir machinaal leesbaar medium dat communicatief is gekoppeld aan ten minste één processor, waarbij ten minste één niet-transitoir machinaal leesbaar medium is opgeslagen in de software die een verzameling instructies omvat die, wanneer zij door ten minste één processor worden uitgevoerd, ervoor zorgen dat het computersysteem de werkwijze overeenkomstig de uitvinding uitvoert.
Volgens een aspect voorziet de uitvinding in een orkestratiemodel zoals hierboven beschreven.
Voordeel hiervan is dat het orkestratiesysteem zorgt voor een betere controle over de virtualisatie van de infrastructuur, zodat een deel van de telecomdienst gemakkelijker in de cloud kan worden geïmplementeerd.
Sommige subsystemen van de infrastructuur kunnen virtuele machines zijn. De virtuele machine (VM) kan een software-implementatie zijn van een machine (d.w.z. een computer) die programma's uitvoert zoals een fysieke computer. Software die in een virtuele machine draait, kan beperkt zijn tot de middelen en abstracties die door de virtuele machine worden geleverd. Virtualisatie kan het delen van de onderliggende fysieke bron tussen verschillende virtuele machines mogelijk maken. Door middel van virtuele machines kunnen bijvoorbeeld meerdere besturingssysteem (OS) omgevingen, elk een VM, naast elkaar bestaan op dezelfde fysieke hostmachine.
De virtuele machines kunnen bijvoorbeeld worden gebruikt in datacenters, inclusief faciliteiten voor het onderbrengen van computersystemen en bijbehorende componenten, zoals telecommunicatie- en opslagsystemen. In datacenters kunnen virtuele machines worden gebruikt om het gebruik van de hardware van het datacenter te helpen beheren. Bijvoorbeeld, in plaats van elke datacenterserver te wijden aan één fysiek hostinrichting, kunnen de datacenterservers worden geïmplementeerd als virtuele machines waarbij meerdere virtuele machines op één fysiek hostinrichting draaien. Naarmate de computerbehoeften van het datacenter veranderen, kunnen virtuele machines dynamisch worden toegevoegd, verwijderd of verplaatst tussen fysieke hosts.
Het moge duidelijk zijn dat een eenheid van configuratiespecificatie kan worden ontleed in een set van parameters (bijvoorbeeld configuratieparameters voor mailservers, DNS-clients, firewalls, webservers enz.). Een webserver heeft bijvoorbeeld parameters voor het uitdrukken van de poort, virtuele hosts en ondersteunde scripttalen. Het orkestratiesysteem kan de parameters genereren en afdwingen die nodig zijn om de gewenste toestand van de modules te bereiken.
Overeenkomstig een aspect voorziet de uitvinding in een infrastructuur, waarbij de infrastructuur wordt gevormd door een telecommunicatienetwerk voor dataverkeer, het netwerk omvattende een meervoudig aantal aan elkaar gekoppelde subsystemen (bijv. apparaten), waarbij de subsystemen worden geconfigureerd door middel van het orkestratiesysteem volgens de uitvinding.
De infrastructuur kan bestaan uit een meervoudig aantal servers die virtuele machines hosten, switches voor de koppeling van het meervoudig aantal servers aan een extern netwerk, virtuele machinebesturingsunits die zijn geconfigureerd voor de levering en het beheer van de virtuele machines, een netwerkbesturingseenheid voor het beheer van de veelheid aan servers en switches. Op basis van de gewenste toestanden van de modules van het orkestratiemodel kan de noodzaak om over te stappen op de virtuele machines, servers en/of het meervoudig aantal switches worden bepaald en afgedwongen. Een virtuele machine kan bijvoorbeeld een virtuele webserver, een databaseserver en/of een e- mailserver hosten.
Overeenkomstig een aspect biedt de uitvinding in een configureerbaar infrastructuursubsysteem (bijvoorbeeld een inrichting) voor gebruik in een infrastructuur, waarbij het subsysteem wordt aangepast en geconfigureerd om te worden gekoppeld aan een centraal orkestratiesysteem overeenkomstig de uitvinding, waarbij het subsysteem zo is geconfigureerd dat het door het orkestratiesysteem kan worden bediend.
Overeenkomstig een aspect voorziet de uitvinding een gewenste- toestand orkestratiesysteem voor het configureren op grote schaal van een gedistribueerde infrastructuur inclusief meerdere diensten en/of subsystemen; waarbij het orkestratiesysteem een orkestratiemodel omvat voor het implementeren van een gewenste toestand op hoog niveau in de gedistribueerde infrastructuur, waarbij het orkestratiemodel een meervoudig aantal vooraf gedefinieerde modules omvat en is geconfigureerd om de gewenste toestand op hoog niveau op een eerste module te verfijnen tot een meervoudig aantal gewenste toestanden op een lager niveau op tweede modules, waarbij ten minste één subverzameling van de gewenste toestanden op een lager niveau op de tweede modules inzetbare configuratieparameters voor diensten en/of subsystemen van de infrastructuur biedt; waarbij sommige modules van het orkestratiemodel zijn gekoppeld aan een multitoestand machine , met inbegrip van een meervoudig aantal nodes en edges, waarin elke van de finite-state machine is geassocieerd met een bepaalde toestand en waarin elke edge van de finite- state machine een voorwaardelijke toestandsovergang vertegenwoordigt; en waarin het orkestratiesysteem is geconfigureerd om gebeurtenissen te bewaken en dynamische toestandsovergangen uit te voeren van de finite- state machines die reageren op een of meer gedetecteerde gebeurtenissen. Optioneel wordt elke edge gekoppeld aan een service-instantie.
Er kan een application programming interface (API) worden aangeboden waarmee de gebruiker het orkestratiemodel kan ontwerpen, configureren en wijzigen zonder gebruik te maken van de graphical user interface (GUI). In sommige voorbeelden kan elke actie die met behulp van de GUI kan worden ondernomen, worden uitgevoerd met behulp van de API, maar de API maakt ook extra door de gebruiker gegenereerde logica mogelijk. Verder kan in sommige voorbeelden een API-client worden geleverd die de gebruiker in staat stelt om met de API te communiceren.
Daarnaast of als alternatief kan de gebruiker met de API communiceren door middel van een programmeertaal, zoals bijvoorbeeld Python. Daarnaast of als alternatief kan de gebruiker via de terminal van zijn computer met de API communiceren met behulp van een opdrachtregelprogramma. Het moge duidelijk zijn dat API-commando's aan elkaar kunnen worden vastgemaakt om een API-script te vormen. Op deze manier kan de automatisering en integratie van verschillende servicefuncties worden ingeschakeld. De API kan verschillende voordelen bieden ten opzichte van de GUI via programmatische toegang en automatisering, waardoor het mogelijk is om complexe processen en workflows te creëren die niet uitvoerbaar of kostenefficiënt zijn om als GUI- functie te implementeren. De API kan worden gebruikt om gebeurtenissen te genereren.
Hoewel de API veel voordelen heeft ten opzichte van andere manieren van communicatie, ontbreken er mogelijk verschillende voordelen die typisch zijn voor de GUI. De API is bijvoorbeeld mogelijk niet toegankelijk voor gebruikers met onvoldoende programmeerexpertise. In sommige gevallen omvat de API functies die niet in de GUI aanwezig zijn, zij die voor interactie met de service enkel de GUI gebruiken kunnen dus niet genieten van de geavanceerde voordelen. In een aantal gunstige voorbeelden kan de gebruiker een combinatie van een GUI en een programmeertaal gebruiken voor de interactie met het orkestratiemodel voor de infrastructuur.
Optioneel omvat het orkestratiesysteem een eenheid die is geconfigureerd voor het verzamelen van gebeurtenisgegevens.
In enkele voorbeelden wordt een gewenste prestatieparameter voor een netwerkservice gedefinieerd. Het orkestratiesysteem kan één of meer netwerkbronnen van de infrastructuur toewijzen voor het leveren van de gevraagde netwerkdiensten, met behulp van het orkestratiemodel, bijvoorbeeld op basis van ten minste een deel van de gewenste prestatieparameters en een bepaling dat de infrastructuur in staat is om netwerkbronnen te leveren die elk de gewenste prestatieparameters hebben.
Het orkestratiesysteem kan worden geconfigureerd om te bepalen of de infrastructuur bij de huidige toestand van de infrastructuur een gewenste prestatieparameter niet langer kan leveren, bijvoorbeeld op basis van ten minste één netwerkprestatiemeting.
Het orkestratiesysteem kan worden geconfigureerd om alternatieve netwerkbronnen van de infrastructuur toe te wijzen, op basis van de vaststelling dat de infrastructuur bij de huidige toestand een gewenste prestatieparameter niet langer kan leveren.
Dit kan worden uitgevoerd door middel van de finite-state machines die kunnen worden geconfigureerd om netwerkbronnen voorwaardelijk aan te passen, dit betekent overdracht van de ene toestand naar de andere wanneer dergelijke netwerkprestatiemetingen worden gedetecteerd als gebeurtenissen.
De aanpassingen van de gewenste toestanden in de modules kunnen leiden tot een configuratie van de subsystemen van de infrastructuur voor het verkrijgen van de levering van de gevraagde netwerkdiensten met de gewenste prestatieparameters.
In sommige voorbeelden kunnen de gewenste prestatieparameters ten minste één van een maximale latentie, een maximale Jitter of een maximaal pakketverlies omvatten.
De prestatiemetingen kunnen in real time, periodiek, per aanvraag, geprogrammeerd of willekeurig worden gecontroleerd.
In sommige voorbeelden kan, tijdens herconfiguratie, het orkestratiesysteem gegenereerde opdrachten invoeren in één of meer subsystemen van de infrastructuur via een sessie op afstand die met één of meer fysieke switches tot stand wordt gebracht.
De één of meer opdrachten kunnen bijvoorbeeld worden gegenereerd door het invullen van velden van een op voorhand gegenereerde sjabloon.
De finite-state machine van de module kan de gewenste toestand ten minste gedeeltelijk veranderen op basis van de kwaliteit van servicebeleidconfiguraties, beveiligingsbeleidconfiguraties, verzoeken van gebruikers, interne of externe gebeurtenissen enz. De vereiste wijzigingen die aan de gewenste status zijn gekoppeld, kunnen bijvoorbeeld met behulp van agents worden doorgevoerd. Deze elementen kunnen worden gecommuniceerd naar het orkestratiesysteem door middel van gebeurtenissen. Het orkestratiesysteem kan worden ingesteld om te luisteren bij een event bus.
In sommige voorbeelden kan het orkestratiesysteem worden geconfigureerd om een verkeersserviceniveau te handhaven voor gegevens die via een infrastructuurpad van een bron naar een bestemming worden gecommuniceerd. Het orkestratiesysteem kan worden geconfigureerd om het niveau van de verkeersdienst in verband met het pad tussen de bron en de bestemming te bewaken en te bepalen of het niveau van de verkeersservice in verband met het pad voldoet aan een of meer prestatiemetingen. Een inbreuk op serviceniveau kan worden aangegeven wanneer een gegevensstroom die over het bewaakte pad tussen de bron en de bestemming worden gecommuniceerd, niet voldoet aan ten minste één van de prestatiemetingen. Er kan een alternatief pad worden geselecteerd uit een meervoudig aantal paden tussen de bron en de bestemming, waarbij het alternatieve pad een verkeersserviceniveau voorziet dat de overtreding op serviceniveau van de bron naar de bestemming oplost. Het alternatieve pad kan worden gedefinieerd door de gewenste toestanden van de finite- state machines of bepaalde modules van het orkestratiesysteem.
Optioneel omvat het selecteren van een alternatief pad verder: het bewaken van het verkeersserviceniveau gekoppeld aan het andere van een meervoudig aantal paden tussen de bron en de bestemming; het bepalen van een subverzameling alternatieve paden die voldoen aan één of meer prestatiemetingen, waarbij de subverzameling van alternatieve paden is geconfigureerd om dat gegevens te vervoeren tussen de bron en de bestemming; het veranderen van de toestand van de finite-state machine in een nieuwe gewenste toestand waarbij gekozen wordt voor een geoptimaliseerd pad tussen de bron en de bestemming, bijvoorbeeld door gebruik van een verzameling statistische gegevens uit de subverzameling van alternatieve paden, waarbij de nieuwe gewenste toestand het geoptimaliseerde pad toepast, waarbij het geoptimaliseerde pad overtredingen op serviceniveau in verband met het pad van de bron naar de bestemming oplost.
Optioneel wordt de gegevensstroom geleid van het bewaakte pad, dat niet voldoet aan ten minste één van de prestatiemetingen, naar een alternatief pad. Het leiden van de gegevensstroom omvat mogelijk het aanpassen van één of meer bronadressen in een routingtabel om het geoptimaliseerde pad van de bestemming naar de bron te omvatten. Dit kan bijvoorbeeld worden bereikt door modules van het orkestratiemodel op een lager niveau.
Hoewel de uitvoeringsvormen van de uitvinding computerapparatuur en werkwijzen in een computer kan omvatten, strekt de uitvinding zich ook uit tot computerprogramma's, met name computerprogramma's op of in een drager, die zijn aangepast om de uitvinding in de praktijk te brengen. Het programma kan in de vorm van een bron- of objectcode zijn of in een andere vorm die geschikt is voor gebruik bij de uitvoering van de werkwijzen volgens de uitvinding. De drager kan elke entiteit of elk inrichting zijn dat in staat is om het programma te dragen.
Het moge duidelijk zijn dat alle aspecten, functies en opties die met het oog op het systeem worden beschreven, evenzeer van applicatie zijn op de werkwijze als op het beschreven inrichting en het product van het computerprogramma. Het zal ook duidelijk zijn dat een of meer van de bovenstaande aspecten, kenmerken en opties kunnen worden gecombineerd.
KORTE OMSCHRIJVING VAN DE TEKENING De uitvinding wordt verder toegelicht aan de hand van uitvoeringsvormen die bij wijze van voorbeeld in een tekening zijn weergegeven. De voorbeeld uitvoeringsvormen worden gegeven bij wijze van niet-limitatieve illustratie. Er moet worden opgemerkt dat de cijfers slechts schematische weergaven zijn van de uitvoeringsvormen van de uitvinding die bij wijze van niet-limitatief voorbeeld worden gegeven. In de tekening: Fig. 1 toont een schematisch diagram van een uitvoeringsvorm van een orkestratiemodel; Fig. 2 toont een schematisch diagram van een uitvoeringsvorm van een orkestratiemodel; Fig. 3 toont een schematisch diagram van een uitvoeringsvorm van een orkestratiemodel; Fig. 4 toont een schematisch diagram van een uitvoeringsvorm van een orkestratiesysteem; Fig. 5 toont een schematisch diagram van een orkestratiemodel; en Fig. 6 toont een schematisch diagram van een werkwijze.
GEDETAILLEERDE OMSCHRIJVING
Fig. 1 toont een schematisch diagram van een uitvoeringsvorm van een orkestratiemodel 10 van een orkestratiesysteem voor het configureren van een grootschalige gedistribueerde infrastructuur met meerdere subsystemen. Het orkestratiemodel is declaratief voor het implementeren van gewenste toestanden in de subsystemen van de gedistribueerde infrastructuur. De orkestratiemodus 10 omvat een veelvoud aan voorgedefinieerde modules 3 die elk een gewenste toestand implementeren. De modules met gewenste toestanden op een hoger niveau zijn communicatief verbonden met modules met gewenste toestanden op een lager niveau. Ten minste één subverzameling 3s van de gewenste toestanden op een lager niveau biedt te gebruiken configuratieparameters voor subsystemen van de infrastructuur. Ten minste één module 3 van het orkestratiemodel 10 is gekoppeld aan een multitoestand finite-state machine 5 inclusief een lijst van gewenste toestanden. In deze voorbeeldweergave is de lijst weergegeven als nodes 71. Elk van de nodes 7i stelt een gewenste status voor. De nodes Ti zijn verbonden met andere nodes die verschillende gewenste toestanden vertegenwoordigen. De finite-state machine 5 is geconfigureerd om per keer in één geselecteerde gewenste toestand uit de lijst met gewenste toestanden te verkeren. Het orkestratiesysteem is geconfigureerd om gebeurtenissen te bewaken en een dynamische toestandsverandering van ten minste een finite-state machine van de ene gewenste toestand naar een andere te bewerkstelligen in antwoord op een of meerdere gedetecteerde gebeurtenissen die een overgangsvoorwaarde aansturen. De mogelijke overgangen worden weergegeven als edges 9.
In het orkestratiemodel 10 kan een configuratiebeschrijving op hoog niveau van een applicatie worden verfijnd tot de configuratie van een functionele applicatie, voorzien van alle benodigde configuratiedetails voor een doelomgeving. Op basis van het orkestratiemodel 10 kan het orkestratiesysteem bijvoorbeeld configuratieartefacten genereren door het iteratief verfijnen van configuraties op hoog niveau en gedeeltelijke configuraties in functie van configuraties op een lager niveau. Zo kunnen gebruikers van het orkestratiesysteem de configuratie van alle beheerde resources in één geïntegreerd configuratiemodel uitdrukken (d.w.z.
orkestratiemodel 10). Door middel van het geïntegreerde configuratiemodel kan worden bepaald wat er op de infrastructuur wordt gebruikt en hoe deze wordt geconfigureerd. Dit betekent dat er één enkel toegangspunt tot de configuratie van de infrastructuur kan zijn. Dit kan de toegangscontrole en de audit vergemakkelijken.
Bij een zeer grote en/of complexe infrastructuur komen kleine storingen (bijv. subsystemen die tijdelijk niet functioneren) relatief vaak voor. Een specifiek stappenplan (imperatief) is veel gevoeliger voor fouten. Soms is een input van de netwerkexploitant nodig als er een storing is opgetreden. Het orkestratiesysteem kan beter omgaan met een onderbroken storing (cf. een voorbijgaande storing). Het orkestratiesysteem kan automatisch doorgaan zonder dat verdere input van een netwerkoperator nodig is. Voordeel hiervan is dat het orkestratiesysteem zelfherstellende mogelijkheden heeft.
Een gewenste toestand op hoog niveau kan iets zijn wat een klant kan bestellen, bijvoorbeeld een communicatieverbinding tussen twee fysieke locaties. Een dergelijke verbinding kan een meervoudig aantal tussenstappen omvatten die automatisch worden opgesplitst in een meervoudig aantal andere substappen. Voor elk van de stappen kan bijvoorbeeld een groot aantal parameters moeten worden geconfigureerd. De stappen kunnen op hun beurt weer worden onderverdeeld in afzonderlijke configuratie-elementen (bijv. artefacten, bestanden enz.), die dan automatisch naar de apparaten worden gepusht. Dit kan de communicatieverbinding doeltreffend maken. Het verfijningsproces kan er ook voor zorgen dat de configuratie automatisch kan worden gewijzigd wanneer een pad dat de communicatieverbinding via de infrastructuur verzorgt, wordt gewijzigd.
In sommige voorbeelden kan een module op het laagste niveau worden geconfigureerd om concrete acties uit te voeren, zoals herconfiguraties, parameteraanpassingen enz., die concreet worden uitgevoerd op een inrichting of virtuele machine. Het orkestratiesysteem kan bijvoorbeeld een gewenste toestand implementeren door een bestand op een bepaalde server te plaatsen met een bepaalde specifieke inhoud en/of bepaalde gebruikersrechten. De huidige toestand kan worden vergeleken met een gewenste toestand. De orkestrator kan controleren/nagaan of een gewenste toestand is geïmplementeerd, maar kan ook de acties definiëren die moeten worden uitgevoerd om tot de gewenste toestand te komen. De orkestrator kan bijvoorbeeld controleren of een poort is geactiveerd. Als dat niet het geval 1s (i.e. de poort is gedeactiveerd), kan de poort worden geactiveerd, overeenkomstig de gewenste toestand. Als de poort al is geactiveerd, dan hoeft er geen actie te worden ondernomen, omdat de gewenste toestand al de werkelijke toestand is. Dit biedt belangrijke voordelen ten opzichte van een dwingend orkestratiesysteem. Het moge duidelijk zijn dat de infrastructuur verschillende vormen en indelingen kan hebben. In sommige voorbeelden omvat de infrastructuur een of meer netwerken. De infrastructuur kan bijvoorbeeld een reeks netwerken met elkaar verbinden. Fig. 2 toont een schematisch diagram van een uitvoeringsvorm van een orkestratiemodel 10. Het orkestratiesysteem kan zorgen voor een geïntegreerd orkestratiebeheer voor infrastructuren, bijvoorbeeld voor het hosten van applicatiediensten en/of andere gevirtualiseerde omgevingen. In sommige voorbeelden biedt het orkestratiebeheer configuratiebeheer. Het moge duidelijk zijn dat de infrastructuur in sommige gevallen volledig virtueel is. Het orkestratiemodel 10 kan een veelvoud aan entiteiten en abstractieniveaus omvatten. Het kan worden getest, aangepast, uitgewerkt en hergebruikt door middel van het orkestratiesysteem.
Het orkestratiemodel 10 kan worden geconfigureerd om een configuratiemodel te bieden dat relaties tussen en afhankelijkheden van andere diensten, pakketten, apparaten, onderliggende platforms en infrastructuurdiensten beschrijft. Op deze manier is een efficiënt gebruik mogelijk. Een end-to-end compliance kan worden geïmplementeerd door het orkestratiesysteem. Het orkestratiesysteem kan worden geconfigureerd om op elk gewenst moment consistentie te garanderen over de gehele stack en door de gedistribueerde systemen heen. Zo kan bijvoorbeeld de architectuur van een softwaredienst de configuratie aansturen.
Het orkestratiesysteem kan worden geconfigureerd om complexe infrastructuren te beheren, bijvoorbeeld in een cloudomgeving. Het orkestratiesysteem kan worden geconfigureerd om op een machine of server te worden uitgevoerd (bijv. configuratiemanagementserver). Optioneel kan een gebruiker het orkestratiesysteem bedienen met een dashboard (bijvoorbeeld een algemene gebruikersinterface) en/of een opdrachtregelinterface.
De modules 3 kunnen configuratiegegevens omvatten, op basis van de actuele geselecteerde gewenste toestand van de finite-state machine
5. De configuratiegegevens kan parameters en/of instructies omvatten, of informatie die aan een of meer andere modules (bijv. opeenvolgende modules) wordt verstrekt.
De configuratie die met het orkestratiesysteem wordt ingezet, kan afhankelijk zijn van de actuele toestanden van de finite-state machines 5 die aan de modules 3 zijn gekoppeld. Ten minste één module 3 bevindt zich in een bepaalde gewenste toestand uit een lijst van mogelijke gewenste toestanden die door de finite-state machine 5 is gedefinieerd. De overgang van de huidige gewenste toestand naar een andere gewenste toestand kan voorwaardelijk zijn en worden gedefinieerd door de finite-state machine 5.
Het orkestratiemodel 10 kan een declaratief model zijn (d.w.z. niet dwingend) voor het configureren van de infrastructuur. De infrastructuur kan bijvoorbeeld een zeer grote infrastructuur zijn of een infrastructuur die traag/moeilijk te beheren is (bijvoorbeeld netwerkapparaten met te beperkte control-planes of duizenden managed resources). De modules 3 kunnen een aantal kenmerken en relaties hebben met andere modules 3. Een relatie tussen modules 3 kan unidirectioneel of bidirectioneel zijn. De modules 3 kunnen definiëren wat moet worden gebruikt. De modules 3 kunnen direct worden gebruikt (bijv. bestanden, pakketten, configuratieparameters implementeren enz.) of ze kunnen worden verfijnd (cf. gekoppeld aan andere modules op een lager niveau). Verfijning kan een abstracte module 3 uitbreiden tot een of meer concrete modules 3. Op het laagste abstractieniveau kan de configuratie van een infrastructuur bestaan uit configuratiebestanden. Om configuratiebestanden te maken kunnen sjablonen enz. worden gebruikt.
In sommige voorbeelden omvat het orkestratiesysteem handlers die zijn geconfigureerd om de huidige toestand van een resource in de infrastructuur te veranderen in een gewenste toestand, uitgedrukt in het orkestratiemodel 10.
Optioneel omvat het orkestratiesysteem een of meer agents die geconfigureerd zijn om configuratiewijzigingen op doelen uit te voeren (zie subsystemen van de infrastructuur). Een doel of subsysteem kan bijvoorbeeld een server, een netwerkswitch, een cloudservice, een API enz. zijn. De één of meerdere agent(s) van het orkestratiesysteem kunnen worden geconfigureerd om alle wijzigingen in de infrastructuur uit te voeren. Optioneel kunnen de een of meer agents van het orkestratiesysteem worden geregeld om lokale en externe middelen te beheren. In sommige voorbeelden start het orkestratiesysteem een of meer agents. Het is ook mogelijk dat de agent als een afzonderlijk proces wordt ingezet. Er kunnen verschillende communicatieprotocollen worden gebruikt wanneer een agent een configuratiewijziging moet uitvoeren op een machine en/of virtuele machine. De agent kan bijvoorbeeld de wijzigingen doorvoeren via een remote ssh. In sommige voorbeelden is een externe agent verbonden met het orkestratiesysteem en is hij voorzien van expliciete configuraties die op machines en/of virtuele machines van de infrastructuur moeten worden geïmplementeerd.
Het moge duidelijk zijn dat de opstelling van de modules 3, hun verbindingen, en de finite-state machines 5, in het getoonde orkestratiemodel 10, slechts als voorbeeld wordt gegeven. Er worden diverse andere regelingen en configuraties overwogen.
Fig. 3 toont een schematisch diagram van een uitvoeringsvorm van een orkestratiemodel 10. In dit voorbeeld is alleen een topmodule 3t van het orkestratiemodel 10 aan een finite-state machine 5 gekoppeld. In sommige voorbeelden kunnen echter ook andere modules worden gekoppeld aan een finite-state machine.
Niet aan elke module 3 is noodzakelijkerwijs een state machine 5 gekoppeld. In sommige voorbeelden is ten minste één groep van modules 3 niet gekoppeld aan een finite-state machine. Deze groep modules kan worden aangestuurd door een of meer state machines die in verbinding staan met andere modules via een pad in het orkestratiemodel 10 (bijv. state machines op een hoger niveau, of in hogere lagen). De pijlen in de figuur geven deze paden aan. In dit getoonde voorbeeld heeft elke andere module een pad naar de bovenste module 3t gekoppeld aan een finite-state machine.
Fig. 4 toont een schematisch diagram van een uitvoeringsvorm van een orkestratiesysteem 1. Het orkestratiesysteem 1 omvat een event bus 11. State machines 5 worden gebruikt als stap tussen gewenste toestanden en gebeurtenissen afkomstig van de event bus 11. Op deze manier kan de respons op gebeurtenissen worden gestabiliseerd.
Bovendien kunnen de gewenste toestanden worden aangepast aan de gebeurtenissen.
Op deze manier kan elk soort proces worden beschreven.
Veel bestaande technologieën vereisen een stapsgewijze listing van de te ondernemen acties (cf. script) voor het herconfigureren van infrastructuursubsystemen.
Het orkestratiesysteem 1 maakt het mogelijk om de gewenste eindtoestand te definiëren wanneer de herconfiguratie is voltooid.
Deze doelgerichte benadering kan ervoor zorgen dat de gewenste toestand in het netwerk wordt afgedwongen.
Het orkestratiesysteem 1 kan agnostisch zijn, zodat het voor verschillende infrastructuren kan worden gebruikt.
De infrastructuur kan bijvoorbeeld worden geconfigureerd voor het leveren van softwarecomponenten op een cloud (bijv.
Google, Amazon, Dropbox enz.). Het is ook mogelijk dat de infrastructuur is ingericht om een firewallservice te leveren.
Het is de bedoeling dat het orkestratiesysteem kan worden gebruikt voor het beheer van verschillende soorten infrastructuur.
De infrastructuur kan bijvoorbeeld een internetnetwerk zijn, een PLC-netwerk in een fabriek, een glasvezelnetwerk, een DSL-netwerk enz. of een combinatie daarvan.
Ook andere voorbeelden zijn mogelijk.
Het orkestratiemodel 10, bijvoorbeeld voor een specifieke service, kan verschillende lagen modules hebben met verschillende niveaus van gewenste toestand.
Een gewenste toestand op hoog niveau kan een doel zijn dat geen directe herconfiguratie van een van de subsystemen van de infrastructuur vergt.
Een voorbeeld van een gewenste toestand op hoog niveau is 'verbinding tussen A en B'. De gewenste toestand kan bijvoorbeeld vereisen dat de verbindingslijn tussen À en B tot stand komt. Het orkestratiemodel kan een aantal lagen op een lager niveau hebben met modules met gewenste toestanden op lager niveau. Sommige gewenste toestanden op een lager niveau kunnen leiden tot een daadwerkelijke herconfiguratie van subsystemen (bijv. aanpassing van een parameter op een bepaalde schakelaar of router op een bepaalde poort). In dit verfijningsproces worden de gewenste toestanden op een hoger niveau verfijnd tot gewenste toestanden op een lager niveau, wat resulteert in een daadwerkelijke herconfiguratie van de subsystemen van de infrastructuur.
Het orkestratiesysteem 1 maakt een snellere en meer doeltreffendere levering van applicaties en services aan klanten (bijv. cloud computing) via de infrastructuur mogelijk. Daarnaast of als alternatief kan het orkestratiesysteem 1 worden gebruikt voor het beheer van de telecommunicatie-infrastructuur, waarbij het operationele proces van begin tot eind van de infrastructuur wordt geautomatiseerd door middel intent-gebaseerde serviceorkestratie.
Met het orkestratiesysteem 1 kan worden gecontroleerd of de configuraties van de infrastructuur naar wens zijn, aangezien de gewenste toestand bekend en gedefinieerd is. Dit maakt het mogelijk om het systeem op te zetten en te herstellen in geval van problemen (cf. zelfherstel), wat resulteert in een stabiel en robuust orkestratiesysteem.
De state machines kunnen worden gestuurd door gebeurtenissen en reageren op gedetecteerde relevante gebeurtenissen. Als een gebeurtenis zich voordoet, kan een overgang naar een andere toestand van de finite- state machine worden geactiveerd.
De complexiteit van een orkestratiemodel kan worden verborgen door middel van tussenlagen. Zo kan een ontwerper rekening houden met aspecten die voor hem relevanter zijn (bijvoorbeeld geografisch nut). Bij de onderste lagen (cf. de modules voor de onderste lagen) kan worden bepaald hoe een abstracte entiteit daadwerkelijk in de infrastructuur wordt geïmplementeerd.
Wanneer een telecomservice bijvoorbeeld door een netwerkarchitect wordt ontworpen, wordt bepaald welke service op hoog niveau aan de klanten wordt aangeboden. In de orkestrator kan een netwerkdiagram worden gedefinieerd zodat alles systematisch kan worden gevolgd. Het orkestratiemodel kan veranderingen die zich voordoen in de inputparameters op hoog niveau omzetten in wat er concreet moet gebeuren, in plaats van dat er een operator is die deze taak uitvoert. Hierdoor kan het orkestratiesysteem beter omgaan met storingen in de infrastructuur. Volgens een voorbeeld heeft de infrastructuur betrekking op een cloudgebaseerd webshopplatform met een database, een frontend-gedeelte eneen backend-gedeelte. Het webshopplatform kan worden ingericht om een inventarisatie bij te houden en een website te bieden waar klanten terecht kunnen. Een groot aantal verschillende afzonderlijke servers kunnen samen worden gerangschikt en vormen zo de database, het frontend- en het backend-gedeelte. Deze servers kunnen worden weergegeven door modules in de grafiek van het orkestratiemodel. De servers kunnen worden gedistribueerd. Bovendien kunnen verschillende soorten servers worden gebruikt (bijvoorbeeld verschillende leveranciers en soorten apparatuur). Zo kan een verzameling parameters betrekking hebben op de belasting. Doelstellingen kunnen ook betrekking hebben op de veiligheid (bijvoorbeeld bescherming tegen gedistribueerde denial-of-service- aanvallen). Diverse andere doelstellingen/parameters kunnen worden gedefinieerd. Zo kan bijvoorbeeld worden gedefinieerd dat een bepaald aantal exemplaren van de databankdienst op elk moment moet worden opgeslagen. Als bijvoorbeeld een virtuele machine met de database verloren gaat, kan het orkestratiesysteem worden geconfigureerd om automatisch een nieuwe virtuele machine te starten waarop een kopie van de database is opgeslagen. Als de nieuwe virtuele machine actief 1s, kan de database worden gekopieerd en kan de machine worden aangesloten op de infrastructuur.
Voor elke service (bijv. netwerkbeveiligingsdienst, communicatielijn tussen twee punten enz.) kan een levenscyclus worden gedefinieerd. De finite-state machine kan de verschillende stadia van de levenscyclus als verschillende toestanden in de lijst van finite states opnemen. Elk van de nodes in de finite-state machine kan bijvoorbeeld een van de toestanden vertegenwoordigen waarin de service kan verkeren. En edges van de finite-state machine kunnen aangeven wat de geldige overgangen zijn (bijvoorbeeld wanneer een service zich in de levenscyclustoestand 'creëren' bevindt, moet deze niet naar de 'updaten' overgaan). Alle levenscycli en de daarmee samenhangende beperkingen kunnen eenvoudig worden gemodelleerd op basis van de finite-state machines die zijn gekoppeld aan de modules van het orkestratiesysteem.
De door het orkestratiesysteem gedetecteerde gebeurtenissen kunnen met behulp van de finite-state machines worden gekoppeld aan de gewenste toestanden 5. Het orkestratiesysteem kan robuuster worden als een reactie op bepaalde gebeurtenissen (bijv. fouten) in aanmerking kan worden genomen, en de reactie daarop kan worden gestabiliseerd. De gewenste toestanden van de modules van het orkestratiesysteem kunnen dynamisch en responsief worden gemaakt en traceerbaarheid, foutherstelfuncties enz. bieden. Het orkestratiesysteem kan worden geconfigureerd om systematisch (bijv. periodiek) te controleren of de gewenste toestanden waarin de finite-state machines zijn ingesteld, worden geïmplementeerd en/of afgedwongen.
Het orkestratiemodel 10 kan worden gebouwd afhankelijk van de dienst die met behulp van de infrastructuur moet worden geleverd. Dit kan op hoog niveau worden gedefinieerd, door bijvoorbeeld te beschrijven wat er aan de klanten wordt aangeboden. De een of meer modules op hoog niveau in het orkestratiemodel kunnen worden gekoppeld aan modules op een lager niveau (verfijning op doelstellingen hoog niveau) die de gewenste toestanden in meer concrete termen modelleren. In de modules op het laagste niveau kunnen bijvoorbeeld bepaalde configuraties worden aangepast, zoals het herconfigureren van een fysieke switch in een netwerk, het starten van een machine in een datacenter, het aanpassen van parameters in een virtuele machine enz. Het orkestratiemodel 10 kan dan met behulp van het orkestratiesysteem op de infrastructuur worden geïmplementeerd. De modules 3 van het orkestratiemodel 10 hebben dynamische gewenste toestanden die worden bereikt door de finite-state machines 5 die kunnen overgaan van een huidige toestand naar een andere gewenste toestand, voorwaardelijk gebaseerd op gebeurtenissen (bijv. extern). Fig. 5 toont een schematisch diagram van een orkestratiemodel
10. Het multitoestand gewenste toestand orkestratiemodel kan soorten intents (d.w.z. entiteiten) definiëren en verfijnen tot meer concrete intents. Elke entiteit kan kenmerken en relaties met andere entiteiten hebben. Het verfijningsproces is afhankelijk van de kenmerken van de entiteit zelf of van een kenmerk van een entiteit die direct of indirect via een relatie bereikbaar
18. Bijvoorbeeld: eline (een eline 1s een Layer Two-verbinding over lange afstanden die meestal wordt gebruikt om bijvoorbeeld filialen met het hoofdkwartier te verbinden). Als een service, naar de eindgebruiker toe, heeft het de eigenschappen SideA, SideZ (de twee plaatsen om verbinding te maken), encapA, encapZ (identifiers die bepalen hoe het verkeer aan beide zijden uit de poort zal komen). In dit model is ook een inventarisatie gemaakt van 20 apparaten (welke apparaten bestaan er in het veld). De kenmerken kunnen in de entiteit worden toegekend. De relaties worden aangegeven met lijnen 30 tussen de entiteiten.
De eerste verfijning splitst de e-lijn in abstracte componenten. De verfijningen worden aangegeven met lijnen 40. De eline wordt verfijnd in de opstelling van een paar tunnel-endpoints met een specifiek ID die elkaars peers zijn en attachment van een poort aan het endpoint, met de juiste encap. Een stap verder is er verfijnd naar een specifiek type fysiek inrichting in het orkestratiemodel 10, deze verfijning kan afhankelijk zijn van het type inrichting. De voorwaardelijke verfijning wordt aangegeven met regel 50. Een tunnel endpoint kan bijvoorbeeld een SDP zijn. Een tunnel attachment kan bijvoorbeeld een SAP zijn. De relatie met de peer kan een kenmerk worden, aangezien de inrichtingspecifieke intents beperkt zijn tot één fysiek inrichting. In dit voorbeeld kunnen de verfijning en voorwaardelijke verfijning worden uitgevoerd zonder het gebruik van state machines.
Wanneer een state machine is gekoppeld aan een entiteit X (op elk niveau), wordt de huidige toestand voorgesteld als een entiteit, gerelateerd aan deze entiteit X. De huidige toestand heeft ook kenmerken.
Als zodanig kan de voorwaardelijke verfijning van deze entiteit afhankelijk zijn van de kenmerken van haar huidige toestand: 1) de parameters kunnen direct worden gebruikt in een toestand (bijv. een derde en vierde endpoint wordt toegevoegd voor hoge beschikbaarheid) 2) deze parameters (of daaruit afgeleide waarden) kunnen worden doorgegeven aan andere entiteiten die door verfijning als kenmerken worden geproduceerd (d.w.z. de blauwe lijnen zijn hetzelfde). Hier kunnen ze invloed hebben op verdere verfijning (groene lijnen) of gewoon de gewenste toestand veranderen door gewijzigde kenmerken. Als dusdanig hoeven deze entiteiten geen eigen state machine te hebben om erdoor beïnvloed te worden.
3) deze parameters (of daarvan afgeleide waarden) kunnen van invloed zijn op de verfijning van andere verwante entiteiten.
De gewenste toestand op een hoger niveau kan gelijk blijven (bijvoorbeeld verbinding tussen A en B), maar de manier waarop deze zich verfijnt tot onafhankelijke stappen met modules op een lager niveau, kan worden gewijzigd door een andere toestand van de finite-state machines van die module (of modules op een lager niveau ), veroorzaakt door gebeurtenissen (bijvoorbeeld externe gebeurtenissen van buitenaf).
Fig. 6 toont een schematisch diagram van een werkwijze 100 voor het configureren van een grootschalige gedistribueerde infrastructuur met meerdere subsystemen. In een eerste stap 101 wordt een orkestratiesysteem voorzien met een declaratief orkestratiemodel voor de implementatie van gewenste toestanden in de gedistribueerde infrastructuur. Het orkestratiemodel omvat hierbij een meervoudig aantal voorgedefinieerde modules die elk een gewenste toestand implementeren en waarbij modules met een hoger niveau van gewenste toestand gemeenschappelijk zijn gekoppeld aan modules met een lager niveau van gewenste toestand en waarbij ten minste een subverzameling van de op lager niveau gewenste toestand uitrolbare configuratieparameters omvat voor de subsystemen van de infrastructuur. In een tweede stap 102 is ten minste een module van het orkestratiemodel gekoppeld aan een multitoestand finite-state machine voorzien van een lijst van toestanden en de finite-state machine wordt geconfigureerd om zich op elk moment in een toestand te bevinden die werd geselecteerd uit de lijst van toestanden; In een derde stap 103 worden gebeurtenissen bewaakt via het orkestratiesysteem en wordt een dynamische statusverandering uitgevoerd van ten minste een finite-state machine van de ene gewenste toestand naar een andere in antwoord op een of meerdere gedetecteerde gebeurtenissen die een overgangsvoorwaarde aansturen.
Het orkestratiesysteem kan zorgen voor een geïntegreerde aanpak van het configuratiebeheer om de uitdagingen die het beheer van hedendaagse gedistribueerde systemen met zich meebrengt, aan te gaan. Het systeem kan worden geïntegreerd in de zin van: het beheren van alle configuraties van een gedistribueerd systeem vanuit één geïntegreerd configuratiemodel (cf. orkestratiemodel); en/of het integreren van werking en ontwikkeling. Het geïntegreerde configuratiemodel (bijvoorbeeld het orkestratiemodel) voor een gedistribueerd systeem kan op dezelfde manier worden ontworpen en ontwikkeld als software voor het gedistribueerde systeem.
Het configuratiemodel kan bepalen hoe de applicatie en de infrastructuur waarop deze draait wordt voorzien, gebruikt en geconfigureerd. Een geïntegreerd configuratiemodel voor moderne gedistribueerde systemen kan een relatief groot configuratiemodel zijn.
Het orkestratiesysteem kan een managementtool zijn die een omgeving biedt om een gedistribueerd systeem te beschrijven, waarin de configuraties op een hoog abstractieniveau kunnen worden aangepast. Op deze manier kan een mismatch tussen de redenering over het systeem in termen van architectuur en configuratie worden beperkt. Het orkestratiesysteem is rendabeler in termen van mankracht en kan het risico op configuratiefouten effectief verminderen.
Een hoge dienstverleningsdoelstelling kan worden verfijnd in subdoelstellingen in verschillende lagere lagen. Dit kan worden voorgesteld in een grafiek met doelstellingen op hoog niveau en doelstellingen op lager niveau. Elke module kan in een bepaalde gewenste toestand verkeren. De lagen van het lagere niveau kunnen steeds concreter worden. Zo is een verbinding tussen A en B een doelstelling op hoog niveau die fysiek misschien niet bestaat, maar die in de modules op lager niveau in het orkestratiemodel in een aantal subdoelstellingen kan worden onderverdeeld.
Het orkestratiemodel kan eerst worden ontworpen en vervolgens worden uitgevoerd met behulp van het orkestratiesysteem. Het model kan een concept op hoog niveau verfijnen tot subdoelstellingen op lager niveau door middel van de veelheid aan modules en de onderlinge koppeling ervan. Volgens de uitvinding zijn state machines gekoppeld aan de verfijning, zodat een topologieverandering gemakkelijk kan worden doorgevoerd. Hierdoor kan het orkestratiesysteem veel robuuster worden gemaakt.
Het orkestratiesysteem kan het beheer van alle lagen van de infrastructuur in één beheersomgeving integreren, van laagwaardige netwerkapparatuur tot componenten die in applicatiecontainers worden ingezet. Op deze manier wordt een aanzienlijk betere automatisering bereikt. Optioneel wordt het orkestratiesysteem geconfigureerd om afhankelijkheidsbeheer tussen onderling afhankelijke configuratieparameters te ondersteunen. Op deze manier kan het dupliceren van configuratieparameters worden beperkt, aangezien het hergebruik van de configuratie is ingeschakeld.
In sommige voorbeelden omvat het orkestratiemodel één of meer state machines die twee toestanden hebben, een eerste toestand wanneer een bestand op een bepaalde locatie aanwezig is en een tweede toestand wanneer een bestand niet op een bepaalde locatie aanwezig is. Daarnaast of als alternatief kan het orkestratiemodel complexere finite-state machines omvatten.
Het mechanisme met betrekking tot de gewenste toestand van het orkestratiesysteem kan ervoor zorgen dat automatisch zelfherstel kan worden uitgevoerd, aangezien het orkestratiesysteem op elk moment kan bepalen of de werkelijke huidige toestand overeenkomt met de gewenste toestand.
De configuratie van de subsystemen kan verschillende acties omvatten. Zo kan een doelstelling op hoog niveau worden gedefinieerd door een applicatie op een infrastructuur in te gaan gebruiken door alle bestanden op de juiste, door de ontwikkelaars en de leverancier van het besturingssysteem gedefinieerde locaties te installeren en alle afhankelijkheden van de applicatie te installeren. Het orkestratiesysteem kan worden gebruikt om de applicatie te configureren door de configuratieparameters op de gewenste waarden in te stellen. Configuratiebestanden of databases (bijvoorbeeld het Windows-register) omvatten de waarden voor de configuratieparameters van een applicatie. De installatie van updates tijdens de runtime kan de configuratieparameters laten evolueren om de werking van de applicatie te wijzigen. De configuratie van een toepassing omvat de selectie en installatie van applicaties, evenals het instellen van configuratieparameters van de geïnstalleerde toepassingen en de onderliggende infrastructuur (besturingssysteem, firmware van apparaten enz.). Configuratieparameters kunnen systeembeheerders de mogelijkheid bieden om de functionaliteit van de softwareapplicatie aan te passen aan de werkelijke implementatieomgeving. Bijvoorbeeld de configuratieparameters om een IP-adres te configureren op een netwerkinterface zoals het IP-adres en netmasker. Wanneer een configuratieparameter wordt aangepast, moet ervoor worden gezorgd dat alle afhankelijke parameters worden bijgewerkt om de configuratie consistent te houden. Daarnaast moeten naast de configuratieparameters van de applicatie ook configuratieparameters van de uitvoeringsomgeving van de applicatie worden geconfigureerd: besturingssysteem, netwerk- en opslagapparatuur, printers enz.
Het orkestratiesysteem kan worden geconfigureerd voor het beheer van een gedistribueerd softwaresysteem, dat componenten kan omvatten die worden ingezet op meerdere machines die via het netwerk communiceren. Deze verdeling verhoogt de onderlinge afhankelijkheid tussen configuratieparameters omdat alle gedistribueerde componenten als één applicatie moeten functioneren en dus alle configuratieparameters consistent moeten zijn, bijvoorbeeld een client-serverrelatie tussen een applicatie en de databaseserver die deze gebruikt. De configuratie van een gedistribueerd systeem omvat artefacten op laag niveau, zoals bestanden, systeemservices en softwarepakketten, configuratieverklaring.
Het orkestratiesysteem kan ook virtuele subsystemen configureren op basis van de informatie over de gewenste toestanden. Een virtueel subsysteem kan een of meer virtuele machines omvatten die op een of meer fysieke apparaten draaien, waarbij de fysieke apparaten bijvoorbeeld met behulp van een of meer fysieke schakelaars aan elkaar zijn gekoppeld. Het orkestratiesysteem kan bepalen of de gewenste toestand van een module een daadwerkelijke wijziging van de configuratie van een of meer fysieke schakelaars en/of parameters van de virtuele subsystemen noodzakelijk maakt. Wanneer de gewenste toestand een wijziging van de configuratie van één of meer fysieke schakelaars en/of parameters van de virtuele subsystemen noodzakelijk maakt, kan de herconfiguratie worden uitgevoerd. In sommige voorbeelden kan de gewenste toestand resulteren in een herconfiguratie waarbij de virtuele machine wordt verplaatst tussen een of meer fysieke apparaten.
Het orkestratiesysteem kan een verschillende kwaliteit van het dienstenbeleid in de infrastructuur afdwingen, door middel van verschillende gewenste toestanden die zijn gedefinieerd in de finite-state machines die zijn gekoppeld aan de modules van de orkestratormodules.
De uitvinding maakt gebruik van state machines voor het toestaan van gewenste-toestandsveranderingen tijdens de orkestratie. De toestandsmachine kan worden gekoppeld aan een reeks toestanden of kenmerken. Het voordeel hiervan is dat de gewenste toestanden die in het orkestratormodel zijn gedefinieerd, kunnen veranderen op basis van gedetecteerde gebeurtenissen, en dus niet vastliggen. De state machines kunnen edges hebben die worden geactiveerd als reactie op bepaalde gebeurtenissen. De state machine kan op elk moment in een gewenste toestand worden gebracht. De state machine kan garanderen dat één gewenste toestand op een gunstige manier wordt ingesteld. Het moge duidelijk zijn dat de gewenste-toestandsmodellen, niet gekoppeld aan state machines, aanvankelijk zelf geen interne toestand kunnen hebben. Voor een bepaalde intent op hoog niveau zal een gewenste-toestandsmodel altijd een identieke verzameling intents op laag niveau opleveren, ondanks de veranderde omstandigheden.
De orkestrator kan gebeurtenissen bewaken voor het detecteren van bepaalde voorgedefinieerde gebeurtenissen. Deze voorgedefinieerde gebeurtenissen kunnen bijvoorbeeld worden gespecificeerd in de edges van de state machine in het orkestratormodel. De edges in de één of meerdere state machines in het orkestratormodel kunnen de reactieve reactie op de gebeurtenissen bepalen. De gebeurtenissen kunnen door het orkestratorsysteem op verschillende manieren worden ontvangen, bijvoorbeeld door middel van een event bus. Het moge duidelijk zijn dat een 'event-bus' kan duiden op communicatiekanaal waarmee meldingen en/of gebeurtenissen tussen systemen, subsystemen, servers, apparaten enz. kunnen worden verzonden.
Het moge duidelijk zijn dat een 'gedetecteerde' gebeurtenis ook kan betekenen dat een entiteit 'aangemeld' is voor een gebeurtenis en/of er een heeft 'ontvangen". In plaats van het bewaken van gebeurtenissen kan het orkestratorsysteem dus ook gebeurtenissen ontvangen en/of op de hoogte worden gesteld van gebeurtenissen.
Het zal worden gewaardeerd dat 'gelaagde opbouw' van de modules kan duiden op abstractielagen en breed kan worden geïnterpreteerd. De gelaagde opbouw hoeft niet noodzakelijkerwijs te beperken dat elke laag verbonden is met een volgende en/of vorige laag. Zo kunnen bijvoorbeeld twee modules van verschillende abstractielagen zich in dezelfde verfijningslaag bevinden. Een laag kan een deelverzameling van modules omvatten die gegroepeerd zijn. Deze groepering kan worden uitgevoerd of gemodelleerd op basis van verschillende aspecten.
Het zal worden gewaardeerd dat de werkwijze stappen kan omvatten die door de computer worden uitgevoerd. Alle bovengenoemde stappen kunnen door de computer geïmplementeerde stappen zijn. Uitvoeringsvormen kunnen bestaan uit computerapparatuur, waarin processen worden uitgevoerd in computerapparatuur. De uitvinding strekt zich ook uit tot computerprogramma's, met name computerprogramma's op of in een drager, die zijn aangepast om de uitvinding in de praktijk te brengen. Het programma kan in de vorm van een bron- of objectcode zijn of in een andere vorm die geschikt is voor gebruik bij de uitvoering van de werkwijzen volgens de uitvinding. De drager kan elke entiteit of elk inrichting zijn dat in staat is om het programma te dragen. De drager kan bijvoorbeeld bestaan uit een opslagmedium, zoals een ROM, bijvoorbeeld een halfgeleider-ROM of een harde schijf. Verder kan de drager een overdraagbare drager zijn, zoals een elektrisch of optisch signaal, dat via een elektrische of optische kabel of via radio of andere middelen, bijvoorbeeld via het internet, kan worden doorgegeven.
Het moge duidelijk zijn dat het gebruik van een 'cloud' kan inhouden dat er via het internet reken-/netwerk/opslagresources en hogere rekendiensten (zoals databaseservices) worden aangeschaft.
Sommige uitvoeringsvormen kunnen bijvoorbeeld worden geïmplementeerd met behulp van een machine of een tastbaar machinaal leesbaar medium of artikel waarin een instructie of een verzameling instructies kan worden opgeslagen die, indien uitgevoerd door een machine, ertoe kunnen leiden dat de machine een werkwijze en/of bewerkingen uitvoert die in overeenstemming zijn met de uitvoeringsvormen.
Verschillende uitvoeringsvormen kunnen worden geïmplementeerd met behulp van hardware-elementen, software-elementen of een combinatie van beide. Voorbeelden van hardware-elementen kunnen zijn: processoren, microprocessoren, schakelingen, application specific integrated circuits (ASIC), programmable logic devices (PLD), digital signal processors (DSP), field programmable gate array (FPGA), logische poorten, registers, halfgeleiderapparaten, microchips, chipsets enz. Voorbeelden van software kunnen zijn: softwarecomponenten, programma's, applicaties, computerprogramma's, applicatieprogramma's, systeemprogramma's, machineprogramma's, besturingssysteemsoftware, mobiele apps, middleware, firmware, softwaremodules, routines, subroutines, functies, door de computer geïmplementeerde werkwijzen, procedures, software- interfaces, application program interfaces (API), werkwijzen, instructiesets, rekencode, computercode, enzovoorts.
Hierin wordt de uitvinding beschreven met verwijzing naar specifieke voorbeelden van uitvoeringsvormen van de uitvinding. Het zal echter duidelijk zijn dat er verschillende aanpassingen, variaties, alternatieven en wijzigingen mogelijk zijn, zonder af te wijken van de essentie van de uitvinding. Omwille van de duidelijkheid en een beknopte beschrijving worden de kenmerken hierin beschreven als onderdeel van dezelfde of afzonderlijke uitvoeringsvormen, maar alternatieve uitvoeringsvormen met combinaties van alle of sommige van de in deze afzonderlijke uitvoeringsvormen beschreven kenmerken worden ook overwogen en geacht te vallen binnen het kader van de uitvinding zoals geschetst in de conclusies. De specificaties, cijfers en voorbeelden moeten daarom eerder in illustratieve dan in beperkende context worden geplaatst. De uitvinding is bedoeld om alle alternatieven, wijzigingen en variaties te omarmen die binnen de geest en de reikwijdte van de bijgevoegde claims vallen. Verder zijn veel van de beschreven elementen functionele entiteiten die als discrete of gedistribueerde componenten of in combinatie met andere componenten, in elke geschikte combinatie en locatie, kunnen worden geïmplementeerd.
In de claims worden eventuele tussen haakjes geplaatste verwijzingstekens niet ontleed als beperking van de claim. 'omvat' sluit de aanwezigheid van andere kenmerken of stappen dan die welke in een claim zijn opgenomen niet uit. Bovendien worden de woorden 'een' en 'één' niet uitgelegd als beperkt tot 'slechts één', maar worden ze gebruikt om 'ten minste één' aan te duiden, en sluiten ze een pluraliteit niet uit. Het loutere feit dat bepaalde maatregelen in onderling verschillende claims worden aangehaald, wijst er niet op dat een combinatie van deze maatregelen niet in het voordeel kan worden gebruikt.

Claims (16)

CONCLUSIES
1. Een orkestratiesysteem voor de configuratie van een grootschalige gedistribueerde infrastructuur met een meervoudig aantal subsystemen; waarbij het orkestratiesysteem een declaratief orkestratiemodel omvat voor het implementeren van gewenste toestanden in de gedistribueerde infrastructuur; waarbij het orkestratiemodel een meervoudig aantal voorgedefinieerde modules omvat die elk een gewenste toestand implementeren, en waarbij modules met een hoger niveau van gewenste toestand communicatief zijn gekoppeld aan modules met een lager niveau van gewenste toestand, en waarbij ten minste een subset van de lager niveau gewenste toestanden uitrolbare configuratieparameters omvat voor de subsystemen van de infrastructuur; waarbij ten minste een module van het orkestratiemodel is gekoppeld aan een multitoestand finite-state machine voorzien van een lijst van toestanden en de finite-state machine wordt geconfigureerd om zich op elk moment in een toestand te bevinden die werd geselecteerd uit de lijst van toestanden; waarbij elke finite-state machine zelf drager is van ten minste een verzameling serviceattributen die als input worden gebruikt voor het orkestratiemodel gekoppeld aan de betreffende finite-state machine; en waarbij het orkestratiesysteem is geconfigureerd om gebeurtenissen te bewaken en een dynamische toestandverandering van ten minste een finite-state machine van de ene gewenste toestand naar een andere te bewerkstelligen als reactie op een of meerdere gedetecteerde gebeurtenissen die een overgangsvoorwaarde aansturen.
2. Systeem volgens conclusie 1, waarbij de overgang van een huidige toestand van de finite-state machine naar een nieuwe toestand gebeurt in reactie op een externe gebeurtenis gedetecteerd door het orkestratiesysteem of op een interne gebeurtenis van ten minste de voltooiing of de mislukking om ten minste een deel van de huidige gewenste toestand te realiseren.
3. Systeem volgens conclusie 1 of 2, waarbij het orkestratiesysteem een of meerdere applicatie programmeringsinterfaces omvat waarbij het orkestratiesysteem zodanig is geconfigureerd dat toestandovergangen van de eindige toestandmachine worden aangestuurd door een of meerdere oproepen van applicatie programmeringsinterfaces, waarbij de oproepen zijn geconfigureerd om een van de verzamelingen van attributen gekoppeld aan de finite-state machine te manipuleren.
4. Systeem volgens een van de vorige conclusies, waarbij de toestandovergangen voor gevolg hebben dat de verzamelingen van attributen op een vooraf gedefinieerde manier worden gemanipuleerd.
5. Systeem volgens een van de vorige conclusies, waarbij een netwerkservice wordt uitgevoerd in de gedistribueerde infrastructuur, waarbij de netwerkservice kan worden gestuurd met behulp van gedetecteerde gebeurtenissen die aan het orkestratiesysteem worden gecommuniceerd.
6. Systeem volgens een van de vorige conclusies, waarbij de verschillende toestanden vermeld op de toestandlijst van de state machine de verschillende stappen vertegenwoordigen van een implementatielevenscyclus van een netwerkdienst.
7. Systeem volgens een van de vorige conclusies, waarbij de finite-state machine is geconfigureerd om een rollback-functionaliteit te voorzien waarbij in antwoord op een rollback-gebeurtenis de finite-state machine is geconfigureerd om een rollback-overgang uit te voeren door over te gaan naar een volgende toestand in de finite-state machine waarbij inputs naar de module waaraan de state machine is gekoppeld, worden teruggezet naar de bewaarde inputs.
8. Systeem volgens conclusie 7, waarbij aan de rollback-voorwaarde is voldaan wanneer ten minste een stap in de overgangscampagne uitgevoerd op het orkestratiemodel mislukt.
9. Systeem volgens een van de vorige conclusies, waarbij het orkestratiesysteem is geconfigureerd om een geldigheidscontrole uit te voeren wanneer een overgang wordt gestart, waarbij het orkestratiesysteem 1s geconfigureerd om na te gaan of de overgang naar de gewenste toestand kan worden toegelaten.
10. Systeem volgens een van de vorige conclusies, waarbij de modules in opeenvolgende lagen zijn ingericht voor het verfijnen van de gewenste toestanden van hoog niveau naar gewenste toestanden van een lager niveau, waarbij de gewenste toestand van een module in een hogergelegen laag wordt verfijnd in een of meerdere gewenste toestanden van modules in een daaropvolgend lager niveau, waarbij de modules in de hogere laag een gewenste toestand van een hoger niveau hebben dan de modules in de daaropvolgende lagere laag en waarbij ten minste een subset van de gewenste toestanden van het lagere niveau de uitrolbare configuratieparameters aanleveren voor de services en/of subservices van de infrastructuur en waarbij deze verfijning conditioneel is voor de huidige toestand en de verzamelingen van attributen van elke hieraan gekoppelde state machine.
11. Systeem volgens een van de vorige conclusies, waarbij het orkestratiemodel herconfigureerbaar is.
12. Systeem volgens een van de vorige conclusies, waarbij de modules van het orkestratiemodel herconfigureerbaar zijn, waarbij ten minste de toestandlijst en de voorwaarden voor de toestandovergangen gedefinieerd door de finite-state machine gekoppeld aan de modules van het orkestratiemodel instelbaar zijn.
13. Systeem volgens een van de vorige conclusies, waarbij het orkestratiesysteem is aangepast om ten minste een van een grootschalige telecommunicatie-infrastructuur, een cloudinfrastructuur, een webservice- infrastructuur of een database-infrastructuur te beheren.
14. Werkwijze voor het configureren van een grootschalig gedistribueerde infrastructuur met een meervoudig aantal subsystemen waarbij de werkwijze stappen omvat voor: een orkestratiesysteem te voorzien met hierin een declaratief orkestratiemodel voor het implementeren van gewenste toestanden in de gedistribueerde infrastructuur, waarbij het orkestratiemodel is voorzien van een meervoudig aantal voorgedefinieerde modules die elk een gewenste toestand implementeren en waarbij modules met een hoger niveau van gewenste toestand gemeenschappelijk zijn gekoppeld aan modules met een lager niveau van gewenste toestand en waarbij ten minste een subset van de lager niveau gewenste toestanden uitrolbare configuratieparameters omvat voor de subsystemen van de infrastructuur; ten minste een module van het orkestratiemodel te koppelen aan een multitoestand finite-state machine voorzien van een lijst van gewenste toestanden, waarbij de finite-state machine wordt geconfigureerd om zich op elk moment te bevinden in een van de geselecteerde gewenste toestanden uit de lijst van toestanden, waarbij elke finite-state machine ten minste een verzameling serviceattributen omvat die als input worden gebruikt voor het orkestratiemodel gekoppeld aan de betreffende finite-state machine; en via het orkestratiesysteem gebeurtenissen te bewaken en een dynamische toestandverandering uit te voeren van ten minste een finite- state machine van de ene gewenste toestand naar een andere in antwoord op een of meerdere gedetecteerde gebeurtenissen die een overgangsvoorwaarde aansturen.
15. Een computerproductprogramma geconfigureerd voor het uitvoeren van de stappen voorzien in de werkwijze volgens conclusie 14 terwijl het wordt uitgevoerd op een controller.
16. Een apparaat voor de configuratie van een grootschalige gedistribueerde infrastructuur met een groot aantal subsystemen, waarbij het apparaat een verwerkingseenheid omvat met een processor gekoppeld aan een werkgeheugen dat de verwerkingseenheid toelaat om de werkwijez uit te voeren volgens conclusie 14.
BE20195684A 2019-10-11 2019-10-11 Een systeem en werkwijze voor de configuratie van een grootschalige gedistribueerde infrastructuur BE1027660B1 (nl)

Priority Applications (4)

Application Number Priority Date Filing Date Title
BE20195684A BE1027660B1 (nl) 2019-10-11 2019-10-11 Een systeem en werkwijze voor de configuratie van een grootschalige gedistribueerde infrastructuur
EP20789587.1A EP4042278A1 (en) 2019-10-11 2020-10-09 A system and method for configuring a large-scale distributed infrastructure
US17/767,479 US20230125626A1 (en) 2019-10-11 2020-10-09 A system and method for configuring a large-scale distributed infrastructure
PCT/EP2020/078450 WO2021069683A1 (en) 2019-10-11 2020-10-09 A system and method for configuring a large-scale distributed infrastructure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
BE20195684A BE1027660B1 (nl) 2019-10-11 2019-10-11 Een systeem en werkwijze voor de configuratie van een grootschalige gedistribueerde infrastructuur

Publications (2)

Publication Number Publication Date
BE1027660A1 true BE1027660A1 (nl) 2021-05-05
BE1027660B1 BE1027660B1 (nl) 2021-05-11

Family

ID=69157551

Family Applications (1)

Application Number Title Priority Date Filing Date
BE20195684A BE1027660B1 (nl) 2019-10-11 2019-10-11 Een systeem en werkwijze voor de configuratie van een grootschalige gedistribueerde infrastructuur

Country Status (4)

Country Link
US (1) US20230125626A1 (nl)
EP (1) EP4042278A1 (nl)
BE (1) BE1027660B1 (nl)
WO (1) WO2021069683A1 (nl)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116341880B (zh) * 2023-05-26 2023-08-11 成都盛锴科技有限公司 一种基于有限状态机的列检机器人分布式调度方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9590849B2 (en) * 2010-06-23 2017-03-07 Twilio, Inc. System and method for managing a computing cluster
US10298448B2 (en) * 2016-09-20 2019-05-21 At&T Intellectual Property I, L.P. Method and apparatus for extending service capabilities in a communication network
US11196643B2 (en) * 2018-04-04 2021-12-07 Hewlett Packard Enterprise Development Lp State transitions for a set of services

Also Published As

Publication number Publication date
US20230125626A1 (en) 2023-04-27
EP4042278A1 (en) 2022-08-17
BE1027660B1 (nl) 2021-05-11
WO2021069683A1 (en) 2021-04-15

Similar Documents

Publication Publication Date Title
US11743144B2 (en) Systems and methods for domain-driven design and execution of metamodels
US10887179B2 (en) Management of the lifecycle of a cloud service modeled as a topology
US20190149420A1 (en) System and method for automated system management
RU2737480C2 (ru) Архитектура организации промышленных программно-определяемых сетей для развертывания в программно-определяемой автоматизированной системе
US11159385B2 (en) Topology based management of second day operations
US10447538B2 (en) Facilitating autonomous computing within a cloud service
US11228497B2 (en) Topology based management with stage and version policies
US10212051B2 (en) Stitching an application model to an infrastructure template
US11171841B2 (en) System for propagating a modification of a first service, in a service graph, to a second service
US10164986B2 (en) Realized topology system management database
US20170302531A1 (en) Topology based management with compliance policies
US20180026911A1 (en) System and method for providing a resource usage advertising framework for sfc-based workloads
US11805004B2 (en) Techniques and interfaces for troubleshooting datacenter networks
US20150052095A1 (en) Model-based approach to intelligent automation in a computing domain
US11570055B2 (en) Connectivity templates
US20200218566A1 (en) Workload migration
Van Rossem et al. A vision for the next generation platform-as-a-service
US9565130B2 (en) Cloud-based resource availability calculation of a network environment
BE1027660B1 (nl) Een systeem en werkwijze voor de configuratie van een grootschalige gedistribueerde infrastructuur
US20200034443A1 (en) Infrastructure Program Management Platform
US20150229518A1 (en) Systems and methods for providing rapid product development for service assurance
US20240095099A1 (en) Decentralized framework for providing application programming interface gateways

Legal Events

Date Code Title Description
FG Patent granted

Effective date: 20210511