CN110062022B - 一种服务端灰度部署应用系统api更新的方法 - Google Patents

一种服务端灰度部署应用系统api更新的方法 Download PDF

Info

Publication number
CN110062022B
CN110062022B CN201910160701.4A CN201910160701A CN110062022B CN 110062022 B CN110062022 B CN 110062022B CN 201910160701 A CN201910160701 A CN 201910160701A CN 110062022 B CN110062022 B CN 110062022B
Authority
CN
China
Prior art keywords
api
client
version
information
subsystem
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.)
Active
Application number
CN201910160701.4A
Other languages
English (en)
Other versions
CN110062022A (zh
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.)
Inspur General Software Co Ltd
Original Assignee
Inspur General Software 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 Inspur General Software Co Ltd filed Critical Inspur General Software Co Ltd
Priority to CN201910160701.4A priority Critical patent/CN110062022B/zh
Publication of CN110062022A publication Critical patent/CN110062022A/zh
Application granted granted Critical
Publication of CN110062022B publication Critical patent/CN110062022B/zh
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/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种服务端灰度部署应用系统API更新的方法,属于灰度升级技术领域,本发明通过对服务端服务和客户端进行抽象,对服务端模块和客户端版本进行标志和匹配。服务端以子系统为整体进行版本的更新,不同子系统之间以子系统名进行区分,通过API中心发布每个子系统API的详细信息,请见图2‑新的架构。客户端进行了抽象处理,任何需要使用API的一方都视为客户端,可以涵盖Web浏览器,移动客户端,桌面客户端、另一个服务端程序等等,这些客户端都以一定的版本号进行迭代更新。当某个版本的客户端请求响应子系统API时候,API路由管理中心按照规则只返回这个客户端可以解析使用的API信息。

Description

