Mécanismes avancés de stabilité et de tolérance aux pannes d'Apache APISIX
January 20, 2024
Lors de la sélection des passerelles API, la stabilité et la tolérance aux pannes sont des facteurs cruciaux, aux côtés de la fonctionnalité, de l'évolutivité et de la sécurité. Dans la conception d'Apache APISIX en 2019, la stabilité et la tolérance aux pannes ont été jugées essentielles, étant donné le potentiel d'incidents majeurs en production lors de la gestion des requêtes de trafic internes et externes.
Pour fournir une compréhension approfondie aux chercheurs, explorons les principales fonctionnalités de stabilité et de tolérance aux pannes d'Apache APISIX.
Séparation du plan de contrôle et du plan de données
Apache APISIX adopte une architecture séparée avec un plan de contrôle (c'est-à-dire etcd, Admin API) et un plan de données sans état (c'est-à-dire la passerelle API peut être mise à l'échelle à la demande). Il n'y a aucune dépendance entre eux. Cela signifie que même si le plan de contrôle rencontre des anomalies (telles que des interruptions réseau ou des sorties anormales), le plan de données peut continuer à fonctionner normalement, en traitant les nouvelles requêtes de trafic. Cette séparation assure la haute disponibilité d'APISIX.
Mécanisme de synchronisation des données
Un mécanisme de synchronisation des données efficace existe entre le plan de données et le plan de contrôle. Le plan de données agit comme un etcd Watcher, notifié activement par etcd des changements de données. Il met à jour sa configuration et ses règles en conséquence. Par conséquent, lorsqu'un administrateur écrit une configuration dans etcd via l'Admin API, le plan de données reçoit rapidement les notifications de changement et stocke la configuration en mémoire. Ce mécanisme évite la nécessité de récupérer la configuration depuis etcd pour chaque requête entrante, réduisant ainsi la charge du système. Cependant, il est important de noter qu'en cas d'anomalies du plan de contrôle, le redémarrage des instances du plan de données doit être évité pour prévenir la perte des configurations en mémoire.
Anomalies du plan de contrôle
Interruption de la communication réseau
En cas d'interruption réseau entre la passerelle API et etcd, les configurations écrites dans etcd via l'Admin API n'atteindront pas la passerelle. Cependant, la passerelle continue d'utiliser la configuration précédemment sauvegardée en mémoire pour traiter les nouvelles requêtes de trafic, empêchant ainsi des sorties anormales dues à la perte de connexion avec etcd. Une fois la connexion entre la passerelle et etcd rétablie, la passerelle reçoit la dernière configuration et reprend son fonctionnement normal.
Crash anormal d'etcd
Si etcd subit un crash anormal, les administrateurs ne pourront pas écrire de configurations via l'Admin API. Cependant, cela n'affecte pas le fonctionnement de la passerelle, qui continue de fonctionner et de traiter les requêtes de trafic. Dans ce scénario, le comportement de la passerelle est similaire à celui observé après une interruption réseau.
Déploiement multi-nœuds et équilibrage de charge
Pour assurer une haute disponibilité, il est recommandé de déployer plusieurs instances de passerelle et de configurer un équilibreur de charge (comme AWS Load Balancer ou F5) entre elles. Ces équilibreurs de charge disposent de mécanismes de vérification de santé pour évaluer l'état de santé des instances de passerelle. Si une instance de passerelle tombe en panne, l'équilibreur de charge la retire rapidement du service et peut ajouter de nouveaux nœuds de passerelle. Cette stratégie de déploiement multi-nœuds et d'équilibrage de charge aide à prévenir les interruptions de service causées par la défaillance d'un seul nœud.
Conclusion
En résumé, Apache APISIX démontre une stabilité et une tolérance aux pannes exceptionnelles lorsque le plan de contrôle et le plan de données sont déconnectés. Son architecture séparée, son mécanisme de synchronisation des données efficace et sa stratégie de déploiement multi-nœuds assurent une haute disponibilité même dans des circonstances exceptionnelles. La conception d'Apache APISIX prend en compte diverses anomalies réseau et de composants, ce qui lui permet de performer de manière exceptionnelle dans la gestion des requêtes de trafic de niveau entreprise.