Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
linux:infrastructure [21/02/2024 20:02] – créée Codimplinux:infrastructure [07/09/2024 13:41] (Version actuelle) – modification externe 127.0.0.1
Ligne 13: Ligne 13:
 - Au singulier : par convention car sinon vous allez vous emmeler - Au singulier : par convention car sinon vous allez vous emmeler
   - Exemple : j'ai déjà eu des infra avec des serveurs nommés `database1`, `databases02`, etc. Un enfer.   - Exemple : j'ai déjà eu des infra avec des serveurs nommés `database1`, `databases02`, etc. Un enfer.
-- Jamais avec le nom d'une technologie dedans mais plutôt un rôle : le jour où vous en changerai ça sera pas pratique sinon+- Jamais avec le nom d'une technologie dedans mais plutôt un rôle : le jour où vous en changerai de technologie ça ne sera pas pratique sinon
   - Exemple : nommer un serveur `cache1` plutôt que `varnish1`   - Exemple : nommer un serveur `cache1` plutôt que `varnish1`
 - Ne jamais mettre de zero supplémentaires : vous ignorer ce que sera le futur - Ne jamais mettre de zero supplémentaires : vous ignorer ce que sera le futur
Ligne 43: Ligne 43:
   - Bien sur cela ne s'applique pas à l'apex de la zone   - Bien sur cela ne s'applique pas à l'apex de la zone
 - Pour faire communiquer vos serveurs entre eux, utilisez les noms de domaines plutôt que les IP - Pour faire communiquer vos serveurs entre eux, utilisez les noms de domaines plutôt que les IP
-  - Vous serez content le jour de la grosse migration (celle qui arrive environ tous les 5 ans et dont vous ne savez encore rien)+  - Vous serez content·e le jour de la grosse migration (celle qui arrive environ tous les 5 ans et dont vous ne savez encore rien)
  
 Cela vous permettra de ne pas avoir plusieurs fois les mêmes infos (adresses IP, etc) dans votre zone DNS et donc d'éviter les erreurs lors de changements, migrations, etc. Cela vous permettra de ne pas avoir plusieurs fois les mêmes infos (adresses IP, etc) dans votre zone DNS et donc d'éviter les erreurs lors de changements, migrations, etc.
 +
 +## Sauvegardes
 +
 +- Faites des backup
 +- Automatisez vos configurations de backup
 +- Monitorez vos backup
 +- Testez vos backup
 +
 +Faites-le maintenant !
 +
 +Non, pas dans 6 mois, pas quand ça sera « la priorité », pas « quand tout sera bien en place », pas « après la release », pas « après tel truc important », … Maintenant !
 +
 +Pensez aussi à backup ce que vous envoyez à des services tiers, par exemple votre zone DNS si vous ne l'hébergez pas vous-même (avoir un fichier de zone à plat dans un git que vous modifiez quand vous modifiez la zone chez votre fournisseur), ça vous sera utile en cas de panne ou de perte de données (oui même les professionnelles du secteur peuvent perdre des données).
 +
 +À titre personnel sur mes infra j'ai tendance à utiliser [[https://www.borgbackup.org/|Borg]] avec [[https://torsion.org/borgmatic/|Borgmatic]] déployés avec [[https://git.home.lithio.fr/doctor/ansible/src/branch/master/roles/borgmatic|un rôle Ansible]].
 +
 +## Monitoring
 +
 +Mettez en place de la surveillance et des alertes.
 +
 +Mettez-la en place tôt (juste après les [[#sauvegardes|sauvegardes]] logiquement), pour surveiller tout ce qui est important.
 +
 +Faites-le aussi au fur et à mesure. N'attendez pas la fin du projet, la release ou que sais-je. Ne vous attendez pas non plus à avoir un case `Monitoring` à cocher dans votre liste : le monitoring se met en place en continu au fur et à mesure que vous ajouter/modifier votre infra.
 +
 +Ayez le réflexe à chaque fois que vous ajouter quelque chose dans votre infra de l'ajouter aussi à votre monitoring en même temps, pas après car sinon vous ne le ferait jamais. Chaque ajout de composant à votre infra doit comporter une case « Ajouter le monitoring ».
 +
 +Pour une petite infra de quelques serveurs j'ai tendance à bien aimer [[https://munin-monitoring.org/|Munin]], déployé avec 3 rôles Ansible : [[https://git.home.lithio.fr/doctor/ansible/src/branch/master/roles/munin-server|un serveur]], [[https://git.home.lithio.fr/doctor/ansible/src/branch/master/roles/munin-node|un nœud]] et [[https://git.home.lithio.fr/doctor/ansible/src/branch/master/roles/munin-fastcgi|un fastcgi]].
 +
 +## Automatisation
 +
 +Automatisez votre infra tant qu'il est encore temps !
 +
 +Par la suite à chaque ajout d'un composant vous pourrez l'automatiser (d'ailleurs vous devriez déployer sur votre infra que via l'outil d'automatisation). Pensez à bien documenter votre automatisation et à vous y retrouver.
 +
 +J'ai tendance à aimer [[https://docs.ansible.com/ansible/latest/|Ansible]] mais il en existe d'autres.
 +
 +## Documentation
 +
 +Documentez votre infra.
 +
 +Que ça soit avec des fichiers textes, un wiki, sur git, etc. Documentez votre infra pour savoir où vous en êtes. Aussi pour aider d'éventuelles personnes qui pourraient vous rejoindre.
 +
 +Vous pouvez avoir un index des serveurs avec leurs infos techniques, leur emplacement géographique, etc.
 +
 +Vous pouvez aussi documenter la vie de votre infra :
 +
 +- Décommissionnement de serveurs
 +- Incidents
 +- Maintenances
 +- Post-mortem avec des détails
 +- Base de connaissances
 +
 +Faites des schemas si besoin.