Pourquoi les pics de trafic font (encore) planter les sites et applications d’entreprises
Les erreurs HTTP 503 se portent toujours très bien, merci pour elles. L’indisponibilité des sites et applications suite à des pics de trafic sévit toujours alors que le problème est presque aussi vieux que le web lui-même. Les explications sont nombreuses, mais si vous subissez régulièrement des indisponibilités à cause d’un trafic plus important que d’habitude, il y a de fortes chances pour que cela vienne d’erreurs de conception, de fausses promesses du cloud ou d’une mauvaise organisation. Voire les trois à la fois.
Ce n’est pas parce qu’un problème est récurrent et identifié qu’il est réglé pour autant. Pour preuve, les vagues de froid hivernales qui perturbent invariablement le trafic ferroviaire et… les pics de trafic qui mettent à genou les sites web et les applications. Concernant l’impact du froid sur la circulation des trains, nous ne sommes pas du tout calés sur le sujet donc nous ne dirons rien. En revanche, sur les indisponibilités liées aux pics de trafic, nous avons pas mal de choses à dire.
Pour être tout à fait transparents, nous arrivons à peine à croire que nous parlons encore de ça en 2020, mais les erreurs HTTP 503 liées aux montées en charge font toujours partie des plus courantes et répandues sur le web. Les indisponibilités n’ont pourtant rien d’une fatalité et les éviter n’a rien de magique : connaître leur origine constitue déjà un premier pas pour les prévenir. Voici quelques pistes que vous pouvez explorer.
Le monde se divise en deux catégories…
Une courte parenthèse pour commencer, afin de partager un langage commun. Nous divisons les pics de trafic en deux catégories : ceux qui tiennent un pistolet chargé et ceux qui creusent les prévisibles et les subis.
Les bien nommés pics de trafics prévisibles correspondent aux expositions médiatiques comme l’Effet Capital (ou l’Effet Passage au journal TV de 20h, plus petit mais de belles pointes aussi), aux effets de promotions sur des produits/services, des saisons pour certaines activités ou de pics de trafics différés si l’entreprise a une activité forte à l’international. Autrement dit, des pics que vous pouvez anticiper et qui arriveront fatalement.
Les pics de trafic subis sont plus rares et sont généralement le résultat d’une attaque malveillante ou d’une forte exposition qui n’était pas prévue : passage télévisé, bon ou mauvais “buzz” ou une opération de communication isolée.
Maintenant que nous sommes sur la même longueur d’onde…
Soigner la conception pour une meilleure absorption
C’est contre-intuitif, mais la vitesse et la réactivité d’un site dépendent de son plus mauvais composant. Autrement dit, si votre plateforme est irréprochable à 99%, vous pouvez être sûrs que les 1% moins performants céderont face aux pics de trafics. La dégradation de service viendra toujours de l’élément le plus faible de la chaîne.
Pour garantir la disponibilité de vos sites ou applications, nous distinguons trois éléments essentiels à soigner pour limiter les risques :
- La qualité du code
- L’architecture (serveurs et applicatifs)
- Les infrastructures
Le propre des indisponibilités c’est qu’elles n’ont pas la politesse de prévenir. Une simple variation de 5% du trafic peut entraîner les pires interruptions de services car l’un des trois composants listés plus haut n’est pas optimisé. D’où les réactions incrédules chez certains de nos clients avec le fameux : “ Mais ça marchait bien il y a 15 minutes ”.
Pour paraphraser la Loi de Murphy :
“Tout ce qui est susceptible d’aller mal, ira mal. S’il existe au moins deux façons de faire quelque chose et qu’au moins l’une de ces façons peut entraîner une catastrophe, il se trouvera forcément quelqu’un quelque part pour emprunter cette voie.”
Ce que nous essayons de souligner, c’est qu’il s’agit d’un enjeu où les responsabilités sont pleinement partagées entre les développeurs et les administrateurs systèmes et réseaux (ou responsables infrastructures selon le contexte mais vous saisissez l’idée). Nous considérons même que la bonne appréhension des pics de trafic est l’un des sujets DevOps par excellence tant l’exercice sollicite des expertises différentes.
Ce qui nous amène d’ailleurs au point suivant.
Les fausses promesses du Cloud
Avec les solutions d’auto-scaling les acteurs majeurs du cloud promettent un ajustement automatique des capacités de calcul en fonction des variations de trafic. C’est une belle initiative sur le papier et qui, concédons-le, permet d’absorber certains pics de trafic. Mais derrière cette dénomination clinquante, l’auto-scaling se traduit généralement par de l’ajout de serveurs en cascade. En plus d’être un pansement posé sur une plaie ouverte, la stratégie du surdimensionnement n’est pas vraiment la plus souhaitable pour les entreprises.
C’est généralement ici que le débat (ou le dogmatisme) idéologique commence. Nous considérons que pour trouver des solutions adaptées aux pics de trafics, il faut avoir une vraie culture et connaissance des infrastructures. Les solutions d’automatisation des hébergeurs sont généralement créées par des développeurs. Loin de nous l’envie de dénigrer la richesse et la qualité de leur travail (au contraire), mais ces scripts d’automatisation font ce qui leur a été dit de faire. Ce qui se concrétise par l’ajout de puissance de calcul à la volée sans réelle réflexion. Non seulement ce n’est pas en rajoutant de la puissance qu’on règle les problèmes de charge mais, en plus, la facture peut vite s’avérer salée à la fin du mois. Cette confiance aveugle dans l’auto-scaling des acteurs du cloud public peut conduire à des indisponibilités ou une baisse de performances.
Pour doubler votre trafic, vous n’avez pas besoin de doubler votre infrastructure.
Nous avons travaillé avec un média en ligne qui a connu une forte croissance, tant et si bien que son trafic a augmenté de 100%. Avec un outil d’auto-scaling, la puissance de calcul, le nombre de serveurs et la facture auraient été multipliés par 2 et fin de l’histoire. En étudiant le code, l’architecture et les infrastructures en place, nous avons simplement mis en place un outil de cache et ajouté 15% de charge en plus. Ce qui sous-entend d’anticiper et d’effectuer des tests de montée en charge pour connaître et surtout bien interpréter les seuils de scalabilité.
Cette réflexion soulève également la problématique de l’arbitrage économique et des investissements que sont prêtes à consentir les entreprises. Surtout sur deux aspects : le développement et les infrastructures. Tout miser sur l’un ou sur l’autre est une mauvaise idée selon nous, mais dédier les investissements des infrastructures à du cloud public avec de l’auto-scaling est assez réducteur. Quitte à investir, investissez dans de l’humain, dans des compétences capables d’optimiser les infrastructures autrement qu’en ajoutant plus de serveurs. Le jour où vous serez confronté à un problème, un humain cherchera et trouvera une solution, pas la machine.
Mauvaises habitudes et mauvaises attitudes
Cette dernière dimension est plus anecdotique et relève plus d’enjeux organisationnels et culturels. Des sujets hautement subjectifs et sensibles sur lesquels nous n’avons pas la prétention de pouvoir intervenir. Néanmoins il nous paraît important de les souligner puisqu’ils peuvent impacter directement les performances et la disponibilité des sites et applications des entreprises.
Un cas que nous voyons assez fréquemment est celui du manque de communication au sein même de l’entreprise. Plus spécifiquement le manque de communication entre le Marketing et la DSI. Nous avons vu bon nombre de sites planter suite à une communication massive sur une promotion, une nouvelle offre ou un nouveau produit dont les équipes informatiques n’ont jamais eu vent. Idem en cas de passage à la télévision. Il ne s’agit pas non plus de faire de l’ingérence dans le travail de chacun, mais de partager la visibilité sur chaque opération. D’autant qu’un manque d’anticipation technique ruine tous les efforts déployés par le Marketing.
L’autre cas de figure que nous constatons relève plutôt du fatalisme voire du cynisme. Soit les entreprises subissent ces indisponibilités en se disant qu’elles ne peuvent rien y faire, soit elles les subissent et choisissent de ne rien faire parce qu’elles sont en situation de monopole et n’ont que faire de l’expérience utilisateur. Si vous avez déjà été au chômage, vous avez sûrement constaté des gros ralentissements le jour d’ouverture des actualisations. Ou encore, si vous avez tenté d’acheter une place pour un festival sur une billetterie en ligne, celle-ci tient rarement la charge à l’ouverture des ventes (c’est particulièrement criant dans le cas du Hellfest). Il s’agit de problèmes purement techniques qui peuvent être résolus, mais qui sont entretenus par des attitudes et des postures humaines.
Nous nous répétons souvent qu’identifier l’origine des problèmes c’est déjà commencer à les résoudre. Mais comme ça ne suffit pas toujours, nous sommes en train de créer deux guides pratiques pour vous aider à mieux vous préparer face à ces pics de trafics :
Les pics de charge vous font faire des cauchemars ?
Dormez sur vos deux oreilles en recevant tous les mois nos conseils d'experts pour détecter les signaux faibles et garantir vitesse et disponibilité de vos sites et applications.