CN111176723A - Service grid and link version based service multi-version release system and method - Google Patents

Service grid and link version based service multi-version release system and method Download PDF

Info

Publication number
CN111176723A
CN111176723A CN201911409920.8A CN201911409920A CN111176723A CN 111176723 A CN111176723 A CN 111176723A CN 201911409920 A CN201911409920 A CN 201911409920A CN 111176723 A CN111176723 A CN 111176723A
Authority
CN
China
Prior art keywords
version
service
link
release
strategy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201911409920.8A
Other languages
Chinese (zh)
Other versions
CN111176723B (en
Inventor
朱争光
王光明
郭峰
陈齐彦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Daoke Network Technology Co Ltd
Original Assignee
Shanghai Daoke Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Daoke Network Technology Co Ltd filed Critical Shanghai Daoke Network Technology Co Ltd
Priority to CN201911409920.8A priority Critical patent/CN111176723B/en
Publication of CN111176723A publication Critical patent/CN111176723A/en
Application granted granted Critical
Publication of CN111176723B publication Critical patent/CN111176723B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention discloses a service multi-version release system and a method based on a service grid and a link version, wherein the system comprises a version link controller, a distribution strategy controller, one or more service sidecars and a version sensing gateway; the service side cars are used for controlling service flow, the service comprises one or more versions, and each service side car corresponds to one version of one service; the version sensing gateway is used for sensing the version in the service corresponding to the service side car; the version link controller is used for registering, creating and managing link versions by users and managing version release of service, generating a version release strategy and issuing the version release strategy; the distribution strategy controller is used for receiving the version release strategy issued by the version link controller, updating the flow control strategy of the service side car according to the version release strategy and issuing a corresponding flow control strategy to the service side car; and the service side car forwards the flow to the service of the corresponding version according to the flow control strategy.

Description

Service grid and link version based service multi-version release system and method
Technical Field
The invention relates to a multi-version release mode of application service, in particular to a service grid and link version-based multi-version release system and method of service.
Background
Under the micro-service architecture, the number of services constituting a complete application may be dozens or even hundreds, and version update of an application often involves version update of one to multiple (but not all) services, but when a new version of test environment needs to be run, all services often need to be deployed in full, thus bringing various challenges in development, testing and running: the deployment operation and maintenance workload is huge, and a large amount of resources are consumed;
the original multi-version release management scheme such as gray release and golden silk sparrow release is not suitable for micro-service scenes, the original scheme mainly divides the flow into different versions by controlling the distribution of access inlet flow, but the access flow between internal services of micro-service application lacks effective control management and can only be suitable for a multi-version full-quantity deployment mode; in addition, the original gray release needs to be matched with the modification of service configuration information, and the complete online dynamic version switching cannot be realized;
the prior chinese patent application CN103116594A discloses an application program executing and providing device and an application program distributing method, which solve the problem of application discovery and recommendation of a client (generally, apps of a user's mobile phone, etc.), do not relate to the problem of coexistence of multiple versions of the same application of a server, do not relate to the problem of coexistence of multiple versions of an application system "consisting of multiple services of the server due to service version upgrade, and solve the problem of release management when multiple versions of multiple services coexist in a server system.
Disclosure of Invention
The invention provides a service multi-version release system based on a service grid and a link version, which can realize the coexistence of application version multiplexing and multi-versions according to the system, reduce the workload of deployment, operation and maintenance and reduce the resource consumption, and can dynamically control the access among different versions of services in real time through the system, thereby improving the service management capability; on the basis of controlling service access, the version release management and control without application perception are realized;
the resource consumption is saved, the larger the scale is, the larger the saved resources are (for example, the application of 100 services saves 99% of resources), and meanwhile, the system can also greatly accelerate the system publishing speed, the larger the cluster scale is, the longer the consumed time of adopting the traditional full-scale publishing mode is, and the more the time saved by adopting the system is, so as to solve the defects caused by the prior art.
The invention also provides an application multi-version release method based on the service grid and the link version.
In order to solve the technical problems, the invention provides the following technical scheme:
in a first aspect, a service grid and link version based service multi-version release system comprises a version link controller, a distribution strategy controller, one or more service sidecars and a version aware gateway;
the service side cars are used for controlling service flow, services comprise one or more versions, and each service side car corresponds to one version of one service;
the version perception gateway is used for perceiving the version in the service corresponding to the service side car;
the version link controller is used for registering, creating and managing a link version by a user, managing the version release of the service, generating a version release strategy and issuing the version release strategy;
the distribution strategy controller is used for receiving the version release strategy issued by the version link controller, updating the flow control strategy of the service side car according to the version release strategy and issuing a corresponding flow control strategy to the service side car;
and the service side car forwards the flow to the service of the corresponding version according to the flow control strategy.
In the above system for releasing multiple versions of service based on a service grid and a link version, the version aware gateway is further configured to update the version identification policy according to the received version release policy issued by the version link controller.
The service grid and link version based service multi-version release system is characterized in that the version identification policy is that the corresponding version is matched according to a URL pattern of an HTTP request, or the version identification policy is that the corresponding version is matched according to information in a specific Header/field in a request network packet.
In the service grid and link version based service multi-version release system, the version aware gateway is further configured to add corresponding link version information to the policy after the version is matched according to the policy request.
In the service grid and link version based service multi-version release system, the link version information is added by adding a field for identifying the version in a Header of HTTP, or adding extra packet Header information in a TCP network packet.
In the service grid and link version based service multi-version release system, the version aware gateway is further configured to send a request to a service of a corresponding version according to the link version information updated by the version identification policy and the version release policy issued by the version link controller.
In the service grid and link version based service multi-version release system, the version link controller creates a new link version by adding a plurality of services to the link system when creating the link version and then selecting the version of each service.
In a second aspect, a service grid and link version based application multi-version release method includes the following steps:
step 1, a service side car acquires a version in each service;
step 2, the version link controller creates and manages the link version, generates a version release strategy and issues the version release strategy;
step 3, the distribution strategy controller receives the version release strategy issued by the version link controller, updates the flow control strategy of the service side car according to the version release strategy, and issues corresponding flow control strategies to a plurality of service side cars respectively;
and 4, respectively forwarding the flow to the service of the corresponding version by the service side car according to the flow control strategy.
The application multi-version release method based on the service grid and the link version is characterized in that when the new version is released,
the step 1 specifically comprises the following steps: the service side car acquires and reports the new version information to the version link controller;
the step 2 specifically comprises the following steps: and the version link controller distributes the version release strategy to the distribution strategy controller and the version perception gateway according to the new link information released by the new version.
The version-aware gateway updates the version identification policy according to the received version release policy, and sends a request to the service of the corresponding version according to the link version information updated by the version identification policy and the version release policy.
The method for releasing multiple versions of an application based on a service grid and a link version includes that the version identification policy is the version corresponding to the URL pattern matching according to the HTTP request, or the version identification policy is the version corresponding to the information matching in a specific Header/field in the request network packet.
In the foregoing method for releasing multiple versions of an application based on a service grid and a link version, after the version-aware gateway matches the version according to the policy request, the version-aware gateway adds corresponding link version information to the policy.
In the foregoing method for releasing multiple versions of an application based on a service grid and a link version, the manner of adding the link version information is to add a field for identifying the version in a Header of HTTP, or to add extra Header information in a TCP network packet.
In the foregoing method for releasing multiple versions of an application based on a service grid and a link version, in step 2, the creating of the link version by the version link controller specifically includes: when creating link versions, a new link version is created by adding multiple services to the link system and then selecting the version of each service.
In a third aspect, an apparatus for multi-version publishing of an application based on a service grid and a link version includes:
at least one processor;
a memory coupled with the at least one processor, the memory storing executable instructions, wherein the executable instructions, when executed by the at least one processor, cause implementation of the method according to any one of the above methods.
In a fourth aspect, a chip, comprises: a processor for calling and running the computer program from the memory so that the device in which the chip is installed performs: the method of any of the above methods.
In a fifth aspect, a computer-readable storage medium, wherein a computer program is stored on the computer-readable storage medium, which computer program, when executed by a processor, performs the steps of any of the above methods.
In a sixth aspect, a computer program product comprises computer program instructions for causing a computer to perform the method of any of the above methods.
The technical scheme provided by the service multi-version release system and method based on the service grid and the link version has the following technical effects:
according to the system, the service version multiplexing and multi-version coexistence can be realized, the deployment operation and maintenance workload is reduced, the resource consumption is reduced, meanwhile, the system can dynamically control the access among different versions of services in real time, and the service management capability is improved; on the basis of controlling service access, the version release management and control without application perception are realized.
Drawings
FIG. 1 is a schematic structural diagram of a service grid and link version-based service multi-version release system according to the present invention;
FIG. 2 is a diagram illustrating a specific link system structure in a service multi-version distribution system based on a service grid and link versions according to the present invention;
FIG. 3 is a schematic diagram of another specific link system structure in a service grid and link version-based service multi-version distribution system according to the present invention;
FIG. 4 is a flowchart illustrating a method for multi-version release of an application based on a service grid and a link version according to the present invention;
fig. 5 is a schematic structural diagram of another embodiment of a service grid and link version-based service multi-version distribution system according to the present invention.
Wherein the reference numbers are as follows:
version link controller 101, distribution policy controller 102, service sidecar 103, service 104, version aware gateway 105.
Detailed Description
In order to make the technical means, the inventive features, the objectives and the effects of the invention easily understood and appreciated, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the specific drawings, and it is obvious that the described embodiments are a part of the embodiments of the present invention, but not all of the embodiments.
All other embodiments, which can be obtained by a person skilled in the art without any inventive step based on the embodiments of the present invention, are within the scope of the present invention.
It should be understood that the structures, ratios, sizes, and the like shown in the drawings and described in the specification are only used for matching with the disclosure of the specification, so as to be understood and read by those skilled in the art, and are not used to limit the conditions under which the present invention can be implemented, so that the present invention has no technical significance, and any structural modification, ratio relationship change, or size adjustment should still fall within the scope of the present invention without affecting the efficacy and the achievable purpose of the present invention.
In addition, the terms "upper", "lower", "left", "right", "middle" and "one" used in the present specification are for clarity of description, and are not intended to limit the scope of the present invention, and the relative relationship between the terms and the terms is not to be construed as a scope of the present invention.
In a specific use environment of the system, the application referred by the system is a complete application system, such as an online shopping mall application;
a certain service 104 of an application, such as an online mall system, may be split into a front-end service and a back-end service, where the front-end service is service 1 and the back-end service is service 2, and such as an online mall system may be split into a front-end service, an order service and a user service, where the front-end service is service 1, the order service is service 2 and the user service is service 3;
link versions in the present system: we refer to each version or each specific version of each service 104 of an application as constituting an application version as a link version, for example: if an application has 3 services 104, service 1, service 2, and service 3, which are all versions v1, the v1 version of service 1 is called, the v1 version of service 2 is called, and the complete application composed of the v1 version of service 3 is one version of the application, called a link version (e.g., called link version v 1), if service 1 updates one version to 1.1 version at this time, called the v1.1 version of service 1, the v1 version of service 2, and the v1 version of service 3 is one new version of the application, called a new link version (e.g., called link version v 2), and the following table 1 shows the corresponding relationship;
Figure DEST_PATH_IMAGE001
TABLE 1
The strategy in the system is a flow distribution strategy: referring to the forwarding relation of network requests, such as a link of v1 version, the traffic distribution policy refers to the network request access path of the corresponding network request from the gateway- > service 1-v 1- > service 2-v 1- > service 3-v 1- > service n-v 1.
The invention provides a service multi-version release system and method based on a service grid and a link version, aiming at realizing the coexistence of service version multiplexing and multi-version according to the system, reducing the workload of deployment, operation and maintenance and reducing the resource consumption, and simultaneously, the system can dynamically control the access among different versions of services in real time and improve the service management capability; on the basis of controlling service access, the version release management and control without application perception are realized.
In a first aspect, as shown in fig. 1, a first embodiment: a service multi-version release system based on service grid and link version comprises a version link controller 101, a distribution strategy controller 102, one or more service sidecars 103 (a plurality of service sidecars 103 in figure 1), a version-aware gateway 105;
the service side cart 103 is used for controlling the flow of the service 104, the service 104 comprises one or more versions, and each service side cart 103 corresponds to one version of one service 104; in FIG. 1, there are multiple services 104, such as service 1, service 2 … …, service n.
The version sensing gateway 105 is used for sensing the version in the service 104 corresponding to the service sidecar 103;
the version link controller 101 is used for registering, creating and managing a link version by a user, managing version release of the service 104, generating a version release policy and issuing the version release policy;
the distribution policy controller 102 is configured to receive a version release policy issued by the version link controller 101, update a flow control policy of the service sidecar 103 according to the version release policy, and issue corresponding flow control policies to one or more service sidecars 103 respectively;
the service sidecar 103 forwards the traffic to the corresponding version of the service 104 according to the traffic control policy.
The version aware gateway 105 is further configured to update the version identifier policy according to the received version release policy issued by the version link controller 101;
the version aware gateway 105 serves as an entry for all requests, and when a service 104 request passes through, the version aware gateway 105 firstly identifies link version information to the request according to policies issued by the version link controller 101, where the policies include, but are not limited to, matching corresponding versions according to a URL pattern of an HTTP request, for example, matching the version v1.app. com to be the version v 1; or the corresponding version is matched according to the information in the specific Header/field in the request network packet, and the like;
once the request is matched with a specific VERSION, adding corresponding link VERSION information to the request, where the manner of adding the link VERSION information may include, but is not limited to, adding a field for identifying the VERSION (such as X-APP _ VERSION field information) in the Header of HTTP, and adding additional packet Header information in the TCP network packet;
thus, the link version information can be identified when the request passes through the service side cart 103, the service side cart 103 performs flow guide processing according to the information, and the version sensing gateway 105 can also forward the request to the service 104 of the corresponding version according to the link version information and the distribution strategy issued by the version link controller 101.
The service side cart 103 is the service side cart 103 perceived by the service version, and is deployed together with the service 104 as an accessory component of the service 104, the number of the services 104 of one system can be 1 to n, each version of each service 104 can deploy one service side cart 103 together, before the flow reaches the service 104, the flow is processed by the service side cart 103, and the service side cart 103 determines whether the flow needs to be forwarded to the current service 104 or other services 104, and the like;
the service sidecar 103 identifies link VERSION information transmitted by the gateway or another service 104 by analyzing the traffic entering and exiting the service 104, for example, the gateway adds the link VERSION information, an X-APP _ VERSION field is added in the Header of the HTTP, here, by identifying the HTTP protocol, and then extracting the X-APP _ VERSION field in the Header, the link VERSION information can be identified, and according to policy information (the policy information may include service VERSION information corresponding to the link VERSION information, for example, the v1.1 VERSION of the service 1 corresponding to the link VERSION v 2) issued by the distribution policy controller 102, forwarding and diversion of the traffic are realized, and the traffic with the link VERSION information is forwarded to the service 104 of the corresponding VERSION;
the service side cart 103 and the attached service 104 can be implemented as a container group (Pod) in Kubernetes, and network interception of the attached service 104 is implemented by sharing a network stack, but the implementation is not limited to Pod, and the same effect can be achieved as long as the service side cart 103 intercepts the network traffic of the attached service 104, monitors and forwards the intercepted network traffic.
Wherein the version link controller 101 is used as a user portal of the system, a user registers and manages the link version of the system, and the version link controller 101 manages the version release of the service 104 according to the input and configuration of the user, as shown in fig. 2, a system comprises service 1, service 2 and service 3 components, when the user creates the link version, the user creates a new version link v1 by adding the service 1, service 2 and service 3 components to the link system, then selects the version of each service 104, such as v1, and sets the system access address to "v 1.app. com", the version link controller 101 generates a traffic distribution policy, and notifies the gateway to forward the request for the address "v 1.app. com" to the services 1-v1.
When the service 1 is upgraded to v1.1, the version of the service 1 is set to v1.1, the system access address is set to "v 2.app. com", the service 1-v1.1 is forwarded to, and the new version is stored as a new version link v2, and then when the system is accessed through "v 2.app. com", the system is composed of the v1.1 version of the service 1, the v1 version of the service 2, and the v1 version of the service 3 (meanwhile, because the service 2 and the service 3 are not upgraded, the link 2 only needs to deploy the v1.1 version of the service 1, and the service 2 and the service 3 share the deployed instance of the link v1, so that resources are saved).
The version link controller 101 is configured to generate a corresponding link traffic distribution policy according to the service version relationship configured by the user, for example, as shown in fig. 3, the traffic distribution policy in the link version v2 is gateway- > service 1-v 1.1- > service 2-v 1- > service 3-v 1.
The distribution policy controller 102 issues corresponding traffic policy information (the traffic policy information includes an access manner of a lower service corresponding to a link version of each service 104, for example, in a link v2 version, the lower service corresponding to the service 1-v1.1 is the service 2-v 1) to the service side car 103 according to a traffic distribution policy issued by the version link controller 101, and at the same time, monitors traffic in real time by applying information (generally, network request information, for example, from which link versions the network requests received by the service 1-v1.1 respectively come from, etc.) reported by the version-aware service side car 103. For example, if the service sidecar 103 is implemented in the manner of a kubernets Pod, the distribution policy controller 102 may be implemented in the service 104 grid technology. The invention is not limited to this technical implementation.
Wherein, the version link controller 101 creates a new link version by adding a plurality of services 104 to the link system when creating the link version and then selecting a version of each service 104.
Second aspect, as shown in fig. 4, a second embodiment:
a multi-version release method of application based on service grid and link version includes the following steps:
step 1, a service sidecar 103 acquires a version in each service 104;
step 2, the version link controller 101 creates and manages the link version, generates the version release strategy and issues the version release strategy;
step 3, the distribution policy controller 102 receives the version release policy issued by the version link controller 101, updates the flow control policy of the service side car 103 according to the version release policy, and issues corresponding flow control policies to the plurality of service side cars 103 respectively;
and 4, respectively forwarding the flow to the service 104 of the corresponding version by the service side car 103 according to the flow control strategy.
Wherein, when the new version is released,
the step 1 specifically comprises the following steps: the service side cart 103 acquires the new version information and reports the new version information to the version link controller 101;
the step 2 specifically comprises the following steps: the version link controller 101 issues the version release policy to the distribution policy controller 102 and the version aware gateway 105 according to the new link information issued by the new version.
The version aware gateway 105 updates the version identification policy according to the received version release policy, and sends the request to the service 104 of the corresponding version according to the link version information and the version release policy updated by the version identification policy.
The version identification strategy is a version corresponding to the URL mode matching of the HTTP request, or the version identification strategy is a version corresponding to the information matching in a specific Header/field in the request network packet.
After the version aware gateway 105 matches the version according to the policy request, the corresponding link version information is added to the policy.
The mode of adding the link version information is to add a field for identifying the version in the Header of the HTTP, or to add extra packet Header information in the TCP network packet.
In step 2, the creation of the link version by the version link controller 101 specifically includes: when creating a link version, a new link version is created by adding multiple services 104 to the link system and then selecting the version of each service 104.
In a third aspect, an apparatus for multi-version publishing of an application based on a service grid and a link version includes:
at least one processor;
a memory coupled with the at least one processor, the memory storing executable instructions, wherein the executable instructions, when executed by the at least one processor, cause performance of a method according to any one of the methods described above.
In a fourth aspect, a chip, comprises: a processor for calling and running the computer program from the memory so that the device in which the chip is installed performs: the method of any of the above methods.
In a fifth aspect, a computer-readable storage medium, wherein a computer program is stored on the computer-readable storage medium, which computer program, when executed by a processor, performs the steps of the method of any of the above methods.
In a sixth aspect, a computer program product comprises computer program instructions for causing a computer to perform the method of any of the above methods.
As shown in fig. 5, one specific embodiment is as follows: the application system controlled by the system consists of 3 services 104, which are service a, service B, and service C, respectively. Initially, there is only "Link version 1" in the system, with its associated services 104 being A-v1 version/B-v 1 version/C-v 1 version. The user creates "link version 1" on "version link controller 101" and associates a-v1 version/B-v 1 version/C-v 1 version, "version link controller 101" updates the version identification policy of "version aware gateway 105", such as matching the request address of "v 1.app. com" to "link version 1", and distributes the corresponding request to a-v1 version. Meanwhile, the "version link controller 101" sends the version release policy to the "distribution policy controller 102", and the "distribution policy controller 102" updates the flow control policy of the "service sidecar 103", such as the "service sidecar 103" of the a-v1 version, according to the policy, distributes the "link version 1" traffic corresponding to the B service to the B-v1 version, updates the "service sidecar 103" of the B-v1 version, and distributes the "link version 1" traffic corresponding to the C service to the C-v1 version.
When a user accesses an address 'v 1.app. com' of 'link version 1', a request reaches the 'version sensing gateway 105', the 'version sensing gateway 105' identifies a version corresponding to the request according to a version identification strategy, adds a version label to the request, and forwards the request to a service A-v1 version corresponding to 'link version 1', after the service A-v1 version processes the request, the request with version information is also sent to a back-end service, the request is identified by the service sidecar 103, the service sidecar 103 searches corresponding configuration information according to the service 104 and the version label where the service sidecar is located, the request sent by the A-v1 version is forwarded to the B-v1 version according to the configuration information, and the request of the B-v1 version is also analyzed by the service sidecar 103 and sent to the service C-v1 version.
When service C needs to release an upgrade to the v2 version on the basis of "link version 1", the user first deploys the C-v2 version manually or automatically, creates "link version 2" on the "version link controller 101", and associates the a-v1 version/B-v 1 version/C-v 2 version, and the "version link controller 101" updates the version identification policy of the "version aware gateway 105", such as matching the request address of "v 2.app. com" with "link version 2", and distributes the corresponding request to the a-v1 version. Meanwhile, the "version link controller 101" sends the version release policy to the "distribution policy controller 102", and the "distribution policy controller 102" updates the flow control policy of the "service sidecar 103", such as the "service sidecar 103" of the a-v1 version, according to the policy, distributes the "link version 2" traffic corresponding to the B service to the B-v1 version, updates the "service sidecar 103" of the B-v1 version, and distributes the "link version 2" traffic corresponding to the C service to the C-v2 version.
So far, the configuration of the system is effective, and the release of the link version 2 is successful. When a user accesses the address 'v 2.app. com' of 'link version 2', the request is processed by the 'version sensing gateway 105', a version label is added, the request is forwarded to the a-v1 version service corresponding to 'link version 2', the external network access generated by the request through the a-v1 version is intercepted by the 'service sidecar 103', the 'service sidecar 103' analyzes the version identification in the network request, and the request is forwarded to the newly released service B-v1 version corresponding to the version identification according to the version distribution strategy, and similarly, the request of the B-v1 is also analyzed by the 'service sidecar 103' and is sent to the service C-v2 version.
When service B needs to release an upgrade to the v2 version on the basis of "link version 1", the user deploys B-v2 version manually or automatically, creates "link version 3" on "version link controller 101", and associates a-v1 version/B-v 2 version/C-v 1 version, and "version link controller 101" updates the version identification policy of "version aware gateway 105", such as matching the request address of "v 3.app. com" with "link version 3", and distributes the corresponding request to a-v1 version. Meanwhile, the "version link controller 101" sends the version release policy to the "distribution policy controller 102", and the "distribution policy controller 102" updates the flow control policy of the "service sidecar 103", such as the "service sidecar 103" of the a-v1 version, according to the policy, distributes the "link version 3" traffic corresponding to the B service to the B-v2 version, updates the "service sidecar 103" of the B-v2 version, and distributes the "link version 3" traffic corresponding to the C service to the C-v1 version.
So far, the configuration of the system is effective, and the release of the link version 3 is successful. When a user accesses the address 'v 3.app. com' of 'link version 3', the 'version sensing gateway 105' identifies the version corresponding to the request according to the version identification strategy, adds a version label, and forwards the request to the a-v1 version service corresponding to 'link version 3', the access to the outside network generated by the request through the a-v1 version is intercepted by the 'service sidecar 103', the 'service sidecar 103' analyzes the version identification in the network request, and forwards the request to the B-v2 version corresponding to the version identification according to the version distribution strategy, and similarly, the request of the B-v2 is also analyzed by the 'service sidecar 103' and sent to the newly released service C-v1 version.
When service a needs to release an upgrade to the v2 version on the basis of "link version 3", the user deploys the a-v2 version either manually or automatically, creates "link version 4" on the "version link controller 101", and associates the a-v2 version/B-v 2 version/C-v 1 version, and the "version link controller 101" updates the version identification policy of the "version aware gateway 105", such as matching the request address of "v 4.app. com" with "link version 4", and distributes the corresponding request to the a-v2 version. Meanwhile, the "version link controller 101" sends the version release policy to the "distribution policy controller 102", and the "distribution policy controller 102" updates the flow control policy of the "service sidecar 103", such as the "service sidecar 103" of the a-v2 version, according to the policy, distributes the "link version 4" traffic corresponding to the B service to the B-v2 version, updates the "service sidecar 103" of the B-v2 version, and distributes the "link version 4" traffic corresponding to the C service to the C-v1 version.
So far, the configuration of the system is effective, and the release of the link version 4 is successful. When a user accesses the address "v 4.app. com" of "link version 4", the "version-aware gateway 105" identifies the version corresponding to the request according to the version identification policy, adds a version tag, and forwards the request to the a-v2 version service corresponding to "link version 4", the access to the outside network generated by the request through the a-v2 version is processed by the "service sidecar 103", the "service sidecar 103" parses the version identification in the network request, and forwards the request to the B-v2 version corresponding to the version identification according to the version distribution policy, and similarly, the request of the B-v2 is also parsed by the "service sidecar 103" and sent to the newly released service C-v1 version.
It can be seen that when a new service 104 needs to be released and upgraded, only the specific service 104 needs to be updated, and the updated service 104 is combined with the original service 104 to generate a new link version, on the basis of the link version, a user can perform environment differentiation, function test and the like, and only a small change is needed, so that a complete system for 'full' release can be obtained through the system.
When a new service 104 is released, the upgrade service 104 can be released according to the above steps, and a new service version can be released on line efficiently by registering a new link version.
In conclusion, the service multi-version release system and method based on the service grid and the link version can realize the coexistence of the service version multiplexing and the multi-version according to the system, reduce the workload of deployment, operation and maintenance and reduce the resource consumption, and meanwhile, the system can dynamically control the access among different versions of services in real time, thereby improving the service management capability; on the basis of controlling service access, realizing service-unaware version release management and control; the resource consumption is saved, the larger the scale is, the larger the saved resource is (for example, the application of 100 services saves 99% of the resource), and the system can also greatly accelerate the system publishing speed, the larger the cluster scale is, the longer the consumed time of adopting the traditional full-scale publishing mode is, and the more the time saved by adopting the system is.
Specific embodiments of the invention have been described above. It is to be understood that the invention is not limited to the particular embodiments described above, in that devices and structures not described in detail are understood to be implemented in a manner common in the art; various changes or modifications may be made by one skilled in the art within the scope of the claims without departing from the spirit of the invention, and without affecting the spirit of the invention.

Claims (18)

1.A service multi-version release system based on a service grid and a link version is characterized by comprising a version link controller, a distribution strategy controller, one or more service sidecars and a version sensing gateway;
the service side cars are used for controlling service flow, services comprise one or more versions, and each service side car corresponds to one version of one service;
the version perception gateway is used for perceiving the version in the service corresponding to the service side car;
the version link controller is used for registering, creating and managing a link version by a user, managing the version release of the service, generating a version release strategy and issuing the version release strategy;
the distribution strategy controller is used for receiving the version release strategy issued by the version link controller, updating the flow control strategy of the service side car according to the version release strategy and issuing a corresponding flow control strategy to the service side car;
and the service side car forwards the flow to the service of the corresponding version according to the flow control strategy.
2. The service grid and link version based multi-version release system of claim 1, wherein the version aware gateway is further configured to update the version identification policy according to the received version release policy issued by the version link controller.
3. The service grid and link version based service multi-version publishing system of claim 2, wherein the version identification policy is to match the corresponding version according to a URL pattern of an HTTP request, or the version identification policy is to match the corresponding version according to information in a specific Header/field in a requesting network packet.
4. The service grid and link version based service multi-version publication system of claim 3, wherein the version aware gateway is further configured to add corresponding link version information to the policy after the policy request is matched to the version.
5. The system of claim 4, wherein the link version information is added by adding a field for identifying the version in the Header of HTTP or adding extra Header information in the TCP network packet.
6. The system of claim 5, wherein the version aware gateway is further configured to send a request to a service of a corresponding version according to the link version information updated by the version identification policy and the version release policy issued by the version link controller.
7. The system of claim 1, wherein the version link controller creates a new link version by adding a plurality of services to the link system and then selecting a version of each service when creating the link version.
8. A service grid and link version based application multi-version release method is characterized by comprising the following steps:
step 1, a service side car acquires a version in each service;
step 2, the version link controller creates and manages the link version, generates a version release strategy and issues the version release strategy;
step 3, the distribution strategy controller receives the version release strategy issued by the version link controller, updates the flow control strategy of the service side car according to the version release strategy, and issues corresponding flow control strategies to a plurality of service side cars respectively;
and 4, respectively forwarding the flow to the service of the corresponding version by the service side car according to the flow control strategy.
9. The service grid and link version based application multi-version release method of claim 8, wherein when a new version is released,
the step 1 specifically comprises the following steps: the service side car acquires and reports the new version information to the version link controller;
the step 2 specifically comprises the following steps: and the version link controller distributes the version release strategy to the distribution strategy controller and the version perception gateway according to the new link information released by the new version.
10. The method as claimed in claim 9, wherein the version-aware gateway updates the version identification policy according to the received version release policy, and sends the request to the service of the corresponding version according to the link version information updated by the version identification policy and the version release policy.
11. The method as claimed in claim 10, wherein the version identification policy is to match the corresponding version according to the URL pattern of the HTTP request, or the version identification policy is to match the corresponding version according to the information in the specific Header/field in the request network packet.
12. The method as claimed in claim 10, wherein the version-aware gateway adds corresponding link version information to the policy after matching the version request with the version.
13. The method as claimed in claim 12, wherein the link version information is added by adding a field for identifying the version in the Header of HTTP or adding extra Header information in the TCP network packet.
14. The method for multi-version release of an application based on a service grid and a link version as claimed in claim 8, wherein in step 2, the creation of the link version by the version link controller specifically comprises: when creating link versions, a new link version is created by adding multiple services to the link system and then selecting the version of each service.
15. An application multi-version publishing device based on service grid and link version, comprising:
at least one processor;
a memory coupled with the at least one processor, the memory storing executable instructions, wherein the executable instructions, when executed by the at least one processor, cause the method of any of claims 8-14 to be implemented.
16. A chip, comprising: a processor for calling and running the computer program from the memory so that the device in which the chip is installed performs: the method of any one of claims 8 to 14.
17. A computer-readable storage medium, characterized in that a computer program is stored on the computer-readable storage medium, which computer program, when being executed by a processor, carries out the steps of the method according to any one of claims 8 to 14.
18. A computer program product comprising computer program instructions for causing a computer to perform the method of any one of claims 8 to 14.
CN201911409920.8A 2019-12-31 2019-12-31 Service grid and link version based service multi-version release system and method Active CN111176723B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911409920.8A CN111176723B (en) 2019-12-31 2019-12-31 Service grid and link version based service multi-version release system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911409920.8A CN111176723B (en) 2019-12-31 2019-12-31 Service grid and link version based service multi-version release system and method

Publications (2)

Publication Number Publication Date
CN111176723A true CN111176723A (en) 2020-05-19
CN111176723B CN111176723B (en) 2020-11-06

Family

ID=70652392

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911409920.8A Active CN111176723B (en) 2019-12-31 2019-12-31 Service grid and link version based service multi-version release system and method

Country Status (1)

Country Link
CN (1) CN111176723B (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181458A (en) * 2020-09-25 2021-01-05 中国建设银行股份有限公司 Gray scale rule configuration method, gray scale routing method, device, equipment and storage medium
CN112351106A (en) * 2020-11-12 2021-02-09 四川长虹电器股份有限公司 Service grid platform containing event grid and communication method thereof
CN112463204A (en) * 2020-11-11 2021-03-09 浙江爱充网络科技有限公司 Pile service program gray level release method without sensing of direct connection charging pile
CN112732274A (en) * 2021-01-08 2021-04-30 上海汇付数据服务有限公司 Container application issuing method and management platform based on gray level issuing
CN113037621A (en) * 2021-03-12 2021-06-25 云知声智能科技股份有限公司 Edge gateway, edge gateway dynamic policy service implementation method, device and system
CN113709707A (en) * 2021-10-29 2021-11-26 中兴通讯股份有限公司 Method and device for sidecar deployment in service grid, electronic equipment and storage medium
CN114205280A (en) * 2021-11-17 2022-03-18 广州云擎互动信息技术有限公司 Application publishing method and flow routing method based on container cloud and service grid
CN114422440A (en) * 2022-03-28 2022-04-29 北京沃丰时代数据科技有限公司 Gray scale distribution method and device, electronic equipment and storage medium
CN114924833A (en) * 2022-05-06 2022-08-19 华东师范大学 User-insensitive micro-service container deployment method and device
CN115550214A (en) * 2022-08-17 2022-12-30 青岛海尔科技有限公司 Task monitoring method and device, storage medium and electronic device
CN116032806A (en) * 2023-03-27 2023-04-28 杭州谐云科技有限公司 Flow dyeing method and system

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105763369A (en) * 2016-02-04 2016-07-13 湖南长城信息金融设备有限责任公司 Terminal equipment remote software version distribution method and system
CN106789250A (en) * 2016-12-22 2017-05-31 焦点科技股份有限公司 A kind of service multi version based on container coexists implementation method
CN107678776A (en) * 2017-08-09 2018-02-09 上海壹账通金融科技有限公司 Multimode version dependence construction method, device, server and storage medium
CN108279987A (en) * 2018-01-19 2018-07-13 口碑(上海)信息技术有限公司 The method for edition management and device of application program
CN109923847A (en) * 2018-08-29 2019-06-21 华为技术有限公司 Call discovery method, apparatus, equipment and the storage medium of link
CN109981789A (en) * 2019-04-03 2019-07-05 山东浪潮云信息技术有限公司 A kind of micro services engine based on proxy mode
CN110019134A (en) * 2017-12-27 2019-07-16 阿里巴巴集团控股有限公司 The multi-edition control method and equipment of database
US20190273746A1 (en) * 2018-03-02 2019-09-05 Syntegrity Networks Inc. Microservice architecture for identity and access management

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105763369A (en) * 2016-02-04 2016-07-13 湖南长城信息金融设备有限责任公司 Terminal equipment remote software version distribution method and system
CN106789250A (en) * 2016-12-22 2017-05-31 焦点科技股份有限公司 A kind of service multi version based on container coexists implementation method
CN107678776A (en) * 2017-08-09 2018-02-09 上海壹账通金融科技有限公司 Multimode version dependence construction method, device, server and storage medium
CN110019134A (en) * 2017-12-27 2019-07-16 阿里巴巴集团控股有限公司 The multi-edition control method and equipment of database
CN108279987A (en) * 2018-01-19 2018-07-13 口碑(上海)信息技术有限公司 The method for edition management and device of application program
US20190273746A1 (en) * 2018-03-02 2019-09-05 Syntegrity Networks Inc. Microservice architecture for identity and access management
CN109923847A (en) * 2018-08-29 2019-06-21 华为技术有限公司 Call discovery method, apparatus, equipment and the storage medium of link
CN109981789A (en) * 2019-04-03 2019-07-05 山东浪潮云信息技术有限公司 A kind of micro services engine based on proxy mode

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
孙昌爱 等: "基于可变性模型的可复用与可定制SaaS软件开发方法", 《软件学报》 *

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181458A (en) * 2020-09-25 2021-01-05 中国建设银行股份有限公司 Gray scale rule configuration method, gray scale routing method, device, equipment and storage medium
CN112463204A (en) * 2020-11-11 2021-03-09 浙江爱充网络科技有限公司 Pile service program gray level release method without sensing of direct connection charging pile
CN112351106A (en) * 2020-11-12 2021-02-09 四川长虹电器股份有限公司 Service grid platform containing event grid and communication method thereof
CN112351106B (en) * 2020-11-12 2021-08-27 四川长虹电器股份有限公司 Service grid platform containing event grid and communication method thereof
CN112732274B (en) * 2021-01-08 2024-06-04 上海汇付支付有限公司 Container application publishing method and management platform based on gray scale publishing
CN112732274A (en) * 2021-01-08 2021-04-30 上海汇付数据服务有限公司 Container application issuing method and management platform based on gray level issuing
CN113037621A (en) * 2021-03-12 2021-06-25 云知声智能科技股份有限公司 Edge gateway, edge gateway dynamic policy service implementation method, device and system
CN113709707A (en) * 2021-10-29 2021-11-26 中兴通讯股份有限公司 Method and device for sidecar deployment in service grid, electronic equipment and storage medium
CN113709707B (en) * 2021-10-29 2022-03-15 中兴通讯股份有限公司 Method and device for sidecar deployment in service grid, electronic equipment and storage medium
CN114205280A (en) * 2021-11-17 2022-03-18 广州云擎互动信息技术有限公司 Application publishing method and flow routing method based on container cloud and service grid
CN114422440A (en) * 2022-03-28 2022-04-29 北京沃丰时代数据科技有限公司 Gray scale distribution method and device, electronic equipment and storage medium
CN114924833A (en) * 2022-05-06 2022-08-19 华东师范大学 User-insensitive micro-service container deployment method and device
CN114924833B (en) * 2022-05-06 2024-05-17 华东师范大学 A user-insensitive microservice container deployment method and deployment device
CN115550214A (en) * 2022-08-17 2022-12-30 青岛海尔科技有限公司 Task monitoring method and device, storage medium and electronic device
CN115550214B (en) * 2022-08-17 2024-07-19 青岛海尔科技有限公司 Task monitoring method and device, storage medium and electronic device
CN116032806A (en) * 2023-03-27 2023-04-28 杭州谐云科技有限公司 Flow dyeing method and system

Also Published As

Publication number Publication date
CN111176723B (en) 2020-11-06

Similar Documents

Publication Publication Date Title
CN111176723B (en) Service grid and link version based service multi-version release system and method
CN104834722B (en) Content Management System based on CDN
WO2020228469A1 (en) Method, apparatus and system for selecting mobile edge computing node
KR102727267B1 (en) Service flow division method, apparatus, and system, electronic device, and storage medium
CN109996307B (en) Data routing method and terminal
EP3837604B1 (en) In situ triggered function as a service within a service mesh
CN112751826A (en) Calculation force application flow forwarding method and device
CN104348798B (en) A kind of method, apparatus, dispatch server and system for distributing network
CN109819055B (en) Method for realizing load balance by simultaneously supporting Ribbon and Eureka
US11159642B2 (en) Site and page specific resource prioritization
US20170272498A1 (en) Streaming media file distribution method and system
CN105554046A (en) Scheduling method and apparatus of terminal request for content distribution system, and equipment
CN103001891B (en) Method for promoting integral service quality of local area network
JP2006174374A (en) Relay system
CN109788029A (en) Gray scale call method, device, terminal and the readable storage medium storing program for executing of micro services
CN106254561A (en) The real-time offline download method of a kind of Internet resources file and system
CN106453671A (en) Method, client, server and system for CDN scheduling
CN109618003B (en) Server planning method, server and storage medium
CN103297269B (en) A kind of Web Service Deployment based on service compute platform and management method
CN102932269A (en) Method and device for balancing load
CN110855787A (en) Method for realizing OpenResty dynamic load balancing based on Consul
CN112825524A (en) Method, device and system for determining network service node
CN111600929B (en) Transmission line detection method, routing strategy generation method and proxy server
CN102340522A (en) Data transmission method and device
WO2023246488A1 (en) Content providing method and apparatus

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 200433 floor 7, building 6, No. 99, jiangwancheng Road, Yangpu District, Shanghai

Patentee after: Shanghai Daoke Network Technology Co.,Ltd.

Address before: Room 1305-12, No.6 Weide Road, Yangpu District, Shanghai 200433

Patentee before: Shanghai Daoke Network Technology Co.,Ltd.