La cuisine de Gandi

Accueil > Hébergement > La plate-forme PAAS du SimpleHosting

La plate-forme PAAS du SimpleHosting

Plus de détails

Rentrons en détail sur la première déclinaison : l'hébergement type LAMP. Apache/PHP/MySQL est le trio le plus largement utilisé, mais aussi le plus difficile à maîtriser au niveau sécurité et système.

Simple Hosting répond à cette problématique à votre place grâce à son architecture robuste et la possibilité de monter en gamme avec les différents packs. L'architecture du produit Simple Hosting comporte des load-balancers en amont puis des caches de contenu et enfin votre instance personnelle. L'instance n'est accessible qu'en HTTP via les load-balancers et en SFTP pour déposer les fichiers, il n'est pas prévu de l'atteindre directement.

Vous avez une instance personnelle avec un système Linux et des processus Apache2, PHP5 et MySQL. Les fichiers de cette instance et les ressources vous sont spécifiques. Les ressources de l'instance ne sont donc pas mutualisées entre les clients. Un autre site web gourmand en ressource sur une autre instance ne pénalisera pas la vôtre. Au niveau des load-balancers et des caches de contenu par contre, tous les virtualhosts sont servis par un ensemble de machines. Les données de chaque virtualhost (contenu dans le cache, sessions de visiteurs, ...) sont cependant cloisonnées. 

Votre instance n'a qu'un seul utilisateur :

  • pas de gestion de droits d'utilisateur à l'intérieur de votre instance,
  • un disque dédié où toutes vos données et les logs d'erreurs des applications sont stockés et consultables.

Vous pouvez aussi l'utiliser pour sauvegarder des données privées uniquement accessibles en SFTP (par le répertoire /private).

Votre instance a un serveur apache dédié:

  • vous pouvez consulter, via l'interface d'administration, l'état de l'application, les requêtes en cours, les logs d'erreurs, …

Votre instance a un démon PHP dédié :

  • très peu de fonctions limitées comme dans le cas d'un mutualisé,
  • changement de la configuration possible via ini_set(). L'interpréteur PHP5 fonctionne en tant que démon fastCGI, et donc beaucoup plus performant et permet le contrôle de ressources. Attention ! Du fait de l'utilisation en fastCGI, la configuration de php_value dans le .htaccess ne marche pas. 
  • il bénéficie d'APC un cache d'opcode PHP qui est de 64Mo pour le pack S et double à chaque augmentation de pack,
  • les statistiques PHP et APC sont consultables via l'interface d’administration.

Votre instance possède un serveur MySQL dédié qui :

  • est un démon complet sur lequel vous êtes root,
  • stocke les données directement sur votre disque,
  • est configurable directement par l'interface de PHPMyAdmin disponible par votre interface d'administration,
  • est non accessible depuis l'extérieur de votre instance Simple Hosting,
  • dont la taille mémoire est adaptée à la configuration de chaque pack pour éviter tout phénomène de swap. Il n'y a aucune différence de fonctionnalité entre les tailles de pack PHP/MySQL.

Détails sur PHP5 et le système

L'instance est basée sur la distribution Debian Linux avec des packages standards pour l'interpréteur PHP5 et ses modules. Pour une liste exacte des versions et des modules, vous pouvez consulter le wiki, ou le résultat d'un PHPinfo(). Une instance Simple Hosting ressemble donc au serveur dédié que vous pouvez souscrire dans notre offre IaaS mais spécifique pour un type de site. La liste des modules choisis et la configuration restent ainsi du ressort de notre équipe technique; il n'est donc pas possible d'installer des modules spécifiques. Cependant, si une forte demande est faite pour un module donné (par la wishlist), nous pourrons décider de fournir le module souhaité lors de la mise à jour suivante de l'image de base de l'instance.

Au niveau des mises à jour, notre équipe technique mettra à jour régulièrement les versions des librairies et interpréteurs pour chaque type d'instance de Simple Hosting; ainsi, la dernière mise à jour de sécurité de PHP5 est disponible dans les instances. Dans le cas des alertes de sécurité régulières sur PHP ou les applications en PHP livrées par Gandi, notre équipe sera réactive et appliquera le correctif dans les plus brefs délais. Nous surveillons ainsi les alertes sur l'interpréteur PHP, sur PHPMyAdmin qui est livré dans l'interface d'administration, sur apache2, sur MySQL et bien sûr, sur le système de base (noyau, libc6, ...). Attention ! Les alertes de sécurité concernant les applications que vous installez sont, par contre, de votre responsabilité.

Les performances

L'architecture de la plateforme est faite pour minimiser au maximum les temps de réponse à tous les niveaux :

  • Espace mémoire dédié: vos données restent cachées en mémoire ou dans votre MySQL.
  • Cache PHP: principalement APC qui s’avère être très efficace et nous avons été généreux sur sa taille.
  • Cache HTTP: Varnish apporte certainement le plus gros gain en temps de réponse : les pages/images pouvant être cachées seront directement servies par le cache.

La montée en charge

C'est la partie la moins maîtrisable. En cas de succès, votre site risque de s'écrouler sous le nombre de requêtes.

Il faut prendre en compte 2 paramètres majeurs.

  • Le flot de requêtes http : la ferme de Varnish régule ce flot pour éviter de surcharger votre instance. Si vos données peuvent être cachées, cela devrait être efficace. La quantité de données envoyées est soumise à un quota pour éviter les abus.
  • La complexité de votre site web : attention Varnish ne pourra pas tout cacher. Par exemple, si votre site comporte beaucoup de pages PHP avec des cookies, il faudra prendre un pack de taille supérieure pour tenir la charge.

Chaque taille d'instance Simple Hosting a un certain nombre de processus PHP en mémoire (2 pour la taille S par exemple). Chaque thread peut gérer le calcul d'une page de code dynamique et enverra ensuite la page au visiteur. Par exemple, vous pourrez servir des pages dynamiques à 2 visiteurs en parallèle sur une taille S. Les pages statiques HTML sont servies directement par apache2. La génération de la page dynamique utilisant les ressources CPU et RAM, un temps maximal d’exécution est configuré (voir dans le PHPinfo() ci-dessus). Le thread PHP sera alors terminé, indiquera l'information dans le log d'erreur et un message d'erreur sera retourné au visiteur. Si les pages de votre site contiennent des erreurs, vous pourrez consulter facilement l'information dans le log d'erreur de PHP par votre interface d'administration accessible par http://<login>.dc0.gpaas.net (avec <login> l'identifiant SimpleHosting composé de chiffres). 

La mise en cache

Les pages générées et servies par votre instance SimpleHosting sont mises en cache par un groupe de serveurs Varnish afin d'améliorer la réactivité de votre site pour les prochains visiteurs en servant la copie des pages dans le cache. Cela vous permet de tenir une forte affluence. Vous avez la possibilité de passer des ordres aux serveurs de cache depuis votre instance pour supprimer toute cette fonction de mise en cache ou vider le cache temporairement.

Enfin, un groupe de load-balancers, en amont des serveurs de cache, vous donne une garantie supplémentaire d'accès à vos sites sur votre instance Simple Hosting. Ces load-balancers sont actuellement accessibles par un ensemble d'adresses en IPv4 (associées aux noms gpaasX.dc0.gandi.net) . L’accès en IPv6 est retardé suite à une fonctionnalité oubliée par le constructeur du load-balancer : nous attendons avec impatience la nouvelle version du firmware.

Quelques remarques pour finir : 

  • le stockage est sur un système de fichiers compressés. Les 10Go de l'offre peuvent en réalité contenir bien plus.
  • le pack PHP/MySQL est fait pour servir des pages web et n'est absolument pas prévu pour faire du streaming, ou du téléchargement de gros fichiers. Notre équipe abuse veille et sera efficace.