CN110532000A - 一种用于运营发布的kbroker分布式操作系统和运营发布系统 - Google Patents
一种用于运营发布的kbroker分布式操作系统和运营发布系统 Download PDFInfo
- Publication number
- CN110532000A CN110532000A CN201910843926.XA CN201910843926A CN110532000A CN 110532000 A CN110532000 A CN 110532000A CN 201910843926 A CN201910843926 A CN 201910843926A CN 110532000 A CN110532000 A CN 110532000A
- Authority
- CN
- China
- Prior art keywords
- app
- version
- module
- allocator module
- allocator
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, restoring, recovering or retrying at system level during software upgrading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/62—Uninstallation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种用于运营发布的kbroker分布式操作系统和运营发布系统,是针对kbroker分布式操作系统运营中运营版本发布的处理方法,使得可以不停服升级运营版本,并通过灰度发布的方式降低新运营版本发布出错对运营的影响。在本发明的支持下,开发者只用在业务逻辑之外实现多个软件版本间的数据导出导入逻辑,就可以实现多运营版本并行和灰度发布,极大的降低了实现灰度发布和出错报警回滚的难度,解决了运营过程稳定性和频繁发布之间的冲突,提升了运营的便捷性和稳定性。
Description
技术领域
本发明涉及服务器端的软件开发和运维系统领域,特别是涉及一种用于运营发布的kbroker分布式操作系统和运营发布系统。
背景技术
在互联网行业,运营版本更新是一个非常频繁的事情,各家公司都有针对自己业务的更新发布方案,简单粗暴的就直接停服更新,技术水平高的就在开发和运维层面做自己的平滑更新方案。随着运营对系统可用性的要求越来越高,不停服更新已经是大势所趋,简单粗暴的停服更新越来越不被允许,而且停服更新虽然看似开发上比较简单,但存在风险很大,一是必须选择人少的时间更新,这就导致只能晚上才发运营版本,二是如果更新后新运营版本有问题处理起来也非常头疼。
支持灰度发布和运营版本回滚的平滑更新方案已经成为一种运营发布的标配,各家公司根据自己的业务情况来设计和实施自己的运营发布方案。总体上来说无状态的web服务还是比较简单的,主要工作在运维层面就可以解决,但针对有状态的长连接服务端程序要做到平滑更新还是需要各方面的支持的,平滑更新方案相对复杂,而且各家的方案有相似之处但更多的还是根据自身业务需求来专门定制的,整个方案的设计和对开发的要求都是比较高的。
虽然现在有很多针对无状态web服务的平滑更新方案,也有一些各自实现的针对有状态的长连接服务的更新方案,但这些方案都不适用于kbroker分布式操作系统上运行的服务,kbroker分布式操作系统上运行的服务都是有状态的长连接服务,而且这样服务的运行方式也和常规的有状态长连接服务不尽相同,这就导致现有市面的处理方法无法直接应用到kbroker分布式操作系统上。为此,充分考虑kbroker分布式操作系统的特点和开发者使用的方便性,专门为kbroker分布式操作系统设计一套统一的平滑更新发布方案就非常必要。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种应用于kbroker分布式操作系统上的运营版本更新发布方案,用于解决现有技术中的问题:
第一,原始的kbroker分布式系统不支持多运营版本并行,进而无法做到新运营版本的平滑更新发布。
第二,开发者在支持新运营版本平滑更新,灰度发布,出错回滚等核心功能的方案上需要提供很多的开发支持等额外工作。
为解决上述技术问题,本发明是按如下方式实现的:一种用于运营发布的kbroker分布式操作系统,包括:
业务层模块,用于实现整个系统的业务逻辑;所述业务层模块的业务逻辑被拆分成若干个应用程序,每一个应用程序对应一组app_allocator模块;每一个应用程序包括多个运营版本,每一个运营版本对应一组app_version_allocator模块和至少一组app_service模块;app_allocator模块用于管理应用程序正在运行的所有运营版本和每个app_object对象运行的运营版本、以及创建和释放app_object对象;app_version_allocator模块用于将app_object对象分配到其管理的app_service模块上运行;
kbroker_super模块,通过app_allocator模块来管理应用程序,支持app_allocator模块申请启动其应用程序指定运营版本的app_version_allocator模块,支持app_version_allocator模块申请启动其应用程序指定运营版本的app_service模块。
进一步地,app_allocator模块用于管理应用程序正在运行的所有运营版本:
app_allocator模块用于保存对应应用程序的所有正在运行的运营版本,管理其应用程序所有正在运行的运营版本的app_version_allocator模块;
app_version_allocator模块管理其所属运营版本下的app_service模块;
当应用程序启动时,首先kbroker_super模块启动app_allocator模块并完成主从灾备,然后主app_allocator模块启动所有正在运行的运营版本。
进一步地,app_allocator模块启动其保存的正在运行的运营版本:
app_version_allocator模块管理和分配app_object对象到其对应的app_service模块上运行;
app_version_allocator模块不涉及存储型资源;
app_allocator模块启动一个运营版本的流程为:app_allocator模块启动该运营版本对应的app_version_allocator模块,选出主app_version_allocator模块,实现和维护app_version_allocator模块的主从灾备,并保存该运营版本与app_version_allocator模块之间的对应关系;主app_version_allocator模块负责启动和管理其运营版本下的app_service模块。
进一步地,app_allocator模块管理多个运营版本相关的逻辑:
app_allocator模块包括一存储型资源,用于保存当前正在运行的运营版本、每个app_object对象当前所在的运营版本和app_object对象的运营版本分配策略;
app_allocator模块还用于添加或者删除对应应用程序的运营版本,以及修改app_object对象运营版本分配策略;
app_allocator模块还用于提供对应的应用程序内app_object对象的路由请求、申请添加和申请删除,并管理app_object对象从一个运营版本到另一个运营版本的平滑迁移。
进一步地,所述运营版本分配策略包括常规策略和特殊策略,特殊策略的优先级高于常规策略;
特殊策略是直接指定某个具体app_object对象的对象编号object_id所对应的运营版本;
常规策略是将app_object对象的对象编号object_id经过hash算法,分配到0-999这一千个区间内,app_allocator模块保存0-999这一千个hash值分别对应的运营版本;
app_allocator模块依据策略更改指令更改常规策略和特殊策略,当运营版本分配策略改变时会触发涉及到运营版本变化的app_object对象进行运营版本迁移。
进一步地,app_allocator模块用于添加或者删除对应应用程序的运营版本:
app_allocator模块在接收到发布应用程序新运营版本的请求时,启动运行该新运营版本,标记并保存该新运营版本为当前正在运行的运营版本;其中,所述请求包括应用程序新运营版本号;
app_allocator模块在接收到删除某个应用程序正在运行的运营版本的请求时,判断该被删除的运营版本是否在运营版本分配策略中用到;如果用到,删除失败;如果没有用到,继续判断是否有app_object对象现在正在运行在这个运营版本上;如果没有app_object对象现在正在运行在这个运营版本上,通知对应的主app_version_allocator模块关闭其相关的所有app_version_allocator模块和app_service模块,将该运营版本从正在运行的运营版本中删除并返回删除成功;如果有app_object对象现在正在运行在这个运营版本上,标记该运营版本为待删除状态,加紧执行其上运行app_object对象的迁移工作,并返回删除中。
进一步地,app_allocator模块还用于提供对应的应用程序内app_object对象的路由请求、申请添加和申请删除:
app_allocator模块保存已存在app_object对象当前正在运行的运营版本;
当申请添加app_object对象时,app_allocator模块设置该app_object对象为已存在,并保存其当前正在运行的运营版本为待分配运营版本,当该app_object对象运行时再为其分配真正的正在运行的运营版本;
当申请删除app_object对象时,app_allocator模块找到其当前正在运行的运营版本,并通知该运营版本对应的主app_version_allocator模块删除该app_object对象,app_allocator模块删除该app_object对象及其在存储型资源中保存的信息;
当app_allocator模块收到app_object对象的路由请求时,找到该app_object对象当前正在运行的运营版本,将路由请求转发到该当前正在运行的运营版本所对应的主app_version_allocator模块执行;
app_allocator模块对应的应用程序的app_object对象为临时存在模式时,app_allocator模块支持申请创建一个运营版本的新app_object对象。
进一步地,所述app_object对象包括应用程序管理的app_object对象类型和外部访问请求的来源的app_object对象类型。
进一步地,app_allocator模块管理app_object对象的运营版本迁移:
app_allocator模块在处理完所述特殊策略的修改后,判断所涉及app_object对象当前运行的运营版本和新设置的运营版本是否一致,如果不一致就添加到待迁移队列里等待迁移;
app_allocator模块在处理完所述常规策略的修改后触发一个运营版本迁移检查的异步事件,该异步事件检查所有已存在的app_object对象的运营版本号与经过运营版本分配策略计算出来的运营版本号是否一致,如果不一致就添加到待迁移队列里等待迁移;
添加到待迁移队列中的app_object对象按顺序依次执行迁移,app_allocator模块根据设定的并发数量进行并发迁移;当一个app_object对象迁移成功时,移出待迁移队列并更新app_object对象的当前运行的运营版本为迁移后的新运营版本;当一个app_object对象迁移失败后,移除待迁移队列,延时一段时间后添加到待迁移队列等待下一次迁移。
进一步地,一个app_object对象的运营版本迁移时,app_allocator模块通知该app_object对象当前所在的主app_version_allocator模块开始迁移该app_object对象,主app_version_allocator模块通知该app_object对象所在的app_service模块将app_object对象的数据导出;app_allocator模块通知该app_object对象对应的新运营版本的主app_version_allocator模块迁入该app_object对象,新运营版本的主app_version_allocator模块选择一个app_service模块启动该app_object对象并导入其之前导出的数据完成迁移。
进一步地,app_object对象的数据导出和导入都是基于对应app_service模块的软件版本进行的。
进一步地,app_version_allocator模块管理app_object对象的分配:
app_version_allocator模块根据app_allocator模块的通知确定其上运行的app_object对象,或向app_allocator模块请求确认app_object对象是否在其上运行;
当收到app_allocator模块转发的app_object对象的路由请求时,app_version_allocator模块查找该app_object对象是否在其上运行,如果该app_object对象不在其上运行,则将该请求转发到app_allocator模块;如果该app_object对象在其上运行,查找该app_object对象是否正在运行,如果正在运行就返回其运行所在的app_service模块,否则就先分配app_service模块运行该app_object对象,然后再返回被分配的app_service模块;对路由请求返回的消息直接发送给路由请求的发送方而不发送给app_allocator模块;
app_version_allocator模块根据app_object对象的运行资源启动新的app_service模块或关闭空闲的app_service模块。
进一步地,kbroker_super模块在app_version_allocator模块或app_service模块不可用时,通知其所属应用程序的app_allocator模块;
如果app_version_allocator模块不可用,app_allocator模块启动该app_version_allocator模块对应运营版本的新app_version_allocator模块,并维护主从灾备;
如果app_service模块不可用,app_allocator模块通知其所在运营版本的主app_version_allocator模块,由主app_version_allocator模块处理该app_service模块不可用的事件。
进一步地,本发明还提供一种运营发布系统,包括如上所述的kbroker分布式操作系统以及业务层管理后台;
所述业务层管理后台提供给kbroker分布式操作系统一个接口,kbroker分布式操作系统通过该接口提交各个应用程序的各个运营版本的运行情况,对包括逻辑上的运行报错和程序崩溃等及时通过该接口给予警示;
所述业务层管理后台通过app_allocator模块提供的接口设置运营版本的分配策略,将应用程序的对象分配到不同的运营版本;
所述业务层管理后台在新运营版本发布后,添加分配策略将少量对象分配到新运营版本,监控新运营版本的运行状况;所述业务层管理后台在新运营版本运行正常没有报警的情况下,通过设置策略或者手动操作逐步调整分配策略将更多的对象分配到新运营版本运行;当新运营版本运行异常时kbroker分布式操作系统通过接口通知所述业务层管理后台,所述业务层管理后台在收到运行出错或者程序崩溃的报警时通知运维和开发人员进行处理,或设置策略在达到阈值时自动修改运营版本的分配策略实现运营版本回滚。
如上所述,本发明的一种用于运营发布的kbroker分布式操作系统和运营发布系统,开发者只用在业务逻辑之外实现多个软件版本间的数据导出导入逻辑,就可以实现多运营版本并行和灰度发布,极大的降低了实现灰度发布和出错报警回滚的难度,解决了运营过程稳定性和频繁发布之间的冲突,提升了运营的便捷性和稳定性。
附图说明
图1显示为本发明实施例中一种用于运营发布的kbroker分布式操作系统和运营发布系统的模块结构示意图;
图2显示为本发明实施例中一种用于运营发布的kbroker分布式操作系统和运营发布系统的应用程序启动示意图;
图3显示为本发明实施例中一种用于运营发布的kbroker分布式操作系统和运营发布系统的app_object对象迁移过程流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
如图1至图3所示,本发明提供一种用于运营发布的kbroker分布式操作系统,业务层模块,用于实现整个系统的业务逻辑;业务层模块的业务逻辑被拆分成若干个应用程序,每一个应用程序对应一组app_allocator模块;每一个应用程序包括多个运营版本,每一个运营版本对应一组app_version_allocator模块和至少一组app_service模块;app_allocator模块用于管理应用程序正在运行的所有运营版本和每个app_object对象运行的运营版本、以及创建和释放app_object对象;app_version_allocator模块用于将app_object对象分配到其管理的app_service模块上运行。
每个应用程序都有一组app_allocator模块,其负责管理该应用程序正在运行的所有运营版本、其上app_obejct对象现在正在运行的运营版本以及运营版本切换工作,其直接负责管理的程序是该应用程序各个正在运行的运营版本对应的app_version_allocator模块,核心工作是将app_object对象分配到当前运行的运营版本上以及app_object对象在各个运营版本间的切换。
应用程序的每一个运营版本都有一组主从灾备的app_version_allocator模块,app_version_allocator模块管理着至少一组该运营版本对应的app_service模块,负责管理app_allocator模块分配到其上运行的app_object对象,分配其管理的app_object对象到合适的app_service模块上运行以及对app_object对象迁移时的支持。
kbroker_super模块,通过app_allocator模块来管理应用程序,支持app_allocator模块申请启动其应用程序指定运营版本的app_version_allocator模块,支持app_version_allocator模块申请启动其应用程序指定运营版本的app_service模块。
app_service模块主要是增加了迁移时对软件版本的支持,导出数据时可以根据需要导出针对不同软件版本的数据,导入时可以接收不同软件版本的数据再转换成自己需要的数据。
app_allocator模块根据app_object对象当前的运营版本号将其分配到该运营版本对应的主app_version_allocator模块去处理,主app_version_allocator模块再将其分配到其管理的app_service模块上运行;迁移app_object对象时,app_allocator模块通知原运营版本对应主app_version_allocator模块将该app_object对象在app_service模块上进行数据导出,然后app_allocator模块通知新运营版本对应的主app_version_allocator模块将该app_object对象在其管理的app_service模块上启动,并导入之前导出的数据,从而完成运营版本迁移。
app_allocator模块用于保存对应应用程序的所有正在运行的运营版本,管理其应用程序所有正在运行的运营版本的app_version_allocator模块。app_version_allocator模块管理其所属运营版本下的app_service模块。当应用程序启动时,首先kbroker_super模块启动app_allocator模块并完成主从灾备,然后主app_allocator模块启动所有正在运行的运营版本。
每个运营版本包括与之对应的一组app_version_allocator模块和至少一组app_service模块。app_version_allocator模块管理和分配app_object对象到其对应的app_service模块上运行;app_version_allocator模块不涉及存储型资源;app_allocator模块启动一个运营版本的流程为:app_allocator模块启动该运营版本对应的app_version_allocator模块,选出主app_version_allocator模块,实现和维护app_version_allocator模块的主从灾备,并保存该运营版本与app_version_allocator模块之间的对应关系;主app_version_allocator模块负责启动和管理其运营版本下的app_service模块。
app_version_allocator模块启动app_service模块时,其直接向kbroker_super模块请求启动新的app_service模块,该启动请求中携带了其对应的应用程序运营版本号。kbroker_super模块收到请求后,选择合适的kbroker_server模块来启动app_service模块,发送给kbroker_server模块的启动app_service模块的命令中也携带有其对应的应用程序运营版本号。
kbroker_server模块在启动app_service模块时,依据其对应的应用程序编号app_id和应用程序运营版本号来选择具体的启动命令和启动程序,进而完成启动工作
app_version_allocator模块在新的app_service模块启动成功后,会向app_allocator模块上报其新启动了这个app_service模块,app_allocator模块将保存该app_service模块与应用程序运营版本号的对应关系。
app_allocator模块管理多个运营版本相关的逻辑,app_allocator模块包括一存储型资源,用于保存当前正在运行的运营版本、每个app_object对象当前所在的运营版本和app_object对象的运营版本分配策略。app_allocator模块还用于添加或者删除对应应用程序的运营版本,以及修改app_object对象运营版本分配策略。app_allocator模块还用于提供对应的应用程序内app_object对象的路由请求、申请添加和申请删除,并管理app_object对象从一个运营版本到另一个运营版本的平滑迁移。
运营版本分配策略包括常规策略和特殊策略,特殊策略的优先级高于常规策略。特殊策略是直接指定某个具体app_object对象的对象编号object_id所对应的运营版本。常规策略是将app_object对象的对象编号object_id经过hash算法,分配到0-999这一千个区间内,app_allocator模块保存0-999这一千个hash值分别对应的运营版本。app_allocator模块依据策略更改指令更改常规策略和特殊策略,当运营版本分配策略改变时会触发涉及到运营版本变化的app_object对象进行运营版本迁移。
app_object对象包括应用程序管理的app_object对象类型和外部访问请求的来源的app_object对象类型。通常来说,如果该app_allocator模块所属应用程序的app_object对象为永久存在模式,那么其运营版本分配策略针对的app_object对象为其管理的app_object对象;如果该app_allocator模块所属应用程序的app_object对象不为永久存在模式,那么其运营版本分配策略针对的app_object对象为某些特定操作的来源app_object对象。
永久存在模式下的app_object对象,访问时都是明确指定app_object对象的,比如访问某个用户的个人信息,这种情况下根据app_object对象的对象编号object_id进行运营版本分配就是可行的。
临时存在模式下的app_object对象,app_object对象是由app_allocator自己管理生成和销毁的,外界并不知道某个app_object对象是否存在,这就无法使用app_object对象的对象编号object_id进行运营版本分配。在这种情况下,外界通常是只关心由app_object对象访问即可,并不关心是哪个具体的app_object对象,比如没有限制的拼团功能,用户只是申请参加拼团,但不关心具体是哪个团,对于这种情况就可以根据申请参加拼团的用户对象的对象编号object_id来进行运营版本分配,将不同的来源app_object对象的执行分配到不同运营版本上执行。
app_allocator模块用于添加或者删除对应应用程序的运营版本,开发者通过业务管理网关来操作增删应用程序的运行运营版本。
应用程序的运营版本号由业务层管理后台生成,每一个运营版本打成一个软件包进行发布,其中包括专有的app_version_allocator和app_service执行程序、配置文件、启动文件等。启动文件保存了启动app_version_allocator和app_service的执行命令,由于app_allocator的功能相对固定,所以app_allocator的执行程序由系统统一提供,应用程序只需要在启动文件中指定启动参数就可以了。
app_allocator模块在接收到发布应用程序新运营版本的请求时,启动运行该新运营版本,标记并保存该新运营版本为当前正在运行的运营版本。其中,请求包括应用程序新运营版本号。
发布一个新运营版本时,通过业务层管理后台提交新运营版本对应的软件包,业务层管理后台将生成比该应用程序当前正在运行的所有运营版本号都大的新运营版本号,并将其软件包上传网络保存,使得kbroker分布式操作系统内的所有服务器可以通过应用程序编号app_id和该新运营版本号来下载该软件包,接下来将发布新运营版本的请求通过业务管理网关转发到该应用程序的app_allocator模块进行处理,app_allocator模块标记并保存新运营版本为当前正在运行的运营版本,然后app_allocator模块启动运行该新运营版本。
app_allocator模块在接收到删除某个应用程序正在运行的运营版本的请求时,判断该被删除的运营版本是否在运营版本分配策略中用到;如果用到,删除失败;如果没有用到,继续判断是否有app_object对象现在正在运行在这个运营版本上;如果没有app_object对象现在正在运行在这个运营版本上,通知对应的主app_version_allocator模块关闭其相关的所有app_version_allocator模块和app_service模块,将该运营版本从正在运行的运营版本中删除并返回删除成功;如果有app_object对象现在正在运行在这个运营版本上,标记该运营版本为待删除状态,加紧执行其上运行app_object对象的迁移工作,并返回删除中。
删除一个正在运行的运营版本时,通过业务管理网关通知该应用程序的app_allocator模块执行,但不会删除网络上保存的该运营版本对应的软件包。
app_allocator模块还用于提供对应的应用程序内app_object对象的路由请求、申请添加和申请删除,app_allocator模块保存已存在app_object对象当前正在运行的运营版本。
当申请添加app_object对象时,app_allocator模块设置该app_object对象为已存在,并保存其当前正在运行的运营版本为待分配运营版本,当该app_object对象运行时再为其分配真正的正在运行的运营版本。当申请删除app_object对象时,app_allocator模块找到其当前正在运行的运营版本,并通知该运营版本对应的主app_version_allocator模块删除该app_object对象,app_allocator模块删除该app_object对象及其在存储型资源中保存的信息。
当app_allocator模块收到app_object对象的路由请求时,首先找到该app_object对象当前正在运行的运营版本,然后将路由请求转发到该当前正在运行的运营版本所对应的主App_version_allocator模块执行。
app_allocator模块对应的应用程序的app_object对象为临时存在模式时,app_allocator模块支持申请创建一个运营版本的新app_object对象,app_version_allocator模块在需要创建新的app_object对象时调用该接口获得一个新的在其上运行的app_object对象。
app_allocator模块管理app_object对象的运营版本迁移,app_allocator模块在处理完特殊运营版本分配策略的修改后,直接判断所涉及app_object对象当前运行的运营版本和新设置的运营版本是否一致,如果不一致就添加到待迁移队列里等待迁移。
app_allocator模块在处理完常规运营版本分配策略的修改后触发一个运营版本迁移检查的异步事件,该异步事件检查所有已存在的app_object对象的运营版本号与经过运营版本分配策略计算出来的运营版本号是否一致,如果不一致就添加到待迁移队列里等待迁移。
添加到待迁移队列中的app_object对象按顺序依次执行迁移,app_allocator模块根据设定的并发数量进行并发迁移;当一个app_object对象迁移成功时,移出待迁移队列并更新app_object对象的当前运行的运营版本为迁移后的新运营版本;当一个app_object对象迁移失败后,移除待迁移队列,延时一段时间后添加到待迁移队列等待下一次迁移。
一个app_object对象的运营版本迁移时,app_allocator模块通知该app_object对象当前所在的主app_version_allocator模块开始迁移该app_object对象,主app_version_allocator模块通知该app_object对象所在的app_service模块将app_object对象的数据导出;app_allocator模块通知该app_object对象对应的新运营版本的主app_version_allocator模块迁入该app_object对象,新运营版本的主app_version_allocator模块选择一个app_service模块启动该app_object对象并导入其之前导出的数据完成迁移。
app_service模块收到迁移信息后,标记该app_object对象为迁移中,确保该app_object对象没有正在执行的任务逻辑后开始迁移,通过app_object对象的数据导出接口根据迁移后app_service模块的软件版本号导出数据,如果导出失败则迁移失败,导出成功后向主app_version_allocator模块返回该app_object对象迁移开始。
主app_version_allocator模块在收到app_object对象迁移开始的通知后,向app_allocator模块通知app_object对象迁移开始,通知中携带app_object对象的app_service模块的进程编号program_id。
app_allocator模块收到主app_version_allocator模块发送的app_object对象迁移开始的通知后,根据策略计算出该app_object对象的新运营版本号,然后通知新运营版本号对应的主主app_version_allocator模块执行迁入该app_object对象的操作。
主app_version_allocator模块收到迁入app_object对象的通知后,标记该app_object对象为迁入中,然后选择合适的app_service模块执行迁入操作。
app_service模块在收到app_object对象迁入操作的命令后,会从命令中获得该app_object对象之前所在的app_service模块,然后向该app_service模块获取该app_object对象的导出数据,然后创建该app_object对象并导入数据,操作成功后向主app_version_allocator模块返回迁入成功。
主app_version_allocator模块收到迁入成功的通知后,将该app_object对象标记为在其上运行,保存该app_object对象正在运行的app_service模块为该迁入成功的app_service模块,然后通知app_allocator模块迁入成功。
app_allocator模块收到迁入成功的通知后,会将该app_object对象正在运行的运营版本设置为新运营版本,然后通知老运营版本所对应的主app_version_allocator模块迁移完成
主app_version_allocator模块收到迁移完成的命令后,通知该app_object对象之前所在的app_service模块迁移完成,并将该app_object对象不再标记为在其上运行。
app_service模块收到迁移完成的命令后,关闭该app_object对象,并将缓存的该app_object对象的待处理命令转发到该app_object对象新迁入的app_service模块,并通知这些命令的发送方更新该app_object对象的路由为新迁入的app_service模块。
app_object对象的数据导出和导入都是基于对应app_service模块的软件版本进行的。
主app_version_allocator模块管理app_object对象的分配,主app_version_allocator模块根据app_allocator模块的通知确定其上运行app_object对象,或向app_allocator模块请求确认app_object对象是否在其上运行。
当收到app_allocator模块转发的app_object对象的路由请求时,主app_version_allocator模块查找该app_object对象是否在其上运行,如果该app_object对象不在其上运行,则将该请求转发到app_allocator模块。如果该app_object对象在其上运行,查找该app_object对象是否正在运行;如果正在运行就返回其运行所在的app_service模块,否则就先分配到app_service模块运行该app_object对象,然后再返回被分配的app_service模块,对路由请求返回的消息直接发送给路由请求的发送方而不发送给app_allocator模块。
主app_version_allocator模块根据app_object对象的运行资源启动新的app_service模块或关闭空闲的app_service模块。
kbroker_super模块在app_version_allocator模块或app_service模块不可用时,通知其所属应用程序的app_allocator模块。如果app_version_allocator模块不可用,app_allocator模块启动该app_version_allocator模块对应运营版本的新app_version_allocator模块,并维护主从灾备;如果app_service模块不可用,app_allocator模块通知其所在运营版本的主app_version_allocator模块,由主app_version_allocator模块处理该app_service模块不可用的事件。
本发明还提供一种运营发布系统,包括如上所述的kbroker分布式操作系统以及业务层管理后台;
业务层管理后台提供给kbroker分布式操作系统一个接口,kbroker分布式操作系统通过该接口提交各个应用程序的各个运营版本的运行情况,对包括逻辑上的运行报错和程序崩溃等及时通过该接口给予警示;
业务层管理后台通过app_allocator模块提供的接口设置运营版本的分配策略,将应用程序的对象分配到不同的运营版本;
业务层管理后台在新运营版本发布后,添加分配策略将少量对象分配到新运营版本,监控新运营版本的运行状况;所述业务层管理后台在新运营版本运行正常没有报警的情况下,通过设置策略或者手动操作逐步调整分配策略将更多的对象分配到新运营版本运行;当新运营版本运行异常时kbroker分布式操作系统通过接口通知所述业务层管理后台,所述业务层管理后台在收到运行出错或者程序崩溃的报警时通知运维和开发人员进行处理,或设置策略在达到阈值时自动修改运营版本的分配策略实现运营版本回滚。
在原始kbroker分布式操作系统中kbroker_super模块和kbroker_server模块的改动并不大,主要是在启动命令中增加了应用程序运营版本号,另外新增了一个启动应用程序app_version_allocator的命令,调整了原来启动app_allocator的命令。
app_allocator模块的功能相对固定,主要是区分永久存在和临时存在两种模式的运营版本分配策略,没有太多和业务层相关的逻辑,因此可以将app_allocator模块做成一个独立的程序,其由系统来维护,业务层通过参数配置来区分应用程序的模块和临时存在模式下配置运营版本分配策略关注的关键命令。所有业务层针对相关app_object对象的专有处理命令都统一使用一个命令字,app_allocator模块收到该命令字后直接转发给app_version_allocator模块处理。
app_version_allocator模块提供一个类库供业务层使用,其和原始kbroker分布式操作系统提供的app_allocator类库大部分类似,主要是删除了管理app_object对象申请生成和释放部分的功能,并添加了针对迁移功能的支持。业务层也可以在编写完自己独有的规则后和类库一起编译生成应用程序专有的app_version_allocator程序。
app_service模块也是提供一个类库给业务层使用,其和原始kbroker分布式操作系统提供的app_service类库的核心功能一致,唯一的区别就是在迁移app_object对象时需要支持多运营版本,为此需要对原来app_object_i虚基类中的导出和导入函数进行一些改进。
app_object对象的数据导出函数新增一个导出目标软件版本号的参数,业务层在实现时,选择自己当前软件版本号和导出目标软件版本号中较小的那个作为真正的导出目标软件版本,进而根据该真正的导出目标软件版本所规定的格式导出数据,导出完成后返回该真正的导出目标软件版本号和导出数据。
app_object对象的数据导入函数也新增一个数据软件版本号的参数,业务层在实现导入时,根据该软件版本号选择合适的数据解析方式来解析导入数据,并根据该数据软件版本到自己当前运营版本的数据转换规则将解析后的数据转换成自己当前运营版本的数据,从而完成数据导入。
综上所述,本发明的一种用于运营发布的kbroker分布式操作系统和运营发布系统,开发者只用在业务逻辑之外实现多个软件版本间的数据导出导入逻辑,就可以实现多运营版本并行和灰度发布,极大的降低了实现灰度发布和出错报警回滚的难度,解决了运营过程稳定性和频繁发布之间的冲突,提升了运营的便捷性和稳定性。所以,本发明有效克服了现有技术中的种种缺点而具有高度产业利用价值。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (14)
1.一种用于运营发布的kbroker分布式操作系统,其特征在于,包括:
业务层模块,用于实现整个系统的业务逻辑;所述业务层模块的业务逻辑被拆分成若干个应用程序,每一个应用程序对应一组app_allocator模块;每一个应用程序包括多个运营版本,每一个运营版本对应一组app_version_allocator模块和至少一组app_service模块;app_allocator模块用于管理应用程序正在运行的所有运营版本和每个app_object对象运行的运营版本、以及创建和释放app_object对象;app_version_allocator模块用于将app_object对象分配到其管理的app_service模块上运行;
kbroker_super模块,通过app_allocator模块来管理应用程序,支持app_allocator模块申请启动其应用程序指定运营版本的app_version_allocator模块,支持app_version_allocator模块申请启动其应用程序指定运营版本的app_service模块。
2.根据权利要求1所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,app_allocator模块用于管理应用程序正在运行的所有运营版本:
app_allocator模块用于保存对应应用程序的所有正在运行的运营版本,管理其应用程序所有正在运行的运营版本的app_version_allocator模块;
app_version_allocator模块管理其所属运营版本下的app_service模块;
当应用程序启动时,首先kbroker_super模块启动app_allocator模块并完成主从灾备,然后主app_allocator模块启动所有正在运行的运营版本。
3.根据权利要求2所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,app_allocator模块启动其保存的正在运行的运营版本:
app_version_allocator模块管理和分配app_object对象到其对应的app_service模块上运行;
app_version_allocator模块不涉及存储型资源;
app_allocator模块启动一个运营版本的流程为:app_allocator模块启动该运营版本对应的app_version_allocator模块,选出主app_version_allocator模块,实现和维护app_version_allocator模块的主从灾备,并保存该运营版本与app_version_allocator模块之间的对应关系;主app_version_allocator模块负责启动和管理其运营版本下的app_service模块。
4.根据权利要求1所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,app_allocator模块管理多个运营版本相关的逻辑:
app_allocator模块包括一存储型资源,用于保存当前正在运行的运营版本、每个app_object对象当前所在的运营版本和app_object对象的运营版本分配策略;
app_allocator模块还用于添加或者删除对应应用程序的运营版本,以及修改app_object对象运营版本分配策略;
app_allocator模块还用于提供对应的应用程序内app_object对象的路由请求、申请添加和申请删除,并管理app_object对象从一个运营版本到另一个运营版本的平滑迁移。
5.根据权利要求4所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,所述运营版本分配策略包括常规策略和特殊策略,特殊策略的优先级高于常规策略;
特殊策略是直接指定某个具体app_object对象的对象编号object_id所对应的运营版本;
常规策略是将app_object对象的对象编号object_id经过hash算法,分配到0-999这一千个区间内,app_allocator模块保存0-999这一千个hash值分别对应的运营版本;
app_allocator模块依据策略更改指令更改常规策略和特殊策略,当运营版本分配策略改变时会触发涉及到运营版本变化的app_object对象进行运营版本迁移。
6.根据权利要求4所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,app_allocator模块用于添加或者删除对应应用程序的运营版本:
app_allocator模块在接收到发布应用程序新运营版本的请求时,启动运行该新运营版本,标记并保存该新运营版本为当前正在运行的运营版本;其中,所述请求包括应用程序新运营版本号;
app_allocator模块在接收到删除某个应用程序正在运行的运营版本的请求时,判断该被删除的运营版本是否在运营版本分配策略中用到;如果用到,删除失败;如果没有用到,继续判断是否有app_object对象现在正在运行在这个运营版本上;如果没有app_object对象现在正在运行在这个运营版本上,通知对应的主app_version_allocator模块关闭其相关的所有app_version_allocator模块和app_service模块,将该运营版本从正在运行的运营版本中删除并返回删除成功;如果有app_object对象现在正在运行在这个运营版本上,标记该运营版本为待删除状态,加紧执行其上运行app_object对象的迁移工作,并返回删除中。
7.根据权利要求4所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,app_allocator模块还用于提供对应的应用程序内app_object对象的路由请求、申请添加和申请删除:
app_allocator模块保存已存在app_object对象当前正在运行的运营版本;
当申请添加app_object对象时,app_allocator模块设置该app_object对象为已存在,并保存其当前正在运行的运营版本为待分配运营版本,当该app_object对象运行时再为其分配真正的正在运行的运营版本;
当申请删除app_object对象时,app_allocator模块找到其当前正在运行的运营版本,并通知该运营版本对应的主app_version_allocator模块删除该app_object对象,app_allocator模块删除该app_object对象及其在存储型资源中保存的信息;
当app_allocator模块收到app_object对象的路由请求时,找到该app_object对象当前正在运行的运营版本,将路由请求转发到该当前正在运行的运营版本所对应的主app_version_allocator模块执行;
app_allocator模块对应的应用程序的app_object对象为临时存在模式时,app_allocator模块支持申请创建一个运营版本的新app_object对象。
8.根据权利要求5所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,所述app_object对象包括应用程序管理的app_object对象类型和外部访问请求的来源的app_object对象类型。
9.根据权利要求5所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,app_allocator模块管理app_object对象的运营版本迁移:
app_allocator模块在处理完所述特殊策略的修改后,判断所涉及app_object对象当前运行的运营版本和新设置的运营版本是否一致,如果不一致就添加到待迁移队列里等待迁移;
app_allocator模块在处理完所述常规策略的修改后触发一个运营版本迁移检查的异步事件,该异步事件检查所有已存在的app_object对象的运营版本号与经过运营版本分配策略计算出来的运营版本号是否一致,如果不一致就添加到待迁移队列里等待迁移;
添加到待迁移队列中的app_object对象按顺序依次执行迁移,app_allocator模块根据设定的并发数量进行并发迁移;当一个app_object对象迁移成功时,移出待迁移队列并更新app_object对象的当前运行的运营版本为迁移后的新运营版本;当一个app_object对象迁移失败后,移除待迁移队列,延时一段时间后添加到待迁移队列等待下一次迁移。
10.根据权利要求9所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,一个app_object对象的运营版本迁移时,app_allocator模块通知该app_object对象当前所在的主app_version_allocator模块开始迁移该app_object对象,主app_version_allocator模块通知该app_object对象所在的app_service模块将app_object对象的数据导出;app_allocator模块通知该app_object对象对应的新运营版本的主app_version_allocator模块迁入该app_object对象,新运营版本的主app_version_allocator模块选择一个app_service模块启动该app_object对象并导入其之前导出的数据完成迁移。
11.根据权利要求9所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,app_object对象的数据导出和导入都是基于对应app_service模块的软件版本进行的。
12.根据权利要求1所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,app_version_allocator模块管理app_object对象的分配:
app_version_allocator模块根据app_allocator模块的通知确定其上运行的app_object对象,或向app_allocator模块请求确认app_object对象是否在其上运行;
当收到app_allocator模块转发的app_object对象的路由请求时,app_version_allocator模块查找该app_object对象是否在其上运行,如果该app_object对象不在其上运行,则将该请求转发到app_allocator模块;如果该app_object对象在其上运行,查找该app_object对象是否正在运行,如果正在运行就返回其运行所在的app_service模块,否则就先分配app_service模块运行该app_object对象,然后再返回被分配的app_service模块;对路由请求返回的消息直接发送给路由请求的发送方而不发送给app_allocator模块;
app_version_allocator模块根据app_object对象的运行资源启动新的app_service模块或关闭空闲的app_service模块。
13.根据权利要求1所述的一种用于运营发布的kbroker分布式操作系统,其特征在于,kbroker_super模块在app_version_allocator模块或app_service模块不可用时,通知其所属应用程序的app_allocator模块;
如果app_version_allocator模块不可用,app_allocator模块启动该app_version_allocator模块对应运营版本的新app_version_allocator模块,并维护主从灾备;
如果app_service模块不可用,app_allocator模块通知其所在运营版本的主app_version_allocator模块,由主app_version_allocator模块处理该app_service模块不可用的事件。
14.一种运营发布系统,其特征在于,包括如权利要求1-13中任意一项所述的kbroker分布式操作系统以及业务层管理后台;
所述业务层管理后台提供给kbroker分布式操作系统一个接口,kbroker分布式操作系统通过该接口提交各个应用程序的各个运营版本的运行情况,对包括逻辑上的运行报错和程序崩溃等及时通过该接口给予警示;
所述业务层管理后台通过app_allocator模块提供的接口设置运营版本的分配策略,将应用程序的对象分配到不同的运营版本;
所述业务层管理后台在新运营版本发布后,添加分配策略将少量对象分配到新运营版本,监控新运营版本的运行状况;所述业务层管理后台在新运营版本运行正常没有报警的情况下,通过设置策略或者手动操作逐步调整分配策略将更多的对象分配到新运营版本运行;当新运营版本运行异常时kbroker分布式操作系统通过接口通知所述业务层管理后台,所述业务层管理后台在收到运行出错或者程序崩溃的报警时通知运维和开发人员进行处理,或设置策略在达到阈值时自动修改运营版本的分配策略实现运营版本回滚。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910843926.XA CN110532000B (zh) | 2019-09-06 | 2019-09-06 | 一种用于运营发布的kbroker分布式操作系统和运营发布系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910843926.XA CN110532000B (zh) | 2019-09-06 | 2019-09-06 | 一种用于运营发布的kbroker分布式操作系统和运营发布系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110532000A true CN110532000A (zh) | 2019-12-03 |
CN110532000B CN110532000B (zh) | 2023-01-10 |
Family
ID=68667486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910843926.XA Active CN110532000B (zh) | 2019-09-06 | 2019-09-06 | 一种用于运营发布的kbroker分布式操作系统和运营发布系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110532000B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104162A (zh) * | 2019-12-18 | 2020-05-05 | 程延辉 | 一种新旧代码共同运行的kbroker分布式操作系统 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101454766A (zh) * | 2006-06-15 | 2009-06-10 | 国际商业机器公司 | 组合软件服务的管理 |
CN102684930A (zh) * | 2012-06-08 | 2012-09-19 | 山东科汇电力自动化有限公司 | 基于ice的分布式应用高可靠性的实现机制及运行方法 |
US20120304157A1 (en) * | 2011-05-23 | 2012-11-29 | International Business Machines Corporation | Method for testing operation of software |
CN103729195A (zh) * | 2014-01-15 | 2014-04-16 | 北京奇虎科技有限公司 | 一种软件版本的控制方法及系统 |
US20140282422A1 (en) * | 2013-03-12 | 2014-09-18 | Netflix, Inc. | Using canary instances for software analysis |
CN106569786A (zh) * | 2015-10-10 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 业务应用的开发方法及系统 |
US20180088924A1 (en) * | 2016-09-23 | 2018-03-29 | Kiushan Pirzadeh | Update migration system and method |
CN107872334A (zh) * | 2016-09-23 | 2018-04-03 | 中兴通讯股份有限公司 | 一种微服务架构系统中灰度升级的方法及装置 |
CN108572845A (zh) * | 2018-03-15 | 2018-09-25 | 华为技术有限公司 | 分布式微服务集群的升级方法及相关系统 |
CN108958708A (zh) * | 2017-05-25 | 2018-12-07 | 河南理工大学 | 一种基于组件的软件系统架构及软件实现方法 |
CN109857407A (zh) * | 2018-10-24 | 2019-06-07 | 京信通信系统(中国)有限公司 | 基站上层软件的部署方法、装置、存储介质及设备 |
-
2019
- 2019-09-06 CN CN201910843926.XA patent/CN110532000B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101454766A (zh) * | 2006-06-15 | 2009-06-10 | 国际商业机器公司 | 组合软件服务的管理 |
US20120304157A1 (en) * | 2011-05-23 | 2012-11-29 | International Business Machines Corporation | Method for testing operation of software |
CN102684930A (zh) * | 2012-06-08 | 2012-09-19 | 山东科汇电力自动化有限公司 | 基于ice的分布式应用高可靠性的实现机制及运行方法 |
US20140282422A1 (en) * | 2013-03-12 | 2014-09-18 | Netflix, Inc. | Using canary instances for software analysis |
CN103729195A (zh) * | 2014-01-15 | 2014-04-16 | 北京奇虎科技有限公司 | 一种软件版本的控制方法及系统 |
CN106569786A (zh) * | 2015-10-10 | 2017-04-19 | 阿里巴巴集团控股有限公司 | 业务应用的开发方法及系统 |
US20180088924A1 (en) * | 2016-09-23 | 2018-03-29 | Kiushan Pirzadeh | Update migration system and method |
CN107872334A (zh) * | 2016-09-23 | 2018-04-03 | 中兴通讯股份有限公司 | 一种微服务架构系统中灰度升级的方法及装置 |
CN108958708A (zh) * | 2017-05-25 | 2018-12-07 | 河南理工大学 | 一种基于组件的软件系统架构及软件实现方法 |
CN108572845A (zh) * | 2018-03-15 | 2018-09-25 | 华为技术有限公司 | 分布式微服务集群的升级方法及相关系统 |
CN109857407A (zh) * | 2018-10-24 | 2019-06-07 | 京信通信系统(中国)有限公司 | 基站上层软件的部署方法、装置、存储介质及设备 |
Non-Patent Citations (6)
Title |
---|
DIETER FENSEL: "The Web Service Modeling Framework WSMF", 《ELECTRONIC COMMERCE RESEARCH AND APPLICATIONS》 * |
USHA BATRA: "Modularization of concerns in a distributed framework: An aspect oriented approach", 《009 2ND IEEE INTERNATIONAL CONFERENCE ON COMPUTER SCIENCE AND INFORMATION TECHNOLOGY》 * |
佚名: "Kafka 和 ZooKeeper 的分布式消息队列分析", 《CNBLOGS.COM/TUDACHUI/P/11102400.HTML》 * |
吴一鸣: "通讯平台上的分布式设备管理系统的设计和实现", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
胡文华: "Broker:一种分布式系统的体系结构模式", 《科技广场》 * |
陈志云等: "基于Storm的工业流水线实时分析系统设计与实现", 《计算机应用与软件》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111104162A (zh) * | 2019-12-18 | 2020-05-05 | 程延辉 | 一种新旧代码共同运行的kbroker分布式操作系统 |
WO2021120693A1 (zh) * | 2019-12-18 | 2021-06-24 | 程延辉 | 一种新旧代码共同运行的kbroker分布式操作系统 |
CN111104162B (zh) * | 2019-12-18 | 2023-03-24 | 程延辉 | 一种新旧代码共同运行的kbroker分布式操作系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110532000B (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10891267B2 (en) | Versioning of database partition maps | |
US8386540B1 (en) | Scalable relational database service | |
CN102779185B (zh) | 一种高可用分布式全文索引方法 | |
CN101493826B (zh) | 基于web应用的数据库系统及其数据管理方法 | |
CN105094997B (zh) | 一种云计算主机节点间物理内存共享方法和系统 | |
US20130159344A1 (en) | Dynamically splitting multi-tenant databases | |
US20120102506A1 (en) | Web service patterns for globally distributed service fabric | |
WO2015131696A1 (zh) | 一种虚拟化网络功能管理的方法和装置 | |
CN109542611A (zh) | 数据库即服务系统、数据库调度方法、设备及存储介质 | |
CN101360123B (zh) | 一种网络系统及其管理方法 | |
CN107734066A (zh) | 一种数据中心综合管理系统服务治理方法 | |
CN104639361A (zh) | 网络服务模板的管理方法和装置 | |
WO2020215752A1 (zh) | 图计算方法及装置 | |
CN106021370A (zh) | 内存数据库实例的管理方法及装置 | |
CN111966482B (zh) | 边缘计算系统 | |
CN112596762A (zh) | 一种滚动升级方法及装置 | |
CN115587118A (zh) | 任务数据的维表关联处理方法及装置、电子设备 | |
CN101877655A (zh) | 网络管理系统、网管服务器和方法 | |
CN110119308B (zh) | 管理大规模容器应用的系统 | |
CN106533961A (zh) | 一种流量控制方法及装置 | |
CN117111948A (zh) | 分布式编译方法及系统、节点、计算机可读存储介质 | |
CN110532000A (zh) | 一种用于运营发布的kbroker分布式操作系统和运营发布系统 | |
CN114490073A (zh) | 电子地图运维方法、电子地图数据使用方法及服务系统 | |
Nagato et al. | Distributed key-value storage for edge computing and its explicit data distribution method | |
JP2004302564A (ja) | ネームサービス提供方法及びその実施装置並びにその処理プログラム |
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 |