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

add contents to DTAP section

parent ba6a7466
No related branches found
No related tags found
2 merge requests!19publish docs 2024-01-30,!18Feature/add dtap docs
Pipeline #85583 failed
# Acceptance environment
TBA
Once GAP components have been tested successfully in the test environment, they
are advanced to the UAT environment. In this environment, stakeholders from
other teams such as Network Engineering and Operations are able to perform their
own tests on the system.
In the UAT environment, only full releases are deployed. This means that
development builds are not included in this environment. Devices targeted by GAP
are physical routers in the lab, to increase accuracy of integration testing.
The UAT environment has been designed to mimic the ultimate production
environment as close as possible. To achieve this, all VMs are managed in the
same manner using Puppet, and external resources are configured identically. The
external service database is hosted on a distributed Postgres cluster, which is
provided by the DevOps team. The Redis instance is also a cluster, which again
comes from the DevOps team.
Once testing has been completed, components are ready to move to the production
environment.
# Development environments
For the development of different components of GAP, an environment is needed for
integration testing. This is done by making use of a Proxmox cluster in the
GÉANT lab environment, that facilitates different VMs for each developer.
Inside a development VM, containerlab is used to emulate virtual routers of both
Juniper and Nokia. Port forwarding then enables the developer to run
applications such as GSO and LSO on their local machine, to help speed up the
development cycle.
# DTAP process
TBA
To stage the different environments used for testing all components of GAP, the
DTAP process ensures that software in the production environment is well-tested
and understood by all parties involved.
For the deployment of GAP, a set of Ansible playbooks is used to prepare VMs,
install required dependencies, and set up the different components of GAP. There
are four different environments, with their major differences listed in the
table below.
| Environment | Router topology | Component versioning | Used by |
|-------------|-----------------|----------------------|---------------------|
| Development | containerlab | - | GAP developers |
| Test | EVE-NG | 1.6dev135 | GAP developers |
| UAT | lab devices | 1.5 | Network Engineering |
| Production | production | 1.2 | Operations & OC |
The development environment runs on a local machine of a developer, and is
therefore highly volatile and unstable. The test environment is less volatile,
but still contains the newest package versions that are merged into `develop`.
The UAT environment is more stable, and only contains released packages. This is
where integration testing with physical devices takes place.
Once a combination of specific version numbers is deemed compatible and fully
functional, it is deployed as a whole in production. Production could therefore
be multiple releases behind UAT, if this combination of newer versions has not
been tested yet.
# Production environment
TBA
The production environment contains final, well-tested versions of GAP
components.
This environment has been designed to be resilient and as stable as reasonably
possible. The used Postgres and Redis services are hosted in distributed
clusters, and GAP is deployed in three different VMs. These VMs share a virtual
IP address, where a specific VM is selected using `keepalived`. If one of the
components of GAP were to go down in one of the VMs, another VM will take over
without the end user experiencing any system downtime.
# Test environment
TBA
Once development has taken place, and rudimentary unit and system testing was
successful, a merge request is opened in the relevant Git repository. Once this
merge request is approved and included in upstream, it will be on the `develop`
branch.
The test environment is automatically re-deployed every hour on a VM
infrastructure in the GÉANT lab environment. This ensures that the test
environment always contains the newest versions of all components of GAP.
The test environment is meant for the GOAT to test new functionality and
the stability of GAP. The routers that are targeted, are virtual routers managed
by an EVE-NG instance. Once testing in the test environment has been concluded
successfully, GAP components are ready to advance to the UAT environment.
The test environment contains all development builds of components, following
semantic versioning principles.
......@@ -10,6 +10,7 @@
*[GA]: Access Port
*[GAN]: Access Node
*[GAP]: GÉANT Automation Platform
*[GOAT]: GÉANT Orchestration and Automation Team
*[GP]: Physical Port
*[GSO]: GÉANT Service Orchestrator
*[GUI]: Graphical User Interface
......@@ -33,4 +34,6 @@
*[SNMP]: Simple Network Management Protocol
*[SOT]: Source Of Truth
*[TBA]: To be added
*[UAT]: User Acceptance Testing
*[VM]: Virtual Machine
*[WFO]: Workflow Orchestrator
......@@ -58,6 +58,7 @@ nav:
- LSO: architecture/components/lso/index.md
- DTAP:
- architecture/dtap/index.md
- Development: architecture/dtap/development.md
- Test: architecture/dtap/test.md
- Acceptance: architecture/dtap/acceptance.md
- Production: architecture/dtap/production.md
......
......@@ -4,10 +4,11 @@ address
BSS
CFS
configuration as code
components?
[Cc]omponents?
contains?
GAP
GÉANT( Automation Platform)?
GÉANT Automation Platform
GOAT
GSO
IFS
iptrunk_*
......
......@@ -8,6 +8,7 @@ DHCP
DNS
Dockerfile
DTAP
EVE
FXP
GAN
IGP
......@@ -21,9 +22,13 @@ MTTR
MTU
[Mm]ultipoint
Netbox
Postgres
Proxmox
REST|rest
SDP
SID
SOT
SNMP
UAT
VLAN
VMs?
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment