GuidesDevOps et hébergement
Héberger un site ou une app sur un VPS : la méthode DevOps
Ce qu’un VPS apporte, et ce qu’il demande
Un VPS est un serveur virtuel loué au mois. On y installe ce qu’on veut : un site, une API, une base de données, des tâches planifiées. Le prix ne bouge pas avec le trafic.
En échange, personne ne s’en occupe à votre place. Les mises à jour, la sécurité et les sauvegardes sont pour vous.
Votons tourne ainsi : un site, une API et des tâches d’ingestion automatiques sur un VPS OVH.
Sécuriser avant d’installer quoi que ce soit
Un serveur neuf est scanné par des robots dans l’heure qui suit sa mise en ligne. Les premiers gestes :
- Connexion SSH par clé uniquement. Mot de passe désactivé, connexion directe en root désactivée.
- Un pare-feu qui n’ouvre que les ports utiles : SSH, 80 et 443.
- Les mises à jour de sécurité automatiques du système.
- Un utilisateur par service, sans droits d’administration.
- La base de données fermée à l’extérieur. Elle n’écoute que sur la machine.
Le serveur web : Caddy
Caddy sert les fichiers, fait suivre les requêtes vers les applications et gère HTTPS tout seul. Il obtient et renouvelle les certificats sans intervention. Sa configuration tient en quelques lignes par site.
Deux usages :
- Site statique. Caddy sert un dossier de fichiers. C’est le cas le plus simple, le plus rapide et le plus sûr.
- Application. Caddy reçoit les requêtes et les transmet à l’application qui tourne sur un port local.
On y ajoute la compression, des en-têtes de cache longs pour les fichiers dont le nom change à chaque version, et les en-têtes de sécurité.
Déployer sans y penser
Un déploiement manuel finit toujours par un oubli. On écrit un script, une fois.
Pour un site statique :
- 1ConstruireLe site est construit.
- 2CopierLes fichiers vont dans un nouveau dossier sur le serveur.
- 3BasculerLe site pointe sur ce dossier.
- 4Garder l’ancienPour revenir en arrière en une commande.
< 1 minUn retour en arrière doit prendre moins d’une minute, et avoir déjà été essayé.
Pour une application, le principe est le même avec des images Docker : on construit, on pousse, on démarre la nouvelle version, on vérifie qu’elle répond, puis on arrête l’ancienne.
La règle : un retour en arrière doit prendre moins d’une minute, et avoir déjà été essayé.
Sauvegarder, et tester la restauration
Une sauvegarde qu’on n’a jamais restaurée est un espoir. Le minimum :
- une copie quotidienne de la base, chiffrée, envoyée hors du serveur ;
- plusieurs jours et plusieurs semaines d’historique ;
- les fichiers déposés par les utilisateurs, sauvegardés aussi ;
- une restauration complète jouée sur une autre machine, à intervalle régulier.
Surveiller
On veut apprendre une panne avant ses utilisateurs.
- Une sonde externe qui appelle le site chaque minute et alerte en cas d’échec.
- Des alertes sur le disque, la mémoire et la date d’expiration des certificats.
- Les journaux des applications gardés et consultables.
- Le suivi des erreurs applicatives, avec leur contexte.
Changer de serveur sans coupure
Un domaine se déplace d’un serveur à l’autre par son DNS. Pour que la bascule soit invisible :
- 1J-1Baisser le TTLLa durée de vie des enregistrements DNS.
- 2AvantTout testerLe site complet, sur le nouveau serveur, à une adresse provisoire.
- 3Jour JChanger le DNSL’enregistrement pointe sur le nouveau serveur.
- 4Quelques joursGarder l’ancienAllumé, le temps que tous les visiteurs suivent.
- 5EnsuiteRemonter le TTLLa durée de vie revient à la normale.
Quand le VPS ne suffit plus
Un VPS seul tient longtemps. On passe à autre chose quand il faut une disponibilité garantie pendant les pannes matérielles, ou quand la charge varie fortement d’une heure à l’autre. Avant cela, on peut grossir la machine, sortir la base sur un service géré, ou placer un CDN devant le site.
Questions fréquentes
- VPS ou plateforme gérée ?
- Une plateforme gérée fait gagner du temps au début et facture à l’usage. Un VPS coûte un prix fixe et donne la main sur tout, en échange de l’administration du serveur. Le choix dépend surtout de qui s’occupera de la machine.
- Faut-il Docker sur un VPS ?
- Pas pour un site statique. Pour une application avec une base de données, Docker garantit que la production tourne exactement comme l’environnement de développement, et facilite les retours en arrière.
- Comment obtenir HTTPS sur un VPS ?
- Avec un serveur web comme Caddy, qui demande et renouvelle seul les certificats Let’s Encrypt. Il suffit que le domaine pointe sur le serveur et que les ports 80 et 443 soient ouverts.
