Auto-hébergement : la route n'est pas si longue
J'ai commencé à auto-héberger quelques services il y a quelques années et c'est une aventure bien amusante. Maintenant que je travaille en tant que devops/sysadmin, je vais expliquer dans cet article ce qu'est l'auto-hébergement, ses avantages, ses inconvénients et comment faire pour améliorer l'état de l'art.
Qu'est-ce que l'auto-hébergement ?
Le véritable sens est d'héberger des services tels que ses emails, son site web, ou un agrégateur de flux RSS sur un ordinateur se trouvant chez soi. J'encourage plutôt à gérer ses propres services hébergés sur un serveur d'un hébergeur professionnel. Ça pourrait s'appeler de l'autogestion (je fais appel aux personnes de la communauté pour trouver un terme correct, vu que l'auto-hébergement chez un prestataire, ce n'est plus littéralement de l'auto-hébergement). En effet, s'auto-héberger chez un hébergeur est déjà un exercice difficile, mais pour l'auto-hébergement chez soi il y a encore plus de contraintes qui s'ajoutent.
Catégories de services en cloud computing
Je vais d'abord commencer par un rappel des services proposés par des prestataires. Il existe trois principaux niveaux :
- SaaS (Software as a Service) : Le logiciel vous est fourni et est tout de suite fonctionnel. Par exemple wordpress.com permet de créer et gérer son blog sans jamais s'occuper de l'installation du logiciel.
- PaaS (Platform as a Service) : Une plateforme préinstallée vous est fournie. Par exemple, ça pourrait être le Simple Hosting de Gandi, c'est-à-dire un serveur mutualisé sur lequel les logiciels comme PHP et MySQL sont déjà installés. Vous devez téléverser les fichiers Wordpress sur le serveur pour installer le blog, puis vous pourrez créer et gérer votre blog.
- IaaS (Infrastracture as a Service) : Seul un accès à une machine vous est fourni. Vous devez vous-même installer les logiciels, par exemple PHP et MySQL, puis téléverser Wordpress pour l'installer, puis vous pourrez créer et gérer votre blog.
Chaque niveau de service a ses avantages et inconvénients. Plus on monte en niveau (le plus haut niveau étant le SaaS), plus c'est facile à utiliser, mais c'est souvent plus cher et on a moins de contrôle sur son fonctionnement. Plus on descend en niveau (le plus bas niveau étant le IaaS), plus on maîtrise le fonctionnement de service et c'est souvent moins cher, mais c'est souvent chronophage et plus difficile à gérer.
On peut donc commencer à parler d'auto-hébergement à partir du niveau PaaS et en-dessous car on peut choisir quel logiciel installer. Si on a le contrôle sur ce logiciel, on peut dire que l'on maîtrise son fonctionnement et que l'on a donc sa responsabilité. Même si c'est plus compliqué en détails.
Différences entre l'auto-hébergement chez soi et chez un hébergeur
Comme je vous ai listé les niveaux de services cloud ci-dessus, on pourrait dire qu'héberger chez soi ses propres services est un niveau encore en dessous du IaaS, si on peut se permettre la comparaison même si ce n'est plus du cloud, puisqu'il faut en plus gérer le matériel.
L'avantage de l'auto-hébergement chez soi, c'est d'avoir le contrôle sur absolument tout le fonctionnement des services alors que dans le cas de l'auto-hébergement chez un prestataire, on délègue la gestion du matériel et/ou du logiciel (selon si on choisit un IaaS ou un PaaS) à un prestataire pour nous faciliter la gestion du serveur.
Je résume en reprenant l'exemple de Wordpress :
- Si vous choisissez un PaaS, vous n'êtes en charge que de la mise à jour de Wordpress.
- Si vous choisissez un IaaS, vous êtes en charge de la mise à jour de Wordpress mais aussi PHP, MySQL, Apache et le système d'exploitation. Bref, vous devez gérer tous les logiciels du serveur.
- Si vous choisissez d'héberger chez vous, vous avez les mêmes responsabilités que pour le IaaS, mais en plus vous devrez gérer la connexion Internet et l'électricité de votre machine (et il y a encore plus de contraintes dans les faits, notamment si on veut gérer les emails).
Les inconvénients de l'auto-hébergement
Je vais continuer tout de suite sur les inconvénients de l'auto-hébergement, ça me permettra de terminer mon article plus positivement avec les avantages et les solutions possibles. Je vais tout d'abord lister les problèmes qui se posent dans tous les cas en auto-hébergement, puis je vais lister les problèmes qui s'ajoutent lorsqu'on s'auto-héberge chez soi :
- Responsabilité de la sécurité : il y a ici plusieurs dimensions à prendre en compte que je vais donc détailler :
- Sécurisation de vos données : Vous devez gérer la conservation de vos données, vous devez donc faire attention à faire des sauvegardes régulières sous peine de les voir disparaître en cas d'un incident.
- Protection de vos données : Vous devez protéger votre propre vie privée. Même si vous faites attention de ne pas diffuser vos données personnelles sur les réseaux sociaux, si vous n'avez pas pris les mesures nécessaires pour protéger vos données, il existe un risque que des personnes puissent accéder à vos informations personnelles sans votre consentement.
- Sécurisation de votre serveur : Vous devez protéger le fonctionnement de votre serveur. Il est possible qu'un pirate prenne possession de votre machine et l'utilise à des fins malveillantes, dans ce cas, en tant que propriétaires, vous êtes responsables de toutes les actions ou contenus illégaux qui pourraient transiter par votre serveur.
Auto-hébergement chez soi
Si vous souhaitez en plus héberger les services sur votre propre serveur chez vous, vous avez encore ces trois principales contraintes à prendre en compte :
- Gestion en cas d'une panne de courant : vous devrez installer un onduleur afin d'éviter de corrompre les données de votre serveur par une extinction brusque et pour assurer la continuité du service. Mais ce n'est pas sûr que votre connexion Internet puisse toujours fonctionner sans courant, cela dépend de votre installation. (Un des articles de Genma illustre bien cette contrainte)
- En cas de panne sur le serveur : vous devrez gérer les pannes matérielles de votre serveur. Par exemple, si un disque dur est un trop vieux, il risque de s'arrêter de fonctionner et rendre inaccessible vos données. Encore ici, il existe des solutions à mettre en place comme des disques durs en RAID afin de limiter les risques.
- Vitesse de connexion : si vous avez la chance de bénéficier d'une connexion fibrée, il n'y a pas de problèmes, mais sinon, vous risquez d'être limités dans les services à héberger. Avec une faible bande passante, vous ne permettrez pas l'accès à des medias lourds depuis Internet.
Les avantages de l'auto-hébergement
Après avoir listé toutes ces contraintes, il y a tout de même des avantages à l'auto-hébergement, sinon on en entendrait pas parler.
- Contrôle sur les données personnelles : Il s'agit de la principale raison qui est mise en avant lorsqu'on parle d'auto-hébergement. En effet, comme on est censé maîtriser le fonctionnement de nos services, on sait que nos données personnelles ne sont pas revendues pour de la publicité.
- Réduction des coûts : Vous pouvez mutualiser plusieurs services sur un même serveur et les coûts d'un IaaS ou de son propre ordinateur est souvent moins cher qu'un service proposé en SaaS.
- Maîtrise du service : Votre service restera fonctionnel aussi longtemps que vous vous en donnerez les moyens. Si vous dépendiez à la place d'un prestataire, celui-ci pourrait choisir d'arrêter ses services même si sa procédure d'arrêt peut-être "douce" comme pour Google Reader. Dans le cas de Google Reader, celui-ci a en effet laissé le temps de migrer chez un autre prestataire mais ce n'est pas toujours le cas.
- Personnalisation avancée des services : Comme vous avez la maîtrise du service, vous pouvez configurer pour qu'il ait un comportement particulier adapté à vos habitudes et envies. De plus, si vous avez plusieurs services, vous pouvez les interconnecter entre eux pour automatiser des actions. Cependant dans les faits, il faut avoir un niveau suffisamment avancé pour se permettre de véritablement personnaliser ses services, et même les utilisateurs de services en SaaS peuvent bénéficier d'automatisation avec des services comme Zapier et IFTTT.
- Apprentissage de l'informatique : C'est un avantage qui est souvent mis en avant par ceux qui parlent d'auto-hébergement, mais finalement, je ne sais pas s'il existe véritablement des gens qui apprennent l'informatique de cette manière. Si quelqu'un a envie de m'expliquer cet aspect de l'auto-hébergement, je suis tout ouïe.
Comment réduire les inconvénients
Comme je vous ai déjà fait déprimer avec tous les inconvénients, je vais maintenant vous proposer des solutions pour réduire ces inconvénients.
- Gérer ses services avec un outil d'automatisation comme Chef ou Ansible : Pour ceux qui sont un peu à l'aise techniquement, c'est le meilleur moyen de maîtriser son infrastructure. Avec ces outils, vous pouvez écrire une fois dans un fichier ce que vous souhaitez voir installé sur un serveur, et lancer l'installation autant de fois et sur autant de serveurs que vous souhaitez. Ce sont des outils utilisés par les professionnels, c'est-à-dire les administrateurs système et devops, donc ils sont fiables et surtout très maintenus par les communautés comme ils sont pour la plupart Open Source.
- Utiliser un logiciel comme Yunohost qui facilite l'installation de services : Pour ceux qui sont moins à l'aise techniquement, Yunohost est un logiciel qui permet d'avoir rapidement et facilement un système unifié pour une grande liste d'applications Open Source. Il vous permet de vous créer un "cloud personnel". Vous pourrez bénéficier de la communauté du logiciel pour réduire les risques de manipulation et autres problèmes.
- Utiliser Cozy Cloud : Pour ceux qui sont moins à l'aise techniquement, Cozy Cloud peut ressembler à Yunohost, à la différence que beaucoup d'applications proposées par Cozy Cloud sont développées par cette même start-up. De plus, Cozy Cloud a une vision précise qui est de faire un silo de données pour que ses utilisateurs puissent récupérer leurs données personnelles et les réutiliser à leur propre escient.
Le souci aujourd'hui avec l'auto-hébergement
L'auto-hébergement est souvent recommandé dans les milieux du logiciel libre et de l'Open Source pour notamment reprendre le contrôle sur ses données personnelles. Cependant, c'est facile à dire mais difficile à faire car il faut soit avoir la forte conviction que le contrôle sur ses données personnelles est important, mais cette conviction n'est partagée que par une minorité, soit il faut avoir une base technique minimum permettant d'au moins comprendre les documentations des services à mettre en place.
L'auto-hébergement est actuellement toujours réservé aux initiés mais il est aussi compliqué à maintenir quotidiennement. En effet, on omet souvent le coût de la maintenance. C'est-à-dire que quelles que soient les compétences de chacun, maintenir des services en fonctionnement demande du temps, et selon les priorités de chacun, ce temps peut ne pas être disponible.
J'ai cherché dans cet article à faire une présentation objective, terre-à-terre, à destination des néophytes d'une part et d'autre part rappeler les technophiles que l'auto-hébergement est sur la bonne voie, mais ce n'est toujours pas ça. Avec des initiatives comme Cozy Cloud et Yunohost, il est en effet beaucoup plus facile de s'autohéberger, mais ça reste accessible seulement à ceux qui n'ont pas peur de la ligne de commande. Donc il ne faut pas s'arrêter dans la démocratisation des outils.
Il y a notamment deux points pour lesquels il n'y a pas encore de bonnes solutions : les sauvegardes de données et la sécurité du serveur. Le risque en encourageant des amateurs à s'auto-héberger sans un minimum de formation c'est qu'ils peuvent voir un jour leurs données disparaître ou retrouver leurs systèmes informatiques compromis par une personne malveillante. On pourrait me rétorquer que ces problèmes de sauvegardes et de sécurité ne concerne pas seulement ceux qui s'auto-hébergent mais tout le monde avec son ordinateur personnel, mais en toute objectivité, les services comme Gmail, Dropbox et autres sont plutôt très bons pour assurer sur ces deux points et ainsi soulager les utilisateurs de ce fardeau.
Conclusion
Tout d'abord pour rendre l'auto-hébergement plus accessible, nous pouvons encourager l'existant, c'est-à-dire des initiatives comme Indie Web, Yunohost, Cozy Cloud et "Dégooglisons Internet" si ce n'est pas encore fait. Ensuite, nous avons aujourd'hui de formidables possibilités pour nous faciliter la vie (comme Docker et Ansible) et il faudrait que l'on élève encore nos compétences dans la mise en place et la gestion de services afin de :
- Proposer une qualité de service comparable à des grandes entreprises au niveau associatif
- Faciliter et augmenter la qualité de service de l'auto-hébergement pour les plus motivés
De cette manière, les non-initiés auront un plus large choix que seulement les GAFAM (Google Apple Facebook Amazon Microsoft) pour profiter de services Internet et héberger leurs données, et pour les technophiles ce sera moins consommateur de temps et moins de prises de tête pour s'auto-héberger.
Voici mon conseil à ceux qui souhaitent avoir leurs propres services : Regroupez-vous avec des amis ou payez une association (comme un CHATONS) en laquelle vous faites confiance pour vous fournir vos services car l'union fait la force (et le temps c'est de l'argent). Si vous êtes plusieurs à vous occuper des services, vous pourrez vous partager les tâches et faire le travail à tour de rôle.
Finalement, ce que je décris dans ma conclusion, c'est exactement ce que fait Framasoft en hébergeant des services accessibles au public, en expliquant comment le faire soi-même et en encourageant des associations à proposer aussi leurs propres services. Pour ma part je vais prendre le rôle du colibri en continuant d'écrire d'autres articles sur le sujet qui vous aideront, j'espère, à mettre en place vos propres services plus facilement.
Un commentaire ?
Vous avez repéré une erreur dans l'article ? Un point d'amélioration ? Vous pouvez envoyer vos commentaires par email à « blog arobase killiankemps.fr » avec pour objet « [Comment][fr][Auto-hébergement : la route n'est pas si longue] ».
Envoyer un commentaire par email(Le « @ » a été remplacé par « arobase » afin que des robots malveillants ne puissent pas récupérer l'adresse email)