METHODS, SYSTEM, AND COMPUTER READABLE MEDIA FOR HANDLING MULTIPLE VERSIONS OF SAME SERVICE PROVIDED BY PRODUCER NETWORK FUNCTIONS (NFs)
A method for handling multiple instances of a service provided by one or more producer network functions (NFs) includes, at a service based architecture (SBA) platform including at least one processor and a memory, obtaining first and second application programming interface (API) version indicators associated with first and second service instances implemented by one or more producer NFs. The method further includes decoding the first and second API version indicators. The method further includes detecting, based on results of the decoding, multiple instances of the same service and that a first service instance is backward compatible with a second service instance. The method further includes implementing canary testing of the first service instance.
The subject matter described herein relates to routing traffic to NFs. More particularly, the subject matter described herein relates to methods, systems, and computer readable media for handling multiple versions of the same service provided by producer NFs.
BACKGROUNDIn the 5G network architecture specified by the Third Generation Partnership Project (3GPP), the network function (NF) repository function (NRF) is the network entity that maintains the NF profile of available NF instances and their supporting services. The NRF also allows other NF instances to subscribe to and be notified regarding the registration in the NRF of new/update NF instances of a given type. The NRF supports service discovery functions by receiving NF discovery requests and providing available information about NF functions. NF functions are the nodes in the 5G system architecture that provide services, in the case of producer NFs, and that consume services, in the case of consumer NFs. The same NF may be both a producer NF and a consumer NF if the NF both consumes and provides services.
As stated above, producer NFs register with the NRF to indicate the type of services that producer NFs provide. Producer NFs can register capacity and priority information with the NRF. Consumer NFs can discover producers that have registered to provide a specific service and can use the capacity and priority information to select a producer NF.
Network operators may desire to deploy multiple instances of the same service provided by a producer NF. For example, a network operator may deploy a producer NF with two separate service instances—one with an existing software version and another with a new software version to provide a given service. The purpose of such a deployment is to test how the new service instance responds to live network traffic.
One problem with such a deployment is that consumer NFs may not be equipped to handle the case where a producer NF has multiple instances of the same service. For example, the consumer NF may not include logic as to how to select one of the service instances when the consumer NF determines that the producer NF implements multiple instances of the same service.
Accordingly, there exists a need for methods, systems, and computer readable media for handling multiple versions of the same service provided by one or more producer NFs.
SUMMARYA method for handling multiple instances of a service provided by one or more producer network functions (NFs) includes, at a service based architecture (SBA) platform, which may be, for example a 5G proxy, a service communication proxy (SCP), a security protection proxy (SEPP), or any other 5G nodes (as defined in 3GPP release 16). The SBA platform may include at least one processor and a memory, obtaining first and second application programming interface (API) version indicators associated with first and second service instances implemented by one or more producer NFs. The method further includes decoding the first and second API version indicators. The method further includes detecting, based on results of the decoding, multiple instances of the same service and that a first service instance is backward compatible with a second service instance. The method further includes implementing canary testing of the first service instance.
This procedure can be executed on any consumer NF in 5G architecture, intermediate smart 5G proxies, or other 5G nodes like the SCP or SEPP (as defined in 3GPP release 16). However, enabling this enhancement at intermediate smart 5G proxies, such as an SCP or SEPP, is preferred as it enable support of multiple handling in 5G architecture without disturbing client NF functionality. An SCP is a smart 5G proxy that can reside between a producer and a consumer NF. An SEPP is a security node that provides the control plane interconnect between home and visited networks.
The term “canary testing” in the context of testing NF-provided services refers to testing a newer version of a service by sending a portion of live service traffic to the newer version of the service and monitoring the results of the testing. If the newer version is able to handle the portion of live service traffic without error, the portion of service traffic allocated to the newer version of the service instance may be gradually increased until a desired proportion of the live service traffic is handled by the newer version of the service instance.
According to another aspect of the subject matter described herein, obtaining the first and second API version indicators includes sending a message to an NRF and receiving the first and second API version indicators from the NRF in a message received from the NRF.
According to yet another aspect of the subject matter described herein, decoding the first and second API version indicators includes extracting minor and patch portions of the first and second API version indicators and determining whether the minor and patch portions of the first API version indicator are equal to the minor and patch portions of the second API version indicator.
According to yet another aspect of the subject matter described herein, decoding the first and second API version indicators includes extracting optional operator-specified portions of the first and second API version indicators and determining whether the optional operator-specified portion of the first API version indicator is equal to the optional operator-specified portion of the second API version indicator.
According to yet another aspect of the subject matter described herein, determining that the first service instance is backward compatible with the second service instance includes determining that the first API version indicator has a higher numeric value than the second API version indicator.
According to yet another aspect of the subject matter described herein, implementing the canary testing includes determining published traffic capacities of the first and second service instances and sending a mix of traffic to the first and second service instances in accordance with the published traffic capacities.
According to yet another aspect of the subject matter described herein, implementing the canary testing includes sending an operator configured proportion of traffic to the first and second service instances.
According to yet another aspect of the subject matter described herein, the process of canary testing includes receiving, from a network function repository function (NRF) and during the canary testing, updated capacities for the first and second service instances and dynamically changing the relative amounts of traffic being sent to the first and second service instances during the canary testing.
According to yet another aspect of the subject matter described herein, after completing the canary testing successfully, Producer NF can gradually increase the load from older release to new release, by updating the NRF registration at runtime. Similarly, if canary testing indicates that live traffic fails on the new service instance, then the producer NF can shift the load back to older release, by updating the NRF registration at runtime
According to yet another aspect of the subject matter described herein, a system for handling multiple instances of a service provided by one or more producer network functions (NFs) is provided. The system includes a service based architecture (SBA) platform including at least one processor and a memory. The system further includes an application programming interface (API) decoder for obtaining first and second application programming interface (API) version indicators associated with first and second service instances implemented by one or more producer NFs, decoding the first and second API version indicators, and detecting, based on results of the decoding, multiple instances of the same service and that a first service instance is backward compatible with a second service instance. The system further includes a canary tester for, responsive to the API decoder detecting that the first and second service instances implement multiple versions of the same service (from a single producer NF) and that the first service instance is backward compatible with the second service instance, implementing canary testing of the first service instance.
According to yet another aspect of the subject matter described herein, the canary tester is configured to receive (through NRF subscribe and notify procedures), from a network function repository function (NRF) and during the canary testing, updated capacities for the first and second service instances and dynamically change the relative amounts of traffic being sent to the first and second service instances during the canary testing.
According to yet another aspect of the subject matter described herein, the SBA platform is configured to, in response to completing the canary testing, load share traffic between the first and second service instances.
According to yet another aspect of the subject matter described herein, wherein the first and second service instances provide a 5G network service.
According to yet another aspect of the subject matter described herein, a non-transitory computer readable medium having stored thereon executable instructions that when executed by a processor of a computer controls the computer to perform steps is provided. The steps include, at a service based architecture (SBA) platform including at least one processor and a memory, obtaining first and second application programming interface (API) version indicators associated with first and second service instances implemented by one or more producer NFs. The steps further include decoding the first and second API version indicators. The steps further include detecting, based on results of the decoding, multiple instances of the same service and that a first service instance is backward compatible with a second service instance. The steps further include implementing canary testing of the first service instance.
The subject matter described herein can be implemented in software in combination with hardware and/or firmware. For example, the subject matter described herein can be implemented in software executed by a processor. In one exemplary implementation, the subject matter described herein can be implemented using a non-transitory computer readable medium having stored thereon computer executable instructions that when executed by the processor of a computer control the computer to perform steps. Exemplary computer readable media suitable for implementing the subject matter described herein include non-transitory computer-readable media, such as disk memory devices, chip memory devices, programmable logic devices, and application specific integrated circuits. In addition, a computer readable medium that implements the subject matter described herein may be located on a single device or computing platform or may be distributed across multiple devices or computing platforms.
The subject matter described herein will now be explained with reference to the accompanying drawings of which:
Current 3GPP specifications for 5G (i.e., 3GPP TS 29.510, “3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; 5G System; Network Function Repository Services; Stage 3” (December 2018), the disclosure of which is incorporated herein by reference in its entirety) allow the NF to register one or more supported service profiles (NFService) with the NRF. Such registration is to support the following:
-
- 1. An NF may have one or more supported services. In order to register all supported services, the NF can use a single registration message.
- 2. An NF may have one or more instances of the same service. Multiple service instances may have:
- a) The same API version but different fully qualified domain names (FQDNs) (i.e., one or more sets of micro-services for the same service);
- b) Different API versions with the same FQDN (i.e., multiple service instances that are part of the same micro-service); and/or
- c) Different API-versions with different FQDNs (i.e., multiple instances of the same service that are part of different micro-services.
Examples of services that may be provided by NFs include any of the services described above with respect to
There are many reasons why a producer NF may host multiple instances of the same service. Examples of such reasons are:
-
- (a) Scaling service (illustrated by example #1 and example #2.a in
FIG. 2 ): Even if cloud network architectures, such as Kubernetes (k8s), allow operators to scale a single instance of a scaling service, operators may, for other reasons (like different incompatible software architectures, etc.) wish to spawn a separate instance of a service and manage it separately. - (b) API version change (as captured by example #2.b and example #2.c in
FIG. 2 ): Due to change in Major/Release/Minor/Patch version of API, a network equipment vendor or operator may want to test their service instance under real traffic (before tearing down the old service instance).
- (a) Scaling service (illustrated by example #1 and example #2.a in
As stated above, 3GPP specifications do not define what actions consumer NFs should take when multiple instances of the same service are discovered. In one example, the consumer NF can execute complex logic to analyze the difference between multiple instances of the same service. For scaled service variants, consumer(s) may perform load-balancing between multiple service instances from the same provider NF. For API version changes, the consumer NF can analyze the type of API version change. For non-backward compatible API version instances, the consumer NF may treat the service instances separately for messaging. For backward compatible API version instances, the consumer NF may perform load balancing or canary testing between service instances. However, 3GPP specifications do not specify any of these options, and implementing such logic at each consumer NF increases the complexity of consumer NF design.
In model 2 in
In model 3 in
The subject matter described herein reduces the need for such complexity in consumer NF design by providing a service based architecture (SBA) node that detects, on behalf of a consumer NF, multiple instances of the same service provided by one or more producer NFs, detects the presence of service instances with backward compatible API versions, and implements canary testing of the service instances with backward compatible API versions. The same logic can be followed by consumer NFs in model 1 illustrated in
When the SBA platform detects multiple instances of the same service, the SBA platform can, based on operator configuration, implement canary testing of the new software and perform load sharing of traffic among the service instances once the canary testing has been completed. Canary testing of new software may include performing a gradual shift of traffic from the old version to the new version of the service. When a software vendor de-registers either version of the service, the SBA platform may switch all of the traffic to the remaining service instance or instances. Once canary testing is complete, and if multiple service instances remain, the SBA platform may load share traffic among the service instances.
In operation, SBA platform 400 detects a need for a service to be provided to consumer NF 402 in response to receiving a message from consumer NF 402. In this example, it is assumed that consumer NF 402 requires UE context management service. In response to receiving the message, SBA platform 400 may query an NRF (not shown in
SBA platform 400 parses the FQDNs and API version indicators and determines the following:
-
- 1) Service instances 408, 410, and 412 are instances of the same service;
- 2) Service instances 408 and 412 implement a current version of the service; and
- 3) Service instance 410 implements a new version of the service that is backward compatible with the current version of instance 408 provided by producer NF 404.
In response to detecting multiple instances of the same service and at least one new version that is backward compatible with a current version of the service, SBA platform 400 implements canary testing of the new version of the service provided for producer NF 404.
Once SBA platform 400 determines that canary testing should be enabled on two instances of the same service, the next step is to find the traffic ratio to send to the service instances 408 and 410. In order to find the traffic ratio, SBA platform 400 may first rely on the published capacities of the service instances. The capacities of the service instances are published by the service instances using a weight parameter that the service instances send to the NRF in a registration message. Using the published capacities, producer NFs can define the traffic split between old and new service instances. A producer NF can gradually increase/decrease the load from an older release to a newer release by specifying weight in their updated Service profile request to the NRF registration at runtime. An example of dynamically increasing the load from the old service instance to the new service instance will be provided below.
In implementing canary testing using published capacity first, if both instances of the same service have published their capacity (i.e. weight) parameter individually (in an NRF registration message), then the traffic ratio should be determined based on published capacity. For example, if instance1 (older) has published the capacity of 19000 and instance 2 (newer) has published the capacity of 1000. Then the canary testing may be performed using a traffic split of 19000:1000 i.e., 95:5. If either or both instances do not have a published capacity, then an operator defined ratio X (for the older version):Y (for the newer version) ratio may be used for canary testing. A default traffic ratio, such as 95:5, can be provided during deployment of NF instances.
In
As stated above, in order to determine whether to implement canary testing, SBA platform 400 must first identify that multiple versions of the same service are present and that at least one version is backward compatible with an existing version. To make such a determination, SBA platform 400 must parse the API version indicator obtained from the NRF for each service instance. The specification for API version indicators that may be used by SBA platform 400 in parsing the API version indicators received from the NRF is found in 3GPP TS 29.501, v15.2.0, “3rd Generation Partnership Project; Technical Specification Group Core Network and Terminals; 5G System; Principles and Guidelines for Services Definition; Stage 3,” (Release 15) (December 2018), the disclosure of which is incorporated herein by reference in its entirety. According to 3GPP TS 29.501, the API version is defined as follows:
-
- API version numbers shall consist of at least 4 fields, following a MAJOR.MINOR.PATCH pattern as described in the Semantic Versioning Specification (https://semver.org) with enhancements to cover branches due to 3GPP Releases. Optionally, additional fields can be added after the fourth (PATCH) field.
- 1st Field (MAJOR): This numerical field shall be incremented when one or more backward incompatible changes to the API are implemented.
- 2nd Field (Release): This field corresponds to a 3GPP release and indicates whether the 3GPP release is still under development. For a 3GPP release that is not yet frozen (i.e., still under development), the field shall take the form “PreRn”, where n is the 3GPP release number. For a 3GPP release that is frozen, the field shall take the form “Rn”, where n is the 3GPP release number. When the first MAJOR, MINOR or PATCH change in a 3GPP release is applied to an API, this number shall be set according to that 3GPP release. When a 3GPP release is being frozen and a “PreRn” release field is assigned to an API, the release field shall be converted to “Rn”,
- If no change is applied to an API in a new 3GPP release, the API will maintain the release field of the last 3GPP release where it was changed.
- 3rd Field (MINOR): This numerical field shall be incremented if one or more functionalities are added to the API in a backward compatible manner. This field shall be reset to “0” if the 1st or 2nd field is changed.
- 4th Field (PATCH): This numerical field shall be incremented if one or more corrections are made to the OpenAPI (https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md) without requiring any change to the API. This field shall be reset to “0” if the 1st, 2nd, or 3rd field is changed.
SBA platform 400 may parse the API version indicator received from the NRF to identify a backward compatible version of the same service. Detecting a backward compatible version may include utilizing the API version structure defined in 3GPP TS 29.501 to identify major, minor, and patch portions of the API version indicator published by each NF. According to 3GPP TS 29.501, changes in the minor or patch version represent backward compatible changes of a 5G service. Accordingly, when SBA platform 400 detects a change in the minor or patch version in an API version indicator, SBA platform 400 may determine that a backward compatible version of a service instance is present.
In addition, the API version specification allows the operator to add any additional information after the fourth field. In one example, a producer NF may publish the software release version in the semver compatible format in a field following the patch field. If the software release is included in a field following the patch field, SBA platform 400 may utilize the software release to identify backward compatible changes in software releases. SBA platform 400 may also use a change in the software version specified in the minor or patch field to detect a backward compatible change in software version.
In one example, the API version indicator published by a producer NF may be as follows:
MAJOR.Release.MINOR.PATCH.{Software Major.Minor.Patch}
In the above-listed API version example, MAJOR.RELEASE.MINOR.PATCH is the 3GPP TS 29.501 specified API version indicator. The portion {software Major.Minor.Patch} is the additional information portion that may be published by a producer NF. The following are examples of API version indicators and the corresponding meanings that may be determined by SBA platform 400:
-
- e.g., API version: 0.R15.0.0 means:
- 3GPP version: Major=0, Release=15, Minor=0, Patch=0, But no provided specified software version
- e.g., API version: 0.R15.0.1.8.15.0 means:
- 3GPP version: Major=0, Release=15, Minor=0, Patch=1, With software version as 8.15.0
- In summary, to enable canary testing, SBA platform 400 may do the following:
- 1. Confirm the following for both instances of the same service:
- apiPrefix, scheme, priority and apiVersionInUri for both service instances should be the same
- both service instances should have different FQDNs
- both service instances should have different Minor or Patch version in 3GPP defined version or producer defined software version
- both service instances should have same MAJOR and Release version
- 2. Identify the service as old vs. new.
- Service with a lower version is considered as old.
- Logic to find the lower version is explained below with respect to
FIG. 5 . InFIG. 5 , Inst1 refers to instance1 of a service and Inst2 refers to instance2 of the service, which at the outset of the process inFIG. 5 is not known to be the same or a different version.
- 3. SBA platform 400 may consider the capacity and load of the older service instance when performing load distribution between the same services in multiple NFs.
- e.g., API version: 0.R15.0.0 means:
If the minor portion of the API version indicator of instance 1 is equal to the minor portion of the API version indicator of instance 2 of the service, control proceeds to step 508 where it is determined whether the patch portion of the API version indicator for instance 1 of the service is equal to the patch portion of the API version indicator for instance 2 of the service. If the patch portions are not equal, control proceeds to step 510 where it is determined whether the numeric value of the patch portion of the API version indicator for instance 1 of the service is greater than the numeric value of the patch portion of the API version indicator for instance 2 of the service. If the numeric value of the patch portion of the API version indicator for instance 1 of the service is greater, control proceeds to step 512 where instance 1 is recorded as the latest version of the service. If the value of the patch portion of the API version indicator for instance 2 is greater, control proceeds to step 514 where instance 2 is recorded as the latest version of the service. After step 512 or 514, canary testing may begin for the service instance that is determined to be the latest version of the service.
Returning to step 508, if the patch portions of the API version indicators of the service are not equal, control proceeds to step 516 where SBA platform 400 determines whether the SW.minor portions of the API version indicators of the service instances are equal. The SW.minor portions are the portions following the patch portions that contain optional operator-specified content. If the SW.minor portions are not equal, control proceeds to step 518 where it is determined whether the numeric value of the SW.minor portion of the API version indicator for instance 1 of the service is greater than the numeric value of the SW.minor portion of API version indicator for instance 2 of the service. If the numeric value of the SW.minor portion of the API version indicator of instance 1 of the service is greater, control proceeds to step 520 where instance 1 is recorded as the latest version of the service. If the numeric value of the SW.minor portion of the API version indicator for instance 2 is greater, control proceeds to step 522 where instance 2 is recorded as the latest version of the service. After step 520 or step 522, canary testing begins.
In step 516, if SBA platform 400 determines that the SW.minor portions of the API version indicators of the service instances are equal, control proceeds to step 524 where the SW.patch portions of the API version indicators of the first and second service instances are compared. The SW.patch portions are part of the optional operator-specified portion of the API version indicators described above. If the SW.patch portions are not equal, control proceeds to step 526 where it is determined whether the numeric value of the SW.patch portion of the API version indicator for instance 1 of the service is greater than the numeric value of the SW.patch portion of the API version indicator for instance 2 of the service. If the numeric value of the SW.patch portion of the API version indicator of instance 1 of the service is greater than the numeric value of the SW.patch portion of the API version indicator of instance 2 of the service, control proceeds to step 528 where instance 1 is recorded as the latest version of the service. If the numeric value of the SW.patch portion of the API version indicator for instance 2 of the service is greater, control proceeds to step 530 where instance 2 is recorded as the latest version. After step 528 or step 530, canary testing begins.
In step 524, if the SW.patch portions of the API version indicators of the service instances are the same, control proceeds to step 532 where the service instances are determined to be the same version of the service. If the service instances are determined to be the same versions of the service because the API version indicators match, SBA platform 400 may bypass canary testing and load share service traffic among the service instances based on the published capacities of the service instances or based on an operator configured traffic ratio.
Returning to
In step 706, canary testing of the latest version of the service instance is implemented. An example of such canary testing is illustrated in
In lines 5 and 6 of the message flow diagram, instances 802 and 804 publish new traffic weights to NRF 800 to increase the load on instance 1. The new weights may be communicated to NRF 800 in NFStatusUpdate messages (as defined in 3GPP TS 29.510 specification of the NRF). In line 7, NRF 400 communicates the new traffic weights to SBA platform 400 in an NFStatusNotify message. In response to receiving the new weights of the service instances, in line 8 of the message flow diagram, SBA platform 400 continues the canary testing with the increased load on instance 802. The traffic load on instance 802 may be gradually increased by having instances 802 and 804 periodically update their capacities to NRF 800 until the desired operational mix of traffic between instances 802 and 804 is achieved.
It will be understood that various details of the presently disclosed subject matter may be changed without departing from the scope of the presently disclosed subject matter. Furthermore, the foregoing description is for the purpose of illustration only, and not for the purpose of limitation.
Claims
1. A method for handling multiple instances of a service provided by one or more producer network functions (NFs), the method comprising:
- at a service based architecture (SBA) platform including at least one processor and a memory: obtaining first and second application programming interface (API) version indicators associated with first and second service instances implemented by one or more producer NFs; decoding the first and second API version indicators; detecting, based on results of the decoding, multiple instances of the same service and that a first service instance is backward compatible with a second service instance; and implementing canary testing of the first service instance.
2. The method of claim 1 wherein obtaining the first and second API version indicators includes sending a message to an NRF and receiving the first and second API version indicators from the NRF in a message received from the NRF.
3. The method of claim 1 wherein decoding the first and second API version indicators includes extracting minor and patch portions of the first and second API version indicators and determining whether the minor and patch portions of the first API version indicator are equal to the minor and patch portions of the second API version indicator.
4. The method of claim 1 wherein decoding the first and second API version indicators includes extracting optional operator-specified portions of the first and second API version indicators and determining whether the optional operator-specified portion of the first API version indicator is equal to the optional operator-specified portion of the second API version indicator.
5. The method of claim 1 wherein determining that the first service instance is backward compatible with the second service instance includes determining that the first API version indicator has a higher numeric value than the second API version indicator.
6. The method of claim 1 wherein implementing the canary testing includes determining published traffic capacities of the first and second service instances and sending a mix of traffic to the first and second service instances in accordance with the published traffic capacities.
7. The method of claim 1 wherein implementing the canary testing includes sending an operator configured proportion of traffic to the first and second service instances.
8. The method of claim 1 comprising receiving, from a network function repository function (NRF) and during the canary testing, updated capacities for the first and second service instances and dynamically changing the relative amounts of traffic being sent to the first and second service instances during the canary testing.
9. The method of claim 1 comprising completing the canary testing, and, after completing the canary testing, load sharing traffic between the first and second service instances.
10. A system for handling multiple instances of a service provided by one or more producer network functions (NFs), the system comprising:
- a service based architecture (SBA) platform including at least one processor and a memory;
- an application programming interface (API) decoder implemented by the at least one processor for obtaining first and second application programming interface (API) version indicators associated with first and second service instances implemented by one or more producer NFs, decoding the first and second API version indicators, and detecting, based on results of the decoding, multiple instances of the same service and that a first service instance is backward compatible with a second service instance; and
- a canary tester implemented by the at least one processor for, responsive to the API decoder detecting that the first and second service instances implement multiple versions of the same service and that the first service instance is backward compatible with the second service instance, implementing canary testing of the first service instance.
11. The system of claim 10 wherein obtaining the first and second API version indicators includes sending a message to an NRF and receiving the first and second API version indicators from the NRF in a message received from the NRF.
12. The system of claim 10 wherein decoding the first and second API version indicators includes extracting minor and patch portions of the first and second API version indicators and determining whether the minor and patch portions of the first API version indicator are equal to the minor and patch portions of the second API version indicator.
13. The system of claim 10 wherein decoding the first and second API version indicators includes extracting optional operator-specified portions of the first and second API version indicators and determining whether the optional operator-specified portion of the first API version indicator is equal to the optional operator-specified portion of the second API version indicator.
14. The system of claim 10 wherein determining that the first service instance is backward compatible with the second service instance includes determining that the first API version indicator has a higher numeric value than the second API version indicator.
15. The system of claim 10 wherein implementing the canary testing includes determining published traffic capacities of the first and second service instances and sending a mix of traffic to the first and second service instances in accordance with the published traffic capacities.
16. The system of claim 10 wherein implementing the canary testing includes sending an operator configured proportion of traffic to the first and second service instances.
17. The system of claim 10 wherein the canary tester is configured to receive, from a network function repository function (NRF) and during the canary testing, updated capacities for the first and second service instances and dynamically change the relative amounts of traffic being sent to the first and second service instances during the canary testing.
18. The system of claim 10 wherein the SBA platform is configured to, in response to completing the canary testing, load share traffic between the first and second service instances.
19. The system of claim 10 wherein the first and second service instances provide a 5G network service.
20. A non-transitory computer readable medium having stored thereon executable instructions that when executed by a processor of a computer controls the computer to perform steps comprising:
- at a service based architecture (SBA) platform including at least one processor and a memory:
- obtaining first and second application programming interface (API) version indicators associated with first and second service instances implemented by one or more producer NFs;
- decoding the first and second API version indicators;
- detecting, based on results of the decoding, multiple instances of the same service and that a first service instance is backward compatible with a second service instance; and
- implementing canary testing of the first service instance.
Type: Application
Filed: Mar 29, 2019
Publication Date: Oct 1, 2020
Inventors: Rajiv Krishan (Bangalore), Milind Pandey (Bengaluru)
Application Number: 16/369,691