Helpdesk auto-hébergé : le guide honnête, avec nos vrais chiffres
Notre première restauration de sauvegarde a échoué quatre fois. C'est exactement pour ça qu'il faut l'essayer avant d'en avoir besoin.
Les comparatifs d'auto-hébergement finissent tous sur la même conclusion — « vous économisez la licence » — et s'arrêtent avant la partie intéressante. Ce texte donne les chiffres de notre propre exploitation, y compris ceux qui plaident contre l'auto-hébergement.
Nous éditons un helpdesk sous licence AGPL-3.0 et nous en exploitons aussi une version hébergée. Nous avons donc les deux factures, et un intérêt dans les deux sens : c'est une raison de nous lire avec méfiance, et une raison pour laquelle les nombres sont vérifiables.
Ce qu'une machine tient réellement
Notre environnement de recette tourne sur une machine à deux vCPU et 4 Go de mémoire, chez un hébergeur européen, pour quelques euros par mois. Ce qu'elle porte simultanément :
| Composant | Rôle |
|---|---|
| PostgreSQL | Toutes les données, tous les espaces |
| Redis | Files de travaux : emails, SLA, automatisations, indexation |
| Application web | L'interface agent et le portail client |
| Deux processus de travail | Les files ci-dessus |
| Reverse proxy | TLS, certificats automatiques, sous-domaines par espace |
| Supervision | Prometheus, Grafana, Alertmanager et cinq exporteurs |
Neuf conteneurs applicatifs et huit de supervision, sur une machine que la plupart des gens jugeraient trop petite. La base de données de cet environnement — sept espaces, quatre cents tickets, des pièces jointes — pèse 5,6 Mo compressée.
Les sauvegardes : le seul endroit où il ne faut pas être optimiste
Une sauvegarde qu'on n'a jamais rechargée n'est pas une sauvegarde, c'est un fichier. Nous l'avons appris en essayant : notre première restauration a échoué quatre fois d'affilée, et aucune des quatre causes n'était trouvable en relisant le script.
- 1Version du client Postgres. Le client 16 refuse de restaurer un dump produit par un serveur 17. Le message est clair, la surprise est qu'on ne l'a pas vu venir.
- 2Paquet système absent. L'outil de synchronisation du fournisseur de stockage n'a plus de paquet pour la version d'Ubuntu utilisée. Il a fallu passer par un conteneur.
- 3Réseau du conteneur. En réseau hôte, le conteneur ne résout pas les noms de services de l'orchestrateur. La restauration ne trouvait pas la base.
- 4Droits manquants. Le rôle de restauration n'avait aucun droit sur le schéma de migrations, puis, une fois corrigé, aucun droit sur ses séquences. Deux échecs successifs pour la même famille de cause.
Et une cinquième, de notre fait, qui mérite d'être citée parce qu'elle est du même genre : la commande de vérification s'exécutait sans entrée standard, donc son script de contrôle était avalé en silence. Le rapport affichait une section vide — ce qui ressemble beaucoup à une sauvegarde vide.
Le contrôle que nous exécutons maintenant chaque trimestre télécharge la dernière sauvegarde, la recharge dans une base jetable, compte ce qu'elle contient, puis supprime la base. La ligne à lire dans sa sortie n'est pas « restauration réussie », c'est la liste des schémas présents : une restauration réussie sur un dump amputé réussit quand même.
Ce que l'auto-hébergement coûte vraiment
Le tableau ci-dessous n'a pas de colonne « licence », puisqu'elle est à zéro dans les deux cas — le produit est sous AGPL-3.0, hébergé ou non. Ce qui reste est ce qui compte.
| Poste | Auto-hébergé | Hébergé |
|---|---|---|
| Machine | Quelques euros par mois pour une petite équipe | Compris |
| Stockage des pièces jointes | Au gigaoctet, chez qui vous voulez | Compris |
| Sauvegardes | À vous de les écrire, et de les tester | Compris, testé trimestriellement |
| Certificats TLS | Automatique, une fois configuré | Compris |
| Mises à jour | À vous, y compris les correctifs de sécurité | Compris |
| Réception d'emails | Le poste le plus sous-estimé : DNS, DKIM, DMARC, réputation | Compris |
| Astreinte | Vous | Nous |
Les deux dernières lignes sont les vraies. Sur la réception d'emails, l'expérience que nous avons faite vaut d'être connue avant de commencer : chez le routeur que nous utilisons, l'entrée d'emails ne se déclenche que sur le domaine destinataire exact — il n'existe pas de joker. Une route doit donc être créée par espace, avec son domaine, ses enregistrements DNS explicites, son authentification et son webhook dédié. Ce détail invalide la moitié des tutoriels en ligne et il explique la panne la plus fréquente à la mise en service.
L'astreinte, chiffrée
C'est le poste qu'aucun guide ne chiffre, et il est chiffrable. Sur notre propre exploitation, en une semaine de travail sur la fiabilité, nous avons trouvé sept défauts. Cinq étaient des défauts de détection et non de protection : le système faisait ce que nous croyions, sauf là où personne ne regardait.
- Une règle d'automatisation qui a produit 32 094 notifications sur 7 tickets pendant sept jours.
- Un balayage horaire en échec depuis sa mise en service, dont l'erreur partait dans une file que personne ne lisait.
- Une pile de supervision qui servait, pendant quatre jours, une configuration que son fichier ne portait plus — un processus qui a chargé sa configuration n'a plus besoin du fichier, donc le disque et la mémoire divergent sans que rien ne les rapproche.
- Aucune politique de reprise sur les files : la moindre coupure pendant un déploiement laissait un travail en échec définitivement.
- Rien ne bornait les travaux terminés : Redis grossissait depuis la mise en service. Une file qui marche ressemble exactement à une file qui fuit.
Aucun de ces cinq défauts n'était difficile à corriger. Tous étaient difficiles à remarquer, et c'est précisément le travail que vous reprenez en auto-hébergeant. Ce n'est pas un argument contre : c'est le poste à mettre dans la colonne, en jours de quelqu'un, avec un nom dessus.
Quand l'auto-hébergement est le bon choix
Nous vendons de l'hébergement, donc voici les cas où nous vous conseillons de ne pas nous l'acheter :
- Une contrainte de souveraineté qui interdit le nuage, quelle qu'en soit la localisation. C'est le cas le plus net.
- Une équipe d'exploitation qui existe déjà. Si vous avez une astreinte, un système de supervision et des sauvegardes testées, le coût marginal d'un service de plus est faible.
- Un besoin de modification du produit. L'AGPL vous l'autorise, et c'est plus simple sur votre propre installation.
- Un volume de tickets faible et une tolérance à l'indisponibilité. Un helpdesk interne de dix personnes qui redémarre en dix minutes ne mérite pas un contrat.
Et les cas où il ne l'est pas : une équipe support sans personne pour l'astreinte, une exigence de disponibilité contractuelle envers vos clients, ou un besoin de réception d'emails sur domaines personnalisés multiples — le poste le plus pénible de la liste.
L'auto-hébergement ne supprime pas le coût, il le déplace de votre budget logiciel vers votre budget de temps. Le seul mauvais choix est de ne pas savoir de combien.
L'installation, les composes et les scripts de sauvegarde et de restauration sont publics — voir la page open source — et les tarifs de la version hébergée sont affichés, y compris ce qui est gratuit. Vous avez les deux colonnes, remplissez la troisième : la vôtre.
Nous ne publions pas d'article sans un chiffre mesuré chez nous, du code qu'on peut aller lire, ou une limite avouée. C'est la seule façon d'écrire sur ce métier sans répéter ce que tout le monde écrit déjà.