Commit 931cc576 authored by Angedestenebres's avatar Angedestenebres 🐈

Merge branch 'dev' into 'master'

Dev

See merge request !49
parents 5d6ccd69 caa57ec4
Pipeline #3876 passed with stages
in 50 seconds
......@@ -4,11 +4,7 @@ title: Docker
# Gestion des conteneurs
L'ensemble des données spécifiques aux applications, donc l'ensemble des données des conteneurs est stocké dans `/srv` sur une partition chiffrée.
## Orchestration
L'organisation des conteneurs repose sur les concepts de Compose. Les conteneurs sont organisés par application, le moins de mutualisation possible es# Gestion des conteneurs
L'organisation des conteneurs repose sur les concepts de Compose. Les conteneurs sont organisés par application, le moins de mutualisation possible est effectuée. Par exemple, chaque application dispose de son serveur de bases de données, de son serveur Redis si besoin, etc.
L'ensemble des données spécifiques aux applications, donc l'ensemble des données des conteneurs est stocké dans `/srv` sur une partition chiffrée.
......@@ -21,10 +17,6 @@ Le `/srv` lui-même est découpé en fonction des usages :
- `/srv/apps` : projets compose des applications
- `/srv/users` : projets compose des services hébergés pour les utilisateurs
## Orchestration
L'organisation des conteneurs repose sur les concepts de Compose. Les conteneurs sont organisés par application, le moins de mutualisation possible est effectuée. Par exemple, chaque application dispose de son serveur de bases de données, de son serveur Redis si besoin, etc.
La configuration et les données de chaque application est stockée dans un dossier dédié dans `/srv/apps` ou `/srv/users`. Par exemple, `/srv/apps/mastodon`, `/srv/apps/mumble`. Ce dossier abrite ensuite idéalement un fichier compose `docker-compose.yml`, un dossier pour les éventuels fichiers de configuration `./conf` et un dossier de données, `./data`. Les applications plus complexes disposent d'une arborescence adaptée.
Le fichier `docker-compose.yml` ne doit pas contenir de données spécifiques à TeDomum et doit être publiable. Les données spécifiques sont importées par variables depuis un fichier `.env` situé dans le dossier de l'application.
......
......@@ -16,9 +16,9 @@ Tous les services doivent être respectueux de la vie privée. Les logiciels emp
La confidentialité des données est essentielle. Toutes les données échangées, entre les clients et serveurs, entre les serveurs, et vers d'autres infrastructures (fédérations, sauvegarde, etc.) doivent être chiffrées en transport, ainsi que les interlocuteurs authentifiés.
Aucune garantie forte d'intégrité n'est requise en dehors des bonnes pratiques raisonnables. Concernant les services proposant d'éventuels outils de trésorerie ou comptabilité, l'intégrité doit être garantie au sens de la loi Finance. A ce titre, des sauvegardes plus régulières sont effectuées, avec une historisation des sauvegardes, pour assurer la confirmation au besoin d'un défaut d'intégrité ; aucune détection automatique n'est en place.
Aucune garantie forte d'intégrité n'est requise en dehors des bonnes pratiques raisonnables. Concernant les services proposant d'éventuels outils de trésorerie ou comptabilité, l'intégrité doit être garantie au sens de la loi Finance. À ce titre, des sauvegardes plus régulières sont effectuées, avec une historisation des sauvegardes, pour assurer la confirmation au besoin d'un défaut d'intégrité ; aucune détection automatique n'est en place.
La disponibilité des données est une contrainte modérée. Aucune haute disponibilité au sens de la continuité d'activité n'est requise. La perte de données sur plus de 4h est toutefois inacceptable et doit être traitée par un plan de sauvegarde. La reprise d'activité doit pouvoir être effectuée en assurant du 99.9 (jusqu'à une journée d'indisponibilité) en cas de perte d'un hôte ou de défaillance d'un service et en assurant du 99. (jusqu'à trois jours d'indisponibilité) en cas d'incident majeur.
La disponibilité des données est une contrainte modérée. Aucune haute disponibilité au sens de la continuité d'activité n'est requise. La perte de données sur plus de 4 h est toutefois inacceptable et doit être traitée par un plan de sauvegarde. La reprise d'activité doit pouvoir être effectuée en assurant du 99.9 (jusqu'à une journée d'indisponibilité) en cas de perte d'un hôte ou de défaillance d'un service et en assurant du 99. (jusqu'à trois jours d'indisponibilité) en cas d'incident majeur.
# Généralités
......@@ -47,5 +47,5 @@ Le routage est laissé au soin du fournisseur, même entre les hôtes. Les hôte
## Stockage
L'ensemble du stockage est local aux serveurs. Les données autres que les paquets système de l'hôte sont stockées dans une partition chiffrées par LUKS et déchiffrée manuellement au démarrage de l'hôte.
L'ensemble du stockage est local aux serveurs. Les données autres que les paquets système de l'hôte sont stockées dans une partition chiffrée par LUKS et déchiffrée manuellement au démarrage de l'hôte.
......@@ -22,13 +22,13 @@ Trois domaines principaux sont exploités par l'infrastructure :
- une paire d'enregistrements `A` et `AAAA` par adresse exposant des services ;
- des enregistrements NS avec GLUE pour le bootstraping DNS.
`tedomum.net` contient un enregistrement `CNAME` par service, pointant vers l'enregistrment `tedomum.in` correspondant. Pour les services ne supportant pas l'emploi de `CNAME` (MX, Matrix, Jabber, etc.) les enregistrements `A` et `AAAA` sont répliqués dans `tedomum.net`.
`tedomum.net` contient un enregistrement `CNAME` par service, pointant vers l'enregistrement `tedomum.in` correspondant. Pour les services ne supportant pas l'emploi de `CNAME` (MX, Matrix, Jabber, etc.) les enregistrements `A` et `AAAA` sont répliqués dans `tedomum.net`.
`tedomum.org` contient les enregistrements accessoires, tels que les reverse DNS de bouncers IRC, les noms de services non publics, etc.
# Exposition des services
L'exposition des services a fait l'objet de nombreuses expérimentations. L'exposition de ports utilisant le proxy userland de Docker est exclue car les conteneurs ne disposent plus de l'adresse source de la connexion ; l'apport pour la privée est intéressant mais plusieurs conteneurs font usage de cette adresse, notamment l'antispam à la réception des mails.
L'exposition des services a fait l'objet de nombreuses expérimentations. L'exposition de ports utilisant le proxy userland de Docker est exclue car les conteneurs ne disposent plus de l'adresse source de la connexion ; l'apport pour la vie privée est intéressant mais plusieurs conteneurs font usage de cette adresse, notamment l'antispam à la réception des mails.
L'exposition grâce aux règles `iptables` configurées par Docker n'est pas satisfaisante car ne couvrant pas IPv6. La doctrine classique consiste à assigner des adresses fixes IPv6 par conteneur, l'approche nécessiterait toutefois une maintenance alourdie, en termes d'assignation d'adresses, de DNS, etc.
......
......@@ -6,17 +6,17 @@ title: Sauvegardes
Les données sont catégorisées comme suit :
- génériques, il s'agit de notre configuration partagée sur Gitlab, elle est versionnée et copiée sur nos postes, ainsi que conservée dans l'archive Gitlab ;
- spécifiques, il s'agit des configurations spécifiques éditées directement sur les serveurs, elles sont sauvegardées en incrémental ;
- applicatives, il s'agit des données fichiers générées par les applications, elles sont sauvegardées en incrémental ;
- bases de données, il s'agit des données stockée en MySQL, PGSQL, etc. elles sont sauvegardées en continu et incrémental.
- génériques, il s'agit de notre configuration partagée sur Gitlab. Elle est versionnée et copiée sur nos postes, ainsi que conservée dans l'archive Gitlab ;
- spécifiques, il s'agit des configurations spécifiques éditées directement sur les serveurs. Elles sont sauvegardées en incrémental ;
- applicatives, il s'agit des données fichiers générées par les applications. Elles sont sauvegardées en incrémental ;
- bases de données, il s'agit des données stockées en MySQL, PGSQL, etc. Elles sont sauvegardées en continu et incrémental.
Les sauvegardes incrémentales reposent sur une synchronisation régulière et un élagage de l'historique, les règles sont les suivantes :
Les sauvegardes incrémentales reposent sur une synchronisation régulière et un élagage de l'historique. Les règles sont les suivantes :
- 1 backup / 6h (soit 4 backups par jour)
- 5 quotidiens / semaines, au delà backups quotidiens élagués
- 4 hebdomadaires / mois, au delà backups hebdomadaires élagués
- 3 mensuels, au delà les backups mensuels sont élagués
- 1 backup / 6 h (soit 4 backups par jour)
- 5 quotidiens / semaines, au-delà backups quotidiens élagués
- 4 hebdomadaires / mois, au-delà backups hebdomadaires élagués
- 3 mensuels, au-delà les backups mensuels sont élagués
Il est donc possible de restorer jusqu'à J-3 mois, avec une granularité journalière dans la semaine, hebdomadaire dans le mois, puis mensuelle.
......
......@@ -11,18 +11,18 @@ de la documentation concernant Hepto à l'adresse : https://acides.org/docs/hept
En tant que CHATONS, nous avons adopté une convention de nommage féline.
# Les noeuds du cluster
# Les nœuds du cluster
Kity est constitué des noeuds suivants :
Kity est constitué des nœuds suivants :
- `mainecoon`, hébergé par kaiyou sur une connexion fibre Free ;
- `angora`, hébergé temporairement chez Kimsufi en attendant plus de noeuds auto hébergés.
- `angora`, hébergé temporairement chez Kimsufi en attendant plus de nœuds auto hébergés.
Les futurs noeuds prévus sur le cluster (à confirmer pour chaque piste) :
Les futurs nœuds prévus sur le cluster (à confirmer pour chaque piste) :
- mis à disposition par Orlinum (premier trimestre 2021)
- mis à disposition par le biais de Jacques (horizon été 2021)
- mis à disposition par Orlinum (premier trimestre 2021) ;
- mis à disposition par le biais de Jacques (horizon été 2021) ;
- mis à disposition par Jae sur une connexion fibre Free (horizon à déterminer) ;
- hébergé par dimensiOn (horizon à déterminer) ;
- mis à disposition par kaiyou dédié au stockage (horizon à déterminer) ;
- hébergé chez Tetaneutral au besoin.
\ No newline at end of file
- hébergé chez Tetaneutral au besoin.
......@@ -17,4 +17,4 @@ Vous pouvez nous contacter à tout moment. Pour cela, plusieurs solutions existe
# Membres de l'équipe
Les membres de l'équipe sont tous bénévoles. Sont considérés comme membres tous les contributeurs significatifs à l'association qui demandé à être intégrés et ont été acceptés par le bureau. Sont présentés à suivre tous les administrateurs (nous devons être transparents quant à ceux qui peuvent accéder aux serveurs et aux données) et les membres qui ont souhaité être listés.
Les membres de l'équipe sont tous bénévoles. Sont considérés comme membres tous les contributeurs significatifs à l'association qui ont demandé à être intégrés et ont été acceptés par le bureau. Sont présentés à suivre tous les administrateurs (nous devons être transparents quant à ceux qui peuvent accéder aux serveurs et aux données) et les membres qui ont souhaité être listés.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment