Skip to content
Snippets Groups Projects
Commit 0e959573 authored by Simone Spinelli's avatar Simone Spinelli
Browse files

Start architecture index file

parent 92cbc7d6
No related branches found
No related tags found
2 merge requests!16update documentation, update vale rules, reduce warnings and suggestions made by vale,!15Architecture section
Pipeline #83933 failed
# Integration with Infoblox
\ No newline at end of file
# Integration with Netbox
\ No newline at end of file
# Architecture
We follow the principles of infrastructure as code, and decompose configuration in data and templates. Git stores and
versions all configuration, and it's also responsible for managing mechanisms such as:
An overview of the architecture of GAP is depicted in the following picture:
* Automatic checks to validate data and data references.
* Merge requests for change approval.
![](../assets/images/Architecture-WFO_Geant_specific.drawio.png)
The stack of tools is kept limited:
The diagram, shows how GAP position itself as a single point of access not only for the interaction with a specific technical domain, in our case the IP/MPLS network, but also for the interaction with OSS/BSS systems that are authoritative for certain types of resources.
* Workflow Orchestrator (WFO) orchestrates all changes.
* Ansible is the tool that deploys configuration.
* If needed, custom Python scripts can support extra functionality.
GAP is responsible not only to allocate and release these resources but also to verify that all the systems are in sync over time.
This approach works well for the deployment of 'base configuration'. For service fulfillment, three more components are
introduced:
In other words, operators are no longer responsible to prepare resources before doing changes (for example allocating IP networks or addresses and configuring accordingly DNS): the GAP component responsible for the interaction with that particular system will take care of allocating and configure the necessary resources.
## OSS/BSS systems currently in scope
* A resource database.
* A service database.
* A workflow engine.
### Infoblox
All three of these components are deployed as part of WFO. More information about WFO can be found on their website
<a href="https://workfloworchestrator.org/" target="_blank">here</a>.
Infoblox is the GÉANT DDI (DHCP/DNS/IPAM) platform and it is responsible to manage the allocation of IP networks and addresses (both IPv4 and IPv6) as well as the assignment of domain names for the zones GÉANT is athoritative for.
## Configuration (de)composition
Currently GAP support:
The configuration of a network element can be decomposed in different functional parts:
- Allocation and deletion of an IP (v4/v6) Network within an existing network container
- Allocation and deletion of a host and relative IPv4 and IPv6 addresses including A,AAAA and PTR records.
* Base configuration.
* Service configuration:
* IFS
* CFS
More detailed information about this integration is available in the [Ipam integration module](../admin_guide/oss_bss/ipam.md)
The base configuration includes all configuration necessary to provision a new node, and to include it in the network.
It covers aspects such as:
### Netbox
* Standard routing configuration for node reachability.
* User access configuration and AAA.
* Standard configuration related to security and hardening of the device.
* Monitoring and event management.
Netbox is responsible of managing physical resources such as nodes and interfaces.
The configuration is similar across all network elements, apart from some device-specific values such as hardware type
or loopback address.
An interface can be in 3 different states:
On top of this 'base layer' services can be deployed. Some examples of offered services are given in the table below.
- __free__: available to be used by a workflow to deploy a service
- __reserved__: currently in use by a workflow that is still running
- __in use__: holding a service currently active
| Infrastructure facing services | Customer facing services |
|--------------------------------|-----------------------------------|
| Backbone trunks | Access point for R&E traffic |
| Transit provider | Access point for internet traffic |
| Internet exchange | |
More detailed information about this integration is available in the [Physical resources integration module](../admin_guide/oss_bss/netbox.md)
### LibreNMS
## Principles
### For reference
More detailed information about this integration is available in the [LibreNMS integration module](../admin_guide/oss_bss/librenms.md)
### Kentik (planned)
* All network operations are automated, requiring no operator steps beyond the instantiation of intent.
* Changes applied to individual network element are fully declarative, vendor-neutral, and derived from the network
infrastructure from the high-level, network-wide intent.
* Any network changes are automatically halted and rolled back if the network displays unintended behaviour.
* The infrastructure doesn't allow operations that violate network policies.
<a href="https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45687.pdf"
target="_blank">Source</a>.
## Interaction with a technical domain: IP/MPLS
### Other principles
* Automatic check evaluate all changes
* After passing pipelines, all changes are merged into the `main` branch. These pipelines run once a change is
peer-reviewed and approved.
- - -
## Orchestration and service database
All services offered can be summarised in the following four categories. Some examples are given in the table below.
| | Multipoint | Point 2 point |
|---------|-------------|------------------|
| Layer 2 | VPLS / EVPN | Layer 2 circuits |
| Layer 3 | L3VPN | Core links |
docs/assets/images/Architecture-WFO_Geant_specific.drawio.png

