Skip to content
Snippets Groups Projects
Verified Commit 64c737ec authored by Karel van Klink's avatar Karel van Klink :smiley_cat:
Browse files

Add documentation on overview and architecture

parent 2aafbcea
Branches
Tags
2 merge requests!6[2023-07-14] publish docs,!3Add documentation contents
Pipeline #79224 passed
# Architecture
We follow the principles of infrastructure as code, and we decompose configuration in data and templates. All of this is
stored and versioned in Git. Git is also responsible for managing mechanisms such as:
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:
* Automatic checks to validate data and data references.
* Merge requests for change approval.
......@@ -9,9 +9,9 @@ stored and versioned in Git. Git is also responsible for managing mechanisms suc
We try to keep the stack of tools limited:
* Ansible is the tool that deploys configuration and orchestrates changes.
* If needed, custom Python scripts can be used to support additional functionality.
* If needed, custom Python scripts can be used to support extra functionality.
This approach works well for the deployment of "base configuration". For service fulfillment, three more components are
This approach works well for the deployment of 'base configuration'. For service fulfillment, three more components are
introduced:
* A resource database.
......@@ -32,12 +32,12 @@ The base configuration includes all configuration necessary to provision a new n
It covers aspects such as:
* Standard routing configuration for node reachability.
* User access configuration and AAA.
* User access configuration and AAA (Authentication, Authorisation, Accounting).
* Standard configuration related to security and hardening of the device.
* Monitoring and event management.
The configuration is generally the same across all network elements, apart from some device-specific values such as
hardware type or loopback address.
The configuration is similar across all network elements, apart from some device-specific values such as hardware type
or loopback address.
On top of this 'base layer' services can be deployed. Some examples of offered services are given in the table below.
......@@ -56,5 +56,5 @@ For reference:
* 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 does not allow operations that violate network policies.
* The infrastructure doesn't allow operations that violate network policies.
[Source.](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45687.pdf)
# GÉANT Automation Platform (GAP)
Welcome to the documentation of the GÉANT Automation Platform, also known as GAP. \
Welcome to the documentation of the GÉANT Automation Platform, or GAP for short. \
The focus of this platform is configuration management and service orchestration for the GÉANT IP/MPLS network.
## Table of Contents
## Table of contents
```{toctree}
overview/index.md
architecture/index.md
......
# Overview
Configuration management is the process that maintains consistency and integrity of the network and of the services
built on top of it ensuring that it meets requirements in terms of functionalities, performances, and security.
built on top of it. It ensures that the network meets requirements in terms of functionalities, performances, and security.
In the context of the IP/MPLS layer and particularly the backbone routers, different teams manage configuration in
different ways: to deploy new nodes and to operate the network, they use various tools en methods. Compliance and
quality are checked afterwards: this approach requires much manual work, and it is inherently error-prone.
different ways. To deploy new nodes and to operate the network, they use various tools en methods. These tools check
compliance and quality afterward: this approach requires much manual work, and it's inherently error-prone.
This project aims to standardize the configuration and the configuration deployment process by using Open Source tools
and DevOps strategies: one single framework to deploy and to operate. Considering the network configuration as code and
managing it under a version control system (GitLab) will enable better visibility and control of changes and will help
standardize the way of working.
This project aims to standardize the configuration and the configuration deployment process. By using Open Source tools
and DevOps strategies there is one single framework to deploy and to operate. Considering the network configuration as
code and managing it under a version control system (GitLab) will enable better visibility and control of changes and
will help standardize the way of working.
The goal is to reduce configuration drifts and exceptions, Mean Time To Repair (MTTR) in case of fault, and possibly the
number and the severity of incidents. To verify configuration compliance before it gets deployed, several policies are in
......
......@@ -4,3 +4,9 @@ configuration as code
reachability
loopback
Ansible
[Bb]ackbone
IFS
CFS
AAA
GÉANT Automation Platform
GAP
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment