Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Remarque: Cet article est basé sur le partage du professeur de Tencent Xiong Pujiang au Sommet international DevOps 2018 · Shenzhen Station, et a été révisé et publié par le professeur Xiong Pujiang.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

作者介绍

熊普江,互联网技术精英俱乐部广州会长、云技术专家、资深架构师。2012年-2018年任腾讯布道师、腾讯云高级总监,负责公司云技术、解决方案布道及技术架构评审等工作。曾任上市公司太平洋网络,视频公司PPTV高管;获2016年度“运维工匠“、2016&2017年度”GITC专家顾问“等称号,在互联网技术圈颇具影响力。逾 20 年互联网从业背景,对大型网络架构规划与建设,海量用户平台规划与运营技术支持,超大规模业务资源规划与技术架构管理优化有丰富的经验。

Aujourd'hui, je vous propose de partager "Fonctionnement technique de ressources massives". Il y a quelques mots-clés ici, l'un est "ressources massives". Cette ressource massive ne se réfère pas seulement aux activités de Tencent impliquant beaucoup de ressources massives, en fait, il est différent du concept dans l'esprit de chacun, je le présenterai plus tard. Le mot clé "opération technique" est l'importance que nous pouvons tous ressentir aujourd'hui. Aujourd'hui, j'y ajouterai un nouvel attribut, en l'appelant "opération technique raffinée", et utiliserai une série de Le cas apporte l'analyse.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Je vais partager avec vous sous trois aspects. Le premier présentera les tendances et les défis actuels des opérations techniques. Le second présentera les cas pratiques des opérations techniques de Tencent dans le contexte de ressources massives. Enfin, nous résumerons comment nous pouvons bien faire cette technologie à l'ère du cloud. Exploiter et former une méthodologie.

1. Tendances et défis


Regardez d'abord les tendances et les défis. La première tendance au changement est très évidente, c'est-à-dire que tout le monde va vers le cloud. Je pense qu'aucune des personnes présentes n'a jamais entendu parler du cloud ou ne comprend pas la tendance du cloud business. En fait, si vous effectuez des opérations techniques, elles utilisent des clouds. Par exemple, CMDB est aussi une sorte de cloud forme.

Ces dernières années, avec l'amélioration continue des capacités du cloud et la demande de transformation numérique, cette tendance est devenue encore plus évidente. Fondamentalement, y compris maintenant notre gouvernement, notre fabrication industrielle traditionnelle explore la transformation numérique, explorant la réalisation d'activités sur le cloud. En d'autres termes, le cloud computing est devenu une véritable productivité.

Dans le Guangdong en 2018, tout le monde devrait être au courant du projet «Digital Guangdong», ce qui signifie que les différentes entreprises de subsistance du gouvernement du Guangdong passeront au cloud. Cela nous a apporté beaucoup de confort. Par conséquent, nous devons nous demander si nous pouvons utiliser le cloud ou non lorsque nous faisons des affaires.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

La deuxième tendance changeante est l'architecture des microservices, qui est en fait le résultat inévitable de l'évolution technologique à l'ère de l'Internet mobile. Notre système informatique le plus ancien était une architecture centralisée. Après Internet, nous avons lancé une architecture distribuée. Avec l'avènement de l'Internet mobile, les exigences toujours croissantes en matière de développement agile, d'itération rapide et d'accès au cloud ont fait de nos services commerciaux tous des microservices .

Les microservices nous permettent d'itérer rapidement et facilement, et lorsque l'entreprise est mise à niveau, les uns les autres ne seront pas trop affectés.C'est également le point le plus critique du concept DevOps.

Grâce aux microservices, nous pouvons avoir une bonne combinaison de R&D, d'exploitation et de maintenance. Bien sûr, cela posera également un autre problème, c'est-à-dire que les microservices entraînent une augmentation géométrique du nombre de modules de services métier, ce qui rend le déploiement de l'entreprise et la gestion de la capacité très importants des changements ont eu lieu et cette tendance est très difficile.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

La troisième tendance est l'IA. L'IA est très chaude maintenant, et si vous ne vous associez pas à l'IA dans les affaires maintenant, vous êtes gêné de parler aux autres. En fait, maintenant qu'Ali, Tencent ou Baidu augmentent leurs investissements dans l'IA. Pour Tencent, la stratégie ici est de «faire de l'IA partout».

Cette tendance au changement est également identique à la montée en puissance de l'Internet mobile, des données de connexion 5G et IOT et des applications de données. Nous devons également prêter attention à cette tendance changeante. Comment appliquer nos grandes quantités de données et comment les combiner avec DevOps, c'est là que nous voulons réfléchir.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

De plus, le cloud dispose de nombreuses capacités d'IA prêtes à l'emploi, que nous pouvons utiliser directement.

Après avoir présenté les trois tendances changeantes, comprenons ce que sont les ressources massives dans ce contexte.

Les «ressources massives» que nous avons comprises dans le passé ne sont rien d’autre qu’un grand nombre d’utilisateurs et un grand nombre de requêtes. Il existe des ressources pour transporter un grand nombre d’utilisateurs et un grand nombre de services en amont, notamment serveurs, bande passante, etc. Sur la base des changements précédents, notre compréhension du grand nombre de ressources devrait Un peu changer:

第一,微服务、个性化的需求也越来多,微服务也成为海量资源之一;

其次这种服务也是容器化的,容器的数量也是数以千计。这种数量级的容器管理也是海量资源管理;

另外,我们的海量资源,除了传统服务器数量多少、带宽多少、专线多少,实际上还包括云的资源(云主机、容器、服务,云函数、PaaS服务、SaaS服务都是),以及包括我们现在积累的那些海量的数据也是一种海量资源。

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Par conséquent, à l'ère du cloud ou à l'ère où la numérisation est de plus en plus importante, les opérations et les défis de nos ressources massives incluent ces aspects:

Le premier est de toujours insister sur la valeur utilisateur. Peut-être que les personnes présentes passent rarement du temps à réfléchir profondément à la valeur réelle de l'utilisateur. Je pense que l'une des manifestations de valeur est que chaque fois qu'un service ou un produit est créé, un certain point douloureux ou un certain aspect du problème de l'utilisateur sera résolu;

La deuxième valeur de la performance est d'aider les utilisateurs à améliorer leur efficacité ou à réduire leurs coûts, c'est-à-dire à améliorer leur efficacité;

La troisième performance de valeur est que les services que nous apportons aux utilisateurs sont très stables et très sûrs.

Ce service commercial, qui était similaire à celui mentionné par M. Zhao tout à l'heure, est soumis au DDOS ***. En fait, il a causé un certain préjudice à l'expérience de l'utilisateur et à la valeur des utilisateurs. Il s'agit du défi de la valeur utilisateur.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Deuxièmement, à mesure que la taille des utilisateurs professionnels augmente, nos ressources pour la fourniture de services augmenteront inévitablement et les coûts d'exploitation continueront d'augmenter.

Les étudiants qui ont établi un budget doivent savoir qu'en fait, nos coûts de fonctionnement augmentent essentiellement en forme de trapèze: la consommation la plus coûteuse cette année est souvent la consommation la moins coûteuse de l'année prochaine. Cela nous amène à réfléchir à la manière de faire face à la pression de la croissance rapide des coûts.

Enfin, nos étudiants qui font des opérations techniques (ou ceux qui font des opérations et de la maintenance) reçoivent souvent des questions de nos dirigeants ou d'autres équipes: Cette architecture technique est-elle bonne? Est-ce que des collègues extérieurs font cela? Bien sûr, nous devons aussi constamment nous demander si nous pouvons avoir un leadership technologique par rapport aux autres produits concurrents. C'est aussi un défi technique auquel nous devons réfléchir dans la nouvelle ère.

2. Cas pratique d'une opération technologique massive de ressources


Après avoir parlé des tendances et des défis, examinons quelques cas de fonctionnement technique raffiné de l'entreprise avec les ressources massives de Tencent.

Avant d'examiner ces cas, nous introduisons d'abord une base théorique sur la façon de faire du bon travail dans les opérations techniques. C'est en fait le point le plus important que nous ayons résumé dans nos opérations techniques depuis de nombreuses années: c'est de nous aider à réaliser les meilleures opérations techniques à travers la revue de l'architecture technique. Parce que l'architecture technique détermine notre efficacité opérationnelle et notre valeur utilisateur.

L'architecture technique comprend trois aspects: le premier est le cadre technique, c'est-à-dire le type de cadre et de technologie adopté par le système d'entreprise; le second est la rationalité de la logique métier. Dans le passé, les gens peuvent rarement en tenir compte lors de l'exploitation. et la maintenance. Aujourd'hui, notre point de vue est tout le monde. Nous devons attacher une grande importance à la logique métier et la comprendre, savoir si la logique métier dans son ensemble est raisonnable et l'algorithme de mise en œuvre métier. Auparavant, nous nous concentrions uniquement sur l'OPS qui n'est pas correct Nous allons maintenant voir l'algorithme DEV.

En ce qui concerne l'efficacité opérationnelle, nous faisons l'exploitation et la maintenance et avons une compréhension des données d'efficacité opérationnelle derrière l'entreprise. Nous savons où se trouve le goulot d'étranglement et les performances d'une seule machine, mais en fait, nous devons aller de l'avant maintenant, grâce à l'architecture technique Clarifiez comment cela affecte mon efficacité opérationnelle.

Enfin, la valeur utilisateur ici est la façon dont nous pouvons aider les utilisateurs à refléter la valeur, peut aider à améliorer l'efficacité des utilisateurs et les utilisateurs peuvent être plus assurés d'utiliser nos services. C'est mon point de vue théorique pour faire du bon travail dans les opérations techniques, c'est-à-dire que la révision de l'architecture technique déterminera notre efficacité opérationnelle.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Le premier cas concerne "WeChat business". Les activités de WeChat sont des microservices depuis longtemps.Nous savons que le concept de microservices a vu le jour, en fait, après 2014, et WeChat était un produit sorti en 2011, donc WeChat a préconisé les microservices très tôt.

Jusqu'à présent, WeChat compte plus de 5 000 modules de microservices, qui doivent gérer l'accès d'un milliard d'utilisateurs actifs, et leur orchestration et leur planification doivent être très efficaces. WeChat utilise le système YARD auto-développé pour implémenter l'orchestration et la planification des conteneurs.

YARD est une architecture à deux niveaux: gestion des ressources et planification des applications. Ces deux couches peuvent effectuer une planification raisonnable et efficace de différents services en fonction des conditions de ressources. Par exemple, la gestion des ressources évaluera et rapportera l'état de ses propres nœuds (y compris l'état de santé et l'utilisation des ressources).

Dans la planification des applications, quelles sont les tâches, comment planifier, comment planifier et commenter les résultats de l'exécution. À l'heure actuelle, l'utilisation du système YARD pour l'orchestration des conteneurs de services WeChat et la planification des services a couvert plus de 80% des modules de services WeChat WeChat.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

L'orchestration et l'ordonnancement des conteneurs sont très importants pour les microservices de masse, en fait, cela apporte aussi un effet de fonctionnement technique: cela permet d'économiser beaucoup de ressources. Étant donné que chacune de nos fonctions commerciales est différente, les caractéristiques commerciales et les pics de trafic peuvent également être différents. Si l'efficacité de la planification est très élevée, nous pouvons effectuer une planification de pointe pour les services avec des pics d'activité différents.

Sur la gauche se trouvent les trois cartes des fonctionnalités commerciales du module A. Le module A a un point culminant à 00h00 du matin. À ce moment, des cadeaux de jeu pour une nouvelle journée seront émis. De nombreux utilisateurs recevront des cadeaux à ce moment-là, donc cela provoquera un pic (si Sans expansion, l'utilisation du processeur des hôtes du cluster a dépassé 80% à ce moment, ce qui a en fait atteint le goulot d'étranglement; à partir d'un autre graphique du nombre de requêtes rejetées rapidement, nous pouvons également voir que le nombre de demandes rejetées rapidement est très important. Cette fois, cela affectera l'expérience utilisateur, car certains services sont rejetés par la demande). C'est la caractéristique commerciale d'un module.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Regardons à nouveau le module B. À 00h00, le volume d'appels n'est pas très élevé et le taux d'utilisation du processeur est très faible, inférieur à 15%. Si l'orchestration et la planification de nos conteneurs sont suffisamment puissantes, l'entreprise A peut être déployée sur le module B avant le pic, ce qui signifie que les services de l'entreprise A sont également fournis ici pour réaliser l'expansion de l'entreprise. S'il n'y a pas de capacité de planification, ce module A doit ajouter un serveur.

Si vous avez la capacité de planifier le déploiement de l'entreprise avant, nous pouvons voir qu'après le déploiement, nous avons vu que le taux d'utilisation du processeur d'origine dépassait 80%, mais maintenant il n'est que de 60%. Du point de vue de l'expérience commerciale, il y avait auparavant beaucoup de rejets rapides, mais maintenant il n'y a presque plus de rejets rapides.

De toute évidence, de puissantes capacités d'orchestration peuvent rapidement planifier et déployer, ce qui peut considérablement réduire les coûts d'exploitation, et en même temps, l'expérience commerciale a été améliorée. Les capacités d'orchestration d'entreprise de WeChat ne sont bien sûr pas disponibles pour tout le monde, mais Tencent a ouvert certaines des capacités d'orchestration de conteneurs et de planification sur le cloud, qui sont deux produits sur Tencent Cloud: TKE et CIS. Vous pouvez les essayer si vous en avez besoin, et ils sont tous gratuits, surtout s'il existe actuellement de nombreux microservices, et si vous souhaitez renforcer cette capacité de planification, vous pouvez essayer ces deux services.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Examinons ensuite le deuxième cas d’opération technique: l’envoi et la réception de messages par WeChat. Tout le monde utilise WeChat chaque jour, de sorte que le volume de messages envoyés et reçus par WeChat est très important. Désormais, le volume de messages envoyés et reçus chaque jour peut dépasser 500 milliards. Cela nécessitera certainement beaucoup de ressources serveur pour être pris en charge, et les demandes d'invocation d'entreprise sont également massives.

En analysant le module d'envoi et de réception de messages WeChat, nous pouvons voir en quoi il s'agit du micro-service, et comment effectuer des opérations techniques affinées. Même s'il s'agit d'un seul message de chat (le processus par lequel l'utilisateur A envoie un message à l'utilisateur B), on peut voir sur cette image que c'est très compliqué. Un message est envoyé de l'utilisateur A à l'utilisateur B. Il doit disparaître à travers la couche d'accès et envoyer les couches logiques de message, requête de compte, stockage de compte, attributs de compte, traitement anti-spam, requête de carnet d'adresses, génération de numéro de série, corps du message, push, etc. autant de processus.

Evidemment, l'envoi d'un message apportera plus de dix fois le grossissement dans le traitement de la demande de message. Si la capacité du niveau du système d'exploitation n'est pas suffisamment optimisée, les performances d'une seule machine n'augmenteront pas du tout, nous ferons donc beaucoup d'optimisations pour le système d'exploitation plus tard, et enfin, la machine unique traitera cette demande massive. , et la concurrence peut atteindre 2 millions par seconde.

La deuxième méthode de fonctionnement technique raffinée consiste à réduire le niveau d'appel autant que possible. Le grossissement de l'appel étant très puissant, la réduction du niveau d'appel peut réduire considérablement les ressources de traitement. Du fait que le niveau d'appel est réduit, le traitement de la demande est réduit, les performances de traitement sont également augmentées et la consommation de ressources est inévitablement réduite.

La troisième consiste à équilibrer les demandes, car les performances de nos serveurs sont dans la plupart des cas différentes. De plus, même si les serveurs sont les mêmes, le nombre de demandes allouées peut être différent. Par conséquent, une distribution inégale des demandes entraînera la même machine, certaines machines ont une charge élevée, certaines ont une faible charge et l'expansion est généralement effectuée en fonction de la charge de pointe; si cette situation n'est pas gérée correctement, cela conduira à l'utilisation de Beaucoup de machines ne peuvent pas monter, ce qui entraîne beaucoup de gaspillage. Nous avons donc une optimisation visant spécifiquement à équilibrer les demandes traitées par la capacité de la machine et la capacité de charge. Il est très important de s'assurer que la même machine peut atteindre la même capacité de traitement.

Il existe également de nombreuses méthodes d'opérations techniques raffinées, telles que la fusion de certains appels de demande, car les appels de fusion peuvent faire plusieurs demandes en une seule demande et les envoyer vers le bas; par exemple, les nouveaux services utilisent de nouveaux serveurs. Nous sommes souvent confrontés à la mise en ligne de nouveaux micro-modules et de nouveaux services. De manière générale, nous devons préparer des machines et des ressources pour de nouveaux services à transporter. Cependant, il est difficile de savoir combien de ressources sont nécessaires pour ces nouveaux services aux entreprises. La méthode que nous adoptons consiste à configurer un nouveau pool de ressources de service. Toute nouvelle entreprise ou tout nouveau module est mis en ligne dans ce pool de ressources. À moins qu'il n'atteigne une certaine taille, il est considéré comme étant déployé séparément, afin d'empêcher certaines entreprises de ne pas fonctionner. plus tard (le fait est que dans de nombreux cas, les nouvelles entreprises ne sont pas aussi bonnes que prévu) pour occuper des ressources excédentaires.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Ensuite, regardons le cas de WeChat Moments. Ce cas reflète également pleinement le fonctionnement raffiné de la technologie DevOps. Nous savons tous que le contenu de Moments est stocké en permanence.

Le produit Moments of Friends est une fusion de deux formes commerciales: La première forme est les Moments of Friends dans la "découverte" que nous parcourons habituellement. Il ne contiendra que 2000 enregistrements. C'est une chronologie à partir de laquelle nous pouvons nous voir et amis. Il ne s'agit en fait que d'un index, et le contenu des Moments postés personnellement est en fait stocké dans "Mon album". C'est l'endroit où le contenu des Moments est réellement stocké, c'est-à-dire sous la forme deux (album), dans l'album Les données sont sauvegardées pour toujours.

Le volume de Moments est très important, dont la plupart sont des images et des vidéos. Il est important de savoir que le nombre d'images publiées dans Moments chaque jour est des milliards de fois. Le défi ici est qu'il est stocké en permanence, et l'incrément est très énorme. Il y a des milliards de demandes, des dizaines de milliards de fois par jour. La contradiction est que si l'expérience utilisateur est garantie, il doit utiliser un stockage haute performance, et tous les jours L'augmentation des coûts est très énorme Si ce stockage est uniquement du stockage haute performance, l'augmentation des coûts est très énorme, trop énorme pour être abordable.

À ce moment, des opérations techniques raffinées entrent en jeu. Grâce à des opérations techniques, nous répondrons aux accès aux données chaudes et froides de Moments: Les données stockées dans Moments sont pour les demandes dans la journée (c'est-à-dire l'accès aux Moments envoyés dans la journée) Il y en a 70%, c'est-à-dire que la plupart des visites se font le jour de la visite, 70% des demandes proviennent des Moments envoyés par cet ami ce jour-là, et le montant envoyé dans la journée représente 0,3% du stockage total. Dans le même temps, nous constatons que 90% des demandes dans un mois représentent 90% des visites à Moments dans un mois, ce qui montre que les données chaudes et froides des Moments sont très distinctes.

Peut-il être réalisé en termes d'architecture: pour assurer l'expérience utilisateur, il faut que ce soit très rapide, et les données dans un mois sont stockées sur une machine très performante, qui est un cluster de données chaudes; plus d'un mois, il est placé dans un cluster de données froid. Dans ce cas, les clusters de données chaudes se développent rarement, car un mois de données chaudes ne représente que 6,5% de l'ensemble du volume de stockage.

Grâce à cette architecture de séparation froide et chaude, d'une part, nous faisons de notre mieux pour garantir la performance des demandes de lecture de la plupart des utilisateurs, tout en réduisant considérablement les coûts d'exploitation. Réfléchissez bien. Fondamentalement, les clusters de données chaudes ne se développent pas beaucoup. La croissance principale provient des clusters de données froides. Par rapport aux clusters de données chaudes, les clusters de données froides sont plus volumineux mais moins coûteux (le coût des clusters froids avec le la même capacité de stockage est inférieure à celle des clusters chauds. 1/3). Grâce à l'optimisation de notre architecture, l'expérience utilisateur a été améliorée et le coût a été considérablement réduit.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Regardons le cas du compte public WeChat. Les comptes officiels sont principalement des messages graphiques. Pour les messages graphiques, il existe également de nombreux domaines qui peuvent être affinés dans les opérations techniques, notamment la consommation de ressources en bande passante pour les messages graphiques, car les articles quotidiens des comptes publics sont lus plus de 3 milliards de fois. Comment optimiser finement les ressources en bande passante des messages graphiques? Nous essayons de décomposer le trafic de bande passante de manière fine, en fonction de la taille de l'image consultée, de chaque type d'accès à l'image, de la source de l'accès, etc. Nous comprenons où se trouve l'utilisateur, quelle image regarder, et quel format voir, qui est l'optimisation ciblée.