一种服务端灰度部署应用系统API更新的方法
技术领域
本发明涉及灰度升级技术,尤其涉及一种服务端灰度部署应用系统API更新的方法。
背景技术
随着应用发展,同一个服务可能存在多个版本的API可供调用,在客户端也存在多个版本的情况下,让每个客户端获取到合适的API版本是一项重要而精细的任务。灰度更新常见于互联网环境下的各种场景。当生产环境遇到问题,如何指导客户端到备份环境去完成请求,应用的运营策略可能想让某些用户优先体验新的服务,如何将这些用户引导到新服务进行测试,以上这些问题都对软件系统的灰度部署提出了新的要求。
在当前的应用开发中,服务端通过API(Application Programming Interface,应用程序编程接口)即预先定义的一组软件函数向客户端提供特定功能的入口,客户端按照约定的格式和参数进行调用,并按照约定解析返回结果完成某个操作。各个版本客户端关于API的信息已经固化在客户端中,并不能做到后期动态更新。
客户端与服务端程序可能需要进行不同步的更新,或者针对某些新特性,总会有多个版本的客户端和服务端存在,总之客户端的更新迭代速度和服务端更新迭代的速度是不一致的。不同版本的服务端API,参数和调用方法可能是有差异的,可能有不同的服务url , 也可能有不同的数据组织格式,当客户端调用不匹配的服务端服务时,就会发生错误。
这种不统一轻者增加运维复杂度,重者有可能引起程序错误,影响用户的正常使用。当有一些运营策略需要识别不同用户体验不同功能,并逐渐扩大用户范围时,客户端也无法得知具体的策略。所以软件工程中有了灰度部署这一概念,即对软件系统进行A/Btesting,让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。
发明内容
为了解决以上技术问题,本发明提出了一种服务端灰度部署应用系统API更新的方法,可以针对不同用户和不同客户端进行识别,根据API注册中心的发布策略返回相应API配置。
控制相应客户端只能拿到适合自己调用的服务端API。实现方法通过对服务端服务和客户端进行抽象,对服务端模块和客户端版本进行标志和匹配。服务端以子系统为整体进行版本的更新,不同子系统之间以子系统名进行区分,通过API中心发布每个子系统API的详细信息。客户端进行了抽象处理,任何需要使用API的一方都视为客户端,可以涵盖Web 浏览器,移动客户端,桌面客户端、另一个服务端程序等等,这些客户端都以一定的版本号进行迭代更新。当某个版本的客户端请求响应子系统API时候,API路由管理中心按照规则只返回这个客户端可以解析使用的API信息。
主要包含以下步骤:
1、路由管理中心维护和发布API路由。API信息主要描述某个版本子系统的API调用方式,配置参数等,主要职责告知客户端如何API服务在哪里,如何调用API,可总结为以下三点:
a)客户端版本识别
识别主要负责为诸如 Web浏览器和移动客户端等不同类型客户端使用特定方式来解析客户端版本。
b)子系统API服务路由信息维护
子系统API服务路由信息维护负责将所有需要进行灰度部署的API路由信息录入系统,并保证可以及时更新。
c)子系统API 服务发布
子系统API服务发布主要负责为某个用户使用的某个特定版本客户端的某个子系统API寻找合适版本API路由信息。
API路由信息注册。API信息主要描述某个版本子系统的API调用方式,配置参数等。主要有以下信息:
ServiceName,服务名,用于不用子系统之间的区分;
Version, 版本信息,标识当前API版本信息,采用常用的形如”1.0.0”三段式格式。
BaseUrl, 基地址信息,标识该 API 组织时,基地址信息
Properties, 可扩展的其他描述信息,主要数据结构为 key-value,可以为不同子系统进行定制进行扩展。
2)客户端版本信息管理中心。客户端类型类型繁多,可能是一个 Web 浏览器,也可能是一个Android 客户端,还有可能是一个服务端程序。系统可以从请求的 User-Agent中获取到客户端的详细信息,但是每种客户端都有不同的版本解析方法,如对于Web 浏览器可能需要识别IE,Chrome 等浏览器类型和相关版本,所以客户端版本信息管理中心主要解决不同客户端种类信息的提取,并将其量化为可用于系统进行比较的值。
API路由管理中心包含了各个注册的子系统API信息,可提供API路由信息的注册和管理功能。子系统API之间以子系统名作为标识。某个子系统可能还有多个版本的API描述信息。
3)API路由发布中心包含了对特定客户端特定用户的某些子系统API的发布策略。即可以对用户、客户端版本进行精确识别后返回特定的子系统API信息,这为用户个性化配置和服务的静默升级提供了基础保障。
客户端版本管理中心。客户端版本识别需要根据客户端类型使用不同的策略,如UserAgent, 特定的参数信息等,当客户端请求到的时,可以计算到当前客户端版本,并可进行量化的比较,从而实现精确的版本控制。
4)API路由信息获取。当某个客户端请求某个子系统的API路由信息时,客户端版本管理中心首先识别当前客户端类型,然后根据相应的版本计算规则提取当前客户端的版本信息。之后API路由发布中心查询对应的子系统名称,并根据发布策略过滤得到该客户端可使用的最新的API信息,并返回给客户端。
首先经过对应子系统路由表的过滤,得到当前客户端可用路由信息版本集合备选项,然后经过特权策略过滤层,允许活跃用户使用较新的API版本,而非活跃用户只能使用老版本API。
附图说明
图1是本发明的架构示意图;
图2是子系统API注册中心示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
1、对子系统进行以下设定:有两个子系统:即时消息系统(Instant Message, 以下用IM代替)和支付系统(Payment, 以下使用 PM代替),IM子系统都有v0 和 v1 两个版本,v0 版本IM 仅仅支持发送普通的文字,图片和语音输入, v1 版本的IM系统支持接通PM系统,并发布红包信息。有用户user1 和 user2 两位用户,user1为活跃用户。目前还有v0和 v1 两个版本的Android 客户端,其中 v0 版本只能使用 v0 版本的 IM 子系统API路由信息,即只能发送普通文字,图片和语音输入,不能发送红包;v1 版本客户端既可以兼容使用 v0 的IM 子系统API,只发送普通文字,图片和语音输入,也可以支持 v1 版本的 IM子系统 API,除了可以发送普通文字,图片和语音输入外还可以发送红包。
2、通过API路由中心设置规则,对于活跃用户,发送红包的功能可以优先让他使用,所以当活跃用户使用 v1 版本的客户端时候,我们应该返回 v1 的 IM 子系统API路由以满足发送红包的新功能,当活跃用户使用 v0 版本的客户端时,我们应该返回 v0 版本的 IM 子系统 API 路由,因为 v0 版本客户端并不支持发送红包这个特性。而非活跃用户,在一段时间内,无论使用哪个版本的客户端登录,我们都应该返回 v0 版本的 IM 子系统API 路由,即不允许非活跃用户使用新的特性,即使其使用的客户端是支持发红包功能的。
3、API路由中心主要有两大结构组成:子系统API路由信息表和特权用户策略层,请见图-2子系统API注册中心。
a)子系统API路由信息表以不同的子系统为单位分别存储,如图-3 中 IM系统和PM系统的路由信息分别存储互不影响。而在IM子系统路由表内部,则存储了从V0,V1一直到Vn的多个版本的API路由信息,每个版本还记录了所能支持的最小客户端版本。路由表能保证只有当客户端版本大于自己所支持的最小客户端版本后,才返回这组路由信息。这就保证了客户端与服务端在API层面上的兼容。
b)特权用户策略层主要将来自子系统API路由信息表中的多个版本的API路由信息进行甄别和选择,并根据发布策略选择一个版本返回给客户端。发布策略可能根据用户所处地域返回用户当地的数据中心API信息,而不是返回其他地域的API信息,以降低延迟。还可能是根据运营策略,允许一部分用户使用新功能,然后逐渐扩大用户范围。
4、当客户端版本低于每次用户使用客户端登录时候,客户端需要向API路由中心请求IM和PM两个子系统的API描述信息。分为以下四种情况:
a)user1 使用 v0 客户端请求 IM 路由信息,
对于v0 客户端,IM 的候选版本只有 v0 版本的 IM API,经过特权策略过滤层后,返回 v0 版本的 IM 路由信息。
b)user1 使用 v1 客户端请求 IM 路由信息
对于v1 客户端,IM 的候选版本有 v0 和 v1 两个版本,经过特权策略层过滤后,user1 因为是活跃用户,允许使用 v1 版本IM。
c)user2 使用 v0 客户端请求 IM 路由信息
对于v0 客户端,IM 的候选版本只有 v0 版本的 IM API,经过特权策略过滤层后,返回 v0 版本的 IM 路由信息。
d)user2 使用 v1 客户端请求 IM 路由信息
对于v1 客户端,IM 的候选版本有 v0 和 v1 两个版本,经过特权策略层过滤后,user2 因为不是活跃用户,只允许使用 v0 版本的 IM。
至此,每个用户都得到了各自客户端支持的IM子系统API路由信息,同时对于活跃用户也获得了较新的API的体验机会,这一切对于用户并不可感知,用户最直观的感受可能是 user1 在新的客户端可以发送红包,而其他用户则不可以。配合其他策略也可以对不用用户进行定制化灰度升级。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (9)

