Mise en place d'un maillage de services associé à la puissance de HAProxy Enterprise chez Microsoft Yammer
Plus de 2 millions de requêtes à la seconde.
Une des solutions de réseautage professionnel les plus utilisées (dont plus de 85 % des sociétés du Fortune 500).
Créé il y a 12 ans.
Présentation de Microsoft Yammer
Réseau social intégré à la suite Microsoft Office 365, Yammer rend possibles les prises de contact et les échanges en toute transparence dans l’entreprise. Il est possible de démarrer des conversations ouvertes à tous les membres d’une organisation, d’annoncer des nouvelles, de rechercher des groupes thématiques et de partager des documents. Ce réseau rapproche ainsi les personnes et les informations pour une prise de décision meilleure et plus rapide.
Les résultats en bref
La situation
Lorsque Microsoft a acquis Yammer en juin 2012, l'équipe a migré ses services vers les centres de données de Microsoft. Les centres de données classiques se sont avérés utiles pendant un temps. Puis l'équipe dirigée par Tobias Haag, développeur logiciel en chef, a conclu qu'un basculement vers Microsoft Azure permettrait de mieux répondre à ses besoins. En effet, il offre une montée en puissance instantanée à la demande, une couverture géographique colossale et la possibilité de se libérer des aspects complexes de la mise en réseau. Néanmoins, l'équipe a souhaité ajouter des garde-fous pour se protéger contre d'éventuelles interruptions. Elle a donc choisi de concevoir une plateforme reposant sur Azure capable d'offrir encore plus de résilience, d'accélérer le développement et d'assurer la conformité avec les réglementations en matière de sécurité et de gouvernance.
Après avoir délaissé les centres de données classiques et cherchant à remplacer ses anciens équipements de répartition de charge, Yammer s'est intéressé à HAProxy comme solution de couche 7. Tobias Haag et son équipe ont découvert tout l'intérêt de HAProxy et ont souhaité l'utiliser dans leur environnement Azure, pour les applications internes et externes. Ses atouts par rapport à d'autres répartiteurs de charge employés auparavant étaient clairs. Ils souhaitaient donc voir s'ils pouvaient étendre encore plus les fonctionnalités de HAProxy dans leur nouvelle architecture reposant sur Azure.
Les objectifs
Pour Tobias Haag, la priorité en ce qui concerne la plateforme Yammer était la robustesse et la fiabilité. Azure gère le réseau, le DNS et l'approvisionnement de serveurs à la demande. Mais il fallait aussi des mécanismes supplémentaires afin de réduire et même de prévenir les pannes qui ont un impact sur les clients.
L'équipe visait également une infrastructure en libre-service, dans laquelle les développeurs puissent ajouter rapidement des applications à n'importe quelle échelle. Avec un environnement aussi dynamique, il fallait une découverte de services, des bilans de vitalité efficaces et un moyen de connecter automatiquement des applications indépendantes, dans l'optique d'une meilleure productivité des développeurs.
Le dernier objectif consistait à incorporer des dispositifs de sécurité et de mise en conformité. Et surtout, à chiffrer la communication entre toutes les applications, et pas simplement les connexions provenant des clients. La mise en place du protocole SSL dans toute l'entreprise allait déboucher sur plus d'uniformité en matière de sécurité.
La solution
La nouvelle plateforme de Yammer s'appuie sur des conteneurs Docker en vue d'un temps de disponibilité à toute épreuve pour un cluster de serveurs complet. Mesos et Marathon assurent l'orchestration de ces conteneurs et HAProxy Enterprise relaie toute la communication entre eux.
L'équipe de Yammer avait déjà choisi HAProxy pour le routage des requêtes en périphérie de réseau. Néanmoins, compte tenu du grand nombre d'applications, le routage du trafic est-ouest en passant par les mêmes répartiteurs de charge semblait peu efficace. Leur nouvelle plateforme permettait de créer un maillage de services à grande échelle et de placer une instance de HAProxy Enterprise près de chaque application en conteneur. Cela rendait possible la communication directe entre services, mais aussi les bilans de vitalité, le chiffrement SSL, la découverte de services à l'aide du DNS et l'observabilité au niveau de chaque conteneur.
HAProxy continuerait d'assurer les fonctions de couche 7, notamment de répartiteur de charge en périphérie face à leur plateforme, pour une communication sécurisée et fiable avec les clients externes. Or, l'idée était d'ajouter à cela des fonctions de répartition de charge pour les services internes.
Un facteur important entrant en ligne de compte était le temps nécessaire au lancement de HAProxy. "Il s'avère que lancer HAProxy est très économe", affirme Tobias Haag. "En comparaison avec nos applications, la charge supplémentaire est presque négligeable. En état stable, HAProxy utilise peu, voire pas du tout, le processeur."
Les résultats
HAProxy Technologies s'est révélé être un excellent partenaire pour Yammer. Son équipe a assuré la migration vers une architecture de microservices associée à Microsoft Azure avec l'appui de notre équipe de support, en exploitant au maximum nos services de Gestionnaire de compte technique. Yammer repose aujourd'hui sur un maillage de services de 60 000 instances HAProxy Enterprise dans sa pile ; ce sont pas moins de 2 000 000 requêtes qui traversent le système chaque seconde.
"En passant à un répartiteur de charge logiciel et, en particulier, à HAProxy Enterprise, nous avons pu mettre en œuvre un système d'orchestration qui s'adapte de façon dynamique ; il offre les performances et la fiabilité exigées par nos utilisateurs, à un coût très bas", déclare M. Haag. “HAProxy Enterprise rend possible une répartition de charge très fiable entre tous nos composants. Désormais, rien de plus facile que de gérer des terminaisons SSL tout en mettant à jour les configurations. Grâce au niveau de souplesse extraordinaire dont nous bénéficions, le temps consacré au développement est considérablement réduit. Nous pouvons maintenant nous concentrer sur l'amélioration de l'expérience globale des programmeurs et le développement de nouvelles fonctions pour nos clients."
Pour en savoir plus sur les cas d'utilisation de HAProxy, consultez la page Exemples de réussite.