Bien sûr, nous avons encore de nombreuses dimensions de données, qui ne sont pas présentées ici. L'optimisation comprend: si l'utilisateur télécharge une image dans un format avec un faible taux de compression, elle sera réencodée, par exemple convertie au format WEBP ou HEVC. Après compression, la capacité de stockage sera réduite de 30 à 40%.

Par exemple, GIF est une image animée, qui ne représente que 7% du volume de requêtes sur l'ensemble de la plate-forme publique, mais la bande passante demandée par GIF représente 60% de la bande passante. Nous pouvons saisir le GIF pour l'optimiser, ce qui peut réduire la justesse, la couleur, et cela devient une image de JEPG, tant que nous trouvons des contradictions, nous serons en mesure de l'optimiser.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Un autre cas est la vidéo C2C. Dans notre actualité WeChat, il y a de plus en plus d'actualités rich media, c'est-à-dire de plus en plus de vidéos C2C. Tout d'abord, pour assurer l'expérience de la vidéo, nous avons fait beaucoup de points d'accélération, permettant aux utilisateurs de télécharger et de télécharger à proximité, et d'enregistrer de nombreuses copies au milieu. Comme les utilisateurs téléchargent et reçoivent une très grande quantité de vidéo, la consommation de ressources en bande passante de la vidéo C2C est très importante, notamment en ce qu'elle occupe un grand nombre de lignes dédiées au milieu.

De même, les opérations techniques raffinées doivent être décomposées. Comment réduire la transmission de la ligne médiane et réduire la bande passante tirée par les utilisateurs? Il existe de nombreux endroits pour les opérations techniques. Pour la vidéo C2C, nous avons fait ceci: Optimiser le format de stockage: La vidéo a le format H264, qui peut être optimisé pour encoder au format H265; le facteur de qualité, certaines vidéos qui n'ont pas besoin d'une si haute définition, comme des vidéos d'enseignement , fréquence d'images ou taux de compression Il peut être abaissé et l'expérience utilisateur est acceptable. Limites pendant les périodes de pointe, déduplication des téléchargements, suppression des vidéos nuisibles, etc.

Je parlerai principalement de deux choses ici: l'une consiste à diffuser d'un côté à l'autre. Si vous avez utilisé des utilisateurs de WeChat, vous devez savoir qu'avant de publier une vidéo, vous devez télécharger la vidéo avant de la regarder, mais nous constatons souvent que la vidéo téléchargée a déjà été regardée et que la plupart sera désactivée immédiatement. Ce genre de scène En fait, la bande passante d'un téléchargement est gaspillée, et pendant la période de téléchargement, l'utilisateur attend longtemps (mauvaise expérience).

Grâce à l'analyse des données, nous recommandons d'optimiser le produit. Que faut-il optimiser? Autrement dit, vous pouvez jouer pendant que vous cliquez dessus, et vous pouvez l'arrêter lorsque vous l'éteignez. Tant que le taux de téléchargement de la vidéo est plus rapide que le taux de lecture. De cette façon, s'il s'agit d'une vidéo regardée, même si elle est désactivée immédiatement, le téléchargement est interrompu. Cette optimisation a en fait réduit la consommation de bande passante de 40%, ce qui représente une énorme optimisation.

L'autre est l'externalisation vidéo. La bande passante CDN est relativement bon marché. Nous programmerons la vidéo chaude sur le nœud CDN, mais lorsque le point sensible passera, le nœud CDN effacera la vidéo (c'est-à-dire que le CDN n'a pas de cache). S'il y a une visite en ce moment , le CDN retournera au centre. Le nœud le tire et le recrache à nouveau à l'utilisateur et le met en cache (notez que la bande passante de retour à la source est gaspillée à ce moment).

Ce type d'accès CDN non à chaud n'a pas besoin d'être à nouveau mis en cache. Nous pouvons modifier la stratégie de mise en cache: c'est-à-dire que l'utilisateur accède à partir d'ici, et constate qu'il n'y a pas ici, 302 sauts directement vers le nœud source et enregistre la fréquence et le nombre de sauts. Bien sûr, cet effet est plus évident lorsqu'un grand nombre d'utilisateurs visite.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Regardez un autre cas, la gestion raffinée de la plate-forme TDW. Le big data est aussi une sorte de ressource, je pense que chacun accumule lentement ce big data dans son propre business, et qu'il accorde de plus en plus d'attention à la gestion du big data. Cependant, la gestion du Big Data comportera de nombreux pièges. Par exemple, notre Big Data se développera rapidement, mais certaines données que nous avons collectées ne seront jamais utilisées. Il s'agit d'un gouffre de "données silencieuses", c'est-à-dire que beaucoup de données ont été collectées, mais jamais utilisées, à ne pas visiter.

En outre, après le traitement des données, les données ou les résultats du traitement ne seront pas accessibles. En fait, il s'agit également de données silencieuses. Si les données silencieuses ne sont pas nettoyées à temps, elles occuperont une grande partie de votre stockage. Si elles atteignent la taille de Tencent, la croissance du stockage sera très terrible.

Nous voyons également qu'une fosse est le «cycle de vie». Lorsque nous effectuons une gestion de Big Data, nous exigeons spécifiquement que les données collectées aient une gestion du cycle de vie, c'est-à-dire combien de temps les données stockées doivent être stockées. C'est la durée de vie cycle. Il existe d'autres écueils. Par exemple, le Big Data comporte souvent des tâches d'analyse de données. Certaines de ces tâches d'analyse sont très lentes et demandent beaucoup de ressources. Nous devons identifier les tâches les plus lentes pour voir si elles peuvent être optimisées et améliorées. efficacité.

Il est également nécessaire de gérer des tâches vides ou des tâches sans valeur. Il existe de nombreuses tâches sur la plate-forme de données qui traitent des données, mais personne ne peut voir les résultats après le traitement, c'est-à-dire des tâches vides en cours d'exécution; il y a aussi certaines tâches qui échouent en fait à cause des données ou de l'environnement; ces tâches vides Nettoyer les tâches et les tâches sans valeur, ce qui peut nous faire économiser beaucoup de serveurs de stockage de données et de serveurs informatiques, de sorte que la manière dont nous pouvons utiliser efficacement cette ressource de Big Data est également très importante.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Le dernier cas est le mouvement WeChat. Je pense que de nombreux petits partenaires utilisent WeChat pour faire de l'exercice. Il est classé chaque jour.

De manière générale, si un utilisateur rejoint la campagne WeChat, il y aura une exigence supplémentaire de traitement du classement. Notre service commercial utilise cette logique pour dériver la demande de ressources de support. Si un grand nombre d'utilisateurs utilisent la campagne WeChat, une grande quantité de ressources sera L'algorithme ci-dessus mérite d'être exploré. Plus tard, après examen, nous recommandons que le côté commercial utilise le classement mondial.

Par le passé, 400 millions de personnes ont participé à la campagne WeChat, et elles devront peut-être être triées 400 millions de fois. Si le classement mondial est utilisé, la quantité de ressources informatiques augmentera un peu, mais une fois le classement global terminé, tous les séquences n'auront pas besoin d'être classées car le tri des autres utilisateurs individuels en est un sous-ensemble, c'est-à-dire tant que les amis de l'utilisateur sont sélectionnés.

Grâce à l'optimisation de l'algorithme, pratiquement toutes les exigences de support pour la croissance du volume d'affaires n'ont rien à voir avec les ressources. Une telle optimisation raffinée permet d'économiser plus de 80% des ressources.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