142 KiB

<mxfile host="Electron" modified="2023-08-28T13:52:32.490Z" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/21.2.1 Chrome/112.0.5615.87 Electron/24.1.2 Safari/537.36" etag="hKNO4S5IgK634bX5jO2K" version="21.2.1" type="device" pages="4">
<diagram name="Overview" id="5LPZLXcoEl9-ho0UlVSG">
<mxGraphModel dx="1663" dy="775" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="BRG2872ae9NKHgnPV-JH-18" value="" style="rounded=0;whiteSpace=wrap;html=1;fontFamily=Tahoma;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
<mxGeometry x="190" y="290" width="410" height="280" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-1" value="Workflow Engine" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#075683;strokeColor=none;fontFamily=Tahoma;fontColor=#FFFFFF;fontSize=13;" parent="1" vertex="1">
<mxGeometry x="335" y="400" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-2" value="HW inventory" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e83f4b;strokeColor=none;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="120" y="270" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-3" value="IPAM/DNS" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e83f4b;strokeColor=none;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="120" y="338" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-4" value="Monitoring" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e83f4b;strokeColor=none;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="120" y="407" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-6" value="User interface" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8a10c;strokeColor=none;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="570" y="273" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-7" value="Messaging/Emails" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8a10c;strokeColor=none;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="570" y="343" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-8" value="Ticketing" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8a10c;strokeColor=none;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="570" y="413" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-9" value="Technical Domain&lt;br&gt;(ie IP/MPLS)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#393938;strokeColor=none;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="180" y="570" width="140" height="130" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-10" value="Ansible" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6a6a69;strokeColor=#FFFFFF;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="190" y="550" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-11" value="Technical Domain&lt;br&gt;(ie Optical)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#393938;strokeColor=none;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="330" y="570" width="140" height="130" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-12" value="Domain Specific Automation" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6a6a69;strokeColor=#FFFFFF;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="340" y="550" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-13" value="Technical Domain&lt;br&gt;(ie Datacenter)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#393938;strokeColor=none;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="480" y="570" width="140" height="130" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-14" value="Domain Specific Automation" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6a6a69;strokeColor=#FFFFFF;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="490" y="550" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-16" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="560" y="253" width="140" height="240" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-19" value="Service database" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#075683;strokeColor=none;fontFamily=Tahoma;fontColor=#FFFFFF;fontSize=13;" parent="1" vertex="1">
<mxGeometry x="335" y="300" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-20" value="Orchestration Layer" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="365" y="490" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-21" value="Workflow Orchestrator" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontSize=17;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="305" y="253" width="175" height="30" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-22" value="Internal&lt;br&gt;OSS/BSS systems" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="100" y="210" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-23" value="User Facing&lt;br&gt;OSS/BSS systems" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="555" y="210" width="150" height="30" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-24" value="Operators" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
<mxGeometry x="720" y="260" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-25" value="Users" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1">
<mxGeometry x="720" y="370" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-30" value="More..." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e83f4b;strokeColor=none;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="120" y="475" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="BRG2872ae9NKHgnPV-JH-15" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="110" y="250" width="140" height="290" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="OxvVKvg4RBchy1Ke26Vi" name="Lifecycle">
<mxGraphModel dx="1663" dy="775" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="9i9uzR1bp89Chr804UXO-1" value="INITIAL" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="120" y="280" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-2" value="PROVISIONING" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="280" y="160" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-3" value="ACTIVE" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="440" y="280" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-4" value="MIGRATING" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="440" y="450" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-5" value="TERMINATED" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fontStyle=1" parent="1" vertex="1">
<mxGeometry x="150" y="430" width="100" height="100" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-12" value="&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;span style=&quot;background-color: initial;&quot;&gt;Attributes are collected from authoritative systems and from the operator/user&lt;/span&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="100" y="220" width="160" height="30" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-13" value="&lt;div style=&quot;text-align: justify;&quot;&gt;Domain-Specific Automation provisions the subscription on the network&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="260" y="285" width="160" height="30" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-14" value="&lt;div style=&quot;text-align: justify;&quot;&gt;Attributes are manipulated to adapt to new needs&lt;br&gt;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="590" y="210" width="160" height="30" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-16" value="Modify" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="530" y="240" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-17" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.08;entryY=0.77;entryDx=0;entryDy=0;entryPerimeter=0;exitX=1;exitY=0;exitDx=0;exitDy=0;" parent="1" source="9i9uzR1bp89Chr804UXO-1" target="9i9uzR1bp89Chr804UXO-2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="-10" y="480" as="sourcePoint" />
<mxPoint x="40" y="430" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-18" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="1" source="9i9uzR1bp89Chr804UXO-2" target="9i9uzR1bp89Chr804UXO-3" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="340" y="380" as="sourcePoint" />
<mxPoint x="390" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-19" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="9i9uzR1bp89Chr804UXO-3" target="9i9uzR1bp89Chr804UXO-5" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="280" y="430" as="sourcePoint" />
<mxPoint x="330" y="380" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-20" value="" style="endArrow=classic;html=1;rounded=0;exitX=0;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=1;entryDx=0;entryDy=0;" parent="1" source="9i9uzR1bp89Chr804UXO-4" target="9i9uzR1bp89Chr804UXO-3" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="250" y="380" as="sourcePoint" />
<mxPoint x="300" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-22" value="" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=1;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;" parent="1" source="9i9uzR1bp89Chr804UXO-3" target="9i9uzR1bp89Chr804UXO-4" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="630" y="470" as="sourcePoint" />
<mxPoint x="680" y="420" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-23" value="" style="curved=1;endArrow=classic;html=1;rounded=0;exitX=1;exitY=0;exitDx=0;exitDy=0;entryX=1;entryY=0;entryDx=0;entryDy=0;" parent="1" source="9i9uzR1bp89Chr804UXO-3" target="9i9uzR1bp89Chr804UXO-3" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="610" y="270" as="sourcePoint" />
<mxPoint x="660" y="220" as="targetPoint" />
<Array as="points">
<mxPoint x="580" y="280" />
<mxPoint x="660" y="270" />
<mxPoint x="550" y="220" />
<mxPoint x="520" y="240" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-24" value="" style="curved=1;endArrow=classic;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="9i9uzR1bp89Chr804UXO-3" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="540" y="330" as="sourcePoint" />
<mxPoint x="595" y="385" as="targetPoint" />
<Array as="points">
<mxPoint x="650" y="370" />
<mxPoint x="660" y="310" />
<mxPoint x="620" y="310" />
<mxPoint x="580" y="310" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-25" value="Validate" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="580" y="315" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-26" value="&lt;div style=&quot;text-align: justify;&quot;&gt;Subscription is checked to verify all is in sync&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="660" y="315" width="160" height="30" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-27" value="&lt;div style=&quot;text-align: justify;&quot;&gt;The subscription might be migrated to new hardware or substrate&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="540" y="400" width="160" height="30" as="geometry" />
</mxCell>
<mxCell id="9i9uzR1bp89Chr804UXO-28" value="&lt;div style=&quot;text-align: justify;&quot;&gt;The subscription is terminated, removed from the network, all the systems gets updated.&amp;nbsp;&lt;/div&gt;" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="284" y="450" width="130" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="I4smcoPWwe3PN79ySEkT" name="WFO_Geant_specific">
<mxGraphModel dx="2490" dy="775" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="fU0Jv1-IXl80mrmCQJBs-10" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;" parent="1" vertex="1">
<mxGeometry x="800" y="370.5" width="90" height="239.5" as="geometry" />
</mxCell>
<mxCell id="xgwRl2r8zASo9SITuRbb-6" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#bac8d3;fontColor=#ffffff;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="-20" y="525" width="670" height="60" as="geometry" />
</mxCell>
<mxCell id="xgwRl2r8zASo9SITuRbb-1" value="Authentication and&amp;nbsp;&amp;nbsp;&lt;br&gt;Authorization Infrastructure" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="60" y="420" width="180" height="90" as="geometry" />
</mxCell>
<mxCell id="xgwRl2r8zASo9SITuRbb-2" value="Orchestrator GUI" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
<mxGeometry x="400" y="420" width="130" height="90" as="geometry" />
</mxCell>
<mxCell id="xgwRl2r8zASo9SITuRbb-5" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="425" y="310" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="xgwRl2r8zASo9SITuRbb-3" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;" parent="xgwRl2r8zASo9SITuRbb-5" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="xgwRl2r8zASo9SITuRbb-4" value="" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;strokeColor=#FFFFFF;" parent="xgwRl2r8zASo9SITuRbb-5" vertex="1">
<mxGeometry x="25" y="10" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="FV0cLB4CSSY3hVsMsGnb-11" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" source="xgwRl2r8zASo9SITuRbb-2" target="xgwRl2r8zASo9SITuRbb-3" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="310" y="380" as="sourcePoint" />
<mxPoint x="460" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="FV0cLB4CSSY3hVsMsGnb-12" value="Operators" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="435" y="280" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="FV0cLB4CSSY3hVsMsGnb-14" value="" style="group" parent="1" vertex="1" connectable="0">
<mxGeometry x="275" y="310" width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="FV0cLB4CSSY3hVsMsGnb-15" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#000000;" parent="FV0cLB4CSSY3hVsMsGnb-14" vertex="1">
<mxGeometry width="80" height="80" as="geometry" />
</mxCell>
<mxCell id="FV0cLB4CSSY3hVsMsGnb-16" value="" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;strokeColor=#FFFFFF;" parent="FV0cLB4CSSY3hVsMsGnb-14" vertex="1">
<mxGeometry x="25" y="10" width="30" height="60" as="geometry" />
</mxCell>
<mxCell id="FV0cLB4CSSY3hVsMsGnb-17" value="" style="endArrow=none;html=1;rounded=0;exitX=0.432;exitY=0.009;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitPerimeter=0;strokeWidth=2;" parent="1" source="xgwRl2r8zASo9SITuRbb-6" target="FV0cLB4CSSY3hVsMsGnb-15" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="350" y="420" as="sourcePoint" />
<mxPoint x="345" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="FV0cLB4CSSY3hVsMsGnb-18" value="Customers" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="287" y="280" width="60" height="30" as="geometry" />
</mxCell>
<mxCell id="FV0cLB4CSSY3hVsMsGnb-19" value="Self service&lt;br&gt;portal API" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="250" y="470" width="140" height="40" as="geometry" />
</mxCell>
<mxCell id="FV0cLB4CSSY3hVsMsGnb-13" value="Self service&lt;br&gt;portal" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1">
<mxGeometry x="250" y="420" width="140" height="40" as="geometry" />
</mxCell>
<mxCell id="FV0cLB4CSSY3hVsMsGnb-20" value="" style="endArrow=none;html=1;rounded=1;entryX=0.736;entryY=0.944;entryDx=0;entryDy=0;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryPerimeter=0;strokeWidth=2;" parent="1" source="FV0cLB4CSSY3hVsMsGnb-19" target="FV0cLB4CSSY3hVsMsGnb-15" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="325" y="440" as="sourcePoint" />
<mxPoint x="375" y="390" as="targetPoint" />
<Array as="points">
<mxPoint x="355" y="400" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-1" value="IP/MPLS&lt;br&gt;Junos/Nokia" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#393938;strokeColor=none;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="65" y="630" width="140" height="130" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-2" value="Ansible" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6a6a69;strokeColor=#FFFFFF;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="75" y="610" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-3" value="Technical Domain&lt;br&gt;(ie Optical)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#393938;strokeColor=none;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="215" y="630" width="140" height="130" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-4" value="Domain Specific Automation" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6a6a69;strokeColor=#FFFFFF;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="225" y="610" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-5" value="Technical Domain&lt;br&gt;(ie Datacenter)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#393938;strokeColor=none;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="365" y="630" width="140" height="130" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-6" value="Domain Specific Automation" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6a6a69;strokeColor=#FFFFFF;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="375" y="610" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-7" value="Other &lt;br&gt;Technical Domain" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#393938;strokeColor=none;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="510" y="630" width="140" height="130" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-8" value="Domain Specific Automation" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6a6a69;strokeColor=#FFFFFF;fontColor=#FFFFFF;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="520" y="610" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-10" value="Infoblox" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="810" y="395" width="70" height="40" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-11" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.125;exitDx=0;exitDy=0;exitPerimeter=0;strokeWidth=2;" parent="1" source="xgwRl2r8zASo9SITuRbb-7" target="PUE3jFu-1MjbAkVMeXG0-10" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="710" y="530" as="sourcePoint" />
<mxPoint x="760" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-9" value="ipam" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="670" y="395" width="110" height="40" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-12" value="Netbox" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="810" y="445" width="70" height="40" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-13" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1.009;exitY=0.379;exitDx=0;exitDy=0;exitPerimeter=0;strokeWidth=2;" parent="1" source="xgwRl2r8zASo9SITuRbb-7" target="PUE3jFu-1MjbAkVMeXG0-12" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="650" y="490" as="sourcePoint" />
<mxPoint x="760" y="530" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-14" value="resource_manager" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="670" y="445" width="110" height="40" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-15" value="LibreNMS" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="810" y="495" width="70" height="40" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-16" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;exitX=1.027;exitY=0.647;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="xgwRl2r8zASo9SITuRbb-7" target="PUE3jFu-1MjbAkVMeXG0-15" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="660" y="540" as="sourcePoint" />
<mxPoint x="760" y="580" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-17" value="monitoring" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="670" y="495" width="110" height="40" as="geometry" />
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-18" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" source="PUE3jFu-1MjbAkVMeXG0-2" target="fU0Jv1-IXl80mrmCQJBs-2" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint y="860" as="sourcePoint" />
<mxPoint x="130" y="590" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-19" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.127;entryY=0.982;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="284.77" y="611" as="sourcePoint" />
<mxPoint x="284.77" y="585" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-20" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.127;entryY=0.982;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="435" y="610" as="sourcePoint" />
<mxPoint x="435" y="584" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="PUE3jFu-1MjbAkVMeXG0-21" value="" style="endArrow=none;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.127;entryY=0.982;entryDx=0;entryDy=0;entryPerimeter=0;strokeWidth=2;" parent="1" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="579.77" y="611" as="sourcePoint" />
<mxPoint x="579.77" y="585" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="xgwRl2r8zASo9SITuRbb-8" value="Orchestration Layer" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" parent="1" vertex="1">
<mxGeometry x="320" y="540" width="146" height="30" as="geometry" />
</mxCell>
<mxCell id="fU0Jv1-IXl80mrmCQJBs-4" value="" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;opacity=80;" parent="1" vertex="1">
<mxGeometry x="58" y="280" width="340" height="241" as="geometry" />
</mxCell>
<mxCell id="fU0Jv1-IXl80mrmCQJBs-5" value="" style="rounded=1;whiteSpace=wrap;html=1;strokeColor=none;opacity=80;" parent="1" vertex="1">
<mxGeometry x="210" y="600" width="460" height="180" as="geometry" />
</mxCell>
<mxCell id="fU0Jv1-IXl80mrmCQJBs-6" value="Kentik" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="810" y="545" width="70" height="40" as="geometry" />
</mxCell>
<mxCell id="fU0Jv1-IXl80mrmCQJBs-7" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=0.985;exitY=0.667;exitDx=0;exitDy=0;exitPerimeter=0;strokeWidth=2;" parent="1" source="xgwRl2r8zASo9SITuRbb-6" target="fU0Jv1-IXl80mrmCQJBs-6" edge="1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="650" y="590" as="sourcePoint" />
<mxPoint x="760" y="630" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="fU0Jv1-IXl80mrmCQJBs-8" value="monitoring" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1">
<mxGeometry x="670" y="545" width="110" height="40" as="geometry" />
</mxCell>
<mxCell id="xgwRl2r8zASo9SITuRbb-7" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#BAC8D3;fontColor=#ffffff;strokeColor=none;" parent="1" vertex="1">
<mxGeometry x="540" y="390" width="110" height="190" as="geometry" />
</mxCell>
<mxCell id="fU0Jv1-IXl80mrmCQJBs-2" value="LSO&lt;br&gt;Lightweight Service Orchestrator" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontFamily=Tahoma;" parent="1" vertex="1">
<mxGeometry x="12.5" y="550" width="245" height="40" as="geometry" />
</mxCell>
<mxCell id="fU0Jv1-IXl80mrmCQJBs-11" value="OSS/BSS Already in use in Geant" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="900" y="450" width="70" height="70" as="geometry" />
</mxCell>
<mxCell id="fU0Jv1-IXl80mrmCQJBs-12" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;" parent="1" vertex="1">
<mxGeometry x="660" y="370.5" width="130" height="239.5" as="geometry" />
</mxCell>
<mxCell id="fU0Jv1-IXl80mrmCQJBs-13" value="Integration modules&lt;br&gt;internally developed" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="670" y="610" width="110" height="30" as="geometry" />
</mxCell>
<mxCell id="fU0Jv1-IXl80mrmCQJBs-14" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;dashed=1;" parent="1" vertex="1">
<mxGeometry y="545" width="270" height="55" as="geometry" />
</mxCell>
<mxCell id="fU0Jv1-IXl80mrmCQJBs-15" value="Integration module internally developed" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="-60" y="600" width="110" height="30" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram id="QxhRZFN0ACoc4i0gpn6R" name="Page-4">
<mxGraphModel dx="1663" dy="775" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
</root>
</mxGraphModel>
</diagram>
</mxfile>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment