CONSTRUIRE UNE CULTURE AVEC LA VIDÉO : DANS LES COULISSES DE BRIGHTCOVE

Lorsque votre personnel est réparti dans le monde entier, que ce soit dans des bureaux régionaux ou dans des bureaux à domicile éloignés, il est difficile de créer une culture d'entreprise cohérente. Parce que nous sommes une société vidéo dans l'âme, nous nous appuyons sur les communications vidéo internes pour développer notre culture et unir notre personnel international, et nous avons constaté que cela fonctionnait plutôt bien. La clé, c'est la personnalité. À deux reprises récemment, nous avons eu l'occasion de revitaliser deux programmes vidéo internes en cours, afin qu'ils correspondent mieux à notre personnalité. Voici comment nous avons procédé.

C SUITE COMMUNICATIONS

Les vidéos internes, en particulier celles qui impliquent les dirigeants de l'entreprise, peuvent représenter un défi pour les équipes créatives. En général, les messages émanant de la suite C sont très contrôlés, et le premier réflexe est de produire une vidéo très scénarisée pour que le résultat soit garanti dès le départ. Le problème de cette approche est qu'elle finit par donner l'impression d'être robotisée, que le message n'est pas perçu comme amical ou chaleureux et que la personnalité naturelle est perdue.

Nous voulions que nos vidéos de mise à jour montrent qui est réellement le PDG de Brightcove, Jeff Ray, un leader amusant et accessible, passionné par la vidéo, afin que l'ensemble de notre personnel international ait l'impression de le connaître, quel que soit l'endroit d'où il se connecte. Le producteur Jason Oliveira a proposé un concept génial : créer un plateau de style "podcast vidéo", abandonner le script au profit de puces et laisser une conversation organique se dérouler devant la caméra. Regardez la vidéo en haut de cet article de blog pour découvrir les coulisses de notre travail.

Il nous a fallu un peu de confiance, mais notre première vidéo dans ce style a réussi à informer l'entreprise des mises à jour importantes du milieu de l'été tout en restant chaleureuse et conversationnelle - et c'est beaucoup plus agréable à regarder qu'une vidéo rigide avec des têtes parlantes. Jeff et ses invités, le directeur des revenus Rick Hanson et la vice-présidente de la conception Carolyn Pampino, ont vraiment fait preuve de personnalité.

brightcove-jeff-ray-rick-hanson

ÉVÉNEMENTS INTERNES

Ces dernières années, nous avons diffusé en direct notre tournoi annuel de ping-pong afin que nos équipes régionales et distantes aient l'impression de participer à l'événement. C'est l'une des grandes traditions estivales de Brightcove, et nous voulons y associer l'ensemble de notre personnel international ! Cet été, nous avons saisi l'opportunité de construire sur cette base et d'y ajouter de la personnalité (c'est encore ce mot). Comme dans beaucoup d'entreprises technologiques, la table de ping-pong du siège de Boston est un lieu de rassemblement central, et le tournoi annuel est une bataille très disputée. Nous voulions que le flux en direct de cette année reflète le drame... et, soyons honnêtes, la stupidité et l'amusement inhérents au ping-pong.

Pour le match final du tournoi, nous avons ajouté des commentaires en couleur et un ensemble de graphiques au flux pour imiter un véritable événement sportif en direct. Nous avons également braqué une caméra sur le tableau d'affichage pour une mise à jour des scores en temps réel, image dans l'image, et nous avons installé un micro sur la table pour un son clair du match. Comme nous savions que le produit final serait un excellent moyen de présenter notre culture interne à un public externe, nous avons décidé de le diffuser en direct sur Facebook à l'aide du module Live to Social de Brightcove.

En l'espace de quelques heures seulement, l'engagement social et la portée de cet événement en direct avaient déjà dépassé toutes les vidéos que nous avions publiées sur Facebook au cours des trois derniers mois. Nos conclusions sont les suivantes :

  • Facebook est un excellent canal pour le contenu sur les coulisses et le recrutement. Pensez donc à adapter votre contenu de communication interne le plus amusant à Facebook.
  • Un peu d'élégance et de personnalité, combinées à des éléments visuels forts et à un sens de l'amusement, augmentent les résultats des événements en direct sur Facebook.

En fin de compte, il s'agissait d'un effort peu exigeant et très gratifiant. Nous avons pu essayer quelque chose de nouveau, utiliser la solution Live de Brightcove et Live to Social, et créer un contenu attrayant pour les médias sociaux en plus de notre public interne habituel.

La vidéo est un support particulier, car elle peut véhiculer l'authenticité d'une manière que le texte et les photos ne peuvent pas. Mais vous devez accepter le risque et l'incertitude, faute de quoi vos vidéos passeront pour des "entreprises qui essaient d'être authentiques". Ce n'est pas une bonne image. Si vous acceptez ce risque, la récompense de la transmission de la personnalité de votre entreprise est énorme - elle rassemble votre personnel d'une manière que les mises à jour par courrier électronique ne peuvent tout simplement pas faire.

L'OR DU MARKETING DE CONTENU VIDÉO : VOS EXPERTS EN LA MATIÈRE

La vidéo est le leader en matière de contenu marketing conçu pour générer des affaires, accroître la notoriété et maximiser le retour sur investissement. Les entreprises sont aujourd'hui conscientes de la nécessité d'intégrer plusieurs types de vidéos d'entreprise dans leur stratégie de contenu, ainsi que de la nécessité de créer davantage d'éléments uniques afin de se démarquer de la concurrence.

Les services de marketing doivent donc relever le défi de produire de plus grandes quantités de vidéos tout en veillant à ce que le contenu conserve le niveau d'expertise, d'autorité et de fiabilité souhaité. La vidéo doit figurer en bonne place sur votre liste de contrôle de marketing de contenu. Examinons donc l'une des formes les plus solides de vidéo d'entreprise, à savoir le contenu produit par des experts en la matière (PME).

Lisez la suite pour un aperçu de ma récente présentation à la conférence PLAY 2019 de Brightcove.

RÉALISER LA VIDÉO PARFAITE POUR LES PME

Les vidéos de type "tête parlante" ne sont pas engageantes et peuvent être très clichées. Ces types de vidéos ont donné une mauvaise réputation à l'expression "leadership éclairé" et n'apportent généralement aucune valeur réelle au spectateur.

Lors de la création de vidéos destinées aux PME, l'accent doit toujours être mis sur votre public. En quoi ces connaissances leur seront-elles utiles ? Et comment ce contenu vous aidera-t-il à gagner leur confiance ?

Dans l'ensemble, vous devriez vous concentrer sur ces trois objectifs principaux :

  • Créer un contenu utile, informatif et attrayant

  • Réaliser des vidéos pour chaque étape du cycle de vente

  • Développer un contenu qui peut être facilement adapté, réutilisé et remixé

"Le dilemme du spécialiste du marketing de contenu : ceux qui créent du contenu n'ont pas de connaissances, ceux qui ont des connaissances ne créent pas. ~ A. Lee Judge

COMMENT DÉPASSER LE DILEMME DU DÉFICIT DE CONNAISSANCES DU SPÉCIALISTE DU MARKETING DE CONTENU ?

Pour combler le déficit de connaissances constaté lors de la création d'un contenu vidéo de qualité, vous devez faire appel à des PME internes et externes :

  • Les experts internes possèdent des connaissances uniques qui ne peuvent provenir que de votre entreprise. Il s'agit des dirigeants de votre entreprise, des créateurs de produits, des prestataires de services et même des membres de l'équipe de vente. Les responsables des ventes ont répété leur discours sur les principaux facteurs de différenciation de votre marque. Ils l'ont récité encore et encore, et sont pratiquement prêts pour la caméra.

  • Les experts externes confèrent à votre entreprise autorité et confiance. Il s'agit des analystes de votre secteur, de vos partenaires et de vos clients. Les entreprises organisent souvent de grands événements où elles invitent des clients, des partenaires et d'autres experts du secteur, ainsi que des vendeurs et des cadres de haut niveau. Ces moments sont parfaits pour un tournage vidéo, car toutes les personnes citées peuvent fournir des informations que vos concurrents n'ont pas.

CRÉER UN CONTENU DE BASE AVEC LA VIDÉO

L'étape suivante consiste à déterminer le format de base de la capture de contenu. La vidéo est le type de contenu le plus fructueux car, par nature, elle se compose à la fois d'images et de texte. C'est donc dans la vidéo que réside votre véritable pouvoir de réutilisation. Vous pouvez décomposer une vidéo de grande taille pour créer différents types de contenu, tels que

  • Contenu des pages web
  • Articles
  • Podcasts
  • Infographie
  • Vidéos FAQ
  • Vidéos des coulisses
  • Clips à partager

COMMENT OBTENIR UN CONTENU DE HAUTE QUALITÉ DE LA PART DES PME

Chez Content Monsta, une agence de marketing basée à Atlanta, notre équipe a développé une offre que nous appelons simplement une journée vidéo. Il s'agit d'un tournage vidéo au cours duquel nous organisons un créneau horaire pour interviewer plusieurs PME d'une entreprise au cours d'une journée donnée. Nous avons développé une stratégie et une structure qui nous permettent de générer une grande quantité de contenu de qualité au-delà de la vidéo. Voici quelques-unes des stratégies que nous utilisons pour obtenir le contenu dont nous avons besoin :

PRÉPARER DES QUESTIONS OUVERTES

Lorsque vous savez que vous allez créer des articles écrits à partir d'une interview, vous pouvez poser des questions qui se prêtent à ce type de contenu. Par exemple, les articles de synthèse sont un format d'article à succès. Ainsi, au lieu de demander à un leader d'opinion à quel point son produit est génial, vous lui demanderez plutôt de donner cinq raisons pour lesquelles son produit ou son service est meilleur que celui de ses concurrents.

Si vous interrogez des vendeurs, demandez-leur de vous indiquer les objections les plus courantes qu'ils entendent de la part des clients. Ils vous donneront l'information, mais ajouteront naturellement une touche positive à la fin pour expliquer comment ils répondent à ces objections.

POSER DES QUESTIONS EN PENSANT À DES EXTRAITS SONORES

Imaginez la meilleure citation possible que vous pourriez tirer du PDG d'une entreprise pour la publier sur Twitter ou Facebook. À quoi ressemblerait-elle ? Utilisez ce point de référence pour inverser l'entretien et poser les questions aux PME dans un contenu vidéo de longue durée que vous savez pouvoir découper en citations ou en extraits d'une minute à la fin de l'entretien. Ces extraits seront excellents pour les messages sociaux.

POSER LA MÊME QUESTION À DIFFÉRENTS LEADERS D'OPINION

Si vous êtes en mesure d'interviewer plusieurs personnes dans des rôles différents, posez-leur à toutes la même question. Vous obtiendrez ainsi différentes citations et pourrez choisir parmi plusieurs options lors du montage de votre vidéo. En outre, lorsque vous transposerez cette vidéo en texte, vous disposerez d'autres façons d'exprimer votre point de vue. Vous obtiendrez ainsi des synonymes pour les mots clés de votre contenu. Des mots-clés plus nombreux mais différents vous aideront dans vos efforts de référencement.

Toujours interroger dans un but précis : en posant les bonnes questions, vous posez les bases nécessaires pour obtenir des réponses pertinentes pour votre contenu vidéo. Je devrais peut-être dire "interviewer dans un but nouveau".

Grâce à une série de vidéos et à un contenu créé à partir du matériel vidéo, vous pouvez amener des experts en la matière à partager des informations et des connaissances précieuses. Les meilleures vidéos de leadership éclairé apporteront de la valeur au public cible, tout en aidant votre entreprise à acquérir un avantage concurrentiel.

AUGMENTEZ LE RETOUR SUR INVESTISSEMENT DE VOS VIDÉOS : DÉVELOPPER UNE STRATÉGIE MULTI-CDN

Dans le paysage actuel de la diffusion en continu, les propriétaires de contenu du monde entier doivent déterminer comment diffuser un contenu de haute qualité rapidement et en toute sécurité, tout en proposant une offre multiplateforme abordable et évolutive. Au cours de notre récent webinaire sous forme d'interview, Dan Rayburn, expert en médias de diffusion en continu, a présenté ses idées fondées sur des données pour optimiser l'expérience de l'utilisateur et maximiser le retour sur investissement de la vidéo.

L'ENQUÊTE DIT...

Au cours du webinaire, Dan a mis en lumière les principales conclusions d'une enquête récente qu'il a menée auprès de 128 personnes interrogées dans le secteur des médias en continu aux États-Unis :

MESURER LE SUCCÈS

Soixante-douze pour cent des personnes interrogées ont déclaré que les "données d'analyse des coûts" étaient l'indicateur qui leur importait le plus pour mesurer le succès de leur diffusion en direct.

Comme l'a souligné Dan, ce résultat reflète fidèlement ce que nous disent de nombreux clients dans ce domaine. Dans l'ensemble du secteur, les gens cherchent toujours des moyens de monétiser leur contenu, et de nombreux clients sont prêts à payer un prix plus élevé pour une meilleure qualité. La question qui se pose est la suivante : "Comment mesurer, en tant que client, le succès de la diffusion en direct ?

CARACTÉRISTIQUES DE PERSONNALISATION

Soixante-huit pour cent ont déclaré que "l'amélioration de l'expérience utilisateur avec des temps de démarrage plus rapides et moins de mise en mémoire tampon" était l'une des deux fonctions de personnalisation les plus importantes en ce qui concerne la diffusion de leurs vidéos.

Ces résultats montrent que les propriétaires de contenu d'aujourd'hui ne considèrent pas le coût comme le seul facteur à prendre en compte ; ils veulent offrir une bonne expérience à l'utilisateur. Comme l'a souligné Dan, cette expérience améliorée se traduira, espérons-le, par un meilleur engagement, des revenus plus élevés pour ceux qui utilisent le modèle de la vidéo à la demande et un taux de désabonnement plus faible pour ceux qui recourent au modèle de l'abonnement.

AJOUTER LA DIFFUSION EN DIRECT À LA LIVRAISON DE VOD

Cinquante-trois pour cent des personnes interrogées n'ajoutent pas actuellement la diffusion en direct à leur offre de vidéo à la demande parce qu'elles "n'ont pas de contenu sensible au facteur temps".

Comme l'a souligné Dan, il n'est pas nécessaire que tout soit en direct : "Il s'agit d'utiliser la meilleure technologie pour le meilleur cas d'utilisation et la bonne application. Et il y a certainement un potentiel de simulation de contenu en direct, ce qui existe dans l'industrie depuis un certain temps. Nous l'avons constaté de plus en plus lorsque les gens regroupent le contenu dans des listes de lecture et créent des chaînes linéaires personnalisées. La meilleure pratique consiste à commencer par un événement en direct et à voir comment la technologie fonctionne pour vous.

PLATES-FORMES DE LECTURE

Lorsqu'on leur demande quelles sont les plateformes de lecture les plus importantes pour eux, 94 % d'entre eux choisissent la téléphonie mobile, tandis que 41 % seulement optent pour les téléviseurs intelligents.

Cette constatation s'explique par la monétisation : "La publicité sur la télévision connectée vient tout juste d'arriver sur le marché", explique Dan. S'il n'existe pas de bon moyen de monétiser une plateforme, les propriétaires de contenu ne l'utiliseront pas. Heureusement, l'industrie se réunit pour créer des normes et mettre en place une bonne expérience publicitaire. En fait, nous prévoyons que les chiffres de la Smart TV augmenteront avec le temps. Selon Dan, si nous refaisons cette enquête l'année prochaine, ce chiffre pourrait se situer entre 55 % et 60 %.

L'AMÉLIORATION DU SERVICE

Lorsqu'on leur a demandé de choisir les trois choses les plus importantes qu'un fournisseur de plateforme vidéo peut faire pour améliorer son service, les choix les plus importants ont été les suivants :

  • Meilleures conditions commerciales/flexibilité des contrats(56%)

  • Fournir des solutions qui permettent d'augmenter le retour sur investissement de la diffusion de mon contenu vidéo(43%)

  • Prendre le temps de comprendre mon activité(25%)

Comme l'a souligné Dan, les clients d'aujourd'hui ne demandent pas nécessairement un prix plus bas, mais un prix juste et flexible. Et il est important de se rappeler qu'ils "mesurent le retour sur investissement de manière très différente, en fonction de leur modèle d'entreprise. Ils ont besoin de meilleurs moyens pour comprendre l'impact de la vidéo sur leur activité".

Dans l'ensemble, les résultats de l'enquête de Dan ont montré que les téléspectateurs d'aujourd'hui recherchent une expérience multiplateforme de haute qualité, rapide et sécurisée, fournie par un prestataire abordable, évolutif et fiable.

POURQUOI UNE STRATÉGIE MULTI-CDN EST-ELLE NÉCESSAIRE ?

Dans un monde où la diffusion de contenu peut être coûteuse et complexe, comment pouvez-vous fournir l'expérience utilisateur souhaitée décrite ci-dessus tout en maintenant votre rentabilité ? Adoptez une stratégie multi-CDN.

Les CDN jouent un rôle important dans la détermination de la portée de votre audience, la diffusion de votre contenu et l'évolution de vos offres. Comme l'a souligné Dan, certains CDN sont meilleurs que d'autres, et certaines options se concentrent sur certains types de diffusion de contenu dans des secteurs verticaux, des marchés et des régions spécifiques.

En mettant en œuvre une stratégie multi-CDN, vous pouvez répartir votre trafic sur plusieurs CDN afin de comparer les coûts et la qualité, explique Dan. Cela vous permet de maximiser votre retour sur investissement et d'accroître votre flexibilité et votre redondance, car vous pouvez facilement passer d'un CDN à l'autre. En outre, vous pouvez offrir la meilleure expérience possible à vos utilisateurs finaux.

Selon Dan, une stratégie multi-CDN n'est plus réservée aux grands clients. Aujourd'hui, les fournisseurs de taille moyenne et petite peuvent utiliser des plates-formes comme Brightcove pour décider où le trafic doit aller en fonction des performances (vous n'avez donc pas à vous en occuper vous-même !). En fait, chez Brightcove, nous prenons en charge les règles de diffusion qui permettent à des clients comme Seven West Media de diffuser leur contenu de manière efficace et rentable.

Dans l'ensemble, il est important de comprendre comment et quand vos clients veulent consommer votre contenu afin de pouvoir offrir la meilleure expérience utilisateur possible, tout en étant capable de maintenir un modèle commercial rentable. "Faites les calculs économiques de base pour vous assurer que vous avez un moyen de monétiser votre contenu", a déclaré Dan. "C'est la chose la plus importante.

L'ÉQUILIBRAGE DE LA CHARGE VIDÉO AU-DELÀ DES CONTRÔLES DE SANTÉ

J'ai commencé à m'intéresser à la recherche du parfait équilibreur de charge lorsque nous avons eu une série d'incidents au travail impliquant un service communiquant avec une base de données qui se comportait de manière erratique. Bien que notre première préoccupation ait été de rendre la base de données plus stable, il m'est apparu clairement que l'impact sur le service aurait pu être considérablement réduit si nous avions été en mesure d'équilibrer la charge des requêtes de manière plus efficace entre les différents points d'extrémité de lecture de la base de données.

Plus je me suis penché sur l'état de l'art, plus j'ai été surpris de découvrir que ce problème était loin d'être résolu. Il existe de nombreux équilibreurs de charge, mais beaucoup utilisent des algorithmes qui ne fonctionnent que pour un ou deux modes de défaillance - et dans ces incidents, nous avons vu une variété de modes de défaillance.

Ce billet décrit ce que j'ai appris sur l'état actuel de l'équilibrage de charge pour la haute disponibilité, ma compréhension de la dynamique problématique des outils les plus courants, et ce que je pense que nous devrions faire à partir de maintenant.

(Clause de non-responsabilité : ce document est principalement basé sur des expériences de pensée et des observations occasionnelles, et je n'ai pas eu beaucoup de chance de trouver de la documentation académique pertinente. Les critiques sont les bienvenues).

TL;DR

Les points que j'aimerais que vous reteniez :

  • La santé du serveur ne peut être comprise que dans le contexte de la santé de la grappe.
  • Les équilibreurs de charge qui utilisent des contrôles de santé actifs pour exclure des serveurs peuvent perdre inutilement du trafic lorsque les contrôles de santé ne sont pas représentatifs de l'état réel du trafic.
  • La surveillance passive du trafic réel permet aux mesures de latence et de taux d'échec de participer à la répartition équitable de la charge.
  • Si de petites différences dans l'état des serveurs entraînent de grandes différences dans l'équilibrage de la charge, le système peut osciller de façon sauvage et imprévisible.
  • Le caractère aléatoire peut inhiber le mobbing et d'autres comportements corrélés non désirés.

FONDATIONS

Une petite remarque sur la terminologie : Dans ce billet, je parlerai de clients qui parlent à des serveurs sans faire référence à des "connexions", des "nœuds", etc. Bien qu'un logiciel donné puisse fonctionner à la fois comme client et comme serveur, même en même temps ou dans le même flux de requêtes, dans le scénario que j'ai décrit, les serveurs d'applications sont des clients des serveurs de base de données, et je me concentrerai sur cette relation client-serveur.

Dans le cas général, nous avons donc N clients qui s'adressent à M serveurs :

Diagramme de 6 rectangles de clients, chacun avec des flèches vers les 3 rectangles de serveurs, représentant un flux de trafic de plusieurs à plusieurs.

Je vais également ignorer les spécificités des demandes. Pour simplifier, je dirai que la demande du client n'est pas facultative et que le repli n'est pas possible ; si l'appel échoue, le client subit une dégradation du service.

La grande question est donc la suivante : Lorsqu'un client reçoit une requête, comment doit-il choisir le serveur à appeler ?

(Il convient de noter que je m'intéresse aux demandes, et non aux connexions de longue durée qui peuvent acheminer des flux réguliers, des rafales de trafic ou des demandes à intervalles variables. Le fait qu'une connexion soit établie pour chaque demande ou qu'elle soit réutilisée ne devrait pas avoir d'importance particulière pour les conclusions générales).

Vous vous demandez peut-être pourquoi je fais en sorte que chaque client parle à chaque serveur, ce qui est communément appelé "équilibrage de charge côté client" (bien que dans la terminologie de ce billet, l'équilibreur de charge soit également appelé un client). Pourquoi faire faire ce travail aux clients ? Il est assez courant de placer tous les serveurs derrière un équilibreur de charge dédié.

Diagramme de 6 clients avec des flèches vers un seul équilibreur de charge dédié, qui a ensuite des flèches vers 3 serveurs.

Le problème est que si vous n'avez qu'un seul nœud d'équilibrage de charge dédié, vous avez un seul point de défaillance. C'est pourquoi il est d'usage d'installer au moins trois nœuds de ce type. Mais remarquez maintenant que les clients doivent choisir à quel équilibreur de charge s'adresser... et que chaque nœud d'équilibreur de charge doit encore choisir à quel serveur envoyer chaque demande ! Le problème n'est même pas déplacé, il est simplement doublé. ("Maintenant, vous avez deux problèmes.")

Je ne dis pas que les équilibreurs de charge dédiés sont mauvais. Le problème de savoir à quel équilibreur de charge s'adresser est traditionnellement résolu par l'équilibrage de charge DNS, ce qui est généralement bien, et il y a beaucoup à dire sur l'utilisation d'un point plus centralisé pour le routage, la journalisation, les métriques, etc. Mais ils ne permettent pas vraiment de contourner le problème, car ils peuvent toujours être la proie de certains modes de défaillance, et ils sont généralement moins flexibles que l'équilibrage de charge côté client.

VALEURS

Quelle est donc la valeur d'un équilibreur de charge ? Pour quoi optimisons-nous ?

Dans un certain ordre, en fonction de nos besoins :

  • Réduire l'impact des pannes de serveur ou de réseau sur la disponibilité globale de nos services
  • Maintenir le temps de latence des services à un niveau bas
  • Répartir uniformément la charge entre les serveurs
    • Ne pas trop solliciter un serveur si les autres ont une capacité de réserve.
    • Prévisibilité : Il est plus facile de voir quelle est la marge de manœuvre du service.
  • Répartition de la charge inégalement si les serveurs ont des capacités variables, qui peuvent varier dans le temps ou selon le serveur (distribution équitable, plutôt qu'égale)
    • Un pic soudain ou un volume important de trafic juste après le démarrage du serveur risque de ne pas laisser au serveur le temps de se réchauffer. Une augmentation progressive jusqu'au même niveau de trafic peut suffire.
    • Les charges de CPU hors service, telles que l'installation de mises à jour, peuvent réduire la quantité de CPU disponible sur un seul serveur.

SOLUTIONS NAÏVES

Avant d'essayer de tout résoudre, examinons quelques solutions simplistes. Comment répartir équitablement les demandes quand tout va bien ?

  • Round-robin
    • Le client passe d'un serveur à l'autre
    • Garantie d'une distribution uniforme
  • Sélection aléatoire
    • Approche statistique d'une distribution uniforme, sans tenir compte de l'état (compromis coordination/CPU)
  • Choix statique
    • Chaque client choisit un seul serveur pour toutes ses demandes.
    • C'est ce que fait l'équilibrage de charge DNS : Les clients résolvent le nom de domaine du service en une ou plusieurs adresses, et la pile réseau du client en choisit une et la met en cache. C'est ainsi que le trafic entrant est équilibré pour la plupart des équilibreurs de charge dédiés ; leurs clients n'ont pas besoin de savoir qu'il existe plusieurs serveurs.
    • Un peu comme le hasard, il fonctionne bien lorsque 1) les TTL DNS sont respectés et 2) il y a beaucoup plus de clients que de serveurs (avec des taux de requêtes similaires).

Et que se passe-t-il si l'un des serveurs tombe en panne dans une telle configuration ? S'il y a trois serveurs, une demande sur trois échoue. Le meilleur taux de réussite possible dans ce scénario, en supposant un équilibreur de charge parfait et une capacité suffisante sur les deux serveurs restants, est de 100 %. Comment y parvenir ?

Diagramme de 6 clients parlant chacun aux 3 mêmes serveurs, mais toutes les lignes vers le serveur central sont rouges, et le serveur central est marqué d'un X rouge.

DÉFINIR LA SANTÉ

La solution habituelle est celle des contrôles de santé. Les contrôles de santé permettent à un équilibreur de charge de détecter certaines défaillances du serveur ou du réseau et d'éviter d'envoyer des requêtes aux serveurs qui ne satisfont pas au contrôle.

En général, nous souhaitons connaître la "santé" de chaque serveur, quelle qu'en soit la signification, car cela peut avoir une valeur prédictive pour répondre à la question principale : "Ce serveur est-il susceptible de donner une mauvaise réponse si je lui envoie cette requête ? "Ce serveur est-il susceptible de donner une mauvaise réponse si je lui envoie cette requête ?" Il existe également une question de plus haut niveau : "Ce serveur risque-t-il de devenir malsain si je lui envoie plus de trafic ?" (Ou redevenir sain si je lui envoie moins de trafic). Une autre façon de dire cela est que certains cas de mauvaise santé peuvent dépendre de la charge, tandis que d'autres sont indépendants de la charge ; il est essentiel de connaître la différence pour prédire comment acheminer le trafic lorsqu'une mauvaise santé est observée.

D'une manière générale, la "santé" est donc un moyen de modéliser l'état extérieur au service de la prédiction. Mais qu'est-ce qui est considéré comme malsain ? Et comment le mesurer ?

CHOISIR UN POINT DE VUE

Avant d'entrer dans les détails, il est important de noter qu'il existe deux points de vue très différents que nous pouvons utiliser :

  • La santé intrinsèque du serveur : L'application serveur est en cours d'exécution, elle répond, elle est capable de communiquer avec toutes ses dépendances et elle n'est pas soumise à de fortes pressions sur les ressources.
  • La santé du serveur observée par le client : La santé du serveur, mais aussi la santé de l'hôte du serveur, la santé du réseau intermédiaire, et même si le client est configuré avec une adresse valide pour le serveur.

D'un point de vue pratique, la santé intrinsèque du serveur n'a pas d'importance si le client ne peut même pas l'atteindre. C'est pourquoi nous nous intéresserons principalement à la santé du serveur telle qu'elle est observée par le client. Il y a cependant une certaine subtilité : À mesure que le nombre de requêtes adressées au serveur augmente, c'est l'application serveur qui risque d'être le goulot d'étranglement, et non le réseau ou l'hôte. Si nous commençons à observer une augmentation de la latence ou du taux d'échec du serveur, cela peut signifier que le serveur souffre de la charge de requêtes, ce qui implique qu'une charge de requêtes supplémentaire pourrait aggraver son état de santé. Il se peut aussi que le serveur ait une capacité suffisante et que le client n'observe qu'un problème de réseau transitoire, indépendant de la charge, peut-être dû à un routage non optimal. Dans ce cas, il est peu probable qu'une charge de trafic supplémentaire change la situation. Étant donné que, dans le cas général, il peut être difficile de faire la distinction entre ces deux cas, nous utiliserons généralement les observations du client comme norme de santé.

QUELLE EST LA MESURE DE LA SANTÉ ?

Que peut donc apprendre un client sur l'état de santé d'un serveur à partir des appels qu'il émet ?

  • Le temps de latence: Combien de temps faut-il pour que les réponses reviennent ? Ce délai peut être décomposé en plusieurs étapes : Temps d'établissement de la connexion, temps jusqu'au premier octet de la réponse, temps jusqu'à la réponse complète ; minimum, moyenne, maximum, divers percentiles. Il convient de noter qu'il y a un amalgame entre les conditions du réseau et la charge du serveur - sources indépendantes de la charge et sources dépendantes de la charge, respectivement (dans la majorité des cas).
  • Taux d'échec: Quelle fraction des demandes aboutit à un échec ? (Plus d'informations sur la signification de l'échec dans un instant).
  • Concurrence: Combien de demandes sont actuellement en cours de traitement ? Cette question confond les effets du comportement du serveur et du client : il peut y avoir plus de demandes en vol vers un serveur, soit parce que le serveur est sauvegardé, soit parce que le client a décidé de lui confier une plus grande proportion de demandes pour une raison ou pour une autre.
  • Taille de la file d'attente: Si le client maintient une file d'attente par serveur plutôt qu'une file d'attente unifiée, une file d'attente plus longue peut être un indicateur de mauvaise santé ou (à nouveau) d'une charge inégale de la part du client.

Avec la taille de la file d'attente et le nombre de requêtes simultanées, nous constatons que toutes les mesures ne sont pas liées à la santé en soi, mais qu'elles peuvent également être indicatives de la charge. Ces mesures ne sont pas directement comparables, mais les clients souhaitent vraisemblablement confier davantage de demandes à des serveurs en meilleure santé et moins chargés, de sorte qu'elles peuvent être utilisées parallèlement à des mesures plus intrinsèques telles que la latence et le taux de défaillance.

Toutes ces mesures sont effectuées du point de vue du client. Il est également possible de faire en sorte que le serveur rapporte lui-même son utilisation, bien que ce point ne soit pas abordé dans ce billet.

Tous ces éléments peuvent également être mesurés sur différents intervalles de temps : Valeur la plus récente, fenêtre glissante (ou paliers roulants), moyenne décroissante, ou plusieurs de ces éléments combinés.

DÉFINITION DE L'ÉCHEC

Parmi ces indicateurs de santé, le taux d'échec est peut-être le plus important : Dans la plupart des cas d'utilisation, un appelant préférerait obtenir un succès lent plutôt qu'un échec quelconque. Mais il existe différents types d'échec, et ils peuvent impliquer différentes choses sur l'état du serveur.

Si un appel n'aboutit pas, il peut y avoir des problèmes de réseau ou de routage entraînant une latence élevée, ou le serveur peut être très sollicité. Mais si l'appel échoue rapidement, les implications sont très différentes : Mauvaise configuration du DNS, serveur en panne, mauvaise route. Une défaillance rapide est moins susceptible de dépendre de la charge, à moins que le serveur n'utilise le délestage de charge pour tomber intentionnellement en panne rapide en cas de forte charge, auquel cas il est possible qu'il ne soit pas davantage sollicité par une charge supplémentaire.

Si l'on considère les échecs au niveau de l'application, et pas seulement les échecs au niveau du transport, il est essentiel de choisir avec soin les critères permettant de marquer un appel comme ayant échoué. Par exemple, un appel HTTP qui n'aboutit pas (en raison d'un dépassement de délai, etc.) est sans ambiguïté un échec, mais une réponse bien formée avec un code d'état d'erreur (4xx ou 5xx) peut ne pas indiquer un problème de serveur. Une requête individuelle peut déclencher une erreur de serveur 500 dépendante des données, qui n'est pas représentative de l'état général du serveur. Il est courant de voir une explosion de réponses 404 ou 403 dues à un appelant dont les requêtes sont mal formées, mais seul cet appelant est affecté ; juger le serveur malsain uniquement sur cette base ne serait pas judicieux. D'un autre côté, il est moins probable qu'un délai de lecture soit spécifique à une mauvaise requête.

QU'EN EST-IL DES CHÈQUES SANTÉ ?

Jusqu'à présent, nous avons surtout parlé des moyens par lesquels un client peut glaner passivement des informations sur la santé du serveur à partir des requêtes qu'il est déjà en train d'effectuer. Une autre approche consiste à utiliser des contrôles de santé actifs.

Les contrôles de santé de l'ELB (Elastic Load Balancer) d'AWS en sont un exemple. Vous pouvez configurer l'équilibreur de charge pour qu'il appelle un point d'extrémité HTTP sur chaque serveur toutes les 30 secondes. Si l'ELB obtient une réponse 5xx ou un dépassement de délai deux fois de suite, il ne prend plus le serveur en considération pour les demandes normales. Il continue cependant à effectuer les appels de contrôle de santé, et si le serveur répond normalement 10 fois de suite, il est réintégré dans la rotation.

Cela démontre l'utilisation de l'hystérésis pour s'assurer que l'hôte n'entre pas en service et ne sort pas du service trop rapidement. (Un exemple familier d'hystérésis est la façon dont le thermostat d'un climatiseur maintient une "fenêtre de tolérance" autour de la température désirée). Il s'agit d'une approche courante, qui peut fonctionner raisonnablement bien dans les scénarios où un serveur est soit en bonne santé, soit en mauvaise santé, et ne change pas fréquemment d'état. Dans la situation moins courante de taux de défaillance faibles et persistants, inférieurs à 40 %, qui affectent à la fois le contrôle de santé et le trafic normal, un ELB, dans sa configuration par défaut, ne verrait pas de défaillances consécutives suffisamment fréquentes pour mettre l'hôte hors service.

Les contrôles de santé doivent être conçus avec soin pour éviter qu'ils n'aient un effet erroné sur l'équilibreur de charge. Voici quelques-uns des types de réponses qu'un appel à un contrôle de santé peut être censé fournir :

  • Test de fumée : Passez un appel réaliste et voyez si la réponse attendue se produit.
  • Contrôle fonctionnel des dépendances : Le serveur fait appel à toutes ses dépendances et renvoie un message d'échec si l'une d'entre elles échoue.
  • Vérification de la disponibilité : Il suffit de voir si le serveur peut répondre à tous appeler, par exemple GET /ping rendements 200 OK et un corps de réponse de pong

Il est important que le bilan de santé soit aussi représentatif que possible du trafic réel. Dans le cas contraire, il peut produire des faux positifs ou des faux négatifs inacceptables. Par exemple, si le serveur possède un certain nombre de routes API et qu'une seule de ces routes est cassée à cause d'une dépendance défaillante... ce serveur est-il sain ? Si votre test de santé n'atteint que cette route, votre client considérera que le serveur est entièrement cassé ; en revanche, si cette route est la seule qui fonctionne, votre client peut considérer que le serveur est parfaitement sain.

Les contrôles fonctionnels peuvent être plus complets, mais ce n'est pas nécessairement mieux, car cela peut facilement aboutir à ce qu'un serveur (ou tous les serveurs !) soit marqué comme étant hors service si même une seule dépendance optionnelle est hors service. C'est utile pour la surveillance opérationnelle, mais dangereux pour l'équilibrage de la charge ; c'est pourquoi de nombreuses personnes se contentent de configurer de simples contrôles de disponibilité.

Les contrôles de santé actifs fournissent généralement une vue binaire de la santé d'un serveur, même s'ils sont suivis dans le temps, puisqu'un serveur peut être dans un état dégradé où il peut répondre de manière cohérente à certaines requêtes mais pas à d'autres. La surveillance passive de l'état du trafic, en revanche, donne une vision scalaire (ou même plus nuancée) de l'état, puisque le client sait au moins quelle proportion des requêtes reçoit des échecs - et surtout, cette surveillance passive permet d'obtenir une vision complète de l'état du trafic. (Les deux types de contrôle peuvent bien sûr suivre les informations relatives à la latence ; certaines de ces distinctions ne valent que pour la mesure du taux d'échec).

LES CONTRÔLES DE SANTÉ BINAIRES ET LA DÉTECTION DES ANOMALIES

Cette vision binaire peut entraîner de graves problèmes, car elle ne permet pas de comparer la santé des différents serveurs. Ceux-ci sont simplement regroupés en deux catégories, "en hausse" ou "en baisse", sur la base d'un seul type d'appel qui peut ne pas être représentatif. Même si vous aviez plusieurs appels de contrôle de santé, rien ne garantit qu'ils restent représentatifs de la santé de votre serveur au fur et à mesure que son API s'étend et que les besoins des clients évoluent. Pire encore, des défaillances corrélées peuvent entraîner des défaillances en cascade inutiles. Examinez les scénarios suivants :

  • Si 100% de vos hôtes ont des contrôles de santé actifs et réussis, un équilibreur de charge idéal devrait router vers tous les hôtes.
  • Si 90 % réussissent, il convient d'acheminer les données vers ces 90 % uniquement - la raison pour laquelle les 10 % échouent n'a pas d'importance, puisque le reste de la grappe peut sans aucun doute gérer la charge.
  • Si seulement 10% passent... route vers tous les hôtes - il vaut mieuxparier sur le fait que le contrôle de santé est erroné (ou non pertinent) plutôt que d'écraser les 10% qui passent les contrôles.
  • Si 0 % des demandes passent, acheminez-les vers tous les hôtes - vous échouez à 100 % des demandes que vous n'acheminez pas, comme on dit.

Plus la fraction d'hôtes qui passe est proche de zéro, plus il est probable qu'il y ait une défaillance dans quelque chose d'externe aux hôtes, ou même quelque chose qui ne va pas avec le contrôle de santé. Imaginez que votre contrôle de santé dépende d'un compte de test, et que ce compte soit supprimé. Ou peut-être qu'une dépendance tombe en panne, mais que la plupart des requêtes peuvent encore être traitées. Néanmoins, tous les contrôles de santé échouent ; l'ELB met hors service chacun de vos hôtes, même si les requêtes entrantes étaient parfaitement traitées.

Il en ressort que la santé est relative: Un serveur peut être en meilleure santé que ses voisins même s'ils ont tous un problème. Il est d'ailleurs plus facile de s'en rendre compte en utilisant des scalaires plutôt que des booléens.

Essentiellement, vous aimeriez que votre équilibreur de charge effectue une sorte de détection d'anomalie simple. Si une petite fraction de vos serveurs se comporte bizarrement, il suffit de les exclure et d'envoyer un message aux services d'exploitation. Si la plupart ou la totalité des serveurs se comportent bizarrement ? N'aggravez pas la situation en faisant porter toute la charge sur une petite poignée de serveurs, ou pire, sur aucun d'entre eux.

La clé, ici, est d'évaluer la santé du serveur en vue de l'ensemble du cluster, plutôt que de manière atomique. Ce qui s'en rapproche le plus jusqu'à présent est l'équilibreur de charge d'Envoy, qui dispose d'un "seuil de panique" qui, par défaut, maintient tous les hôtes en service si 50 % ou plus d'entre eux ont des bilans de santé défaillants. Si vous utilisez des contrôles de santé dans votre équilibreur de charge, envisagez d'utiliser une telle approche.

Vous remarquerez peut-être que je n'ai pas abordé la question de savoir ce qu'il faut faire lorsque 30 à 70 % des serveurs échouent aux contrôles. Cette situation peut indiquer une véritable défaillance et peut être dépendante ou indépendante de la charge. Je ne suis pas sûr qu'il soit possible pour un équilibreur de charge de savoir quelle situation s'applique, même s'il est prêt à faire des expériences astucieuses de charge de trafic A/B pour le découvrir. Pire encore, le fait de faire peser toute la charge sur un nombre relativement restreint de serveurs peut entraîner l'arrêt de ces derniers. Outre le délestage, il n'y a pas grand-chose à faire dans cette situation, et je ne suis pas sûr de pouvoir critiquer une conception qui maintient ces serveurs en service, ou une conception qui les met hors service, lorsque l'on se trouve dans cette fourchette intermédiaire - parce que j'ai été l'un des humains dans la boucle lors d'un tel incident de production, et ce n'était pas clair pour nous à ce moment-là non plus.

Une autre différence entre ces approches actives et passives est qu'avec la vérification active, les informations sur la santé du serveur sont mises à jour à un rythme régulier, quel que soit le taux de trafic. Cela peut être un avantage lorsque le trafic est faible, ou un inconvénient lorsqu'il est élevé. (Cinq secondes d'échecs peuvent représenter une longue période lorsque vous avez 10 000 requêtes par seconde). En revanche, avec la vérification passive, la vitesse de détection des défaillances est proportionnelle au taux de requêtes.

Mais il y a un inconvénient majeur à la vérification passive de la santé. Si un serveur tombe en panne, l'équilibreur de charge le met rapidement hors service. Cela signifie qu'il n'y a plus de trafic, et l'absence de trafic signifie que la vision qu'a le client de l'état de santé du serveur ne change jamais : Elle reste à zéro pour toujours.

Il existe bien sûr des solutions à ce problème, dont certaines concernent également d'autres cas d'absence de données, tels que le démarrage du client ou le remplacement d'un seul serveur dans la liste des serveurs du client. Tous ces cas doivent être traités de manière spécifique si l'on utilise la vérification passive.

Diagramme de 6 clients s'adressant à 2 serveurs dont l'état de santé est de 100 % ; le troisième serveur est marqué de points d'interrogation et n'est pas desservi.

BILAN DE SANTÉ

En résumé :

  • La surveillance passive du trafic donne nécessairement une vision plus complète et plus nuancée de l'état de santé que les contrôles actifs.
  • Il existe plusieurs axes d'évaluation de la santé
  • L'état de santé d'un serveur ne peut être compris que par rapport à la grappe.

Mais que faisons-nous de ces informations ? Comment combiner tous ces chiffres à valeur réelle pour atteindre nos objectifs de réduction de la latence, de minimisation des défaillances et de répartition uniforme de la charge ?

J'aimerais d'abord faire une digression sur une famille de modes de défaillance, puis discuter de quelques approches courantes d'équilibrage de charge tenant compte de l'état de santé, et enfin énumérer quelques orientations possibles pour l'avenir.

Une action non coordonnée peut avoir des conséquences surprenantes. Imaginons qu'une grande entreprise envoie un courriel à ses employés : "Nous offrons des massages à tous les employés dans l'auditorium 2 aujourd'hui ! Venez quand vous voulez." Quand pensez-vous que les gens viendront ? Je pense qu'il y aura une grande affluence à certains moments de la journée :

  • Tout de suite
  • Après le déjeuner
  • Fin d'après-midi avant de rentrer à la maison

Avec cette répartition inégale, les massothérapeutes n'ont parfois personne sur qui travailler ; à d'autres moments, les files d'attente sont suffisamment longues pour que les gens abandonnent, voire ne réessayent pas plus tard. Aucune de ces situations n'est souhaitable. Sans aucune coordination - parce qu 'il n'y a pas de coordination - les gens se présentent quand même en groupes ! Le comportement corrélé accidentel dans ce scénario est facile à prévenir à l'aide d'un outil courant : La feuille d'inscription. (Dans le domaine des logiciels, l'analogue le plus proche serait un système de traitement par lots qui accepte des tâches, les planifie à sa convenance et renvoie les résultats de manière asynchrone).

Il s'avère qu'il existe un certain nombre de phénomènes similaires dans le trafic des API, souvent regroupés sous le nom de " problème du troupeau tonitruant". Un exemple classique est celui d'un service de cache consulté par des centaines de nœuds d'application. Lorsque l'entrée du cache expire, l'application doit recréer la valeur avec des données fraîches, ce qui nécessite à la fois du travail supplémentaire et (probablement) des appels réseau supplémentaires à d'autres serveurs. Si des centaines de nœuds d'application observent simultanément l'expiration d'une entrée de cache populaire (parce qu'ils reçoivent tous constamment des demandes pour ces données), ils tenteront tous simultanément de la recréer et d'appeler simultanément les services dorsaux responsables de la production de données fraîches. Ce n'est pas seulement du gaspillage (dans le meilleur des cas, un seul nœud d'application devrait effectuer cette tâche, une fois par durée de vie du cache), mais cela pourrait même écraser les serveurs dorsaux, qui sont normalement à l'abri derrière le cache.

La solution classique aux problèmes de troupeau tonnant dans l'expiration du cache est d'expirer de manière probabiliste l'entrée du cache de manière anticipée pour chaque appelant, plutôt que de la faire expirer au même moment partout. L'approche la plus simple consiste à ajouter de la gigue, un petit nombre aléatoire soustrait de la date d'expiration chaque fois que le client consulte le cache. Un raffinement de cette technique, XFetch, biaise la gigue pour retarder le rafraîchissement jusqu'au dernier moment possible.

Un autre problème bien connu survient lorsqu'un grand nombre d'utilisateurs d'un service mettent en place une tâche périodique pour appeler une API. Il se peut que chaque utilisateur d'un service de sauvegarde installe une tâche cron pour télécharger une sauvegarde à minuit (soit dans leur fuseau horaire local, soit plus probablement en UTC).

Là encore, il existe une solution standard : Lors de l'intégration d'un nouvel utilisateur, générez un fichier crontab suggéré à installer, en utilisant une heure choisie au hasard pour chaque utilisateur. Cela peut même fonctionner sans point central de coordination si le logiciel de sauvegarde écrit lui-même le fichier crontab, en choisissant une heure aléatoire lors de la première installation. (Vous remarquerez peut-être qu'une approche similaire pourrait fonctionner pour le scénario du massage si une feuille d'inscription centrale ne pouvait pas être utilisée pour une raison quelconque : Les employés choisissent au hasard un moment de la journée où ils sont libres et s'y rendent à ce moment-là, même si ce n'est pas nécessairement le moment optimal pour leur propre emploi du temps).

Ces deux solutions - expiration par intermittence et programmation aléatoire - font toutes deux appel au hasard pour contrer les comportements non coordonnés mais corrélés. Il s'agit là d'un principe important : L'aléatoire inhibe la corrélation. Nous le verrons à nouveau lorsque nous aborderons certains défis liés à l'équilibrage de la charge.

Le scénario du massage montre également une autre approche consistant à s'appuyer sur un point central de coordination. C'est l'un des avantages de l'utilisation d'une petite grappe de serveurs puissants pour un équilibreur de charge dédié : chaque serveur a une vue d'ensemble du flux de trafic que n'aurait pas un grand nombre de clients. Un autre moyen d'améliorer la coordination consiste à demander aux serveurs de signaler eux-mêmes leur utilisation sous forme de métadonnées parasites dans leurs réponses. Ce n'est pas toujours possible, mais l'utilisation rapportée par le serveur donne aux clients des informations agrégées auxquelles ils n'auraient pas accès autrement. Cela pourrait donner aux équilibreurs de charge côté client une vue plus globale du type de celle qu'un équilibreur de charge dédié pourrait avoir. En prime, cela peut parfois aider à faire la distinction entre les pannes de serveur et de réseau, avec des implications pour les interprétations dépendantes ou non de la charge.

En gardant à l'esprit cet aspect de la dynamique du système, revenons à la manière dont les répartiteurs de charge utilisent les informations relatives à la santé.

L'UTILISATION DE L'ÉTAT DE SANTÉ DANS L'ÉQUILIBRAGE DE LA CHARGE

Les répartiteurs de charge séparent généralement l'utilisation des informations sur la santé en deux catégories :

  1. Décider quels sont les serveurs candidats aux demandes, puis
  2. Décider quel candidat sélectionner pour chaque demande

L'approche classique les traite comme deux niveaux totalement distincts. Les systèmes ELB, ALB et NLB d'AWS, par exemple, utilisent divers algorithmes pour répartir la charge (aléatoire, round-robin, aléatoire déterministe, et le plus faible), mais il existe un mécanisme distinct, largement basé sur des contrôles de santé actifs, pour déterminer quels serveurs peuvent participer à ce processus de sélection. (D'après la documentation, il semble que les NLB utiliseront également une surveillance passive pour décider de l'exclusion d'un serveur, mais les détails sont rares).

Les méthodes aléatoires, round-robin et aléatoires déterministes (telles que flow-hash) ignorent complètement la santé : Un serveur est soit in, soit out. L'algorithme du moins-disant, quant à lui, utilise une mesure passive de l'état de santé. (Notez que même cet algorithme de sélection des serveurs est totalement séparé des vérifications actives utilisées pour retirer les serveurs de la grappe). L'algorithme Least-outstanding ("choisir le serveur dont la concurrence est la plus faible") est l'une des nombreuses approches permettant d'utiliser des mesures de santé passives pour l'allocation des requêtes, chacune étant basée sur l'optimisation de l'une des mesures mentionnées plus haut : Latence, taux d'échec, simultanéité, taille de la file d'attente.

ALGORITHMES DE SÉLECTION

Certains algorithmes de sélection de l'équilibrage de charge choisissent le serveur ayant la meilleure valeur pour une métrique. À première vue, c'est logique : Cela donne à la requête en cours la meilleure chance d'aboutir, et rapidement. Cependant, cela peut conduire à ce que j'appelle le mobbing: Si la latence est l'indicateur de santé choisi et qu'un serveur présente une latence légèrement inférieure à celle des autres (vue par tous les clients), tous les clients enverront l'ensemble de leur trafic vers ce serveur, du moins jusqu'à ce qu'il commence à souffrir de la charge, voire à tomber en panne. Au fur et à mesure que le serveur commence à souffrir, sa latence effective augmente et il est possible qu'un autre serveur obtienne le titre de serveur globalement le plus sain. Ce phénomène peut se répéter de manière cyclique et n'être déclenché que par une très légère différence de santé initiale.

Diagramme de 6 clients s'adressant à 3 serveurs. Les flèches très épaisses montrent que les clients envoient une charge importante au premier serveur, qui est marqué par "99,8 %". Les flèches fines vont vers les deux autres serveurs, qui sont marqués par "99,7 %".

Le comportement de harcèlement moral est le résultat d'une confluence de plusieurs défauts dans le système :

  • La latence est une mesure de santé retardée. Si la simultanéité (nombre de requêtes en vol) était utilisée à la place, les clients ne se plaindraient pas, puisque la mesure de la simultanéité est instantanément mise à jour du côté du client dès qu'un plus grand nombre de requêtes est alloué à un serveur. Les mesures retardées, même avec amortissement, peuvent entraîner une oscillation ou une résonance indésirable.
  • Les clients n'ont pas une vision globale de la situation et agissent donc de manière non coordonnée pour produire un comportement corrélé non désiré.
  • Une petite différence dans l'état de santé du serveur produit une grande différence dans le comportement d'équilibrage de la charge. Étant donné qu'il y a des rétroactions de ce dernier vers le premier, cela correspond à une description des systèmes chaotiques, qui sont très sensibles aux conditions initiales.

Les remèdes, tels que je les vois :

  • Utilisez des mesures de santé rapides dans la mesure du possible. En effet, un algorithme très courant de sélection de l'équilibrage de la charge consiste à envoyer toutes les demandes au serveur ayant le moins de demandes en cours. (Parfois appelé "moins de connexions" ou "moins de demandes en attente", selon qu'il s'agit d'une connexion ou d'une demande - certaines connexions ont une longue durée de vie et transmettent de nombreuses demandes au cours de leur existence). En revanche, je ne crois pas avoir vu d'algorithme de sélection de la moindre latence, probablement pour cette même raison.
  • Il faut soit tenter d'obtenir une vision globale de la situation (en utilisant un équilibreur de charge dédié avec un petit nombre de serveurs, ou en incorporant l'utilisation signalée par les serveurs), soit utiliser le hasard pour inhiber les comportements corrélés non désirés.
  • Utilisez des algorithmes qui ont approximativement le même comportement pour approximativement les mêmes entrées. Ils n'ont pas besoin d'avoir un comportement continuellement variable, mais peuvent utiliser le hasard pour obtenir quelque chose qui s'en rapproche.

Il existe une alternative populaire au "pick-the-best" appelée " two-choice", décrite dans l'article The Power of Two Random Choices, qui traite d'une approche générale de l'allocation des ressources (qui n'est pas spécifique ni même centrée sur les équilibreurs de charge, mais qui est certainement pertinente). Dans cette approche, deux candidats sont sélectionnés et celui qui est en meilleure santé est utilisé. Cette méthode permet d'obtenir une répartition uniforme lorsque l'état de santé à long terme de tous les serveurs approche une valeur identique, mais même une petite différence persistante dans l'état de santé peut déséquilibrer considérablement la répartition de la charge. Une simulation simpliste sans rétroaction illustre ce phénomène :

;; Select the index of one of N servers with health ranging ;; from 1000 to 1000-N, +/-N (defn selecttc [n] (let [spread n ;; top and bottom health ranges overlap by ~half ;; Compute health of a server, by index health (fn [i] (+ (- 1000 i spread) (* 2 spread (rand)))) ;; Randomly choose two servers, without replacement [i1 i2] (take 2 (shuffle (range n)))] ;; Pick the index of the healthier server (if (< (health i1) (health i2)) i2 i1)))

; ; Exécutez 10 000 000 d'essais avec 5 hôtes et indiquez le nombre de fois ; ; que chaque index d'hôte a été sélectionné (tri par clé (fréquences (répétitivement 10000000 #(selecttc 5)))) ;;= ([0 2849521] [1 2435167] [2 2001078] [3 1566792] [4 1147442]))

En supposant que l'augmentation de la charge n'affecte pas la métrique de santé, cela produirait une différence de 2,5 fois dans la charge de requête entre les hôtes les plus sains et les plus malsains lorsque les hôtes ont même un classement approximatif de la santé. Notez que l'état de santé de l'hôte 0 est compris entre 995 et 1005 et celui de l'hôte 4 entre 991 et 1001 ; bien qu'il n'y ait que 1 à 2% d'écart en termes absolus, ce léger biais est amplifié par un important déséquilibre de la charge.

Bien que le double choix réduise le mobbing (et fonctionne très bien en l'absence de biais, ce qui peut être le cas s'il y a des rétroactions), il est clair qu'il ne s'agit pas d'un mécanisme de sélection approprié à utiliser avec des mesures de santé différées. En outre, l'article semble se concentrer sur la réduction maximale de la charge pour un ensemble identique d'options, ce qui n'est pas le cas pour les équilibreurs de charge tenant compte de l'état de santé.

D'autre part, la méthode des deux choix fonctionne bien avec la moins bonne note, car le retour d'information est à la fois instantané et autocorrectif. Le principe de la moindre résistance est en soi un défi, car il peut avoir des valeurs quantifiées de petite taille. Un serveur avec une connexion ouverte est-il deux fois plus sain qu'un serveur avec deux connexions ouvertes ? Qu'en est-il de zéro et de un ? Avec de petites valeurs moyennes, la randomisation comme moyen de départage devient très importante, de peur que le premier serveur de la liste ne reçoive toujours des demandes par défaut - si chaque client n'a qu'une connexion ouverte, mais qu'il y a 300 clients, ils peuvent collectivement se liguer contre ce seul serveur. Le double choix, avec son caractère aléatoire, se présente comme un antidote naturel au mobbing résultant des petites valeurs discrètes de least-outstanding.

Une option très prometteuse, bien qu'encore théorique, est la sélection aléatoire pondérée. Chaque serveur se voit attribuer un poids dérivé de ses mesures de santé, et un serveur est choisi en fonction de ce poids. Par exemple, si les serveurs ont des poids de 7, 3 et 1, ils auront respectivement 70 %, 30 % et 10 % de chances d'être sélectionnés à chaque fois. L'utilisation de cet algorithme nécessite des précautions pour éviter le piège de la famine, et la dérivation des poids doit utiliser une fonction non linéaire bien choisie de sorte qu'un serveur dont l'état de santé correspond à 90 % de celui des autres reçoive un poids considérablement réduit, peut-être seulement 20 % en termes relatifs. Au travail, j'expérimente cette approche et j'ai de grands espoirs en elle après quelques expériences d'intégration locale, mais je ne l'ai pas encore vue testée avec un trafic réel. Si c'est le cas, j'entrerai probablement dans les détails dans un prochain article sur un nouvel algorithme d'équilibrage de charge.

COMBINER LES MESURES DE SANTÉ

J'ai remis à plus tard la question de l'utilisation de plusieurs indicateurs de santé. À mon avis, c'est la partie la plus difficile, et elle touche au cœur de la question : Comment définir la santé pour votre application ?

Supposons que vous suiviez la latence, le taux d'échec et la simultanéité, car tous ces éléments sont importants pour vous. Comment les combiner ? Un taux d'échec de 5 % est-il aussi mauvais qu'une latence multipliée par 10 (100x ?)? (100x ?) À quel moment préférez-vous tenter votre chance avec un serveur disponible à 90 % alors que l'autre affiche des pics de latence massifs ? Deux stratégies générales viennent à l'esprit.

Vous pourriez adopter une approche par paliers, en définissant des seuils d'acceptabilité pour chaque mesure et en ne sélectionnant que les serveurs présentant des taux de défaillance acceptables ; s'il n'y en a pas, choisissez ceux dont la latence est acceptable, etc. Peut-être avez-vous défini un seuil de débordement de sorte que si le groupe acceptable est trop petit, les serveurs du niveau immédiatement inférieur sont également pris en considération. (Cette idée ressemble un peu aux niveaux de priorité d'Envoy).

Vous pouvez également utiliser des mesures fusionnées, dans lesquelles les mesures sont combinées en fonction d'une fonction continue. Il se peut que vous accordiez plus d'importance à certaines mesures. J'expérimente actuellement la dérivation d'un facteur de pondération [0,1] pour chaque mesure de santé, et leur multiplication, avec certains élevés à des puissances supérieures (au carré ou au cube) pour leur donner plus de poids. (Je soupçonne que de très grandes puissances pourraient être utilisées pour mettre en œuvre quelque chose comme l'approche par paliers même en utilisant un combinateur de métriques fusionnées).

Il convient également d'examiner la manière dont ces mesures peuvent varier conjointement, ce qui laisse entrevoir les avantages possibles d'une modélisation plus avancée de l'état du serveur et de la connexion. Prenons l'exemple d'un serveur qui est entré dans un mauvais état et qui crache des réponses d'échec très rapidement. Si la seule mesure de santé est la latence, ce serveur apparaît désormais comme le plus sain de la grappe et reçoit donc une plus grande partie du trafic. rachelbythebay appelle cela l'effet de capture équilibrée de la charge. Rapide n'est pas toujours sain ! En fonction de votre configuration, une approche fusionnée peut ou ne peut pas supprimer suffisamment le trafic vers ce serveur rebelle, tandis qu'une approche par niveaux qui donne la priorité à un faible taux d'échec l'exclurait complètement.

La latence et le taux d'échec, en général, sont liés l'un à l'autre de manière peu évidente. Outre le scénario de la "production rapide d'échecs", il y a aussi la question des échecs avec ou sans dépassement de délai. Dans des conditions de latence élevée, le client produira un certain nombre d'erreurs de dépassement de délai. S'agit-il d'"échecs" à proprement parler, ou simplement de réponses à latence excessivement élevée ? Doivent-elles affecter la métrique de latence, la métrique de taux d'échec, ou les deux ? Comparez avec les échecs dus à de mauvais enregistrements DNS et à d'autres échecs de connexion rapide. Je recommande de n'enregistrer que les chiffres de latence des succès, ou des échecs dont vous savez qu' ils indiquent un dépassement de délai, comme les exceptions SocketTimeoutException et similaires en Java. (Un collègue propose une autre solution consistant à n'enregistrer que les valeurs de latence pour les échecs lorsque cela aggrave la moyenne de la latence).

CYCLE DE VIE

Ce qui précède suppose principalement que le client s'adresse à un ensemble statique de serveurs. Or, les serveurs sont remplacés, soit un à la fois, soit par grands groupes. Lorsqu'un nouveau serveur est ajouté à la grappe, l'équilibreur de charge ne doit pas lui imposer d'emblée une part complète du trafic, mais plutôt l'augmenter lentement sur une certaine période. Cette période d'échauffement permet au serveur d'être pleinement optimisé : réchauffement du disque et du cache d'instructions, optimisation des hotspots en Java, etc. HAProxy met en œuvre un démarrage lent à cette fin. Au-delà de la période de chauffe, il s'agit également d'une période d'incertitude : Le client n'a pas d'historique avec le serveur, donc limiter la dépendance à son égard peut limiter les risques.

Si vous utilisez une approche de combinaison de métriques, il peut être pratique d'utiliser l'âge du serveur comme une métrique de pesudo-santé, en partant de presque zéro et en augmentant jusqu'à la pleine santé au cours d'une minute ou deux. (Le client peut apprendre le remplacement complet d'un ensemble de serveurs en une seule fois, ou être reconfiguré pour pointer vers un cluster différent, et considérer brièvement que tous les serveurs sont à zéro santé). Il est probable que tout mécanisme permettant de gérer le remplacement total de la liste des serveurs suffira également à gérer le démarrage du client.

CHARGEMENT DU BERCEAU

Je n'ai fait qu'effleurer le délestage, qui consiste pour un service soumis à une forte charge de requêtes à tenter de répondre à certaines ou à toutes les requêtes par des échecs, très rapidement, dans le but de réduire la charge du processeur et la contention d'autres ressources. Parfois, vos meilleurs efforts ne suffisent pas, ou vous devez simplement maintenir le service en vie suffisamment longtemps pour qu'il puisse être mis à l'échelle. Le délestage de charge est un pari fondé sur l'idée que le fait de renvoyer les échecs pour 50 % du trafic maintenant peut vous permettre de répondre avec succès à 100 % du trafic plus tard, et que le fait d'essayer de gérer tout le trafic maintenant peut entraîner l'arrêt complet du service. Mais comment savoir quand le faire, et dans quelle mesure ?

Je pense qu'il s'agit d'une préoccupation largement séparable : si l'équilibreur de charge est suffisamment bon pour distribuer la charge, le simple fait de mettre quelque chose comme Hystrix ou des limites de concurrence en avant pourrait être suffisant. Le seul endroit où je verrais un avantage serait la gestion de la charge supplémentaire sur les serveurs sains lorsque certains serveurs ne sont pas sains. Si seulement 20 % des serveurs sont sains, est-il raisonnable qu'ils prennent 5 fois leur part normale de la charge ? Un équilibreur de charge pourrait raisonnablement décider de plafonner le dépassement à 10 fois environ, et ne jamais demander à un serveur de prendre la "part de charge" de 9 serveurs qui ont été marqués comme malsains. Si cette solution est réalisable, est-elle pour autant souhaitable ? Je n'en suis pas certain. Ce n'est pas totalement adaptatif, dans le sens où un plafond de surcharge doit toujours être configuré, et que cette configuration peut facilement devenir obsolète (ou ne pas être pertinente, par exemple, dans une période de faible trafic).

CONCLUSIONS

Sur la base de ce qui précède, je pense que si bon nombre des options existantes pour l'équilibrage de la charge dans des environnements génériques à haute disponibilité tendent à bien fonctionner pour répartir la charge dans des conditions normales et dans un ensemble sélectionné de conditions d'erreur, elles sont insuffisantes dans d'autres conditions en raison du mobbing, d'une réactivité insuffisante à la défaillance et d'une réaction excessive à des états dégradés corrélés.

Un équilibreur de charge à haute disponibilité idéal éviterait les contrôles de santé actifs pour son fonctionnement normal, et suivrait plutôt passivement une variété de mesures de santé, y compris les demandes en cours et les mesures décroissantes (ou glissantes) de latence et de taux d'échec. Un client qui suit ces mesures est bien mieux placé pour détecter les anomalies qu'un client qui ne fait qu'observer les résultats des contrôles de santé actifs périodiques.

Bien sûr, un équilibreur de charge vraiment idéal incarnerait l'efficacité parfaite, dans lequel, même sous une charge de demande croissante, toutes les demandes sont traitées avec autant de succès et de rapidité que possible... jusqu'à ce que le système atteigne sa limite théorique, moment où il tombe soudainement en panne (ou commence à se délester de la charge), plutôt que de montrer progressivement une augmentation du stress. Bien que je classe cette situation dans la catégorie des "problèmes que j'aimerais avoir", elle met en évidence la nécessité de revoir les outils de surveillance si l'équilibreur de charge est particulièrement doué pour dissimuler les défaillances des serveurs au monde extérieur.

La principale question en suspens, à mon avis, est de savoir comment combiner ces mesures de santé et les utiliser dans la sélection des serveurs d'une manière qui minimise le comportement chaotique et les autres problèmes mentionnés dans ce billet, tout en restant applicable de manière générale. Bien que je parie actuellement sur la sélection aléatoire pondérée multifactorielle, il reste à voir comment elle se comporte dans le monde réel.

Quels sont les scénarios avancés qui peuvent être réalisés avec la vidéo x Marketo ?

Ces dernières années, le marketing vidéo a également attiré l'attention du marketing BtoB. Comment acquérir efficacement des prospects de haute qualité et les fournir au service commercial est une question éternelle pour les spécialistes du marketing BtoB. Dans ce contexte, Brightcove a organisé un séminaire à Osaka le 7 juin 2019, intitulé " From Lead Nurturing to Customer Success : Quels sont les scénarios avancés réalisables avec la vidéo x Marketo ? ".

PENSER, APPRENDRE, FAIRE : UN CADRE POUR VOS VIDÉOS DE FORMATION DES EMPLOYÉS

Avec l'augmentation des effectifs géographiquement répartis et des bureaux non centralisés, il est facile de comprendre pourquoi les vidéos de formation des employés sont de plus en plus populaires. Ces ressources vous permettent de réaliser des économies importantes, car vous n'avez pas besoin d'investir le temps et les ressources nécessaires pour réunir les gens en personne.

Lorsque j'examine les vidéos de formation des employés dans les entreprises, je vois certaines exécutions courantes qui me font grincer des dents. Par exemple, la tête parlante qui lit manifestement à partir d'un téléprompteur, sans émotion ni autre intérêt visuel. Ou encore l'enregistrement d'une capture d'écran de mauvaise qualité sonore. Ou encore - et c'est souvent ce qui me fait le plus mal au cœur - une vidéo d'une formation en direct, animée par un facilitateur, dans l'espoir que les employés la regarderont jusqu'au bout.

Ne vous méprenez pas : les têtes parlantes, les captures d'écran et le découpage de la formation en direct peuvent, lorsqu'ils sont bien faits, constituer d'excellentes vidéos de formation des employés. Cependant, chacun de ces éléments doit faire l'objet d'une réflexion approfondie pour que vos vidéos atteignent l'objectif pour lequel elles ont été créées.

C'est là qu'intervient le cadre Think:Learn:Do.

Dans le cadre de mon travail avec des entreprises qui tentent de former leurs employés à l'aide de vidéos, je constate qu'elles sont excellentes en ce qui concerne le contenu, la plupart des équipes étant versées dans les théories de l'apprentissage des adultes et comprenant comment structurer le contenu en vue de l'apprentissage. Mais là où ces vidéos manquent souvent leur cible, c'est dans ce qui précède et suit l'apprentissage. C'est ce que ce cadre aborde. Suivez ce guide pour toutes les vidéos que vous créez - ou adaptez celles que vous avez déjà créées - et voyez comment votre utilisation de la vidéo pour la formation des employés change pour le mieux.

PENSER

Il est essentiel de mettre en scène le contenu de votre vidéo de formation des employés. Pourtant, la plupart des vidéos que je vois ne le font pas correctement. Vous souvenez-vous de vidéos dont les premières secondes cruciales ressemblent à ceci ?

"Bonjour, je m'appelle Untel et cette vidéo parle de....................".

Il s'agit là d'un gaspillage de biens immobiliers de premier ordre !

Ensuite, il est probable qu'elle se transforme en quelque chose comme "Dans cette vidéo, vous apprendrez X, Y et Z".

J'aime bien l'aperçu de ce qui va suivre, mais il manque toujours un point essentiel : la personne qui regarde ne sait pas POURQUOI elle regarde, ni COMMENT ce qu'elle s'apprête à investir (ou à choisir de ne pas investir) du temps peut changer sa situation.

Il est essentiel de planter le décor dès les premières étapes de vos vidéos. Au cours de ce processus, vous dites essentiellement à vos spectateurs ce que vous voulez qu'ils pensent, ce à quoi ils doivent penser, comment ils doivent aborder le contenu ou pourquoi ils doivent être plus attentifs.

Orienter les pensées de vos employés avant de les former à quelque chose permet de mettre les gens sur la même longueur d'onde. Cela permet également à votre contenu axé sur l'apprentissage d'avoir plus de succès, car vous avez mis vos spectateurs dans le bon état d'esprit pour qu'ils puissent écouter le contenu de la manière qui leur sera la plus bénéfique.

Voyons ce que cela donne en termes de reformulation. Prenons l'exemple d'une vidéo de formation des employés sur la nouvelle politique de l'entreprise en matière de vacances. L'objectif de cette vidéo est d'informer le public sur les changements afin que les employés suivent le nouveau protocole, ce qui permettra aux responsables de planifier et d'approuver plus facilement les congés dans le cadre du nouveau logiciel qui vient d'être mis en place.

Une vidéo typique peut commencer comme suit :

"Bonjour, je suis [insérer le nom], le [insérer le titre] des ressources humaines, et cette vidéo traitera des changements apportés à la politique de vacances de notre entreprise.

Ensuite, il convient d'exposer les différences ou de procéder à une démonstration par partage d'écran.

Au lieu de cela, préparons mieux le terrain et orientons nos téléspectateurs sur la manière d'écouter et de réfléchir au contenu qui va être présenté afin d'atteindre l'objectif que nous nous sommes fixé.

"Les vacances ne devraient pas être une source de stress, que ce soit pour la personne qui part en vacances ou pour les membres de l'équipe qui reviennent au bureau. C'est pourquoi nous avons mis en place un nouvel outil de planification des congés et nous vous montrons comment l'utiliser dans cette courte vidéo, afin que vous puissiez planifier vos vacances et obtenir l'approbation de vos congés plus facilement."

Utilisez les tiers inférieurs pour communiquer des informations sur le nom de la personne, son titre ou toute autre information textuelle qui n'est pas vraiment importante pour l'objectif de la vidéo.

APPRENDRE

C'est là que la plupart des formations en ligne et en vidéo destinées aux employés passent le plus clair de leur temps, et c'est là que la plupart des créateurs concentrent le plus d'énergie. Ne vous méprenez pas, il s'agit de la viande et des pommes de terre, si vous voulez, du contenu. Cependant, si vous n'avez pas préparé le terrain, vos employés et les spectateurs ne pourront pas assimiler le contenu comme vous l'entendez.

La plupart des services de formation savent déjà comment les adultes apprennent le mieux. Ceci étant dit, voici deux bonnes pratiques à garder à l'esprit lors de la création de vidéos de formation pour les employés :

La durée d'attention est plus courte lorsque l'on regarde du contenu numérique

Varier l'intérêt visuel à l'écran plus fréquemment. Utilisez des animations, des captures d'écran, des narrateurs, des légendes, des superpositions de texte, etc. Cela ne signifie pas que la valeur de production doit être élevée. Cela ne signifie pas que la valeur de production doive être très élevée, mais que vous devez réfléchir consciemment à la manière dont vous pouvez présenter votre contenu de plusieurs façons.

Le silence n'est pas d'or

Alors que dans les formations en face à face, l'animateur utilise souvent le silence pour permettre aux participants d'absorber l'information ou de la traiter, il n'est pas conseillé de faire de même dans les vidéos. Imaginez que vous regardiez une vidéo avec une attention moins soutenue (soyons honnêtes, c'est ce que feront beaucoup de nos employés) et que vous n'entendiez plus rien. Vous penseriez que la vidéo est terminée et vous changeriez de vitesse. Si vous avez besoin d'un temps de traitement, incorporez un type de musique ou d'effet audio dans cette section.

DO

Nous nous concentrons souvent sur l'enseignement d'un contenu au point d'oublier de préciser ce qu'il faut faire avec ce contenu. Nous pensons que c'est évident ou que les personnes qui ont passé du temps à regarder le contenu voudront agir immédiatement. Ces deux hypothèses sont probablement fausses. Les personnes qui regardent ont besoin d'être orientées sur ce qu'elles doivent faire avec ce qu'elles ont appris. Quelle action voulez-vous qu'ils entreprennent ? Quel suivi est nécessaire ? Soyez précis.

Dans notre exemple de vidéo sur un nouveau logiciel de planification, il convient peut-être de demander aux employés de se connecter immédiatement au système et de soumettre une demande de test pour s'assurer qu'ils sont en mesure de l'utiliser. Dans ce cas, veillez à ce que l'appel à l'action soit parfaitement clair dans la vidéo. Pour tout ce que vous voulez que les spectateurs fassent, je suggère non seulement de le dire, mais aussi de montrer l'instruction.

La combinaison Think:Learn:Do (penser, apprendre, faire) est un gage de réussite pour vos vidéos de formation des employés. Préparez toujours le terrain pour vous assurer que vos employés savent comment et pourquoi ils doivent écouter le contenu de la vidéo, exécutez la diffusion du contenu et l'apprentissage, et terminez par un appel à l'action clairement énoncé - ce que vous voulez qu'ils fassent ensuite. En suivant ce cadre, vous ne fournissez pas seulement un contenu de formation, mais une feuille de route sur la manière d'utiliser ce contenu pour améliorer les performances et l'expérience de votre public.

5 façons de distribuer des vidéos en toute sécurité au sein de votre entreprise

Le problème de la distribution de vidéos au sein d'une entreprise est de savoir comment distribuer les vidéos de manière sécurisée et limitée. Lors de la sélection d'une plateforme de distribution vidéo, il est nécessaire de réfléchir à la manière d'empêcher les fuites d'informations de se produire de manière systématique pour les vidéos susceptibles de contenir des informations confidentielles ou des informations personnelles au sein de l'entreprise.