D'autres intègrent une protection d'origine (la capacité de protection d'origine des articles lancés par la plateforme publique WeChat). Il est nécessaire de comparer les informations "empreintes" de l'article, qu'elles soient originales ou non. En fait, c'est un peu similaire à notre base de données de virus. Voici quelques algorithmes qui peuvent être optimisés.

3. Méthodologie d'exploitation de la technologie


Tout à l'heure, j'ai partagé avec vous le fonctionnement technologique de ressources massives, et il peut y avoir de nombreuses pratiques DevOps raffinées.Nous avons résumé une méthodologie d'exploitation raffinée technique dans le contexte de DevOps. La première est que je pense que beaucoup de nos entreprises DevOps envisageront de passer au cloud à l'avenir.

Lors du passage au cloud, les ressources du cloud sont devenues l'une de nos ressources massives. Comment nous gérons correctement ces conteneurs et l'informatique sans serveur, et comment planifier la gestion, c'est ce à quoi tout le monde devrait prêter attention.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

En ce qui concerne le modèle de développement cloud, il y a deux données dans la partie inférieure du diaporama que ce modèle de développement cloud à l'avenir peut grandement améliorer notre efficacité.

Nous utilisons directement les capacités et les technologies de l'IA sur le cloud, ce qui peut considérablement améliorer l'efficacité de notre développement de l'IA. Par exemple, en téléchargeant et en téléchargeant des capacités techniques (télécharger et télécharger sur la gauche), les utilisateurs peuvent augmenter l'efficacité de 571 fois via le cloud. stockage et invocation, comme Parlant de capacités techniques de lecture et d'écriture de base de données (à droite se trouve l'interface d'appel de base de données), cette efficacité peut améliorer les requêtes de base de données et l'efficacité de lecture et d'écriture de milliers de fois.

Le deuxième point est que la mise en œuvre de DevOps doit accorder une attention particulière au conteneur est aussi une sorte de ressource, la fonction cloud est aussi une sorte de ressource, comment gérer et planifier efficacement, c'est là que nous devons réfléchir.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Grâce à l'examen de l'architecture, nous pouvons aider à trouver les détails des opérations techniques, ce qui peut améliorer efficacement notre efficacité opérationnelle. Cela conduit à la méthodologie globale de nos opérations techniques, y compris: qu'il s'agisse de ressources de serveur, de ressources de bande passante ou d'autres ressources massives, nous Pour faire une décomposition détaillée, tout comme la bande passante de la plate-forme publique dont j'ai parlé, décomposez clairement chaque composant, donnez un schéma d'architecture technique, et listez-le pour chaque point d'association; avec ceux-ci, nous serons très clairs dans Quels liens peuvent être optimisé.

L'optimisation ne signifie pas que tout est couvert et que tout est saisi, mais une contradiction majeure est à saisir. Tout comme je l'ai mentionné plus tôt à propos de l'optimisation GIF, 70% des appels de requêtes représentent 60% de la bande passante. La principale contradiction doit être résolu en premier. Grâce au peignage de l'architecture technique et à une compréhension et une analyse approfondies, nous pouvons généralement proposer des solutions d'optimisation pour les équipes de développement et de produit, y compris des ajustements à l'architecture technique, tels que la séparation à froid et à chaud, comme l'utilisation de méthodes de tri global sur l'algorithme, qui peut être grandement optimisé l'expérience du produit, réduire les coûts.

Une fois cet objectif atteint, les opérations techniques doivent être appréhendées à deux mains. La première consiste à saisir la stratégie produit, telle que la diffusion côte à côte. Si vous passez à la diffusion côte à côte, vous pouvez améliorer l'expérience utilisateur, bien sûr, cela peut aussi produire une mauvaise expérience de retard, mais cela peut grandement réduire les coûts)

D'autre part, appréhender la technologie, grâce à nos moyens techniques et à notre promotion pour permettre aux chefs de produits de faire des ajustements de stratégie produit, ils peuvent nous aider à accroître la valeur utilisateur.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

Tout cela ne se fait pas qu'une seule fois. Nous devons constamment regarder en arrière pour voir si ces optimisations peuvent être encore améliorées. Cela se fait de manière persistante. Cela aidera certainement nos opérations techniques (équipe d'exploitation et de maintenance) à se refléter dans l'entreprise. Plus important statut et grande valeur.

Dans le passé, nous pouvons rarement faire attention à l'entreprise. Désormais, grâce à la révision de l'architecture technique, nous pouvons apporter des méthodes d'exploitation techniques affinées, ce qui nous permet de mieux atteindre l'entreprise, d'optimiser les produits et de valoriser les utilisateurs, et nous sommes plus en mesure de contrôler les coûts., Grâce aux économies de coûts induites par les opérations techniques, pour aider nos produits à atteindre le nec plus ultra.

Meilleures pratiques DevOps pour une opération de technologie de ressources massives

-FINIR -

Je suppose que tu aimes

Origine blog.51cto.com/15127503/2657567
conseillé
Classement