- Au cours des 18 derniers mois, Slack est passé d’une architecture monolithique à une architecture cellulaire afin d’augmenter la redondance et de limiter l’impact des défaillances de site
- Cette évolution a été motivée par la nécessité d’améliorer la résilience du service Slack après l’incident de panne réseau de juin 2021, qui avait entraîné une dégradation du service pour les clients de Slack
- L’architecture cellulaire fait fonctionner chaque service comme un service virtuel par zone de disponibilité (AZ), de sorte qu’une défaillance dans une AZ n’affecte pas les autres AZ
- Elle inclut aussi une fonctionnalité permettant de drainer le trafic d’une AZ en difficulté, afin de l’isoler efficacement du reste du système
- Le mécanisme de drainage a été conçu pour être rapide, fiable, progressif et indépendant des ressources de l’AZ en cours de drainage
- La transition vers l’architecture cellulaire comprend également une stratégie de cloisonnement (siloing), qui permet aux services de ne recevoir et n’émettre du trafic qu’au sein de leur propre AZ. Cela aide à contenir toutes les défaillances à l’intérieur d’une seule AZ
- La mise en œuvre du mécanisme de déplacement du trafic s’est concentrée sur le système qui achemine les requêtes des utilisateurs vers les services centraux
- La nouvelle architecture prend en charge le drainage des AZ en s’appuyant sur des fonctionnalités d’Envoy, notamment les weighted clusters et l’attribution dynamique de poids via RTDS
- Cette transition a modifié la manière dont Slack exploite ses systèmes et construit ses services, en apportant de nouveaux outils puissants pour la gestion du trafic et l’atténuation des défaillances
- De futurs billets de blog approfondiront les détails de l’implémentation technique et examineront l’impact de cette nouvelle architecture sur les opérations de Slack
1 commentaires
Avis Hacker News