Systems and methods for cloud-based hybrid service mesh in microservices architecture

By using a hybrid service mesh system that registers and shares microservice information in a distributed cloud platform network, the problem of redundant configuration of public services during cloud platform migration is solved, enabling faster and lower-cost application deployment and resource optimization.

CN116149840BActive Publication Date: 2026-06-12JPMORGAN CHASE BANK NA
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
JPMORGAN CHASE BANK NA
Filing Date
2022-11-17
Publication Date
2026-06-12

AI Technical Summary

Technical Problem

During the migration of monolithic services to the cloud platform, application development teams need to learn, build, configure, and maintain cloud-based public services separately, resulting in deployment delays and repetitive work.

Method used

By adopting a cloud-based hybrid service mesh system, microservice information is registered, aggregated, and shared in a distributed cloud platform network. The hybrid service mesh library is used for traffic routing and microservice selection, simplifying application development and optimizing resource utilization.

Benefits of technology

It reduces human touch time in setting up public services, lowers deployment costs, increases deployment speed, reduces manual errors, promotes collaboration between application development and operations teams, and provides faster deployment and a stable production environment.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116149840B_ABST
    Figure CN116149840B_ABST
Patent Text Reader

Abstract

Systems and methods for cloud-based hybrid service mesh in microservice architecture are disclosed. A method for selecting a microservice in a cloud-based hybrid mesh microservice architecture can include: (1) receiving, at a hybrid service mesh repository in a first microservice instance, a request for a second microservice, wherein the hybrid service mesh repository includes microservice information for a plurality of microservice instances, the microservice information including an identification of each microservice instance, a location of each microservice instance, and a status of each microservice instance; (2) identifying, by the hybrid service mesh repository, a number of microservice instances for the microservice and a location of each microservice instance; (3) selecting, by the hybrid service mesh repository, one of the plurality of microservice instances; and (4) invoking, by the hybrid service mesh repository, the selected microservice instance.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The embodiments generally relate to systems and methods for cloud-based hybrid service meshes in microservice architectures. Background Technology

[0002] The team is migrating monolithic services from Virtual Server Interface (VSI) / Physical Server Interface (PSI) to the cloud platform, resulting in hybrid platform applications. The cloud-based architecture relies on many common services, such as service discovery, load balancing, resilience testing, and non-disruptive upgrades. Therefore, application development teams must learn, build, configure, deploy, and maintain these services separately. This additional work delays application deployment. Summary of the Invention

[0003] Systems and methods for cloud-based hybrid service meshes in microservice architectures are disclosed. In one embodiment, a method for registering microservice instances in a distributed cloud platform network may include: (1) receiving microservice information from multiple microservice instances hosted by the associated cloud platform at each of a plurality of managed nodes in the distributed cloud platform network, each managed node being associated with a cloud platform; (2) aggregating the microservice information by each managed node; (3) transmitting the aggregated microservice information by each managed node to other managed nodes in the distributed cloud platform network; (4) combining the received microservice information with its aggregated microservice information by each managed node; and (5) integrating the combined microservice information into a hybrid service mesh library by applications in the distributed cloud platform network.

[0004] In one embodiment, the microservice information for each microservice instance may include the microservice instance identifier, the host identifier of the host cloud platform, and the status of the microservice instance.

[0005] In one embodiment, microservice information can be updated periodically.

[0006] In one embodiment, a hybrid service mesh library can be configured to route traffic to one of multiple microservice instances.

[0007] According to another embodiment, a method for selecting a microservice in a cloud-based hybrid mesh microservice architecture may include: (1) receiving a request for a second microservice at a hybrid service mesh library in a first microservice instance, wherein the hybrid service mesh library includes microservice information of multiple microservice instances, the microservice information including the identifier of each microservice instance, the location of each microservice instance, and the state of each microservice instance; (2) identifying the number of microservice instances for the microservice and the location of each microservice instance by the hybrid service mesh library; (3) selecting one of the multiple microservice instances by the hybrid service mesh library; and (4) invoking the selected microservice instance by the hybrid service mesh library.

[0008] In one embodiment, the hybrid service mesh library can select microservice instances based on factors such as load balancing across multiple microservice instances, the geographical proximity of the selected microservice instances, and minimizing latency.

