Contact salesFree trial
Blog

PaaS sous pression : les secrets des tests de stress avant le Black Friday

DevOpsFeu noirobservabilitél'allocation des ressourcesPaaS
Partager

Transcription de la vidéo

Nous avons utilisé ChatGPT pour améliorer la grammaire et la syntaxe de la transcription.

Greg : Halloween, j'apporte l'énergie ! Tu n'étais pas prêt pour ça, n'est-ce pas ?

Thomas : Absolument pas !

Greg : D'accord, c'est bien. J'adore l'énergie. Il faut qu'on ait de l'énergie ! Alors, bienvenue dans le live stream d'Upsun ! Je m'appelle Greg Qualls, un développeur en herbe basé au Texas, et je suis accompagné de Thomas di Luccio. Aujourd'hui, nous allons faire les choses les plus effrayantes que vous puissiez imaginer. Nous allons faire un... test de charge ! Je ne sais pas, pour moi, c'est amusant. Nous allons casser des choses. Nous allons le faire en direct et comprendre ce qui se passe. Comment vous sentez-vous par rapport à ça ? Es-tu prêt ?

Thomas : On verra bien ! Je crois que je suis prêt. Je préfère casser les choses en privé, mais le faire devant les gens, c'est une autre histoire ! Cassons les choses avant le Black Friday ou d'autres périodes de pointe, c'est moins effrayant. Même si aujourd'hui est un jour sinistre, quel que soit l'endroit où vous le célébrez.

Greg : C'est vrai ! Certaines personnes peuvent porter des costumes ; nous faisons des tests de charge.

Avant d'entrer dans le vif du sujet, nous devrions parler des nouvelles émergentes. Allons-y !
Très bien, comme mon écran est partagé ici, je vais commencer par les nouvelles émergentes d'aujourd'hui. Le PDG de Google a annoncé hier que plus de 25 % du code de Google est désormais écrit par l'IA. Voici ma question à ce sujet, car cette annonce a été faite lors d'un appel d'analystes sur les bénéfices. Dans quelle mesure s'agit-il de ce que nous considérons comme de l'IA générative à grand modèle de langage (LLM), comme l'utilisation d'outils tels que ChatGPT, Claude ou quelque chose de similaire ? Ou s'agit-il simplement de l'autocomplétion ? Qu'en pensez-vous ?

Thomas : C'est une excellente question. Honnêtement, je ne sais pas ce que je pense de ce chiffre parce qu'on ne sait pas si c'est une IA qui écrit des morceaux entiers de code, ou si c'est juste de l'assistance, comme de l'autocomplétion de code. Je veux dire que si quelque chose échoue, c'est peut-être une solution facile - il suffit de blâmer l'IA !

Greg : C'est vrai, mais c'est dangereux parce que quand l'IA devient sensible et commence à prendre le contrôle, on est le premier sur la liste à la blâmer.

Thomas : Exactement. Ce n'est pas l'IA qui est fautive, elle n'a pas reçu les bonnes instructions ou les bonnes ressources. C'est ce que je pense - il faut peut-être attendre de voir si ces chiffres continuent d'augmenter au fil des mois. Il pourrait s'agir de 25 % aujourd'hui, et peut-être qu'à l'avenir, ce sera 50 %.

Greg : C'est vrai ! C'est comme le décor d'un film catastrophe - une IA sensible qui prend le contrôle, ligne par ligne. Et d'après ce que j'ai lu dans l'article, cette nouvelle ressemble à une " prise de bénéfices ", comme si Google avait senti qu'il fallait mentionner l'IA pour attirer l'attention, même s'il n'y avait pas grand-chose d'autre à signaler.

Thomas : Oui, exactement. Ils veulent que l'IA soit perçue comme sûre, du genre : "Hé, nous utilisons l'IA, donc elle est sûre !". C'est un peu rassurant, j'imagine.

Greg : C'est un point de vue intéressant ! Quoi qu'il en soit, qu'est-ce que tu as à nous dire ce matin ?

Thomas : Ce n'est pas un article sur la technologie, du moins pas encore. C'est une actualité de geek. Récemment, je suis tombé sur une mise à jour du programme Langlands. Vous en avez déjà entendu parler ?

Greg : Non, qu'est-ce que c'est ?

Thomas : Il s'agit essentiellement de la "théorie du tout" en mathématiques, nommée d'après le mathématicien canadien Robert Langlands. En physique, les scientifiques s'efforcent d'unifier toutes les forces ; Langlands vise à unifier tous les domaines des mathématiques en un seul cadre. C'est complexe et, honnêtement, cela dépasse mon entendement, mais c'est incroyable de voir ces progrès en mathématiques. Si tu es un nerd, tu vas adorer !

Greg : C'est incroyable ! Rien que d'essayer de comprendre une "théorie du tout" en mathématiques, c'est époustouflant.

Thomas : Exactement, c'est comme construire un cadre où tous les domaines mathématiques sont unifiés de manière cohérente, ce qui permet de repousser de nouvelles limites. C'est complètement fou.

Greg : C'est logique : ils veulent une équation ou un cadre sur lequel toutes les autres équations peuvent s'appuyer, parce qu'il a été prouvé qu'il fonctionnait. C'est génial.

Thomas : Oui, et quel que soit le domaine des mathématiques, cette méthode unifiée résoudrait tout. Si quelqu'un trouve des erreurs dans mon explication, qu'il me le dise, mais c'est l'idée générale.

Greg : Cool ! On peut peut-être passer à la " cachette du jour " ?

Thomas : Absolument ! Le "Stash of the Day" est l'endroit où nous présentons des choses cool que nous avons trouvées et qui nous rendent heureux et qui, je l'espère, rendront les autres heureux aussi. Je pense que je vais commencer parce que je suis le premier à le faire.

Greg : Vas-y !

Thomas : Très bien, j'ai une nouvelle intéressante pour le " stash " d'aujourd'hui - c'est un peu différent, cependant. Il y a des nouvelles étranges dans le monde DevOps autour de WordPress et WP Engine. C'est tout un drame, mélangeant des décisions commerciales avec ce qui ressemble à un comité de trois bambins en trench-coat faisant des choix erratiques.

Greg : Ha ! As-tu vu le film Godzilla où le scientifique dit : " Laissez-les se battre " ? C'est l'approche que j'ai choisie : laisser faire et voir où ça va atterrir !

Thomas : Exactement ! Tous les deux jours, il y a un nouveau rebondissement, et c'est honnêtement un peu triste. Mais j'ai trouvé un bon outil pour gérer tout ce bruit : il s'agit d'un produit Google Labs appelé Notebook LM, conçu pour les écrivains. Il permet de garder une trace des antécédents et des vérifications de faits, comme la génération améliorée par récupération (RAG), où vous introduisez des documents sources et où il les organise pour vous aider à vous souvenir des choses.

Greg : C'est fascinant ! Donc, avec Notebook LM, vous pouvez puiser dans différentes sources et avoir votre propre IA générative pour créer du contenu en fonction de ce que vous lui avez fourni ?

Thomas : Oui, exactement. Les rédacteurs peuvent ajouter de la documentation et des sources sur le côté gauche, puis poser des questions ou générer du nouveau matériel sur la base de ce qui est stocké. C'est très utile pour tous ceux qui construisent quelque chose avec une histoire ou des données étendues. Je ne l'utilise pas pour cela, mais je connais d'autres personnes qui le trouvent utile.

Greg : Ça a l'air sympa. Je pense qu'il y a des façons de s'amuser avec ça !

Thomas : C'est vrai ? Une fonctionnalité intéressante est qu'il peut créer son propre podcast, bien que nous n'ayons pas réussi à faire fonctionner l'audio ici. C'est intéressant, mais je ne comprends pas encore très bien comment cela s'intègre dans l'outil.

Greg : Peut-être que certaines personnes aimeraient écouter leurs notes ou leurs documents pendant qu'elles travaillent ou qu'elles font la navette, afin de rester au courant de ce qui se passe pendant qu'elles sont en déplacement.

Thomas : Oui, c'est presque comme créer une version audio de ce que vous avez écrit, mais cela génère un tout nouveau contenu. Cela peut être intéressant dans certains cas, mais je suis encore en train de le découvrir.

Greg : Je pense que beaucoup de ces outils d'IA commencent par être amusants, puis quelqu'un finit par leur trouver une utilisation vraiment pratique. J'espère que les gens ne se contenteront pas de spammer les podcasts avec des contenus d'IA inutiles, mais qu'ils trouveront des façons valables de les utiliser.

Thomas : C'est vrai ! Nous verrons bien où cela nous mènera. En parlant de stash, j'ai trouvé quelque chose de super geek : une commande unique pour votre terminal qui nettoie toutes les branches locales à l'exception de la branche principale.

Greg : Super ! Quelle est la commande ?

git branch | grep -v "main" | xargs git branch -D

Peux-tu comprendre ce qu'elle fait ?

Thomas : Elle récupère toutes les branches et supprime tout ce qui ne contient pas "main". C'est très pratique si vous utilisez un outil comme Linear et que vous vous retrouvez avec des tonnes de branches. Vous pouvez les nettoyer en une seule commande et ne laisser que la branche principale.

Greg : J'adore. Je vais l'appeler "Git Bankruptcy". C'est comme déclarer la faillite de toutes les branches locales à l'exception de la branche principale. Je pourrais l'utiliser sur des projets où j'ai beaucoup trop de branches locales mortes.

Thomas : " Git Bankruptcy " est un nom parfait ! Il suffit de déclarer la faillite de ses branches, d'effacer tout ce qui n'est pas main, et de nettoyer. J'ai trouvé cette astuce il y a quelques semaines, et maintenant je l'utilise chaque fois que j'ai trop de branches. Il suffit de copier, de coller et de revenir au nom principal.

Vous savez, vous pourriez même créer un alias Git pour cette branche et l'appeler "bankrupt". Ainsi, à chaque fois que vous avez besoin de faire le ménage, il vous suffit de lancer " git bankrupt " et c'est fait.

Greg : Bonne idée ! Nous passons à un niveau supérieur ! En parlant de branches principales, je pense qu'il est temps de passer au sujet principal du jour.

Oui, essayons de casser les choses avant que le Black Friday ne nous casse ! Nous parlions tout à l'heure de la façon de mettre en place ce projet, et je pense que la première étape consiste à montrer nos fondations. J'ai mon écran prêt à être partagé, puis nous passerons à vous, Thomas, puisque c'est vous qui avez mis tout cela en place.

Thomas : Bien sûr. Pour préciser, je n'ai pas fait toute la configuration moi-même - notre collègue Von nous a aidés à créer cette application Shopware au départ. J'ai ajouté un peu d'équilibrage de charge, mais c'est vraiment un travail d'équipe.

Greg : Merci, Von ! Très bien, nous sommes maintenant dans la console Upsun. Voici un aperçu de notre magasin de démonstration, où vous pouvez voir les branches, les environnements et les services dont nous disposons. C'est comme une émission de cuisine - nous avons préparé certaines choses au cas où, mais nous le faisons aussi en direct. Jetons un coup d'œil à la section "Apps et services". Nous avons l'application Shopware, qui est, je suppose, l'application PHP, n'est-ce pas ?

Thomas : Oui, c'est exact.

Greg : À côté, nous avons une application Python qui utilise Locust pour les tests de charge. Tu nous as montré cet outil open-source la semaine dernière. Ensuite, on a la mise en cache avec Redis, RabbitMQ pour les files d'attente, le stockage des fichiers, MySQL pour la base de données, et une application PHP worker pour gérer le tout. J'ai oublié quelque chose ?

Thomas : Non, c'est tout ! Nous avons 3,35 CPU, 3,75 Go de RAM et 9 Go de stockage pour toutes ces applications.

Greg : Parfait. Maintenant que nous savons avec quoi nous travaillons, passons à toi, Thomas, pour nous plonger dans les tests de charge.

Thomas : Très bien ! Voici comment ce projet de démonstration est configuré. Nous avons un référentiel avec plusieurs applications - l'application Shopware en PHP et Locust en Python pour les tests de charge. Toute la configuration se trouve dans un fichier YAML, et nous pouvons définir des variables d'environnement, soit dans le fichier YAML, soit dans l'interface utilisateur à des fins de sécurité.

Greg : J'ai compris. Locust va simuler le trafic d'un utilisateur réel, n'est-ce pas ?

Thomas : Oui. Mais il ne s'agit pas seulement d'inonder le trafic ; nous voulons reproduire des parcours utilisateurs réalistes. Par exemple, j'ai des fonctions d'aide qui simulent le comportement des utilisateurs - certains utilisateurs visitent la page d'accueil et la quittent, d'autres recherchent des produits, d'autres parcourent les catégories et d'autres encore passent des commandes rapides. Ainsi, nous ne nous contentons pas de générer des clics aléatoires, mais nous imitons l'activité réelle des utilisateurs sur le site.

Greg : C'est incroyable. Je n'avais pas réalisé que les tests de charge pouvaient être aussi détaillés. Dans mon esprit, il s'agissait simplement d'envoyer des tonnes de trafic, mais cette approche est tellement logique.

Thomas : Exactement ! L'objectif n'est pas seulement de tester la charge, mais d'identifier le point de rupture de votre application. Vous voulez savoir quand votre site commence à ralentir et à quel moment il s'arrête, parce que cela se traduit directement par le revenu maximum que votre site peut supporter pendant les heures de pointe.

Greg : C'est tout à fait logique. Nous avons donc tout mis en place et nous sommes maintenant prêts à effectuer le test. Quelle est la prochaine étape ?

Thomas : Maintenant que nous avons compris la configuration du projet, je vais me connecter en SSH au conteneur Locust et lancer le test. J'ai une commande pour lancer Locust en mode headless avec des paramètres spécifiques - 25 utilisateurs simultanés avec un taux de spawn de cinq, ce qui signifie que les utilisateurs se joignent par lots de cinq. Ce test de base durera cinq minutes. Bien sûr, si vous voulez vraiment casser les choses, vous devez augmenter ces chiffres de manière significative.

Greg : Commençons par un petit essai et voyons ce qui se passe. Je surveillerai les ressources de mon côté pendant que vous exécuterez la commande.

Thomas : C'est une bonne idée. Juste un rappel : lorsque vous faites évoluer une application pour le Black Friday ou tout autre événement majeur, vous devez être en mesure de cloner votre environnement de production pour le tester sans risquer de l'interrompre. L'exécution de tests de charge sur un clone au lieu de la branche de production réelle permet d'éviter toute interruption potentielle.

Greg : Absolument. Et ce qui est génial avec Upsun, c'est que vous pouvez faire évoluer les ressources de manière dynamique si vous constatez que le trafic augmente. Il n'est même pas nécessaire de modifier les fichiers de configuration : il suffit d'augmenter ou de réduire les ressources en fonction des besoins à partir de l'interface utilisateur.

Thomas : Exactement ! La flexibilité d'Upsun vous permet d'ajouter des ressources instantanément. Vous pouvez également dupliquer les instances de l'application principale si nécessaire. En coulisses, nous ajoutons un équilibreur de charge, de sorte que même pendant les pics de charge, tout fonctionne sans problème.

Greg : Vous pouvez donc faire tout cela en direct, n'est-ce pas ? Pas besoin d'intervention DevOps en cas de crise ?

Thomas : Oui, c'est vrai. Il n'est pas nécessaire d'alerter les DevOps et de les faire se démener. En quelques clics, n'importe quel membre de l'équipe peut s'en charger. Et pour vos services, si quelque chose cause un goulot d'étranglement, comme la base de données, vous pouvez augmenter les ressources sans avoir besoin de plusieurs instances, car les bases de données nécessitent une synchronisation des données plus complexe.

Greg : Parfait. Nous surveillons donc l' utilisation du processeur et de la mémoire, et je vois que le trafic augmente. Nous n'avons pas encore atteint la limite, mais le trafic augmente rapidement.

Thomas : Oui, et si vous utilisez Blackfire ou d'autres outils d'observabilité, vous pouvez surveiller l'impact d'une charge importante en temps réel. L'observabilité est essentielle parce que les tests de charge vous indiquent le point de rupture, mais l'observabilité vous montre comment votre application fonctionne dans ces conditions, où des améliorations peuvent être apportées et où se trouvent les goulots d'étranglement.

Greg : On dirait que le trafic se stabilise. Devrions-nous le pousser un peu plus loin et tester réellement les limites ?

Thomas : Allons-y ! Je vais augmenter le nombre d'utilisateurs à 100 000, avec un taux de reproduction plus élevé, et le faire tourner pendant 10 minutes. C'est peut-être un peu exagéré, mais Halloween appelle des choses effrayantes, n'est-ce pas ?

Greg : Exactement ! Ajoutons quelques zéros et voyons si nous parvenons enfin à le dépasser. J'ai également augmenté le nombre d'instances de l'application pour que nous soyons prêts à supporter une charge plus importante.

Thomas : C'est parfait ! Nous devrions commencer à voir beaucoup plus de trafic, ce qui nous permettra de vérifier si Shopware et l'ensemble de la configuration peuvent supporter une charge extrême.

Greg : C'est génial. Merci d'avoir fait tout ce travail pour mettre en place les tests de charge avec Locust. C'est beaucoup plus détaillé que ce à quoi je m'attendais.

Thomas : Pas de problème. La mise en place a pris quelques jours, mais cela en vaut la peine. Toute application qui s'attend à un trafic important devrait investir dans des tests de charge, pas seulement pour le Black Friday, mais de façon régulière. Connaître vos points de rupture vous permet d'avoir des discussions éclairées avec la direction sur les ressources, la capacité et les mises à niveau possibles.

Greg : Oui ! Il ne s'agit pas seulement de connaître ses limites, mais d'être en mesure de les communiquer à l'aide de données réelles. Les dirigeants peuvent voir le coût de l'augmentation des ressources pour un événement et prendre une décision éclairée sur la façon de procéder.

Thomas : Exactement. Et en connaissant les points de rupture de votre application, vous évitez les surprises pendant les périodes de pointe. Avec Upsun, une fois le test terminé, il suffit de supprimer l'environnement et de ne payer que pour les ressources utilisées pendant le test.

Greg : Je suis tout à fait d'accord. Voilà qui conclut notre aventure sur les tests de charge. Merci de nous avoir rejoints pour ce live stream d'Upsun. Nous espérons qu'il vous a été utile, que vous vous prépariez pour le Black Friday ou que vous cherchiez simplement à améliorer la résilience de votre application.

Thomas : Absolument ! Merci à tous. Restez prudents, continuez à coder, et nous nous reverrons la prochaine fois.

Greg : Prenez soin de vous, tout le monde !

Liens utiles

Votre meilleur travail
est à l'horizon

Essai gratuit
Discord
© 2025 Platform.sh. All rights reserved.