From 8d21e9083c5abbd33745e1590d324e1d08638819 Mon Sep 17 00:00:00 2001 From: William Petit Date: Thu, 22 Jun 2023 20:53:58 -0600 Subject: [PATCH] doc: add general architecture base document + layers base reference --- .gitignore | 3 +- doc/README.md | 1 + doc/fr/general-architecture.md | 31 +++++++++++++++++-- doc/fr/references/layers/README.md | 5 +++ doc/fr/references/layers/queue.md | 27 +++++++++++++++++ doc/resources/deployment_fr.plantuml | 37 +++++++++++++++++++++++ doc/resources/deployment_fr.png | Bin 0 -> 35944 bytes internal/queue/schema/layer-options.json | 6 ---- 8 files changed, 101 insertions(+), 9 deletions(-) create mode 100644 doc/fr/references/layers/README.md create mode 100644 doc/fr/references/layers/queue.md create mode 100644 doc/resources/deployment_fr.plantuml create mode 100644 doc/resources/deployment_fr.png diff --git a/.gitignore b/.gitignore index 022f496..607f345 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,5 @@ /config.yml /admin-key.json /.bouncer-token -/data \ No newline at end of file +/data +/out \ No newline at end of file diff --git a/doc/README.md b/doc/README.md index e738980..2e96eb7 100644 --- a/doc/README.md +++ b/doc/README.md @@ -5,6 +5,7 @@ ## Référence +- [(FR) - Layers](./fr/references/layers/README.md) - [Fichier de configuration](../misc/packaging/common/config.yml) ## Tutoriels diff --git a/doc/fr/general-architecture.md b/doc/fr/general-architecture.md index 0d495a1..2ddb23a 100644 --- a/doc/fr/general-architecture.md +++ b/doc/fr/general-architecture.md @@ -1,3 +1,30 @@ -## Architecture générale +# Architecture générale -> TODO \ No newline at end of file +## Modèles de déploiement + +### Déploiement mono-noeud + +![](../resources/deployment_fr.png) +## Terminologie + +Voici une liste des termes utilisés dans le lexique Bouncer. +### Proxy + +Un "proxy" est une entité logique définissant le relation suivante: + +- Un ou plusieurs patrons de filtrage sous la forme `:`. Ceux ci identifient le ou les domaines associés à l'entité; +- Une URL cible qui servira de base pour la réécriture des requêtes. + +Un "proxy" peut avoir zéro ou plusieurs "layers" associés. + +Un "proxy" peut être activé ou désactivé. + +Un "proxy" a un poids qui définit son niveau de priorité dans la pile de traitement (plus son poids est élevé plus il est prioritaire). + +### Layer + +Un "layer" (calque) est une entité logique définissant un traitement à appliquer aux requêtes et/ou aux réponses transitant par un proxy. + +Un "layer" peut être activé ou désactivé. + +Un "layer" a un poids qui définit son niveau de priorité dans la pile de traitement (plus son poids est élevé plus il est prioritaire). \ No newline at end of file diff --git a/doc/fr/references/layers/README.md b/doc/fr/references/layers/README.md new file mode 100644 index 0000000..ff66e21 --- /dev/null +++ b/doc/fr/references/layers/README.md @@ -0,0 +1,5 @@ +# Layers + +Vous trouverez ci-dessous la liste des entités "Layer" activables sur vos entité "Proxy": + +- [Queue](./queue) - File d'attente dynamique \ No newline at end of file diff --git a/doc/fr/references/layers/queue.md b/doc/fr/references/layers/queue.md new file mode 100644 index 0000000..e9715b3 --- /dev/null +++ b/doc/fr/references/layers/queue.md @@ -0,0 +1,27 @@ +# Layer "Queue" + +## Description + +Ce layer permet d'ajouter un mécanisme de file d'attente dynamique au proxy associé. + +## Type + +`queue` + +## Options + +### `capacity` + +- **Type:** `number` +- **Valeur par défaut:** `1000` +- **Description:** Capacité maximum de la file d'attente. + +### `keepAlive` + +- **Type:** `string` (Voir [`time.ParseDuration()`](https://pkg.go.dev/time#ParseDuration) pour plus d'informations sur le format) +- **Valeur par défaut:** `1m` +- **Description:** Durée de vie d'une session dans la file d'attente sans activité avant expiration. + +### Schéma + +Voir le [schéma JSON](../../../../internal/queue/schema/layer-options.json). \ No newline at end of file diff --git a/doc/resources/deployment_fr.plantuml b/doc/resources/deployment_fr.plantuml new file mode 100644 index 0000000..974c62d --- /dev/null +++ b/doc/resources/deployment_fr.plantuml @@ -0,0 +1,37 @@ +@startuml +skinparam linetype ortho +skinparam ranksep 150 +skinparam nodesep 50 +top to bottom direction + +frame "Exemple de déploiement mono-noeud" as ExampleSimpleNode { + + actor "Navigateur Web" as WebNavigator + + node "Serveur Bouncer" as BouncerServer { + actor "CLI d'administration" as AdminCLI + + database "Redis" as RedisDatabase + + component "bouncer-proxy" as BouncerProxyService + component "bouncer-admin" as BouncerAdminService + + folder "/etc/bouncer" as BouncerConfigFolder + } + + node "Serveur distant" as RemoteServer { + component "Site Web" as RemoteWebsite + } + + WebNavigator --down0)- BouncerProxyService: "TCP/80 (HTTP)" + AdminCLI -0)- BouncerAdminService: "TCP/8081 (HTTP)" + + BouncerProxyService -down0)-- RemoteWebsite: "TCP/80 (HTTP)\nTCP/443 (HTTPS)" + + BouncerAdminService .down.> RedisDatabase: reads/writes + BouncerProxyService .down.> RedisDatabase: reads + + BouncerAdminService ..> BouncerConfigFolder: uses + BouncerProxyService ..> BouncerConfigFolder: uses + +@enduml \ No newline at end of file diff --git a/doc/resources/deployment_fr.png b/doc/resources/deployment_fr.png new file mode 100644 index 0000000000000000000000000000000000000000..7dfd64e1ad8a68c25a16b742ba0a81964c2e4cad GIT binary patch literal 35944 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∨%~eR?_tHP-Dxh<$v1Fj94aIO;Z{CaH-eTYERyx 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 literal 0 HcmV?d00001 diff --git a/internal/queue/schema/layer-options.json b/internal/queue/schema/layer-options.json index 5f20bf7..7cfd568 100644 --- a/internal/queue/schema/layer-options.json +++ b/internal/queue/schema/layer-options.json @@ -7,12 +7,6 @@ "type": "number", "minimum": 0 }, - "matchers": { - "type": "array", - "items": { - "type": "string" - } - }, "keepAlive": { "type": "string" }