[0009] In one embodiment, a hybrid service mesh library can be configured to route traffic to one of multiple microservice instances.

[0010] In one embodiment, when a microservice instance comes online or offline, the microservice information of one of the microservice instances can be updated.

[0011] In one embodiment, the selected microservice instance is executed by a cloud platform associated with one of a plurality of managed nodes in a distributed cloud platform network.

[0012] In one embodiment, each of the multiple managed nodes in the distributed cloud platform network is associated with the cloud platform.

[0013] In one embodiment, multiple managed nodes can aggregate microservice information from microservice instances hosted by an associated cloud platform.

[0014] In one embodiment, multiple managed nodes share aggregated microservice information with other managed nodes.

[0015] According to another embodiment, a distributed cloud platform network may include multiple managed nodes, each associated with a cloud platform; multiple microservice instances hosted by each cloud platform; and microservices, including a hybrid service mesh library containing microservice information for the multiple microservice instances, the microservice information including the identifier of each microservice instance, the location of each microservice instance, and the status of each microservice instance, wherein the hybrid service mesh library identifies the number of microservice instances used for the microservices and the location of each microservice instance, selects one of the multiple microservice instances, and invokes the selected microservice instance.

[0016] In one embodiment, the hybrid service mesh library selects microservice instances to balance the load across multiple microservice instances, based on the geographical proximity of the selected microservice instances, and to minimize latency, etc.

[0017] In one embodiment, a hybrid service mesh can be configured to route traffic to one of multiple microservice instances.

[0018] In one embodiment, multiple managed nodes can share aggregated microservice information with other managed nodes. Attached Figure Description

[0019] To gain a more complete understanding of the invention and its objects and advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which:

[0020] Figure 1 A cloud-based hybrid mesh microservice architecture according to an embodiment is described;

[0021] Figure 2 A method for a cloud-based hybrid service mesh in a microservice architecture, according to embodiments, is described; and

[0022] Figure 3 A method for a cloud-based hybrid service mesh in a microservice architecture is described according to another embodiment. Detailed Implementation

[0023] The embodiments generally relate to systems and methods for cloud-based hybrid service meshes in microservice architectures.

[0024] In this embodiment, a managed service with a common, reusable library is disclosed, which isolates developers from the details of custom infrastructure. The embodiment simplifies the development of cloud-based applications by seamlessly integrating and managing a set of common platform services. This promotes platform independence (e.g., write once, run anywhere), eliminates the need for configuration of common use cases, prevents duplication of work, ensures standardization and consistency (e.g., no application-to-application changes), and instantiates the architecture based on best practices.

[0025] The implementation may provide at least some of the following advantages: (1) lower cost; (2) reduced human touch time required to set up public services; (3) reduced manual errors; (4) faster deployment; (5) integration of the solution into public services applicable to multiple applications, such as resilience, load balancing, logging, non-disruptive upgrades, etc.; (6) better control (e.g., allowing the implementation and modification of business processes, policies, and controls); (7) greater solidarity and collaboration between application development and operations teams; (8) a stable environment that increases productivity; and (9) reduced operational dependencies during upgrades and deployments.

[0026] The implementation can provide a dynamic platform that reduces or eliminates health checks, provides configuration management, gap pool maintenance, optimizes resource utilization, provides horizontal scaling, provides geographic affinity load balancing configuration, can use common features (such as leader election, unique identifier generation, characteristic flags, etc.), can provide capped fault detection and / or propagation, can require minimal network traffic, and can provide support for multiple programming languages. For example, the implementation can facilitate distributed protocol services, such as leader election and unique identifier generation, through dynamic registration of microservice instances.

[0027] As used in this article, "microservice" refers to any service that can be deployed independently, is loosely coupled, highly maintainable, and testable. Copies of microservices can be deployed to different cloud platforms as microservice instances.

[0028] refer to Figure 1 The illustration depicts a cloud-based hybrid mesh microservice architecture according to one embodiment. The distributed cloud platform network 100 can be a cluster for one or more microservices, and may include multiple cloud providers, such as cloud provider 11201, cloud provider 21202, and cloud provider n120. n Each cloud provider can host one microservice instance (e.g., 1301, 1302, ..., 130...). n For example, each microservice can be deployed separately, and nodes 1101, 1102, ..., 110 can be used. n (Such as managed nodes or "MNodes") interfaces with other cloud providers.

