Gérer le trafic d’un site pour un passage TV, mais en 24 h

handling traffic surge, lessons from Aragorn
La télé s’accorde toujours mal avec le web. car lorsque vous dimensionnez vos infrastructures IT, c’est plutôt pour gérer votre croissance sur 3 ans. Sur une belle courbe montante, en général linéaire. Et quand il faut gérer un pic de trafic de 800%, votre architecture va se retrouver à genoux.

Surprise comme il en arrive souvent: le reportage TV qui a été réalisé sur votre entreprise il a 2 mois va être programmé demain soir. Ou bien, au cœur d’une thématique brûlante, votre produit va faire l’objet d’une pastille pendant le 20 h.

Le passage à la télé s’accorde toujours mal avec le web. Car lorsque vous dimensionnez vos infrastructures IT, c’est plutôt pour gérer votre croissance sur 3 ans. Sur une belle courbe montante, en général linéaire. Et quand il faut gérer un pic de trafic de 800%, votre architecture va se retrouver à genoux.

Sauf avec Clever Cloud. Configurer vos applications pour absorber un pic de trafic se règle avec quelques clics dans l’interface:

Gestion des instances dans la console de Clever Cloud
Gestion des instances dans la console de Clever Cloud, pour gérer le trafic de votre site

Mais en réalité, gérer le trafic d’un site, c’est simple si vous êtes déjà hébergé par Clever Cloud. Cependant si ce n’est pas le cas, il n’y a pas fatalité pour autant.

M6 diffusait hier l’émission “Qui veut être mon associé ?”. Et la jeune entreprise BioDemain, qui aide les producteurs agricoles au cours des trois années de leur transition bio, y participe alors. Hébergé sur une architecture traditionnelle, le risque de voir le service tomber est grand. Nous avons donc aidé BioDemain à migrer son site vers Clever Cloud, et ce en moins de 24 heures!

Comment Clever Cloud gère ces pics de trafic

Tout d’abord, le trafic va être géré côté Clever Cloud par des load-balancers (aussi appelés répartiteurs de charge en français) avant d’atteindre votre application. Ces load-balancers (autrefois des instances HAPRoxy, et désormais des instances de Sōzu, un logiciel maison) vont se répartir le trafic entre eux. Au même titre que vous aviez des ELB d’Amazon (Elastic Load Balancer), sauf qu’ici, c’est inclus par défaut, et déjà configuré.

Votre application va ensuite recevoir le trafic. En fonction de votre configuration de scaling, votre application va pouvoir déclencher des alertes à notre système de monitoring si CPU et RAM augmentent. Et donc multiplier le nombre d’instances. Des load-balancers et de multiples instances en quelques seconde: et vous voilà paré pour gérer le trafic de votre site.

Répartition du trafic, réalisé à capella par l'auteur de cet article
Répartition du trafic, réalisé à capella par l’auteur de cet article

La migration en soi

Pour passer aussi rapidement chez Clever Cloud, nous avons été mis en relation avec les équipes de BioDemain. Et c’est la formidable organisation du support qui a été à leurs côtés pour migrer leur site (ici un WordPress) d’une solution mutualisée à Clever Cloud. Malgré un timing plutôt… serré.

Annoncer des bonnes nouvelles, toujours un plaisir.

La recette du succès a été une migration très rapide. En effet, il y a deux façon de déployer votre WordPress sur Clever Cloud:

  • Rapidement, avec un simple transfert FTP
  • D’une façon plus élégante avec l’usage de git pour le code, de Cellar pour les médias et de Composer pour les plug-ins. Nous recommandons le boilerplate de Bedrock pour cela. Zileo a fait un tutorial Bedrock pour Clever Cloud.

Évidement on est partis sur la première solution dans le cas de BioDemain.
Après avoir pris contact avec le développeur, la première étape a été de transférer les fichiers entre l’ancien hébergeur, et Clever.
Plusieurs dizaines de milliers de ficher, donc en FTP ça prends du temps.

En attendant la fin de la transmission de fichiers, notre équipe et BioDemain on pu déployer deux autres instances pour la suite: MySQL et Redis. Puis est venue la configuration de l’application PHP en elle-même (toujours pendant le tranfert).
Ici il a fallu:

  • Activer ProxySQL pour mutualiser les connections applications
  • Configurer proxySQL via de simples variables d’environnements:
    • CC_ENABLE_MYSQL_PROXYSQL=true pour activation
    • CC_MYSQL_PROXYSQL_MAX_CONNECTIONS =15 pour mettre en place le nombre max de connections à gérer
    • CC_MYSQL_PROXYSQL_USE_TLS=true si besoin
  • Faire un dump de la base MySQL originale et importer ce dump dans la nouvelle
  • Activer les session Redis dans PHP via les variables d’environnement.

Les petits tips tech en plus

  • Vous pouvez également activer le Varnish intégré dans Clever Cloud si vous le sentez
  • Aussi, mettez en place un CDN. Si vous n’avez pas le temps d’optimiser au petits oignons votre site, les CDN sont là pour décharger une partie du trafic sur eux.
  • Avant toute chose, baissez les TTL de vos enregistrements CNAME et A de votre nom de domaine. Les changements de conf se propagent sur 24 h. Vous allez trouver dommage de faire une migration si le trafic continue d’aller ailleurs.
  • Et si jamais vous avez un down, redirigerez votre page d’accueil vers une application qui affiche un formulaire de contact. Ainsi les internautes pourront ainsi laisser un email pour être joints à nouveau.

Enfin, évaluez les performances. Le moment fatidique du passage TV ne souffre pas d’un seul oubli. Pour cela: JMeter en local (attention, ca demande des ressources), ou des services en ligne super bien comme Gatling.io.

Vous avez toutes les cartes en main pour la suite 🙂 Bon courage !

Blog

À lire également

MateriaDB KV, Functions: découvrez le futur de Clever Cloud à Devoxx Paris 2024

Clever Cloud est fier de présenter sa nouvelle gamme de produits serverless : Materia !
Entreprise

Notre nouvelle interface de logs est disponible en bêta publique

Notre nouvelle interface de logs est désormais disponible en bêta publique, venez la tester dès aujourd'hui !
Entreprise

Métriques : archiver des milliards de points chaque mois

Les métriques sont essentielles à notre fonctionnement. Avec une croissance de 2 To/semaine, il nous a fallu trouver une solution d'archivage automatisée.
Engineering