Autohébergement de Site Web Statique : Réflexion et Décisions
Cet article abordera l'ensemble de la réflexion et des décisions prises dans le cadre de l'autohébergement de site web statique.
Dans le contexte de l'informatique et du web, le terme "statique" fait référence à des éléments qui ne changent pas dynamiquement en réponse à des interactions utilisateur ou à des changements dans l'environnement. Un site web statique, par exemple, est composé de contenu fixe livré à l'utilisateur tel qu'il est stocké.
Chez Reboot, dans le cadre de ce projet, nous entendons par statique l'ensemble des pages frontend qui devront être servies par le serveur.
L'autohébergement est le processus de gestion et de maintenance d'un serveur et de ses services par soi-même, plutôt que de s'appuyer sur des services hébergés par des tiers. Cette pratique permet un contrôle total sur les environnements de serveur, les données et les applications. Dans un contexte d'autohébergement, les individus ou les organisations déploient leurs propres applications web, serveurs de messagerie, systèmes de stockage de fichiers, et autres services sur du matériel ou des infrastructures qu'ils contrôlent entièrement.
L'autohébergement peut être réalisé sur des serveurs physiques situés dans un lieu spécifique ou sur des serveurs virtuels privés (VPS).
L'autohébergement a de nombreux avantages en termes de personnalisation. Nous pouvons choisir nos systèmes de sécurité et nos technologies. L'autohébergement permet donc plus de contrôle sur sa solution, mais nécessite également des compétences techniques pour la configuration et la maintenance des systèmes.
Actuellement, Reboot utilise une variété d'hébergeurs pour gérer ses services en ligne, notamment Azure, OVH et Hostinger. Ces hébergeurs offrent des solutions variées pour répondre aux besoins de chacune de nos applications. Bien que chacun de ces hébergements fonctionne, leur coût varie de 108 à 238 € par an, ce qui n'est pas négligeable pour une entreprise comme la nôtre.
Lors de la sélection d'une solution d'autohébergement, plusieurs critères clés doivent être pris en compte pour garantir l'efficacité et la pérennité du système.
Le coût est un facteur essentiel dans le choix d'une solution d'autohébergement. Comme nous l'avons vu précédemment, nous avons une variété de solutions avec des coûts qui s'accumulent et s'additionnent. Il s'agit d'évaluer le rapport coût-efficacité en considérant non seulement les dépenses initiales pour l'acquisition de l'équipement et des logiciels, mais aussi les coûts opérationnels continus, comme l'électricité, la bande passante Internet, et les frais de maintenance. La manière la plus efficace serait donc de centraliser nos solutions pour partager les coûts.
La scalabilité, ou capacité d'évolution, est cruciale pour s'adapter aux changements de demandes. Une bonne solution d'autohébergement doit pouvoir s'adapter facilement à une augmentation ou une diminution des ressources nécessaires, sans nécessiter une refonte complète du système. Si demain nous voulons héberger 500 sites web, l'évolution de notre système doit être rapide et possible.
La sécurité est primordiale pour protéger les données et les services contre les accès non autorisés, les attaques malveillantes et les pertes de données. Cela comprend la mise en œuvre de pare-feu robustes, de systèmes de détection d'intrusion, de mise en quarantaine de certaines données, de gestion des droits utilisateurs...
La capacité de traitement, la mémoire, le stockage et la bande passante doivent être suffisants pour gérer la charge de travail actuelle et future. Les performances doivent être surveillées et optimisées pour garantir une expérience utilisateur fluide et rapide. Si le site de Reboot-Conseil se charge en 0,5 secondes, nous risquons de perdre de la visibilité.
Une disponibilité élevée est essentielle pour assurer un accès constant aux services hébergés. Imaginons que nous autohébergeons nos sites sur un serveur chez Reboot Strasbourg et qu'une panne de courant a lieu. L'ensemble de nos sites doivent rester disponibles et accessibles. Cela peut nécessiter des configurations redondantes, des solutions de basculement automatique et une planification minutieuse des maintenances pour minimiser les interruptions.
Enfin, une bonne solution d'autohébergement implique une maintenance rapide et proactive et un monitoring continu. Il s'agit de savoir rapidement si un site n'est plus disponible pour mettre en place un plan de continuité d'activité adapté (PCA) ou dans le pire des cas un plan de reprise d'activité (PRA) adapté au besoin. De plus, la gestion de nos certificats doit se faire autant que possible de manière automatisée afin de limiter le temps de maintenance de la solution. Cela permet de détecter et de résoudre rapidement les problèmes, de maintenir le système à jour et de prévenir les pannes potentielles.
Le cloud privé offre un environnement de cloud dédié, offrant un contrôle et une personnalisation supérieurs, ainsi qu'une sécurité améliorée par rapport aux solutions de cloud public. Cependant, cette option vient avec un coût significativement plus élevé en termes d'infrastructure, de maintenance et de gestion. Pour Reboot, le coût élevé d'investissement initial et de fonctionnement continu rend le cloud privé une option moins viable par rapport au VPS, qui offre un équilibre plus favorable entre coût, contrôle et flexibilité pour leurs besoins actuels.
Cloud privé
Kubernetes est un système d'orchestration de conteneurs open-source qui automatise le déploiement, la mise à l'échelle et la gestion d'applications conteneurisées. Bien qu'il soit devenu un standard sur le marché, Kubernetes nécessite une courbe d'apprentissage significative et souvent un expert dédié pour sa gestion. Pour Reboot, bien que Kubernetes offre une scalabilité et une flexibilité exceptionnelles, la solution semble surdimensionnée pour les besoins actuels, nécessitant des ressources et une expertise que l'entreprise n'est pas (encore ;) ) prête à mobiliser à plein temps.
Les solutions clé en main, telles que les plateformes d'hébergement gérées, offrent une simplicité d'utilisation, avec une maintenance et une configuration minimales requises de la part de l'utilisateur. Cependant, elles sont souvent limitées en termes de choix technologiques et de personnalisation. Pour Reboot, ces limitations rendent les solutions clé en main moins attrayantes, car elles ne fournissent pas la flexibilité nécessaire pour s'adapter aux exigences spécifiques de technologie ou de configuration.
Solution Clé en Main
Le Serveur Privé Virtuel (VPS) est une solution d'autohébergement qui offre un équilibre entre coût, contrôle et flexibilité. Un VPS fonctionne comme une machine dédiée virtuelle, offrant aux utilisateurs un contrôle complet sur leur environnement d'hébergement avec une allocation dédiée de ressources. Cette solution est idéale pour les entreprises cherchant une personnalisation étendue sans les coûts élevés associés aux serveurs dédiés physiques. Le VPS est retenu par Reboot en raison de sa capacité à offrir une puissance et une flexibilité suffisantes pour la plupart des applications, sans les coûts prohibitifs des solutions de cloud privé ou la complexité technique des clusters Kubernetes.
Solution VPS
Un serveur web est un logiciel et un matériel qui utilise le protocole HTTP (Hypertext Transfer Protocol) et d'autres protocoles pour répondre aux requêtes des utilisateurs sur Internet. Sur un serveur web, les données et les ressources sont stockées, permettant ainsi aux utilisateurs d'accéder au contenu en renseignant uniquement un nom de domaine (reboot-conseil.com). Les serveurs web traitent les requêtes entrantes, hébergent des sites web et des applications, et gèrent les interactions avec les utilisateurs finaux.
Dans le cadre du VPS Reboot, le serveur web fonctionne sur un environnement virtuel (VPS). Nous avons choisi Nginx, standard du marché et compatible avec Ubuntu.
NGINX serveur web
Fail2Ban est un logiciel de prévention des intrusions qui protège les serveurs contre les attaques par force brute et autres menaces de sécurité. Il surveille les journaux de serveur pour détecter les comportements malveillants, tels que les tentatives répétées de connexion échouée, et bloque automatiquement l'adresse IP de l'attaquant pour une durée déterminée (il le met en prison). Cela réduit le risque d'accès non autorisé.
Un certificat SSL (Secure Sockets Layer) est essentiel pour sécuriser la communication entre le serveur web et les navigateurs des utilisateurs. Il permet de "transformer" un site en HTTP (port 80) en une page sécurisée HTTPS (port 443). Il crypte les données transférées, assurant la confidentialité et l'intégrité des informations.
Certbot est un agent utilisé pour automatiser l'obtention et le renouvellement des certificats SSL via le protocole ACME (Automated Certificate Management Environment). (Pour plus d'information voir le post dédié)
Docker est une plateforme de conteneurisation qui permet d'encapsuler une application et ses dépendances dans un conteneur isolé. Cela nous permet de faire fonctionner notre application sur n'importe quelle structure indépendamment des versions et des dépendances présentes.
Le ping Monitoring Azure est un service de surveillance qui vérifie la disponibilité et la performance des applications et des services web. Il envoie régulièrement des requêtes (ping) aux applications hébergées sur le VPS Reboot pour s'assurer qu'elles sont accessibles et fonctionnent correctement. En cas de problème, il alerte, permettant une réaction rapide pour résoudre les problèmes.
Le principe de cette solution est de mettre en place un VPS pour héberger l'ensemble de nos sites web sur un seul et même service. Si nous souhaitons rester sur une solution OVH Cloud (déjà en place pour reboot-immobilier), nous pouvons estimer le coût de la solution à 12 €/HT/mois. À cela s'ajoutent les différents noms de domaines nécessaires et renouvelables chaque année.
Cet article est le 1er d'une série de 14.
Membre de l'équipe Reboot à Strasbourg, Erin intervient sur les projets IT et conseil dans le Grand Est. Un profil qui préfère laisser parler ses résultats plutôt que son LinkedIn.
LinkedInKrieg unseri beschte Artikel jede Monet.
Garantir la qualité dans un environnement critique d'assurance. Un expert QA qui transforme les risques en certitudes.
ProjetVoir en temps réel ce qui se passe dans les entrailles de la production. Un projet de visibilité critique.
ProjetModerniser une DSI complète. Un tech lead pilotant la transformation d'une équipe.
ProjetTransformer l'infrastructure DevOps d'une entreprise agricole. Un expert standardisant les pipelines.
ProjetOrchestrer plusieurs LLMs et services IA. Un projet créant un système d'agents IA scalable.
ProjetModerniser une plateforme éducative pour 23 000 utilisateurs. Un projet combinant DDD et sécurité bancaire.