1.一种服务端灰度部署应用系统API更新的方法,其特征在于,
通过对服务端服务和客户端进行抽象,对服务端模块和客户端版本进行标志和匹配;服务端以子系统为整体进行版本的更新,不同子系统之间以子系统名进行区分,通过API中心发布每个子系统API的详细信息;客户端进行了抽象处理,任何需要使用API的一方都视为客户端;这些客户端都以版本号进行迭代更新;当某个版本的客户端请求响应子系统API时候,API路由管理中心按照规则只返回这个客户端可以解析使用的API信息;
API描述信息,分为以下四种情况:
a)user1 使用 v0 客户端请求 IM 路由信息,
对于v0 客户端,IM 的候选版本只有 v0 版本的 IM API,经过特权策略过滤层后,返回 v0 版本的 IM 路由信息;
b)user1 使用 v1 客户端请求 IM 路由信息
对于v1 客户端,IM 的候选版本有 v0 和 v1 两个版本,经过特权策略层过滤后,user1 因为是活跃用户,允许使用 v1 版本IM;
c)user2 使用 v0 客户端请求 IM 路由信息
对于v0 客户端,IM 的候选版本只有 v0 版本的 IM API,经过特权策略过滤层后,返回 v0 版本的 IM 路由信息;
d)user2 使用 v1 客户端请求 IM 路由信息
对于v1 客户端,IM 的候选版本有 v0 和 v1 两个版本,经过特权策略层过滤后,user2 因为不是活跃用户,只允许使用 v0 版本的 IM。
2.根据权利要求1所述的方法,其特征在于,
主要包含以下步骤
1)路由管理中心维护和发布API路由
2)客户端版本信息管理
3)API路由信息获取。
3.根据权利要求2所述的方法,其特征在于,
所述1)路由管理中心维护和发布API路由,主要职责告知客户端如何API服务在哪里,如何调用API,可总结为以下三点:
1.1)客户端版本识别
主要负责为不同类型客户端使用特定方式来解析客户端版本;
1.2)子系统API服务路由信息维护
子系统API服务路由信息维护负责将所有需要进行灰度部署的API路由信息录入系统,并保证及时更新;
1.3)子系统API 服务发布
子系统API服务发布主要负责为用户使用的版本客户端的子系统API寻找合适版本API路由信息。
4.根据权利要求3所述的方法,其特征在于,
API信息主要描述一个版本子系统的API调用方式,配置参数,主要有以下信息:
a) ServiceName,服务名,用于不用子系统之间的区分;
b) Version, 版本信息,标识当前API版本信息,采用”1.0.0”三段式格式;
c) BaseUrl, 基地址信息,标识该 API 组织时,基地址信息
d)Properties, 可扩展的其他描述信息,主要数据结构为 key-value,为不同子系统进行定制进行扩展。
5.根据权利要求4所述的方法,其特征在于,
路由管理中心包含了各个注册的子系统API信息,提供API路由信息的注册和管理功能;子系统API之间以子系统名作为标识。
6.根据权利要求5所述的方法,其特征在于,
路由发布中心可以对用户、客户端版本进行精确识别后返回特定的子系统API信息。
7.根据权利要求2所述的方法,其特征在于,
所述2)客户端版本信息管理,主要解决不同客户端种类信息的提取,并将其量化为可用于系统进行比较的值。
8.根据权利要求2所述的方法,其特征在于,
所述3)API路由信息获取,即当客户端请求子系统的API路由信息时,客户端版本管理中心首先识别当前客户端类型,然后根据相应的版本计算规则提取当前客户端的版本信息;之后API路由发布中心查询对应的子系统名称,并根据发布策略过滤得到该客户端可使用的最新的API信息,并返回给客户端。
9.根据权利要求8所述的方法,其特征在于,
首先经过对应子系统路由表的过滤,得到当前客户端可用路由信息版本集合备选项,然后经过特权策略过滤层,允许活跃用户使用较新的API版本。
CN201910160701.4A 2019-03-04 2019-03-04 一种服务端灰度部署应用系统api更新的方法 Active CN110062022B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910160701.4A CN110062022B (zh) 2019-03-04 2019-03-04 一种服务端灰度部署应用系统api更新的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910160701.4A CN110062022B (zh) 2019-03-04 2019-03-04 一种服务端灰度部署应用系统api更新的方法

Publications (2)

Publication Number Publication Date
CN110062022A CN110062022A (zh) 2019-07-26
CN110062022B true CN110062022B (zh) 2021-07-23

Family

ID=67316629

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910160701.4A Active CN110062022B (zh) 2019-03-04 2019-03-04 一种服务端灰度部署应用系统api更新的方法

Country Status (1)

Country Link
CN (1) CN110062022B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110806886A (zh) * 2019-10-28 2020-02-18 云深互联(北京)科技有限公司 浏览器更新的方法、装置及设备
CN111625257B (zh) * 2020-05-25 2023-05-23 泰康保险集团股份有限公司 服务平台升级方法、系统、设备及存储介质
CN112073320B (zh) * 2020-11-12 2021-02-09 深圳壹账通智能科技有限公司 基于云网关的api灰度发布方法、装置及计算机设备
CN112817624B (zh) * 2021-01-28 2022-10-04 杭州衣科信息技术股份有限公司 一种基于React Native的灰度热部署系统
CN112965758A (zh) * 2021-03-03 2021-06-15 北京百度网讯科技有限公司 接口数据确定方法和装置
CN114422440B (zh) * 2022-03-28 2022-07-12 北京沃丰时代数据科技有限公司 灰度发布方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106034150A (zh) * 2015-03-13 2016-10-19 阿里巴巴集团控股有限公司 应用程序动态推送方法、装置及系统
CN107277140A (zh) * 2017-06-21 2017-10-20 山东浪潮通软信息科技有限公司 一种应用程序接口的分配方法、路由中间件及业务系统
CN107678805A (zh) * 2017-09-08 2018-02-09 阿里巴巴集团控股有限公司 一种应用程序接口的调用方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102624771B (zh) * 2011-08-05 2015-10-28 小米科技有限责任公司 一种客户端升级的方法
US8990883B2 (en) * 2013-01-02 2015-03-24 International Business Machines Corporation Policy-based development and runtime control of mobile applications
CN105099988B (zh) * 2014-04-24 2018-11-27 阿里巴巴集团控股有限公司 用于支持灰度发布的方法、访问方法以及装置和系统
US10417060B2 (en) * 2016-06-27 2019-09-17 Verizon Patent And Licensing Inc. Automated API publication for Internet of Things platform

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106034150A (zh) * 2015-03-13 2016-10-19 阿里巴巴集团控股有限公司 应用程序动态推送方法、装置及系统
CN107277140A (zh) * 2017-06-21 2017-10-20 山东浪潮通软信息科技有限公司 一种应用程序接口的分配方法、路由中间件及业务系统
CN107678805A (zh) * 2017-09-08 2018-02-09 阿里巴巴集团控股有限公司 一种应用程序接口的调用方法和装置

Also Published As

Publication number Publication date
CN110062022A (zh) 2019-07-26

Similar Documents

Publication Publication Date Title
CN110062022B (zh) 一种服务端灰度部署应用系统api更新的方法
CN110535777B (zh) 访问请求控制方法、装置、电子设备以及可读存储介质
US11750444B2 (en) Implementation of compliance settings by a mobile device for compliance with a configuration scenario
JP5055410B2 (ja) 装置管理システム及びそのシステムにおける装置管理命令スケジューリング方法
CN113014651B (zh) 灰度发布方法、应用服务器及灰度发布系统
US9122560B2 (en) System and method of optimization for mobile apps
US20060106879A1 (en) Conflict resolution in a synchronization framework
WO2019047821A1 (zh) 业务路由的方法、装置及存储介质
EP1775913A1 (en) Method for controlling multimedia middleware apparatus using metadata
CN112115511A (zh) 权限校验方法、装置及系统、业务权限配置方法及装置
WO2019223136A1 (zh) 数据获取方法、装置、计算机设备以及存储介质
CN103634393A (zh) Ivr及其实现方法
US8843587B2 (en) Retrieving availability information from published calendars
US20130159468A1 (en) Computer implemented method, computer system, electronic interface, mobile computing device and computer readable medium
EP3855689A1 (en) Method, apparatus, and system for providing service, storage medium, and electronic device
CN113010238A (zh) 一种微应用调用接口的权限确定方法、装置和系统
CN110233842B (zh) 一种请求的校验方法和相关装置
US11757976B2 (en) Unified application management for heterogeneous application delivery
CN110071840A (zh) 升级方法、装置及客户端
CN112350856B (zh) 分布式服务签退方法及设备
WO2021179343A1 (en) Chatbot system with model lifecycle management
US20090327300A1 (en) Manifest-based enhanced presence publishing
KR20190062801A (ko) oneM2M 기반 데이터 관제 API 구성 방법
US20230095852A1 (en) Translating between versions of data object schemas for data producers and data consumers
EP3449601B1 (en) Configuration data as code

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20210702

Address after: No. 1036, Shandong high tech Zone wave road, Ji'nan, Shandong

Applicant after: INSPUR GENERAL SOFTWARE Co.,Ltd.

Address before: 250100 No. 2877 Kehang Road, Sun Village Town, Jinan High-tech District, Shandong Province

Applicant before: SHANDONG INSPUR GENESOFT INFORMATION TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant