7 points par GN⁺ 2023-07-17 | 1 commentaires | Partager sur WhatsApp
  • Explication de la configuration de l’auteur pour l’exploitation des serveurs et de l’infrastructure Internet
  • Préférence pour l’exécution de logiciels serveur sur des machines virtuelles ou des serveurs physiques plutôt que sur des solutions cloud
  • L’auteur utilise une VM (machine virtuelle) DigitalOcean pour ses services, sous Debian 10
  • Les logiciels serveur sont écrits en Rust et compilés en un seul binaire
  • Utilisation de systemd pour démarrer le binaire au lancement du serveur
  • Les programmes nécessitant une base de données utilisent SQLite avec des solutions de sauvegarde redondantes
  • Tous les serveurs fonctionnent derrière nginx pour la terminaison TLS et la distribution de fichiers statiques
  • La configuration est simple, robuste et nécessite un minimum de maintenance
  • L’isolation via des comptes utilisateur Unix permet d’exécuter plusieurs services sur la même VM
  • La mise en place d’un nouveau projet consiste à créer un nouvel utilisateur, ajouter un hôte virtuel nginx, ajouter une unité systemd et exécuter un script de déploiement
  • Les changements d’infrastructure se font lentement, ce qui apporte stabilité et prévisibilité
  • L’auteur remercie Julia Evans de l’avoir encouragé à écrire cet article

1 commentaires

 
GN⁺ 2023-07-17
Discussion Hacker News
  • Les fonctions cloud déclenchées par HTTP sont un choix populaire pour simplifier l’administration des serveurs et réduire la complexité.
  • Exécuter chaque service avec un compte utilisateur Unix dédié apporte isolation et sécurité.
  • Utiliser la fonctionnalité DynamicUser de systemd permet de simplifier le processus de configuration et de gagner du temps.
  • De nombreux développeurs utilisent des VM Linode et Debian GNU/Linux pour leurs sites web personnels et ceux de leurs projets.
  • Common Lisp est un choix de langage populaire pour écrire des logiciels dans ce type de configuration.
  • Nginx est couramment utilisé comme reverse proxy et pour servir des fichiers statiques.
  • Les conteneurs Docker et docker-compose sont des options alternatives pour exécuter des services.
  • Le basculement et la disponibilité sont des considérations importantes en environnement de production.
  • Des mesures de sécurité comme les sauvegardes, les règles de pare-feu et l’authentification SSH par clé sont généralement mises en place.
  • Les scripts de déploiement et le contrôle de version sont utiles pour gérer les mises à jour et les retours en arrière des applications.
  • Les variables d’environnement, les limites d’ouverture de fichiers et la configuration de la journalisation sont des points importants dans la configuration des services.
  • PostgreSQL, NGINX, Redis et Node.js sont des composants logiciels couramment utilisés.
  • Dokku est un outil populaire pour gérer les déploiements et ajouter des plugins.
  • Certains développeurs préfèrent des configurations plus simples utilisant un serveur unique et des comptes utilisateurs Linux standard.
  • La complexité pouvant entraîner instabilité et temps d’arrêt, la simplicité est souvent privilégiée à moins qu’une complexité particulière ne soit réellement nécessaire.