[0029] MNode 110 can be provided by the distributed cloud platform network 100 and is not part of an application or microservice.

[0030] Although each cloud provider 120 can host multiple microservices 130, Figure 1 This describes a single microservice hosted by each cloud provider (e.g., 1301, 1302, ..., 130...). n Microservices can perform the same functions, different functions, etc.

[0031] Each microservice (e.g., 1301, 1302, ..., 130) n This can include application logic (e.g., 1321, 1322, ..., 132...). n ) and hybrid service grid libraries (e.g., 1341, 1342, ..., 134) n Application logic 132 may include the logic required for each microservice 130 to execute.

[0032] The hybrid service mesh library 134 may include microservice information about instances of microservices 130 registered at all cloud providers 120. For example, the hybrid service mesh library 134 may aggregate microservice information from each MNode 110 and may maintain a library of microservice information. Examples of microservice information include microservice instance identifiers (e.g., any identifier that uniquely identifies a microservice instance), host identifiers of host cloud platforms (e.g., any identifier that uniquely identifies a host cloud platform used for a microservice instance), or the location of a microservice instance, and the status of the microservice instance.

[0033] In the embodiment, each microservice (e.g., 1301, 1302, ..., 130...) n It can automatically send commands to its local MNodes 1101, 1102, ..., 110. n Register for its service. Each MNode 1101, 1102, ..., 110 n Its data can be transmitted to all other MNodes in the service cluster. Each hybrid service mesh library 134 can be updated periodically.

[0034] Cloud Provider 1 1201, Cloud Provider 2 1202, and Cloud Provider n 120 n These can be different cloud platforms, or different instances of the same cloud platform. Examples of cloud platforms include Amazon Web Services, Google Cloud, and Microsoft Azure.

[0035] The embodiment effectively provides a control plane including the hybrid service mesh library 134 and MNode 110.

[0036] Lookups can be used to retrieve the availability status and configuration preferences of each microservice 130. For example, the hybrid service mesh library 134 can look up the status and location (e.g., host) of each microservice 130.

[0037] In this embodiment, microservice 130 may incorporate client-server preferences when making routing and policy decisions.

[0038] When the local MNode 110 is unreachable, microservice 130 can use the non-local MNode 110 in the cluster as a fallback.

[0039] A user interface (not shown) may be provided to enable the configuration of the hybrid service mesh library 134. For example, a user may configure the hybrid service mesh library 134 to route traffic to one or more microservices 130 for testing, canary deployments, etc.

[0040] refer to Figure 2 According to embodiments, an exemplary method for using a cloud-based hybrid service mesh in a microservice architecture is disclosed.

[0041] In step 205, after startup, each microservice can register with its local MNode. In one embodiment, a microservice can provide its local MNode with microservice information, such as a microservice identifier, location (e.g., host), and status.

[0042] In step 210, an MNode can aggregate microservice information of its local microservices, and in step 215, it can share this information with other MNodes in the cluster. An MNode can combine microservice information from other MNodes with its aggregated microservice information.

[0043] In step 220, MNode can provide microservice information to the hybrid service mesh library within each microservice. The hybrid service mesh library can integrate microservice information.

[0044] In step 225, during execution, the microservice can identify the microservice to be invoked. The microservice can be part of a process within the application.

[0045] In step 230, the application can identify instances of the desired microservices in the hybrid service mesh library.

[0046] In step 235, the hybrid service mesh library can identify the number of microservice instances of the desired microservice within the hybrid cloud platform network and the execution location (e.g., host) of each microservice instance.

[0047] In step 240, if more than one microservice instance is running, the hybrid service mesh library can select microservice instances for load balancing. In another embodiment, the hybrid service mesh library can select microservice instances to minimize latency. In yet another embodiment, the hybrid service mesh library can select microservice instances based on geographic affinity. Combinations of these considerations can be used as needed and / or desired.

[0048] In one embodiment, a hybrid service mesh library can be configured to route traffic to one or more microservice instances for canary deployments, A / B testing, etc.

[0049] In step 245, the hybrid service mesh library can invoke the selected microservice instance, and in step 250, the microservice instance can return the result to the application. This process can be repeated for the next identified microservice.

[0050] refer to Figure 3 According to another embodiment, an exemplary method for using a cloud-based hybrid service mesh in a microservices architecture is disclosed.

[0051] In step 305, after startup, each managed node (MNode) of the cloud platform in the hybrid mesh microservice network can receive microservice information from the microservice instance hosted by its respective cloud platform. In one embodiment, the microservice information may include the microservice instance identifier, the location (e.g., host identifier) ​​of the microservice instance, and its status.

[0052] In step 310, an MNode can aggregate microservice information from its local microservice instance, and in step 315, it can share the aggregated microservice information with other MNodes. An MNode can combine microservice information received from other MNodes with its aggregated microservice information.

[0053] In step 320, microservice instances can receive aggregated microservice information from their MNodes and integrate the aggregated microservice information into the hybrid service mesh library within each microservice instance.

[0054] In step 325, during execution, one of the microservices in the hybrid service mesh library can receive the microservice to be invoked. The identifier can come from the application or an external process.

[0055] In step 330, the hybrid service mesh library can identify instances of desired microservices within the hybrid service mesh library. For example, it can identify the number of instances of desired microservices within the cluster and the location where each desired microservice is executed (e.g., a host cloud platform).

[0056] In step 335, if more than one microservice instance is running, the hybrid service mesh library can select one of the microservice instances for load balancing. In another embodiment, the hybrid service mesh library can select a microservice instance, which minimizes latency. In yet another embodiment, the hybrid service mesh library can select a microservice instance based on geographic affinity. A combination of these considerations can be used as needed and / or desired.

[0057] In one embodiment, the hybrid service mesh library can be configured to route traffic to one or more concrete microservice instances. This can be useful for canary deployments, A / B testing, etc. In one embodiment, the hybrid service mesh library can be configured using a user interface.

[0058] In step 340, the hybrid service mesh library can invoke the selected microservice instance, and in step 345, the microservice instance can return the result to the application. This process can be repeated for the next identified microservice.

[0059] The implementation examples can be used to perform some or all of the following use cases: calling specific versions of microservices, automatically enabling / disabling cloud microservices, migrating microservices to another platform, deploying hybrid platforms, interacting with multiple service versions, "canary" deployments (e.g., phased releases), A / B testing (e.g., testing new versions of microservice instances), configuration management, centralized metrics, distributed tracing, centralized logging, etc.

[0060] In the following text, general aspects of implementing the systems and methods of the present invention will be described.

[0061] The system of the present invention, or a part thereof, may be in the form of a “processor,” such as a general-purpose computer. As used herein, the term “processor” will be understood to include at least one processor using at least one memory. At least one memory stores an instruction set. Instructions may be permanently or temporarily stored in one or more memories of the processor. The processor executes the instructions stored in the one or more memories to process data. The instruction set may include various instructions for performing one or more specific tasks (such as those described above). Such an instruction set for performing a specific task may be characterized as a program, a software program, or simply as software.

[0062] In one embodiment, the processor may be a dedicated processor.

[0063] In one embodiment, the processor can be a cloud-based processor, a physical processor, or a combination thereof.

[0064] As mentioned above, the processor executes instructions stored in one or more memories to process data. This processing of data can be, for example, in response to commands from one or more users of the processor, in response to previous processing, in response to requests from another processor, and / or any other input.

[0065] As mentioned above, the processor used to implement the present invention can be a general-purpose computer. However, the processor described above can also utilize any of a wide variety of other technologies, including special-purpose computers, computer systems (including, for example, microcomputers, minicomputers, or mainframe computers), programmable microprocessors, microcontrollers, peripheral integrated circuit elements, CSIC (customer application-specific integrated circuit) or ASIC (application-specific integrated circuit) or other integrated circuits, logic circuits, digital signal processors, programmable logic devices (such as FPGAs, PLDs, PLAs, or PALs), or any other devices or arrangements of devices capable of implementing the steps of the process of the present invention.

[0066] The processor used to implement this invention can use a suitable operating system.

[0067] It should be understood that, in order to practice the method of the present invention as described above, the processor and / or memory of the processor do not necessarily need to be physically located in the same geographical location. That is, each of the processor and memory used by the processor can be located in geographically different locations and connected to communicate in any suitable manner. Furthermore, it should be understood that each of the processor and / or memory can be composed of different physical components. Therefore, the processor does not necessarily have to be a single component in one location, and the memory does not necessarily have to be another single component in another location. That is, it is contemplated that the processor can be two components in two different physical locations. The two different components can be connected in any suitable manner. Furthermore, the memory can include two or more portions of memory located in two or more physical locations.

[0068] For further clarification, as described above, processing is performed by various components and various memories. However, it should be understood that, according to another embodiment of the invention, a single component can perform the processing described above that is performed by two different components. Additionally, two different components can perform the processing described above that is performed by one different component. Similarly, according to another embodiment of the invention, a single memory portion can perform memory storage described above that is performed by two different memory portions. Additionally, two memory portions can perform memory storage described above that is performed by one different memory portion.

[0069] Furthermore, various technologies can be used to provide communication between various processors and / or memories, and to allow the processors and / or memories of this invention to communicate with another entity; that is, for example, to obtain additional instructions or to access and use remote memory storage. Such technologies for providing this communication may include networks (Internet, intranet, extranet, LAN, Ethernet), wireless communications via cellular towers or satellites, or any client-server system providing communication. Such communication technologies may use any suitable protocol, such as TCP / IP, UDP, or OSI.

[0070] As described above, instruction sets can be used in the processing of this invention. Instruction sets can be in the form of programs or software. For example, software can be in the form of system software or application software. For example, software can also be a collection of individual programs, program modules within a larger program, or part of a program module. The software used can also include modular programming in the form of object-oriented programming. The software tells the processor what to do with the data being processed.

[0071] Furthermore, it should be understood that the instructions or instruction sets used in the embodiments and operation of this invention can be in a suitable form that allows a processor to read the instructions. For example, the instructions forming a program can be in the form of a suitable programming language, which is translated into machine language or object code to allow one or more processors to read the instructions. That is, lines of programming code or source code written in a particular programming language are translated into machine language using a compiler, assembler, or interpreter. Machine language is binary-coded machine instructions specific to a particular type of processor (i.e., for example, a particular type of computer). Computers understand machine language.

[0072] Any suitable programming language can be used according to various embodiments of the invention. It is not necessary to utilize a single type of instruction or a single programming language in conjunction with the operation of the systems and methods of the invention. Instead, any number of different programming languages ​​can be utilized as needed and / or desired.

[0073] Furthermore, the instructions and / or data used in the practice of this invention can utilize any compression or encryption technology or algorithm, as desired. An encryption module can be used to encrypt the data. Additionally, for example, files or other data can be decrypted using a suitable decryption module.

[0074] As described above, the present invention can be exemplified in the form of a processor, including, for example, a computer or computer system, which includes at least one memory. It should be understood that, as desired, the instruction set (i.e., software) that enables the computer operating system to perform the operations described above can be contained on any of a wide variety of media. Additionally, the data processed by the instruction set can also be contained on any of a wide variety of media. That is, for example, the specific medium (i.e., the memory in the processor) used to store the instruction set and / or data used in the present invention can take on any of a variety of physical forms or transmission methods. Exemplarily, the medium can be paper, paper-transparent film, optical discs, DVDs, integrated circuits, hard disks, floppy disks, optical disks, magnetic tapes, RAM, ROM, PROM, EPROM, wires, cables, optical fibers, communication channels, satellite transmissions, memory cards, SIM cards or other telematics, and any other medium or data source that can be read by the processor of the present invention.

[0075] Furthermore, it is desirable that the one or more memories used in the processor implementing the present invention can be any of a variety of forms to allow the memory to store instructions, data, or other information. Therefore, the memory can be in the form of a database for storing data. The database can use any desired file arrangement, such as a flat file arrangement or a relational database arrangement.

[0076] In the systems and methods of this invention, various “user interfaces” can be used to allow a user to interface with one or more processors used to implement this invention. As used herein, a user interface includes any hardware, software, or a combination of hardware and software used by a processor that allows the user to interact with the processor. For example, a user interface may be in the form of a dialog box. A user interface may also include any of the following: a mouse, a touchscreen, a keyboard, a keypad, a voice reader, a voice recognizer, a dialog box, a menu box, a list, a checkbox, a toggle switch, a button, or any other device that allows the user to receive information about the operation of the processor when processing a set of instructions and / or providing information to the processor. Thus, a user interface is any device that provides communication between a user and a processor. For example, information provided by the user to the processor through the user interface may be in the form of commands, data selections, or some other input.

[0077] As discussed above, a processor executing an instruction set utilizes a user interface to process user data. The user interface is typically used by the processor to interact with the user, to deliver or receive information from the user. However, it should be understood that in some embodiments of the systems and methods according to the invention, the human user does not actually need to interact with the user interface used by the processor of the invention. Instead, it is also contemplated that the user interface of the invention can interact with another processor instead of a human user, i.e., to deliver and receive information. Therefore, other processors can be characterized as users. Furthermore, it is contemplated that the user interface utilized in the systems and methods of the invention can interact with another processor or portions of multiple processors while also interacting with portions of a human user.

[0078] Those skilled in the art will readily understand that the present invention is readily available and applicable. Many embodiments and adaptations of the invention, as well as many variations, modifications, and equivalent arrangements, other than those described herein, will be apparent from or reasonably conceived by the invention and its foregoing description, without departing from the spirit or scope of the invention.

[0079] Therefore, although the invention has been described in detail herein with respect to exemplary embodiments thereof, it should be understood that this disclosure is merely illustrative and exemplary and is intended to provide a disclosure of implementation details of the invention. Therefore, the foregoing disclosure is not intended to interpret or limit the invention or otherwise exclude any other such embodiments, adaptations, variations, modifications, or equivalent arrangements.

Claims

1. A method for registering microservice instances in a distributed cloud platform network, comprising: At each of the multiple managed nodes in the distributed cloud platform network, each managed node is associated with the cloud platform and receives microservice information from multiple microservice instances hosted by the associated cloud platform. The microservice information is aggregated by each managed node; Each managed node transmits aggregated microservice information to other managed nodes in the distributed cloud platform network; Each managed node combines the received microservice information with the aggregated microservice information; as well as Applications in the distributed cloud platform network integrate combined microservice information into a hybrid service mesh library.

2. The method according to claim 1, wherein the microservice information of each microservice instance includes a microservice instance identifier, a host identifier of the host cloud platform, and the status of the microservice instance.

3. The method according to claim 1, wherein the microservice information is updated periodically.

4. The method of claim 1, wherein the hybrid service mesh library can be configured to route traffic to one of the plurality of microservice instances.

5. A distributed cloud platform network, comprising: Multiple managed nodes, each associated with a cloud platform; Multiple microservice instances hosted by each cloud platform; as well as The microservice includes a hybrid service mesh library, which includes microservice information of the plurality of microservice instances. The microservice information includes the identifier of each microservice instance, the location of each microservice instance, and the status of each microservice instance. The hybrid service mesh library identifies the number of microservice instances for the microservice and the location of each microservice instance, selects one of the plurality of microservice instances, and invokes the selected microservice instance.

6. The distributed cloud platform network of claim 5, wherein the hybrid service mesh library selects selected microservice instances to balance the load across the plurality of microservice instances.

7. The distributed cloud platform network of claim 5, wherein the hybrid service mesh library selects the selected microservice instance based on the geographical proximity of the selected microservice instance's location.

8. The distributed cloud platform network of claim 5, wherein the hybrid service mesh library selects selected microservice instances to minimize latency.

9. The distributed cloud platform network of claim 5, wherein the hybrid service mesh library can be configured to route traffic to one of the plurality of microservice instances.

10. The distributed cloud platform network according to claim 5, wherein the plurality of managed nodes share aggregated microservice information with other managed nodes.

Citation Information

Patent Citations

  • Microservice management method and system based on artificial intelligence service cloud platform

    CN108418862A

  • Service management and control system based on micro-service architecture

    CN110971449A