Les bases de l’hébergement d’un site

Pour que votre site soit accessible, il doit être mis en ligne sur un serveur. Il existe de nombreuses solutions et cette problématique peut vite devenir très complexe. Nous passons en revue dans cet article les bases sur l’hébergement ainsi que les bases de données.

Hébergement mutualisé

Si votre site est basique (blog, site de e-commerce simple, site vitrine, etc.) et que vous n’avez pas beaucoup de trafic, je vous conseille d’utiliser un serveur mutualisé (c.-à-d.  partagé avec d’autres personnes). Les coûts seront modiques, voire nuls. Si vous créez une blog WordPress, une site sous Drupal ou un site de e-commerce sous Prestashop, vous n’aurez même pas besoin d’ « uploader » vos fichiers sources (c.-à-d.  les mettre en ligne) sur le serveur car des hébergeurs comme OVH peuvent vous créer ces modules directement depuis votre compte client.

Sinon, il vous faudra utiliser un client FTP (le FTP est le protocole internet pour transférer des fichiers sur un serveur) pour mettre en ligne votre site (« uploader » ce dernier). Pour ma part, j’utilise Filezilla. Votre page d’accueil devra s’appeler index et s’est cette page qui pointera vers vos autres pages du site.

La plupart des serveurs mutualisés reposent sur la technologie LAMP :

  • Système d’exploitation : Linux
  • Serveur : Apache
  • Base de donnée : MySql
  • Langage de programmation : Php

Sans rentrer dans trop de détails, il faut juste savoir que ces configuration peuvent être très différentes et utiliser par exemple un serveur Nginx et non Apache, serveur qui a d’excellente performance et s’est fait connaître dans les sites pornographiques. De même, les serveurs sous le système d’exploitation Windows sont populaires dans les grandes entreprises.

Base de données

Il vous faut ensuite choisir une base de donnée pour stocker les données. Là aussi, la complexité peut devenir très grande. Si votre site est basique ou que vous prenez un hébergement mutualisé chez Ovh, vous aurez sans doute pas défaut une base MySQL mutualisée. MySQL, est la base de donnée la plus populaire qui a largement prouvé sa robustesse. Il existe de nombreuses solutions qui sont adaptées à différents cas de figure et que beaucoup de progrès ont été fait, notamment pour gérer des quantités énormes de données (la « Big data »).

Le langage le plus populaire pour accéder, modifier, supprimer vos données est le SQL. Ce langage est basique et doit être couplé avec un langage dit « back-end » (Php, Ruby, Python, Java, cf. article suivant) pour être exploitable sur votre site. Une autre base de données sql très populaire et libre de droits pour les gros sites Internet est PostgreSql. Avec l’arrivée de ce que l’on appelle la « Big data« , c’est-à-dire la gestion d’une très grande quantité de données, d’autres base de données qui ne sont pas basées sur le SQL ont fait leur apparition. On parle alors de l’immense famille des bases de données en No-SQL. Ces bases très diverses permettent d’avoir des meilleurs performances pour la gestion de grandes quantités de données et sont notamment utilisées par Google ou Facebook. Google utilise par exemple une technologie propriétaire appelée « Big Table » qui a donné lieu à une publication scientifique en 2006 qui fait suite à la notion révolutionnaire de Map Reduce également publiée par Google en 2004. Suite à cet article, la base de donnée libre de droit HBase a été développée dans le cadre du projet Hadoop qui est aujourd’hui très populaire et par exemple utilisée par Facebook depuis 2010. En revanche, ces serveurs sont plutôt chers et assez compliqués à configurer et les débutants doivent s’abstenir! D’autres bases de données No-SQL beaucoup plus accessibles sont par exemple CouchDB, MongoDB ou Redis.

La « Scalabilité » ou l’augmentation de trafic

La difficulté avec l’hébergement est le jour où vous commencez à avoir du trafic sur votre site (problème de riche, me direz-vous). Vous aurez alors besoin d’un serveur dédié voire de plusieurs. Vous rencontrerez alors des problématiques d’architecture réseau, de sécurité et même de paramétrage du serveur qui sont très compliquées. Vous coûts d’hébergement vont donc exploser à cause de l’expertise des ingénieurs qui s’en occuperont. Il existe de plus en plus de solutions dites de « cloud computing » qui gèrent pour vous la complexité. Amazon propose par exemple Amazon S3 (pour stocker vos photos ou vidéos) ou Amazon EC2 (pour avoir des serveurs dédiés à la demande), Google son app engine, ou Heroku ajoute encore plus de fonctionnalités sur Amazon EC2 et vous simplifie la vie.

Heroku vous permet de mettre en ligne votre application web en quelques minutes et gère pour vous tout ce qui est compliqué. Heroku s’est notamment rendu populaire auprès de la communauté Ruby on Rails et est aujourd’hui l’hébergement par défaut des applications Facebook. Vous pouvez passer de 1 visiteur unique à 1 million sans tout changer (mais en payant plus cher!). il vous suffit pour cela d’augmenter le nombre de « Dynos » qui sont en fait des machines virtualisées lancées en parallèle. Vous avez aussi accès à de nombreux services de tiers pour votre hébergement un peu comme sur l’Appstore d’Apple pour les applications iPhone. Personnellement, j’aime bien utiliser les services suivants depuis Heroku :

  • Exceptional m’envoie une alerte par email lorsqu’il y a une erreur sur l’un de mes sites
  • Pgbackup permet de faire des sauvegardes de ma base de donnée tous les jours de manière automatique
  • Sendgrid est un serveur pour l’envoi des emails (ce qui est utile pour gérer l’envoie des emails automatiques de mes sites, suite à une inscription, par exemple)
  • MongoLab permet d’avoir une base de donnée MongoDB au lieu de la base PostegrSQL par défaut.

En revanche, il faut être familier avec les lignes de commandes même s’ils ont fait des efforts à ce niveau avec la nouvelle interface sortie en Septembre.

Les bases de l’hébergement d’un site

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *