Présentation | L'automatisation de l'exploitation et de la maintenance est ce à quoi nous aspirons, mais lorsque nous mettons aveuglément l'accent sur les capacités d'automatisation, nous ignorons un facteur clé qui affecte la mise en œuvre de l'automatisation. C'est la structure d'entreprise que les gens aiment et détestent lorsqu'ils vivent jour et nuit avec l'exploitation et la maintenance. |
Parce que l'architecture d'entreprise est l'un des facteurs clés qui déterminent l'efficacité et la qualité de l'exploitation et de la maintenance, j'aimerais parler avec vous du type de conception d'architecture qui est conviviale pour l'exploitation et la maintenance. En combinant l'architecture d'entreprise rencontrée chez Tencent au fil des années et la réflexion sur les spécifications commerciales non fonctionnelles lors de la planification de l'exploitation et de la maintenance, nous pouvons diviser la conception de l'architecture orientée exploitation et maintenance en six points de conception majeurs.
Point 1 : Indépendance architecturale Toute architecture est créée pour répondre aux exigences métier spécifiques. Si nous pouvons répondre aux exigences métier tout en prenant également en compte les exigences non fonctionnelles d'exploitation et de maintenance pour la gestion de l'architecture. Nous avons alors des raisons de penser qu’une telle architecture est conviviale pour l’exploitation et la maintenance.
Du point de vue de l'exploitation et de la maintenance, l'architecture demandée comprend quatre aspects :
Déploiement indépendant, tests indépendants, Componentisation et Découplage technique.
Déploiement indépendant fait référence à un code source qui peut être déployé, mis à niveau, mis à l'échelle, etc. selon des exigences de gestion qui facilitent l'exploitation et la maintenance. La répartition géographique peut être distinguée grâce à la configuration. Les appels mutuels entre services sont mis en œuvre via des requêtes d'interface. L'indépendance de déploiement est également une condition préalable à l'indépendance d'exploitation et de maintenance.Tests indépendants L'exploitation et la maintenance peuvent vérifier la disponibilité de l'architecture ou du service métier grâce à des cas de test ou des outils pratiques. L'architecture d'entreprise ou les services dotés de cette capacité permettent à l'exploitation et à la maintenance d'être mises en ligne de manière indépendante, sans nécessiter la participation de développeurs ou de testeurs pour chaque version ou modification.
Spécification des composants fait référence à un bon support de framework pour les technologies associées au sein de la même entreprise, empêchant ainsi différentes équipes de développement d'utiliser différentes piles ou composants technologiques, ce qui rendrait incontrôlable l'architecture technique interne de l'entreprise.
Cette approche peut limiter l'augmentation désordonnée des objets d'exploitation et de maintenance, permettant à l'exploitation et à la maintenance de toujours garder le contrôle sur l'environnement de production. Dans le même temps, cela peut également permettre à l'exploitation et à la maintenance de maintenir un investissement énergétique plus important et d'effectuer des travaux de construction plus efficaces et de qualité autour de composants standard.
Découplage technologique fait référence à la réduction de l'interdépendance entre les services, et inclut également la réduction de la dépendance du code vis-à-vis des fichiers de configuration. C'est également la base pour réaliser des microservices et réaliser un déploiement indépendant, des tests indépendants et une composition en composants.
Point 2 : Déploiement convivial DevOps a beaucoup d'espace sur la pratique technique de la livraison continue, dans l'espoir d'ouvrir tous les liens techniques de développement, de test, d'exploitation et de maintenance de bout en bout pour atteindre l'objectif de déploiement rapide et de fourniture de valeur. On peut voir que
le déploiement est une partie très importante du travail quotidien d'exploitation et de maintenance. Il s'agit d'une tâche planifiée avec une grande répétition et qui doit améliorer l'efficacité.
Pour obtenir des capacités de déploiement efficaces et fiables, une planification globale doit être effectuée pour garantir un contrôle complet de l'exploitation et de la maintenance pendant les étapes de déploiement et d'exploitation. Il existe cinq dimensions de contenu faciles à déployer :
Configuration CMDB Avant chaque opération de déploiement, le personnel d'exploitation et de maintenance doit comprendre clairement la relation entre l'application, l'architecture et l'entreprise, afin de mieux comprendre et évaluer la charge de travail et les risques potentiels dans leur ensemble.
Dans la plate-forme d'exploitation et de maintenance automatisée Zhiyun, nous sommes habitués à gérer les informations de configuration telles que les relations commerciales, la gestion des clusters, l'état de fonctionnement, les niveaux d'importance et les couches d'architecture en tant qu'objets de gestion d'exploitation et de maintenance dans la base de données de gestion de configuration CMDB. Les avantages de cette méthode de gestion sont évidents. Le stockage centralisé des informations de configuration des objets d'exploitation et de maintenance fournira une grande quantité de données de configuration, une aide à la prise de décision pour les futures opérations d'exploitation et de maintenance, la surveillance et les alarmes et d'autres capacités automatisées.
Configuration de l'environnement Dans les entreprises avec un faible niveau de standardisation de l'exploitation et de la maintenance, l'un des péchés originels qui entravent l'efficacité du déploiement et de la livraison est la configuration de l'environnement. C'est également l'un des problèmes d'exploitation et de maintenance que la technologie de conteneurisation espère principalement résoudre.
Dans la pratique d'exploitation et de maintenance de Tencent, la gestion standardisée des trois principaux environnements de développement, de test et de production est mise en œuvre en énumérant et en gérant les collections de ressources liées à l'environnement et les opérations d'exploitation et de maintenance, combinées à des outils d'initialisation automatique, pour réaliser la mise en œuvre de gestion de l’environnement standard.
Gestion des dépendancesRésoudre la gestion des dépendances des logiciels d'application vis-à-vis des bibliothèques, des environnements d'exploitation, etc. Dans l'expérience pratique de Zhiyun, nous utilisons la gestion des packages pour configurer des fichiers de bibliothèque ou des environnements dépendants via un packaging global et des scripts de pré et post-exécution pour résoudre le problème du déploiement de logiciels d'application dans différents environnements. Il existe également des méthodes de livraison conteneurisées plus légères dans l’industrie, qui constituent également de bons choix.
Méthode de déploiementLe principe de livraison continue mentionne la nécessité de créer un pipeline de livraison fiable et reproductible. Nous planifions également les opérations de déploiement des logiciels d'application en forte conformité avec cet objectif. Il existe de nombreux cas dans l'industrie auxquels vous pouvez vous référer, tels que Docker Build, Ship et Run, comme la description de la configuration de Zhiyun, le déploiement en un clic de processus standardisés, etc.
Publier l'autotestLa publication d'un autotest se compose de deux parties :
Créez ces deux fonctionnalités pour répondre aux besoins de différents scénarios d'exploitation et de maintenance. Par exemple, lors d'une version incrémentielle, en utilisant la capacité de relecture du contenu publié, le personnel d'exploitation et de maintenance peut obtenir rapidement le fichier de modification md5 ou les informations de configuration associées. processus et ports. Effectuer des vérifications et des comparaisons pour garantir la fiabilité de chaque modification publiée.
De même, les tests légers répondent au besoin de tests de disponibilité du service lors de la publication. Cette étape peut tester la connectivité du service et exécuter certains cas de test du backbone.
Niveaux de gris est en ligneIl y a cette phrase dans « Trente-six stratégies d'exploitation et de maintenance quotidiennes » : Pour les opérations de suppression ou de modification irréversibles, essayez de les retarder ou de les exécuter lentement. C'est l'idée des niveaux de gris. Qu'il s'agisse de niveaux de gris en ligne en fonction de la latitude des utilisateurs, de l'heure, des serveurs, etc., nous espérons réduire autant que possible le risque des opérations en ligne. version en niveaux de gris pour réduire le risque du processus de déploiement d'applications. Plus convivial pour l'exploitation et la maintenance.
Point 3 : Opérabilité et maintenabilitéL'architecture de microservices la plus idéale dans l'esprit de l'exploitation et de la maintenance doit être celle offrant une forte opérabilité et maintenabilité. Une application ou une architecture qui n'est pas exploitable et maintenable apportera non seulement un trou noir à l'équipe d'exploitation et de maintenance, mais nuira également profondément à son évolution de carrière, car maintenir une architecture qui n'est pas exploitable et maintenable est tout simplement un gaspillage de vies. du personnel d’exploitation et de maintenance.
L'exploitation et la maintenabilité peuvent être résumées dans les sept points suivants selon les spécifications d'exploitation et les spécifications de gestion :
Gestion des configurationsDans la gestion de l'architecture des microservices, nous proposons de séparer et de gérer les binaires et les configurations des applications pour faciliter un déploiement indépendant.
La configuration séparée de l'application dispose de trois méthodes de gestion :
Limité par l'espace, nous ne discuterons pas des avantages et des inconvénients des trois méthodes ci-dessus. Différentes entreprises peuvent choisir la méthode de gestion de configuration la plus appropriée. L'essentiel est d'exiger que chaque entreprise utilise une solution cohérente, afin que l'exploitation et la maintenance puissent créer des outils et des systèmes ciblés pour la gestion de la configuration.
Gestion des versionsL'un des huit principes de la livraison continue DevOps est "Mettez tout dans le contrôle de version". En ce qui concerne les objets d'exploitation et de maintenance, si vous voulez bien le gérer, vous devez être capable de le décrire clairement.
Semblables aux exigences de gestion du code source, l'exploitation et la maintenance doivent également effectuer une gestion scriptée des objets d'exploitation quotidiens, tels que les packages, les configurations, les scripts, etc., afin qu'ils puissent être sélectionnés avec précision lorsque le système d'exploitation et de maintenance est entièrement automatisé. opérations. L'objet et la version sur lesquels l'opération est effectuée.
Fonctionnement standardIl y a beaucoup de tâches très répétitives qui doivent être effectuées dans le cadre de l'exploitation et de la maintenance quotidiennes. Du point de vue de la pensée Lean, il y a ici un énorme gaspillage : coûts d'apprentissage, opérations sans valeur, construction répétée de scripts/outils, risques humains. exécution, etc
Si des spécifications unifiées d'opération et de maintenance peuvent être formées au sein de l'entreprise, telles que le transfert de fichiers, l'exécution à distance, le démarrage et l'arrêt d'applications, etc. Les opérations sont standardisées, centralisées et en un seul clic , l'efficacité et la qualité de l'opération et la maintenance sera améliorée.
Gestion des processusY compris le chemin d'installation de l'application, la structure des répertoires, le nom du processus standardisé, le numéro de port standardisé, les méthodes de démarrage et d'arrêt, le schéma de surveillance, etc., qui sont inclus dans la catégorie de gestion des processus. Élaborer un bon plan global de gestion des processus peut considérablement améliorer le degré d'exploitation et de maintenance automatisées et réduire l'apparition de tâches imprévues.
Gestion de l'EspaceUne bonne gestion de l'utilisation de l'espace disque vise à garantir le stockage ordonné des données d'entreprise et constitue également un moyen efficace de réduire l'apparition de tâches imprévues.
Nécessite une planification préalable : Stratégie de sauvegarde, solution de stockage, Avertissement de capacité, Stratégie de nettoyage, etc., complétées par des outils efficaces, afin que ces tâches ne gênent plus l'exploitation et la maintenance.
Gestion des journauxLa promotion et la mise en œuvre des spécifications des grumes nécessitent une coopération étroite avec la R&D. Sur la base de l'expérience acquise dans la pratique, les spécifications idéales des grumes pour l'exploitation et la maintenance devraient inclure ces exigences :
Lorsque les spécifications de journal spécifiques aux conditions ci-dessus sont mises en œuvre, le développement, l'exploitation et la maintenance, et les entreprises peuvent en conséquence obtenir de meilleures capacités de surveillance et d'analyse.
Contrôle centraliséLes travaux d'exploitation et de maintenance sont intrinsèquement faciles à découper en différentes parties, telles que les modifications de version, la surveillance et l'analyse, la gestion des pannes, le support de projet, la gestion multi-cloud, etc. Nous recherchons une plateforme unique de gestion des opérations et de la maintenance afin que toutes les informations de travail peuvent être connectées et hériter de l'expérience, éliminer les risques opérationnels causés par les îlots d'informations ou la transmission manuelle d'informations, et améliorer l'efficacité et la qualité de la gestion et du contrôle global de l'exploitation et de la maintenance.
Point 4 : Tolérance aux pannes et tolérance aux catastrophesQuatre responsabilités majeures dans les opérations techniques de Tencent (exploitation et maintenance) : Qualité, Efficacité, Coût, Sécurité. La qualité est la principale garantie. Du point de vue de l'architecture, la conception idéale d'une architecture à haute disponibilité du point de vue de l'exploitation et de la maintenance doit inclure les points suivants :
Équilibrage de chargeQu'il s'agisse d'une solution équilibrée pour le logiciel ou le matériel, du point de vue de l'exploitation et de la maintenance, nous espérons toujours que l'architecture métier sera sans état, que le routage et l'adressage seront intelligents et que la tolérance aux pannes de cluster sera automatiquement réalisée.
Au cours des années de pratique des logiciels de routage de Tencent, la solution d'équilibrage de charge du logiciel a été largement utilisée, apportant une grande contribution à l'obtention d'une haute disponibilité dans l'architecture d'entreprise.
PlanificationÀ l'ère de l'Internet mobile, la planification est une méthode d'exploitation et de maintenance extrêmement importante pour la reprise après sinistre et la tolérance aux pannes. Lorsque l'entreprise rencontre un problème qui ne peut pas être résolu immédiatement, éloigner les utilisateurs ou les services de la zone anormale est une technique éprouvée dans la pratique des opérations de masse. C'est également l'une des principales capacités d'exploitation et de maintenance de Tencent QQ et WeChat. la qualité business des plateformes.
Combinée avec le nom de domaine, le VIP, la passerelle d'accès et d'autres technologies, l'architecture prend en charge les capacités de planification, enrichit les méthodes de gestion de l'exploitation et de la maintenance et a la capacité de gérer plus sereinement divers scénarios de panne.
Vivez davantage dans un endroit différentLa multiactivité dans des sites distants est une exigence pour une haute disponibilité des données et une condition préalable à la planification. Pour différents scénarios commerciaux, il n'y a aucune limitation sur les moyens de mise en œuvre technique.
Pour la pratique des réseaux sociaux Tencent, vous pouvez vous référer à l'article du professeur Zhou Xiaojun « Conception architecturale et fonctionnement efficace derrière la planification à grande échelle de 200 millions d'utilisateurs QQ ».
Commutation maître-esclaveParmi les solutions à haute disponibilité pour les bases de données, la commutation maître-esclave est la solution tolérante aux catastrophes la plus courante. En réalisant la séparation de la lecture et de l'écriture dans la logique métier et en la combinant avec un routage intelligent pour réaliser une automatisation de la commutation maître-esclave sans pilote, c'est sans aucun doute le meilleur cadeau de la conception architecturale pour DBA.
Flexible et disponible« Bien sûr d'abord, puis optimiser » est l'une des idées opérationnelles massives de Tencent, et elle nous montre également la voie à suivre pour concevoir une architecture d'entreprise à haute disponibilité.
Comment garantir au maximum la disponibilité de l'entreprise lorsque le volume d'activité augmente soudainement ? Il s’agit d’un problème inévitable lors de la planification et de la conception architecturale. La configuration intelligente de commutateurs flexibles ou la création d'une logique pour rejeter automatiquement les demandes excessives dans l'architecture peuvent garantir que les services back-end ne s'effondrent pas aux moments critiques et garantir la haute disponibilité de l'architecture d'entreprise.
Point 5 : Contrôle qualitéAssurer et améliorer la qualité de l'entreprise est l'objectif que l'exploitation et la maintenance s'efforcent de poursuivre, et les capacités de surveillance sont un moyen technique important pour nous d'atteindre nos objectifs. L'exploitation et la maintenance espèrent que l'architecture offrira commodité et support de données pour le suivi de la qualité, et nécessite que les points suivants soient atteints :
MétriquesChaque architecture doit être mesurée par des indicateurs. En même temps, ce que nous espérons, c'est qu'il est préférable de n'avoir qu'un seul indicateur de mesure. À mesure que les entreprises deviennent de plus en plus sophistiquées en matière de surveillance tridimensionnelle, le nombre d'indicateurs de surveillance augmentera de façon exponentielle. Par conséquent, pour la mesure métrique de l’architecture, ce que nous espérons, c’est qu’il est préférable de n’avoir qu’une seule mesure métrique.
Surveillance de baseFait référence aux capacités d'indicateurs de bas niveau telles que les réseaux, les lignes dédiées, les hôtes et les systèmes. La plupart de ces points de surveillance sont non intrusifs et peuvent facilement collecter des données.
Dans les entreprises dotées de solides capacités d'exploitation et de maintenance automatisées, la plupart des données d'alarme générées par la surveillance de base seront convergées. Dans le même temps, cette partie des données de surveillance fournira un support aux données et une base de prise de décision pour une surveillance commerciale de haut niveau, ou sera regroupée dans des données de surveillance commerciale plus proches des scénarios d'application de niveau supérieur, tels que la capacité, les données multidimensionnelles. indicateurs, etc.
Surveillance des composantsTencent a l'habitude de désigner collectivement les cadres de développement, les services de routage, les middlewares, etc. comme des composants. Ce type de surveillance se situe entre la surveillance de base et la surveillance commerciale. Les opérations et la maintenance espèrent souvent intégrer la logique de surveillance dans les composants. , Améliorer la couverture de la surveillance des composants et le coût d'obtention des données est moyen. Par exemple, en utilisant la surveillance des composants de routage, l'exploitation et la maintenance peuvent obtenir des indicateurs d'état et de qualité tels que le volume de demandes et le retard de chaque service de routage.
Suivi des affairesLes méthodes de mise en œuvre de la surveillance commerciale sont divisées en surveillance active et passive, qui peuvent être mises en œuvre de manière intrusive ou par contournement. Ce type de solution de surveillance nécessite une coopération au développement, tant en termes de codage que d'architecture.
Habituellement, les indicateurs de suivi d'activité peuvent être résumés en trois indicateurs : le volume de demandes, le taux de réussite et le délai. Il existe de nombreuses méthodes de mise en œuvre, notamment la surveillance des journaux, la surveillance des données de flux, les tests de vagues, etc. La surveillance commerciale est une surveillance de haut niveau et peut souvent remonter directement les problèmes commerciaux. Cependant, si vous souhaitez analyser en profondeur la cause profonde du problème, il doit être combiné avec les spécifications de gestion nécessaires à l'exploitation et à la maintenance, telles que les définitions de codes de retour, les protocoles de journalisation, etc. Il est nécessaire de prendre en compte à l'avance les exigences de surveillance et de gestion de l'exploitation et de la maintenance lors de la conception de l'architecture d'entreprise, et de planifier la portée globale.
Surveillance complète des liensLes méthodes de surveillance de la fondation, des composants et de l'entreprise sont davantage axées sur la surveillance ponctuelle. Dans le scénario commercial de l'architecture distribuée, pour bien surveiller, nous devons considérer la surveillance des liens de demande de service.
Sur la base de l'ID de transaction unique ou de la relation d'appel RPC, restaurez la chaîne de relation d'appel par des moyens techniques, puis déclenchez des alarmes de surveillance via des modèles ou des événements pour indiquer l'état et la qualité du lien de service. Cette méthode de surveillance est une application de surveillance haut de gamme, et elle nécessite également une planification préalable et un enfouissement du code lors de la planification de l'architecture métier. .
Évaluation de la qualitéToute promotion des capacités de surveillance et optimisation de la qualité nécessite une boucle fermée de gestion. L'évaluation est un bon moyen, de la couverture de surveillance à l'exhaustivité des indicateurs, en passant par les mécanismes de gestion des événements, l'évaluation et la notation des rapports, l'exploitation, le développement et l'exploitation peuvent travailler ensemble pour créer. a La boucle fermée de gestion de la qualité avec retour d'information continu permet à la structure de l'entreprise d'évoluer et de s'améliorer continuellement.
Point 6 : Coût de performanceChez Tencent, tout le personnel des opérations techniques assume une fonction importante, qui consiste à garantir que les coûts d'exploitation de l'entreprise sont raisonnables. À cette fin, nous devons disposer de méthodes de gestion correspondantes pour les performances du débit des applications, la planification de la capacité de l'entreprise et les coûts d'exploitation.
Performances de débitDans la méthodologie de livraison continue DevOps, l'un des aspects les plus importants des tests des exigences non fonctionnelles pendant la phase de test est le test de résistance des performances de débit de l'architecture, afin de garantir la santé de la capacité commerciale après le lancement de l'application.
Dans la pratique de Tencent, nous effectuerons non seulement des tests de résistance de performances pendant la phase de test, mais combinerons également les fonctions des composants de routage pour effectuer des tests de résistance sur des demandes réelles de modules métier et de SETs métiers afin d'établir une base de référence pour le modèle de capacité métier. Il fournit également des données externes pour démontrer si les performances de débit de l'architecture d'entreprise répondent aux exigences d'évaluation des coûts et utilise la comparaison des données de performances entre différentes entreprises pour promouvoir l'amélioration continue des performances de l'architecture.
Planification des capacitésLe mot capacité en anglais peut être traduit par : performances des applications, capacité de service et demandes commerciales totales. La planification de la capacité d'exploitation et de maintenance fait référence à une planification raisonnable de la capacité de service basée sur les demandes commerciales totales en partant du principe que les performances de l'application atteignent la norme. .
Frais de fonctionnementRéduire les coûts d'exploitation, c'est réduire les investissements en flux de trésorerie pour l'entreprise, et sa valeur pour l'entreprise n'est rien de moins que l'amélioration de la qualité et de l'efficacité.
Tencent se concentre sur les activités de médias riches telles que les réseaux sociaux, l'UGC, le cloud computing, les jeux et les vidéos, et consomme chaque année une énorme quantité de coûts d'exploitation tels que la bande passante et l'équipement. Si l’exploitation et la maintenance souhaitent optimiser les coûts d’exploitation, cela implique souvent l’optimisation des fonctions du produit et de l’architecture commerciale. Par conséquent, la conception d’une architecture d’entreprise idéale pour l’exploitation et la maintenance nécessite une conscience suffisante des coûts,
RésuméCet article est purement une opinion personnelle sur la conception de l'architecture des microservices, compilée du point de vue de l'exploitation et de la maintenance, pour maximiser la valeur de l'exploitation et de la maintenance et pour assurer l'amélioration globale de la qualité, de l'efficacité et des coûts de l'entreprise, l'essentiel. l'architecture d'entreprise doit être rongée.
Les responsables de l'exploitation et de la maintenance doivent avoir une connaissance de l'architecture et être capables de faire des suggestions ou des demandes d'architecture d'entreprise sous différents angles. Ceci est également préconisé par l'esprit DevOps. Le développement et l'exploitation et la maintenance travaillent ensemble pour optimiser en permanence la meilleure architecture d'entreprise.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!