[JAVA] Comment les microservices basés sur Dubbo vont changer l'architecture des assureurs

Xiaobin de China Life explique comment Dubbo a changé son architecture et envisage de migrer vers ** Alibaba Cloud **.

image.png

À propos de Dubbo

En 2013, China Life Insurance Company [RPC Framework](https://searchapparchitecture.techtarget.com/definition/Remote-Procedure-Call-RPC?spm=a2c65.11461447.0.0.552b21f2f6yvpZ] a transformé l'ensemble de la base de données d'entreprise. ) Cherchait. À cette époque, il y avait peu de produits matures sur le marché, tels que Spring Cloud et [Dubbo](https: // dubbo). Il existe de nombreux produits sur le marché, tels que .apache.org / en-us /? Spm = a2c65.11461447.0.0.552b21f2f6yvpZ). Ce que nous recherchions, c'était un cadre largement appliqué dans un environnement de production. Dubbo a été introduit à Taobao depuis longtemps, et le modèle commercial d'Alibaba était comparable au nôtre. Par exemple, notre modèle commercial nous oblige à répondre aux demandes de plusieurs régions d'outre-mer, chacune ayant ses propres exigences commerciales.

Dans cet esprit, nous avons également commencé à utiliser Dubo en 2013. Nous avons démarré des systèmes commerciaux à Hong Kong et Macao en 2016 et en Indonésie en mai 2019. À l'avenir, comme nous utilisons Dubbo, nous prévoyons d'étendre rapidement notre système commercial dans toute l'Asie du Sud-Est, y compris à Singapour.

Dubbo m'a beaucoup aidé en termes de déploiement efficace et d'économies de coûts. Dans cet article, je vais discuter de l'architecture pré-Dubbo qui est commune à de nombreux assureurs traditionnels, puis parler de la façon dont Dubbo a été utilisé et de la façon dont l'architecture a changé.

Ce que les compagnies d'assurance ont fait dans le passé

En ce qui concerne le matériel serveur, nous utilisons généralement IBM et HP [mini-ordinateurs](https: // www), comme de nombreux autres systèmes d’assurance traditionnels. C'était .techopedia.com / definition / 4615 / minicomputer). Seuls ces deux systèmes étaient disponibles à l'époque, tous deux exécutant un système d'exploitation UNIX.

image.png

En ce qui concerne l'architecture d'entreprise, l'architecture client / serveur a été principalement utilisée dans le développement de logiciels jusqu'à présent. Sous une telle architecture, un puissant middleware appelé Tuxedo est une transaction distribuée. Il a été utilisé pour la gestion et a fourni une excellente cohérence et des performances de change élevées. Alors pourquoi avons-nous besoin de remplacer Tuxedo en premier lieu? La première raison est les prix élevés, la deuxième raison est le manque de personnel O&M compétent, la troisième raison est des opérations plus intégrées, des performances et une planification dans des scénarios distribués et multiplateformes. Est d'empirer. La quatrième raison est que Tuxedo est conçu pour des applications monolithiques. En conséquence, il n'y a aucune intention de scission.

Comment transformer le système métier de base

image.png

Cette figure montre les avantages des microservices par rapport aux applications monolithiques. Dubbo sert à l'interaction entre différents composants, qui ressemble aux parties convexes et concaves d'un jouet Lego. Il met en œuvre la gestion des communications et la gouvernance des services. Soutenu par cette conception, il brise la grande architecture de base traditionnelle.

OneLife est notre plateforme de soutien aux entreprises. Comme son nom l'indique, une plate-forme peut gérer toutes les opérations d'assurance, former un écosystème interne et prendre en charge plusieurs domaines différents tels que les images, les nouveaux services, le stockage et le règlement des sinistres. Nous fournissons également des moteurs tels que le flux de travail, le moteur de produit, le moteur de souscription et le moteur de messages. Ces fonctions commerciales sont essentielles pour toute compagnie d'assurance.

Plateforme de traitement des affaires d'assurance développée par Dubbo

image.png

Avec le soutien de Dubbo, nous avons construit une nouvelle plate-forme de traitement des affaires d'assurance pour réaliser le traitement des affaires d'assurance «Six Multi». Six Multi représente l'idée d'avoir plusieurs systèmes d'entreprise, des gammes de produits, des réglementations à suivre, des moteurs et des langues de devise. Par exemple, pour générer une police d'assurance, vous devez décider de la générer en anglais, chinois ou indonésien. Bien entendu, pour cela, il est nécessaire de coopérer avec chaque division commerciale, et il est également nécessaire de concevoir et de développer une plate-forme de traitement appropriée.

Formation du système distribué OneLife

image.png

Comme le montre la figure, une boucle fermée peut être formée avec les quatre parties suivantes. Appel de microservice basé sur Dubbo, intégration continue basée sur Jenkins, Rancher Application de déploiement cloud basée sur a2c65.11461447.0.0.552b21f2f6yvpZ), surveillance de la chaîne basée sur Pinpoint. Nous avons eu des discussions avec Alibaba Cloud concernant la version indonésienne du déploiement cloud. À l'avenir, les systèmes indonésiens pourraient être les premiers à passer à Alibaba Cloud. En termes de surveillance de chaîne ponctuelle, la topologie affichée est très facile à comprendre, mais sur la base de cette topologie, nous pouvons voir certains problèmes tels que des formations interrompues et des appels échoués. .. Cette année, avec l'aide de la surveillance de la chaîne Pinpoint, nous avons pu voir plus de 100 bogues. La combinaison de la surveillance de la chaîne Pinpoint et de Dubbo est excellente.

Comment distribuer Dubo à Hong Kong et Macao

image.png

Dubbo possède plus de 150 serveurs, plus de 210 applications, plus de 2 100 consommateurs et plus de 1 300 fournisseurs répartis à Hong Kong et Macao. Les assureurs, en particulier leurs systèmes commerciaux, n'ont pas beaucoup de transactions fréquentes. La plupart des transactions à haute fréquence se produisent sur le front-end. Les systèmes d'entreprise ne sont pas toujours dans un état de fréquence élevée, mais il est toujours important que tous les systèmes d'entreprise soient produits de manière stable et précise. C'est l'une des raisons pour lesquelles j'ai choisi Dubo.

Comment fonctionne Dubbo China Life Insurance (Overseas) Co., Ltd.

image.png

Environ 70% de notre activité utilise la version initiale de Dubbo (en particulier la 2.4.9). Auparavant, j'avais fait quelques corrections de code basées sur Dubbo, comme la compensation pour les transactions distribuées. Après cela, j'ai découvert que je ne pouvais pas mettre à niveau parce que j'avais fait une correction majeure du code. Ensuite, vous vous demandez peut-être quel type de cadre est utilisé pour les 30% restants de l'entreprise. J'essaye juste la dernière version sur un périphérique. De plus, cette version a été appliquée à l'architecture métier après avoir prouvé qu'elle était pratique et faisable. Actuellement, Dubbo de China Life Insurance (Overseas) Co., Ltd. reçoit plus de 21 millions d'appels par jour, et aucun crash système ne s'est produit depuis l'introduction de Dubbo.

Structure Dubbo

image.png

Nous partagerons la configuration ici. Deux problèmes sont mis en évidence. Le premier problème est le mécanisme de nouvelle tentative. Le problème avec ceci est que si le service est interrompu, il peut être intervenu manuellement à l'aide de la plateforme de contrôle, ou si le service est important, il peut être compensé en répétant la transaction. Le deuxième défi est que l'utilisation du centre d'enregistrement ZooKeeper a ses inconvénients en raison de l'énorme pointe de consommation du réseau. Le concept de données pour Dubbo version 2.7 est prometteur. À l'avenir, j'aimerais essayer d'utiliser Dubbo version 2.7 ou ultérieure pour voir si je peux surmonter les lacunes de ZooKeeper ou optimiser ZooKeeper.

Scénario d'application du microservice Dubbo

image.png

La figure ci-dessus montre une application de microservice Dubbo. L'application démarre sur la page des services en ligne et accède au nouveau composant de service. Après cela, le workflow est lancé et le résultat de l'acceptation est interrogé. Sur la base du résultat de la souscription, le résultat du calcul de la prime est automatiquement interrogé et renvoyé au frontal. Le faible coût est une condition préalable au déploiement de systèmes de vente et de mission critiques en Indonésie. Vous devez également séparer les unités commerciales. Cela implique le modèle de développement de base. Quel est le modèle de développement de base?

Si votre entreprise est répartie sur plusieurs régions, vous devez disposer d'une version unique pour chaque région. Si les versions de base publiées sont identiques, vous pouvez améliorer l'efficacité de votre entreprise. Par exemple, le siège a des services de base, mais l'Indonésie a sa propre réglementation. S'il y a une telle demande à Hong Kong à l'avenir, une fois que la version de base aura passé un certain examen, nous annulerons la version de base et publierons une version de base différente pour chaque région. En bref, dans des situations complexes, la version de base prend en charge la séparation hiérarchique des différentes logiques métier, la gestion du code hiérarchique et la gouvernance des services hiérarchiques et régionaux.

Suggestion

image.png

Premièrement, il améliore le contrôle visuel.

Deuxièmement, il déploie et met en package des grilles de services pour fournir plus de fonctionnalités dans les systèmes de microservices, y compris les appels réseau, les restrictions de trafic, les blocages de ligne et la surveillance interservices.

Troisièmement, il prend en charge plusieurs langues. Dubbo propose actuellement des clients PHP, Node.js, Python et Go, mais prévoit d'en supporter davantage à l'avenir.

Quatrièmement, nous ne recommandons pas à Dubbo de prendre en charge la gestion des transactions distribuées. Lorsque j'ai utilisé Dubbo pour la première fois, j'ai décidé que je devais prendre en charge les transactions distribuées. Par conséquent, j'ai changé le code basé sur Dubbo. L'application était fluide et le code était en mesure d'assurer la cohérence transactionnelle entre les plates-formes. Cependant, lorsque le service échouait, toutes les transactions qu'il envoyait se réduisaient, créant un risque fatal pour la base de données.

Par conséquent, je pense qu'il est souhaitable que Dubbo augmente le support du mécanisme de message et développe des affaires tout en compensant les transactions distribuées. Voici quelques idées et suggestions issues de l'application pratique.

Questions fréquemment posées

Q1: Le processus de remplacement des applications monolithiques par des composants de microservice est-il étape par étape ou en bloc? Et de combien de main-d'œuvre et de ressources avez-vous besoin pour terminer le processus de remplacement?

A1: Premièrement, la structure existante est modulaire et les modules sont indépendants les uns des autres. Pour les structures de données les plus importantes, vous devez séparer la logique métier. Après cela, définissez les fragments de base de données et les autorisations, puis remplacez progressivement les modules. Avant le développement, l'ensemble du processus de remplacement doit être bien planifié. Lorsque nous avons lancé le premier module, il n'y avait que cinq personnes, mais toutes étaient techniquement compétentes et connaissaient leurs domaines respectifs. Obtenir le soutien de la direction était une priorité absolue.

Q2: Comment puis-je détecter les incohérences de données lorsque le contrôle des transactions distribuées n'est pas disponible dans mon système? Et comment résoudre ce problème?

A2: La surveillance de la chaîne basée sur des points précis permet au personnel d'O & M de détecter rapidement les problèmes, de corriger les pannes, puis d'effectuer une intervention manuelle. Le mécanisme MQ est utilisé pour le service de clé. Cependant, ce mécanisme consomme beaucoup de temps et de main-d’œuvre. Nous pensons que le contrôle des transactions distribuées à grande échelle doit être évité.

Q3: Si la quantité de données dans l'entreprise est importante, comment la base de données Oracle doit-elle être remplacée lors de la migration des données de l'ancien système vers le nouveau système? Pouvez-vous répondre à cette question?

R3: Au niveau de la base de données, il est nécessaire de confirmer que la structure de la table et les données de la base de données Oracle correspondent à celles des autres bases de données. Des outils tels que ETL peuvent être utilisés à des fins de comparaison. Au niveau de l'application, vous pouvez suivre deux étapes. La première étape consiste à automatiser le processus. Vous pouvez utiliser des outils d'auto-compilation pour exécuter les instructions SQL de votre application sur les deux bases de données et corriger les erreurs en temps opportun. Après la troisième exécution, presque toutes les instructions SQL peuvent être exécutées normalement. L'étape suivante consiste à repérer les algorithmes et les interfaces clés et à comparer les données générées par la nouvelle interface avec vos données d'entreprise.

Recommended Posts

Comment les microservices basés sur Dubbo vont changer l'architecture des assureurs
Comment les microservices changent la façon de développer des applications