用于混合云端和边缘系统的特征生命周期管理座舱的制作方法

文档序号:32100960发布日期:2022-11-09 02:16阅读:88来源:国知局
用于混合云端和边缘系统的特征生命周期管理座舱的制作方法

1.本公开的实施方式涉及一种特征管理系统,以针对部署于混合部署(即,基于云端的部件和现场(边缘)部件)中的软件产品提供对软件特征卷展和采用管理的一致控制。更具体而言,本公开的特征管理系统提供了一种特征管理座舱,其包括供应商视图(供应商座舱)和客户视图(客户座舱)以管理混合部署中的软件特征的生命周期。


背景技术:

2.软件系统能够由软件供应商提供以使得企业能够进行运营。软件系统可以包括各种应用程序,提供用于执行企业运营的功能。在一些情况下,软件供应商将软件系统提供为在云计算环境中执行的异地应用程序,可以被称为基于云端的应用程序(例如,在所谓的软件即服务(saas)部署中提供的应用程序)。在一些情况下,软件供应商将软件系统提供由企业在本地执行的现场应用程序(例如,在所谓的边缘部署中提供的应用程序)。在一些情况下,软件系统是在混合部署中提供的,混合部署包括边缘(现场)部署(例如,部署到由企业运行的数据中心的卫星部件)和云端部署(例如,由软件供应商提供为云服务的中央部件)两者。
3.如果特定部件需要接近企业(例如,在接近工厂中机器的企业设施中)以例如使通过网络发送的延迟和数据量最小化,通常会使用混合部署(即,边缘和云端)。然而,仍然有一些部件作为基于云端的服务被执行(例如,与跨不同现场部署的过程相关或与其他基于云端的过程集成的部件)。在混合部署的上下文中,一种示例性设置可以包括用于生产中的基于云端的(saas)产品的承租者、用于测试的相同基于云端的产品的承租者、部署到客户现场(例如,在数据中心、在工厂)上的几个实例的现场(边缘)部件(其用于生产中)的组合,并且,对于每种类型的现场部件,都在现场部署实例以用于测试。在这种示例性设置中,生产现场部件连接到用于生产的云端承租者,测试现场部件连接到用于测试的云端承租者。
4.不过,混合部署提出了大量的技术问题,尤其是在软件随时间演进的同时管理特征的生命周期的领域中。例如,在向软件添加特征时,可以选择性地切换(即,开/关切换)特征。示例性问题包括分布式切换过程,其中,用于边缘部署的特征的切换处理不是由软件供应商集中完成的,而是由企业(客户)按照其自己的安排完成。另一个示例性的技术问题反映在基于云端的部件中新特征较快可用而在边缘部件中此类特征较慢可用上。另一个示例性技术问题在于,一旦所有客户都切换了切换(即,激活了底层特征)则较快地移除特征切换(例如,以清除代码库)。另一个示例性技术问题在于客户希望以受控方式按照其自己的安排启用新特征,包括测试。


技术实现要素:

5.本公开的实施方式涉及一种特征管理系统,以针对部署于混合部署(即,基于云端的部件和现场(边缘)部件)中的软件产品提供对软件特征卷展和采用管理的一致控制。更具体而言,本公开的特征管理系统提供了一种特征管理座舱,其包括供应商视图(供应商座
舱)和客户视图(客户座舱)以管理混合部署中的软件特征的生命周期。
6.在一些实施方式中,动作包括:客户座舱接收切换通知,切换通知指示要激活混合软件部署的边缘部件的边缘特征,切换通知是在边缘部件执行过程期间接收的;客户座舱确定过程已经结束,并且作为响应,触发边缘控制器以将边缘特征切换到边缘部件之内的激活状态;供应商座舱接收边缘部件的边缘确认,该边缘确认确认边缘特征处于激活状态中,并且至少部分地响应于接收到边缘确认,供应商座舱触发承租者控制器以将承租者特征切换到混合软件部署的承租者部件之内的激活状态。该方面的其他实施方式包括被配置为执行这些方法的动作、在计算机存储设备上编码的相应的系统、装置及计算机程序。
7.这些和其他实施方式均可以任选地包括以下特征中的一个或多个:动作还包括:客户座舱接收承租者部件的承租者确认,确认承租者特征处于激活状态中,至少部分地响应于接收到承租者确认,至少部分地使用边缘特征使得边缘部件能够执行过程;动作还包括:在边缘特征处于激活状态中之后从边缘部件去除对应于边缘特征的特征切换,该特征切换包括被执行以将边缘特征转变为激活状态的计算机可执行代码;动作还包括:在承租者特征处于激活状态之后,从承租者部件去除对应于承租者特征的特征切换,该特征切换包括被执行以将承租者特征转变为激活状态的计算机可执行代码;在最后期限到期之前触发边缘控制器以将边缘特征切换到激活状态;动作还包括:在将边缘部件切换到激活状态之后确定已经发生问题,作为响应,将特征切换到不活动状态;并且动作还包括:供应商座舱发布表示对混合软件部署的更新的数据,该数据包括边缘部件的版本、边缘特征和边缘特征的特征最后期限,特征最后期限指示要激活边缘特征的最后期限,以及由包括该客户座舱的多个客户座舱中的每一个接收表示对混合软件部署的更新的数据。
8.本公开还提供了一种计算机可读存储介质,所述计算机可读存储介质耦合到一个或多个处理器并且其上存储有指令,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行根据本文提供的方法的实施方式的操作。
9.本公开还提供了一种用于实施本文提供的方法的系统。该系统包括一个或多个处理器以及计算机可读存储介质,所述计算机可读存储介质耦合到一个或多个处理器并且其上存储有指令,所述指令在由一个或多个处理器执行时,使得所述一个或多个处理器执行根据本文提供的方法的实施方式的操作。
10.要理解,根据本公开的方法可以包括本文描述的方面和特征的任意组合。亦即,根据本公开的方法不限于本文具体描述的方面和特征的组合,而是包括所提供方面和特征的任意组合。
11.在附图和以下描述中阐述了本公开的一个或多个实施方式的细节。本公开的其他特征和优点将在具体实施方式和附图以及权利要求中显而易见。
附图说明
12.图1描绘了能够用于执行本公开的实施方式的示例性架构。
13.图2描绘了根据本公开实施方式的特征管理系统的概念性概览图。
14.图3描绘了元数据的组织的概念性概览图。
15.图4描绘了根据本公开实施方式,表示切换的示例性时间线。
16.图5描绘了能够根据本公开的实施方式执行的示例性过程。
17.图6是能够用于执行本公开的实施方式的示例性计算机系统的示意图。
18.各附图中的类似参考符号表示类似的元件。
具体实施方式
19.本公开的实施方式涉及一种特征管理系统,以针对部署于混合部署(即,基于云端的部件和现场(边缘)部件)中的软件产品提供对软件特征卷展和采用管理的一致控制。更具体而言,本公开的特征管理系统提供了一种特征管理座舱,其包括供应商视图(供应商座舱)和客户视图(客户座舱)以管理混合部署中的软件特征的生命周期。实施方式可以包括如下动作:客户座舱接收切换通知,切换通知指示要激活混合软件部署的边缘部件的边缘特征,切换通知是在边缘部件执行过程期间接收的;客户座舱确定过程已经结束,并且作为响应,触发边缘控制器以将边缘特征切换到边缘部件之内的激活状态;供应商座舱接收边缘部件的边缘确认,该边缘确认确认边缘特征处于激活状态中,并且至少部分地响应于接收到边缘确认,供应商座舱触发承租者控制器以将承租者特征切换到混合软件部署的承租者部件之内的激活状态。
20.为了为本公开的实施方式提供更多上下文,并且如上文介绍的,可以由软件供应商提供软件系统以使得企业能够进行运营。软件系统可以包括各种应用程序,提供用于执行企业运营的功能。在一些实例中,软件供应商将软件系统提供为在云计算环境中执行的异地应用程序,可以被称为基于云端的应用程序(例如,在所谓的软件即服务(saas)部署中提供的应用程序)。在一些实例中,软件供应商将软件系统提供由企业在本地执行的现场应用程序(例如,在所谓的边缘部署中提供的应用程序)。在一些实例中,软件系统是在混合部署中提供的,混合部署包括边缘(现场)部署(例如,部署到由企业运行的数据中心的卫星部件)和云端部署(例如,由软件供应商提供为云服务的中央部件)两者。
21.如果特定部件需要接近企业(例如,在接近工厂中机器或在其内的企业设施中)以例如使通过网络发送的延迟和数据量最小化,通常会使用混合部署(即,边缘和云端)。然而,仍然有一些部件作为基于云端的服务被执行(例如,与跨不同现场部署的过程相关或与其他基于云端的过程集成的部件)。在混合部署的上下文中,一种示例性设置可以包括用于生产中的基于云端的(saas)产品的承租者、用于测试的相同基于云端的产品的承租者、部署到客户现场(例如,在数据中心、在工厂)上的几个实例的现场(边缘)部件(其用于生产中)的组合,并且,对于每种类型的现场部件,都在现场部署实例以用于测试。在这种示例性设置中,生产现场部件连接到用于生产的云端承租者,测试现场部件连接到用于测试的云端承租者。
22.通常,云端供应(例如,示例性设置中的生产承租者和测试承租者)由软件供应商管理。软件版本更新可以由软件供应商以较高频率(例如,每天一次)推送。这意味着,以软件供应商定义的时间表完成软件版本的改变。另一方面,现场部件通常由企业(客户)管理。例如,软件版本改变时间表由企业,通常以更低频率(例如,星期、月)定义。如果软件更新需要停产,或以其它方式导致功能下降,尤其会是这种情况。因此,在混合部署中,存在部件的组合,其以不同频率部分由企业管理,部分由软件供应商管理。
23.在理想的世界中,软件改变在不同版本之间是兼容的,部署不需要停产,并且部署不会失败。此外,在理想世界中,管理开销很低。不过,在现实中,软件改变可能伴随着停产。
在边缘部件中,尤其是这种情况,其由于距离远程位置(例如,工厂)的低延迟和高数据量连接而被部署于边缘。在这样的情况下,可能不会满足梦寐以求的“零停产”(例如,所需的具有高呼叫速率的快速响应增大了提供“零停产”版本改变的复杂性)。因此,部件版本的改变通常必须与该位置的更低使用的周期或延迟造成更低影响的周期相协调。此外,新软件版本引入的软件特征需要在打开(切换)(例如,激活)之前进行测试和额外的配置。因此,测试和配置需要与现场部件和云端承租者中的特征切换相协调。
24.因此,在混合部署的上下文中出现了多个技术问题。示例性问题包括分布式切换过程,其中,用于边缘部署的特征的切换处理不是由软件供应商集中完成的,而是由企业(客户)按照其自己的时间表完成。更详细而言,特征切换通常用于以受控和风险最小化方式,典型地由软件供应商来激活特征。在一些示例中,特征可以包括要由软件提供的功能性。在一些示例中,特征切换(本文中也称为切换)是能够被执行以激活(打开)特征或停用(关闭)特征的计算机可执行代码(例如,在部件中提供)。
25.切换过程具有使改变风险最小的明显优点,并减轻了不兼容或有缺陷的改变的级联效应(例如,爆炸半径)。在软件开发中,在涉及云端和边缘部件时,切换中会涉及到软件供应商和客户。例如,软件供应商定义特征的切换、需要切换被打开的时间帧(例如,必须激活特征的最后期限)和被要求使用切换后的特征的部件版本。不过,客户决定决定何时激活特征的单个定时(例如,可能相对于客户处的多个边缘实例,每个边缘示例单独地决定)。如果软件供应商识别正在卷展的软件有问题,软件供应商仍然将希望有关闭特征(如仅saas部件那样)的选项。对于分布式部署、时间表和责任而言这是有挑战的。典型地,软件供应商在其监测数据以及客户创建的关于所用产品的故障单中监测新的切换后的特征的问题。这对于分布式部署而言也是困难的。
26.另一个示例性的技术问题反映在基于云端的部件中新特征较快可用而在边缘部件中此类特征较慢可用上。例如,在基于云端的产品中,相对频繁地创建并推送特征,如上所述,每个特征的可用性受到切换的控制。在边缘部件上,新特征的对应实施方式仅在软件更新之后才可用,也如上所述,这通常是客户控制的过程。这可能导致边缘部件中新特征的可用性延迟。客户在升级边缘软件时有着定时约束,这可能进一步延迟消费。因此,在不同部件中,特征可用性之间存在变化的时间延迟,这需要得到管理,因为在边缘部件和云端部件之间的集成过程中存在依赖性,因此只能在云端和边缘都应用了对应的软件更新之后才能激活特征。应当有一种过程来支持版本间隙的闭合/管理以及防止客户激活特征,除非满足所有先决条件。根据特征,这可能要求在能够激活特征之前一些或全部边缘部件在具有云端部署的兼容软件版本上(例如,一般性地对于承租者而言,或者特别地对于已经满足要求的边缘部件的子集而言)。
27.另一个示例性技术问题在于,一旦所有客户都打开了切换(即,激活了底层特征)则较快地移除特征切换(例如,以清除代码库)。开发者创建特征切换以通过受控方式卷展新的开发。特征切换允许进行金丝雀测试,一旦出现问题可以快速关闭。不过,切换使得代码库变得凌乱。在某个时间点,开发者希望从代码去除切换并且通常激活相应特征。这对于客户而言应当是无中断的。因此,一旦所有客户都打开切换(例如,打开它们自身,或者针对所有剩余客户打开)了,才去除切换。这可以暗中进行,无需客户动作(例如,无需测试、改变配置等)。在云端部署中,承租者中的切换状态是供应商所知的,从而采用趋势是已知的,并
且能够规划开发。对于现场软件而言,切换状态大多未知,从而客户在边缘系统上采用特征可能对于供应商而言是不可见的。如果取消了切换,意味着现在并不始终执行开关的代码(即,特征被永久性激活),依赖于特征关闭的客户不再能得到服务。因此,特征的使用需要被供应商知道以防止它们打破客户的场景。
28.另一个示例性技术问题在于客户希望以受控方式按照其自己的时间表启用新特征,包括测试。如果切换涉及功能改变,客户当然希望在接受改变之前在其自己的基础设施之内测试改变。即使切换不影响功能性,可能仅影响性能,客户仍将希望在其自己的基础设施中看到新软件,尤其是如果软件控制关键性过程的情况下。采用新特征伴随着风险,客户可能希望降低风险。例如,并不是为所有边缘部件(例如,工厂中的机器)打开新特征,而是从一个(较不关键性的)开始,并且稍晚仅向由边缘软件控制的更加任务关键性部件移动(例如,减小改变的爆炸半径)。还可能有法律限制,限定需要适当测试改变并记录下来。即使在工厂中或者对于连续运行(例如,24/7)的机器和过程,也可能有较低使用或次数的时间段,那时更容易对改变或问题作出反应(例如,夜间的低使用,白天改变专家在办公室)。因此,客户将希望按照其自己的时间表来规划版本切换(尤其是如果涉及到停产)。
29.见于以上上下文,本公开的实施方式提供了一种特征管理系统,以针对部署于混合部署(即,基于云端的(saas)部件和现场(边缘)部件)中的软件产品提供对软件特征卷展和采用管理的一致控制。本公开的特征管理系统提供了一种特征管理座舱,其包括供应商视图(供应商座舱)和客户视图(客户座舱)。特征管理座舱使得能够定义特征属性以及它们对软件版本的依赖性,并且以协调的方式提供了用于卷展、部署、采用、监测和错误处理的过程。利用这种过程,“saas操作团队”和“客户管理员”之间的协作更加紧密,在具有其全部相互依赖性的混合部署之间跨越生命周期的过程得到简化。
30.如本文所述,本公开的特征管理系统体现了超越云端的生命周期管理概念,以解决超过理论理想方案之外的现实世界状况,理论理想方案假设了不现实的边界条件(例如,始终兼容的接口演进、客户立即部署新软件版本)。通过结合实际的软件开发和客户采用行为,本公开的特征管理系统能够在软件供应商侧和客户侧都对所需过程进行主动管理和自动化,以避免复杂的人工生命周期管理并降低过程运行时间和混合软件部署的总体运营成本(tco)。
31.图1描绘了根据本公开实施方式的示例性架构100。在图示的示例中,示例性架构100包括客户端设备102、网络106和服务器系统104。服务器系统104包括一个或多个服务器设备和数据库108(例如,处理器、存储器)。在图示的示例中,用户112与客户端设备102交互。在一些示例中,服务器系统104代表混合部署场景的供应商侧,其中,软件系统的一个或多个部件被提供为服务器系统104中托管的基于云端的部件。
32.图1的示例性架构还包括第一客户系统120和第二客户系统122。第一客户系统120包括客户端设备124、网络126和服务器系统128。服务器系统128包括一个或多个服务器设备和数据库(例如,处理器、存储器)。在图示的示例中,用户130与客户端设备124交互。第二客户系统120包括客户端设备132、网络134和服务器系统136。服务器系统136包括一个或多个服务器设备和数据库(例如,处理器、存储器)。在图示的示例中,用户138与客户端设备124交互。在一些示例中,服务器系统128、136代表混合部署场景的相应客户侧,其中,软件系统的一个或多个部件被提供为服务器系统128、136中托管的现场(边缘)部件。尽管图1中
描绘了服务器系统128、136,但构思了可以在任何适当的客户侧计算环境(例如,计算机、工厂中的机器)中实施现场部件。
33.在一些示例中,客户端设备102、124、132能够通过网络106与服务器系统104通信。在一些示例中,客户端设备124、132能够分别通过网络126、134与服务器系统128、136通信。在一些示例中,客户端设备102、124、132包括任何适当类型的计算设备,诸如桌上型计算机、膝上型计算机、手持式计算机、平板计算机、个人数字助理(pda)、蜂窝电话、网络设备、相机、智能电话、增强型通用分组无线电服务(egprs)移动电话、媒体播放器、导航设备、电子邮件设备、游戏机或这些设备或其他数据处理设备的任何两个或更多个的任何适当组合。在一些实施方式中,网络106、126、134可以包括连接任意数量的通信设备、移动计算设备、固定计算设备和服务器系统的大型计算机网络,诸如局域网(lan)、广域网(wan)、因特网、蜂窝网络、电话网(例如,pstn)或它们的适当组合。
34.根据本公开的实施方式,并且如上所述,服务器系统104能够托管特征管理系统。例如,该特征管理系统提供了一种特征管理座舱,其包括供应商视图(供应商座舱)和客户视图(客户座舱)。例如,用户112(例如,软件供应商的雇员/代理)能够使用计算设备102访问供应商座舱,用户130(例如,客户的雇员/代理)能够使用计算设备124访问客户座舱,用户138(例如,客户的雇员/代理)能够使用计算设备132访问客户座舱。
35.如上所述,本公开的特征管理系统提供了一种特征管理座舱,其支持特征卷展,并且向云端和现场中部署的软件(混合部署)提供了特征切换的益处。如本文更详细所述,该特征管理系统包括依赖性管理部件、特征问题分析部件、软件更新调度和监测部件以及切换激活部件。在一些示例中,依赖性管理部件使得能够定义特征切换、边缘部件和云端部件的软件版本、特征切换激活类型和特征切换最后期限之间的依赖性。依赖性管理部件还能够监测客户云端承租者和客户边缘承租者中的软件更新和切换状态。在一些示例中,特征问题分析部件提供了对客户票务数据的分析以及对客户承租者和软件实例的监测提醒(如果取决于软件版本和特征)。这使得软件供应商能够识别出新创建特征的问题并且最终撤回已经发布的特征(如果需要)。在一些示例中,软件更新调度和监测部件使得客户能够根据切换激活的类型和切换最后期限来规划和监测边缘实例的更新和切换激活。切换激活的示例性类型可以包括但不限于边缘实例(例如,针对每个边缘实例逐个切换开关)和承租者全局(例如,针对所有连接的边缘实例切换开关)。过程和状态信息也是软件供应商能够访问的。在一些示例中,切换激活部件使得如果切换激活类型需要,就能够在承租者和边缘实例之间一致地开关切换状态。
36.图2描绘了根据本公开实施方式的特征管理系统200的概念性概览图。在图2的示例中,特征管理系统200包括支持端口202、供应商座舱204和客户座舱206。在图2的示例中,提供了承租者控制器208以控制(例如,特征切换)承租者云端软件210,并且提供了边缘控制器212以控制(例如,特征切换)边缘部件214。承租者云端软件210代表为云端之内的特定承租者(客户)提供的云端部件。边缘部件214代表在客户位置处现场提供的边缘软件的实例。
37.在一些示例中,供应商座舱204使得能够访问元数据220、客户数据和统计数据222以及错误统计数据224并与其交互。元数据220包括,例如,包括所有部件版本(cv)的部件信息、针对每个cv的特征(f)、针对每个cv的弃用特征(fd)、每个f的最后期限(例如,切换打开
的最后期限),以及指示f的状态的每个f的标志(例如,暂停、激活)。客户数据和统计数据222例如针对承租者集合中的每个承租者(客户)包括部署到承租者的cv、承租者中切换的f以及采用每个cv和每个f的每个承租者的边缘的百分比(包括其为“测试”还是“生产”设置的信息)。错误统计数据224包括例如针对所有客户的指向与f相关的事故的链接。
38.在一些示例中,客户座舱206是特定于客户的,并且使得能够访问元数据230、客户数据和统计数据232以及错误统计数据234并与其交互。元数据230例如包括部件信息,包括与客户相关的cv、针对每个cv的f以及每个f的最后期限(例如,切换打开的最后期限)。客户数据和统计数据232例如包括,对于承租者集合中的承租者(客户),部署的cv、切换的f、用于将版本《n》部署到边缘实例的时间表,以及边缘实例、cv和切换的f的列表。错误统计数据234例如包括与包括指向支持票据的链接的f相关的事故的列表。
39.在一些示例中,承租者控制器208访问元数据240并与之交互。元数据240例如包括承租者云端软件210中实际使用的cv(即,当前活动的cv)、可用的f以及每个f的切换状态。在一些示例中,边缘控制器210访问元数据240并与之交互。元数据250例如包括边缘部件214中实际使用的cv(即,当前活动的cv)、可用的f和每个f的切换状态。
40.图3描绘了元数据300的组织的概念性概览图。元数据300包括表示软件部件302、针对每个软件部件302的一个或多个cv 304以及针对每个cv的一个或多个f 306的数据。元数据300包括表示cv 304被部署到的一个或多个云端堆栈308以及cv 304被部署到的一个或多个边缘堆栈310的数据。在一些示例中,每个cv 304与部署时间表312相关联,部署时间表312定义相应cv 304部署到云端堆栈308和边缘堆栈310之一的定时。在一些示例中,该数据包括表示最后期限314的数据,到最后期限要移除相应的特征开关(切换)315(例如,要停用特征的最后期限)。
41.再次参考图2,并且根据本公开的实施方式,支持端口202使得支持人员能够访问表示混合软件部署的信息。例如,支持人员能够使用支持端口202分析与不同cv相关的故障票据。例如,如果存在与已经切换的特征相关的错误,可以确定是否存在也已经被切换的cv的其他实例的更多错误。
42.在一些实施方式中,供应商座舱204仅可以由供应商访问,并且使得供应商能够定义元数据并控制用于特征管理的过程。在一些实施方式中,客户座舱206是针对一个客户的专用实例,客户通过其能够承租者和边缘实例情景。在一些示例中,供应商座舱204与多个客户座舱206的每个通信,客户座舱206是使用软件为每个客户提供的。供应商座舱204和每个客户座舱206之间的通信可以是双向通信。例如,供应商座舱204能够向客户座舱206推送信息,并且客户座舱206能够向供应商座舱204推送信息。在一些示例中,可以使用事件总线在供应商座舱204和客户座舱206之间沟通信息。在一些示例中,供应商座舱204能够周期性地从客户座舱206拉取信息。
43.在一些实施方式中,特征管理系统示出了特征以及切换打开特征需要哪些软件版本。特征管理系统还示出了涉及的云端和边缘的部件实例以及其软件版本和特征切换状态。在一些示例中,特征管理系统使得能够打开和关闭(切换)特征(关闭通常是在紧急情况下,如果在打开时有问题)。在一些示例中,切换可以嵌入自动化过程中。该特征管理系统还具有规划新版本部署、特征采用和相关改变过程和调度、何时部署更新以及何时针对特定实例切换特征的功能。特征管理系统支持针对不同特征类型的特定过程,因此正确采用特
定类型的特征。
44.更详细地,供应商座舱204可以由软件供应商用于发布部件版本、特征和特征最后期限,并且向客户座舱206中的每一个通信传递该信息。供应商座舱204提供软件版本的统计数据和客户采用特征的概览。一旦采用了软件版本并且过了最后期限,就从发布列表移除版本和切换。在一些示例中,供应商座舱204能够从客户座舱206接收关于软件版本和特征采用统计数据的信息,并且访问关于所有客户间的软件版本和切换采用的信息,包括例如相对于最后期限的比较。在一些示例中,供应商座舱204访问关于客户的切换时间表的信息,并且在特征切换被撤回的情况下通知客户。
45.在一些实施方式中,客户座舱206提供特征以显示哪些部件版本和相关特征是可用的,需要如何执行特征切换,以及采用特征的最后期限是什么。在一些示例中,客户座舱206能够从供应商座舱204接收例如关于推迟的最后期限的信息,并且更新用于采用时间表的信息。在一些示例中,客户座舱206提供景观概览,表示哪些边缘实例使用软件部件以及部署哪个版本。在一些示例中,客户座舱206提供特征概览,表示哪些边缘实例切换打开了哪些特征。在一些示例中,客户座舱206提供具有关于例如与最后期限相比的特征采用进度、部署时间表的信息的概览。在一些示例中,客户座舱206能够向供应商推送关于软件版本和特征采用的聚合统计信息。在一些示例中,客户座舱206使得能够调度边缘实例上的软件更新。在一些示例中,可以提供用于部署的边缘实例个体时间表。在一些示例中,客户座舱206使得能够切换开/关特征,切换过程取决于特征类型。
46.更详细地,供应商座舱204使得能够对混合部署中使用的特征和部件版本进行依赖性管理。这一构建块应对的是依赖性定义、定义和卷展信息的过程以及关于从客户收集关于所用版本的信息。在一些示例中,供应商座舱204能够用于定义部件版本和软件中特征之间的依赖性,其可以被开关。例如,对于云端而言——特征切换可用性,对于边缘而言,软件版本-特征切换可用性。在一些示例中,定义需要采用特征的最后期限,因为特征关闭状态将被弃用,更晚的软件版本将不再包含特征切换。即,在最后期限之后,该特征默认是打开的。
47.作为非限制性示例,特征《f-1》是新的,并且一旦在边缘部署了版本《n1》就是可以切换的,一旦向云端部署了版本《n2》,特征《f-1》就不再可切换。使用供应商座舱204,可以针对边缘软件版本《n1》指定以下示例性信息:
48.开发了新特征——与针对特征《f-1》的特征切换《ft-1》相关。
49.开关可以被[a]按边缘单独设置,或是[b]针对承租者全局设置。
[0050]
特征消费最后期限《d_1》。
[0051]
使用供应商座舱204,可以针对稍晚边缘软件版本《n2》指定以下示例性信息:
[0052]
消除开关《ft-1》,并将特征《f-1》永久切换到“开”。
[0053]
在对应云端版本《n1》/《n2》已经部署到客户使用的云端承租者时,供应商座舱204在相关市场或用于下载和部署的下载区域发布边缘软件版本《n1》/《n2》。在一些示例中,供应商座舱204向客户通告新软件版本和特征。例如,供应商座舱204向客户座舱206发送消息,使得客户(例如,管理员)能够在客户座舱206中看到关于特征、用于部署的软件版本和定义的最后期限的信息。
[0054]
在一些示例中,为了继续进行特征开发,供应商会希望具有规则,其中,一旦所有
客户部署了《n1》并且打开《ft-1》(即,激活了特征《f-1》),供应商仅应用版本《n2》。如果一些客户在要部署和消费《n2》的时间尚未切换《ft-1》,供应商能够决定推迟将《n2》部署到云端,或者基于《ft-1》被关闭而接受中断客户过程。为了避免这种状况,在最后期限和《n2》的部署之间规划足够长时间。有鉴于此,供应商座舱204提供监测信息。示例性监测信息可以包括但不限于客户在其边缘实例上使用的版本(例如,多少客户在版本《n1》上,多少在更旧版本上),关于特征切换状态的信息(例如,多少客户,谁已经部署了版本《n1》,已经打开了特征《f-1》,多少实例仍然在没有该特征的情况下运行)。
[0055]
根据本公开的实施方式,该特征管理系统提供了特征使用和问题分析。例如,为了确定被卷展特征是否真正工作或是否应当停止卷展,需要多个域的信息。例如,采用如何运行,多少人使用新特征(已经切换打开),特征如何运行,以及是否观察或报告了问题?在问题侧,分析警报和故障票据,以识别切换打开的特征是否导致警报率增大以及更高的故障票据容积,以及是否有与切换后的特征相关的警报和票据。
[0056]
有鉴于此,供应商座舱204能够访问供应商故障票据系统和/或客户事故管理部件、问题、票据和服务请求。在一些示例中,供应商座舱204能够用于向故障票据系统查询与部件版本和特征相关的票据。在一些示例中,供应商座舱204能够生成每天或每周的每个cv和特征的票据统计,以能够分析趋势,随时间推移票据数量增大还是减小。在一些示例中,供应商座舱204访问供应商警报系统(或者类似地,事件总线系统),从saas承租者和连接到saas承租者的实例接收事件和警报。在一些示例中,供应商座舱204能够用于向警报系统或事件总线数据湖查询与部件版本和特征相关的类型(例如,错误)的警报和事件。在一些示例中,供应商座舱204能够生成每天或每周的每个部件版本和特征的警报和错误统计,以能够分析趋势,随时间推移警报和错误数量增大还是减小。
[0057]
因此,通过供应商座舱204,供应商能够分析与新特征相关的警报、错误和票据。如果趋势表明新特征导致问题数量增大,供应商能够决定推迟采用特征,撤回特征,并利用稍晚的新版本替换它。通过监测客户升级时间表,供应商能够看到客户是否已经规划了即将进行的特征激活,在问题数量剧烈增大的情况下,供应商能够通知客户推迟其采用。
[0058]
因此,供应商座舱204具有用户界面(ui),以修改特征和工作流的最后期限以撤回特征。在一些示例中,供应商座舱204具有ui以利用将要作为撤回特征的校正版本的新特征切换为新创建的软件部件版本添加信息。在一些示例中,供应商座舱204提供基础设施以通知客户。在一些示例中,从软件部件版本中的可用特征列表移除要撤回的特征。
[0059]
而且,在客户座舱206中,不再能够打开用于被撤回特征的相应切换(或者客户能够在警告并确认知道风险之后覆写该锁定)。在一些示例中,在特征已经切换打开的情况下,可以让客户关闭特征(或者,如果客户未遇到问题,客户可以忽略这条建议,继续使用该特征)。在一些示例中,供应商座舱204提供了ui以利用将要作为撤回特征的校正版本的新特征切换为新创建的软件部件版本添加信息。例如,供应商创建具有校正特征的新版本软件,并且发布新特征版本,在部署新软件版本时允许切换打开。该信息被推送到客户座舱206,因此客户能够根据需要调整其消费计划。
[0060]
根据本公开的实施方式,该特征管理系统提供了升级调度和监测,以使得客户能够更容易地规划新通告特征的采用。在一些示例中,在客户座舱206中,可以创建用于边缘部件的升级时间表,并且可以监测特征的采用。在一些示例中,客户座舱206聚合统计数据
并将其推送到供应商座舱204,使得供应商能够监测采用情况。参考以上示例,使用客户座舱206,客户能够看到通告的软件版本《n1》、相关特征《f-1》及其采用最后期限《d_1》。客户的任务是在指定最后期限之前调度(多个)边缘部署。在一些示例中,客户能够针对每个边缘部件逐个调度更新(和切换),但所有边缘部件必须要在最后期限之前被切换。对于一些特征而言,特征与该版本的部署一起被隐式地激活。仅在特征类型为[a]按边缘的逐个开关切换是可能时,这才是可能的。否则,在特征与云端中的切换一起在所有边缘上被一致地切换之前对所有边缘的部署必须发生(类型[b])。
[0061]
在客户座舱206中提供所有边缘部件之间部署和切换进度的监测。对于客户而言,这意图支持其调度并为客户提供关于其在最后期限之前的进度的信息。在一些示例中,客户座舱206向供应商座舱204发送监测信息,该信息注释有客户id(即,唯一地标识多个客户中的该客户的唯一标识符)。供应商能够在所有客户间使用这一信息来例如确保在所有客户已经打开特征《f-1》之前不向云端部署版本《n2》。
[0062]
如上所述,客户将希望以风险和影响最小化的方式规划边缘部件的软件升级。由于每个改变都伴随着错误状况的风险,客户将希望测试改变,识别边缘实例以便以最低风险开始卷展(例如,使改变的爆炸半径最小化)。此外,不同的边缘实例通常将具有单个时间段,在其中改变最为适合。于是,新软件版本的部署是在一定时间段内展开的过程。根据特征的类型([a]或[b]),一旦部署了所需软件版本,实际的特征切换潜在地可能随时间扩散(对于[a])或者在所有边缘实例上协调。
[0063]
在一些实施方式中,该特征管理系统提供了一致切换。例如,在部署具有新特征的新软件版本时,可能重要的是控制边缘实例和承租者间的切换打开。有鉴于此,客户座舱206使得能够管理特征切换,其中,仅在符合指定的切换预设条件时才能切换特征。例如,对于类型[a],要切换的边缘部件至少在特征《f-1》的版本《n1》上,对于类型[b],所有边缘部件至少在特征《f-1》的版本《n1》上。如果特征是在部署到边缘时隐式地激活的,一旦成功完成了向边缘的部署(更精确地讲,一旦边缘软件版本切换到新版本),则由部署工具自动设置针对该边缘实例的云端承租者中的特征切换。
[0064]
在一些示例中,客户座舱206提供切换特征的过程。例如,对于类型[a],客户选择要切换的边缘实例,并触发打开过程,对于类型[b],选择所有边缘实例,并触发打开过程。在一些示例中,客户座舱206通知选定的(多个)边缘实例即将进行的特征《f-1》的切换改变。(多个)边缘实例完成当前运行的过程,打开切换,发送切换开关确认,并在开始新过程之前等待,一直到接收到打开的确认。一旦接收到(所有)确认,云端部件(承租者)上的切换被打开(对于特定边缘实例(特征类型[a])或对于整个承租者(特征类型[b]))。将切换开关的确认发送到所有边缘实例,并且(多个)边缘实例利用新特征设置继续该过程。
[0065]
在一些示例中,提供了一种宽限期。例如,如果供应商座舱未从所有边缘实例接收到切换开关的确认,可以向(多个)边缘实例发送切换开关的回退。在这种情况下,边缘实例将切换转换为关闭,并利用切换关闭继续处理。
[0066]
图4描绘了根据本公开的实施方式的表示切换的示例性时间线400。在图4的示例中,描绘了切换关闭周期402和切换打开周期404。在切换关闭周期中,多个过程正在由相应边缘部件执行。当过程404正在执行时,接收切换打开通知(1)。即,通知每个边缘实例要切换打开特征。在每个过程404完成时,在相应边缘实例处打开特征(2),并且每个边缘实例发
送确认(3)。响应于从边缘实例接收的确认,针对对应的云端部件(承租者)切换打开该特征(4),并且发送确认(5)。之后,由边缘实例在打开周期404中执行过程404’。
[0067]
为了进一步例示本公开的实施方式,本文更详细地描述了示例性总体过程。在本示例中,供应商发布软件产品《s》的新版本《n》,包括新特征《f》,新特征能够通过特征切换《ft》切换。该软件版本包括用于边缘部署《s_e》和云端部署《s_c》的部件。为部署提供了相应的《ft_e》和《ft_c》切换,以能够对改变进行精细粒度的控制。供应商向云端实例《s_c》推送部署该软件版本《n》。供应商在供应商座舱204中分别进入新创建的软件版本《n》,以及相关软件包《s_e》,和用于特征《f_e》和《f_c》的切换《ft_e》和《ft_c》。供应商使用供应商座舱204发布软件版本《n》,供客户在云端消费以及在边缘部署。供应商座舱204向客户座舱206推送关于切换《ft_e》和《ft_c》、要部署的边缘软件《s_e》的版本以及关于针对该特征定义的部署最后期限《d_n》的信息。在本示例中,供应商计划移除具有软件版本《n+x》的切换《ft_e》和《ft_c》,该软件版本被调度在《d_n》之后部署。一旦新版本《n+x》可用,供应商就在供应商座舱204中更新该信息,并且从可能切换的特征列表中移除该特征。
[0068]
(多个客户中的)客户通过客户座舱206接收新特征和软件版本的通知。使用客户座舱206,客户能够确定哪些实例和承租者受到了改变的影响。利用这种信息,客户能够确定由受影响边缘实例控制的相关(多个)过程,并且能够例如从部署到测试基础设施开始开发采用特征的计划。
[0069]
在测试阶段中,运行《s_c》的云端测试承租者已经在版本《n》上,并且运行《s_e》的边缘测试实例被更新到《n》。在云端测试承租者中切换打开特征《f_c》,并且通过客户座舱206切换打开边缘测试实例《f_e》。测试新特征。例如,可以使用该特征来处理测试数据,并且能够生成结果。评估对边缘实例控制的(多个)过程的影响。示例性影响可以是与部署和切换打开特征《f_e》相关的停产方面,和/或是功能性(例如,改变的api,改变的配置值)和非功能性(例如,性能)改变方面。作为影响评估的结果,可以将部署规划到生产场景。
[0070]
客户在客户座舱206中针对生产实例定义部署和特征切换时间表。在一些示例中,对于类型[a](按边缘逐个的)的特征切换,选择边缘实例进行初始部署(例如,试用,第一波),其可能在应用改变方面具有最低风险。根据边缘场景的大小,可以分几波规划卷展,每波包括一组边缘实例以使风险最小化,并使得能够为下一波结合从先前部署获得的教训。创建用于在不同边缘实例中采用特征的时间表。可以在过程中对部署和后续特征切换进行自动化,该过程可以在边缘实例已经更新到版本《n》时立即针对各个边缘实例启动。在一些示例中,客户可以在边缘部件已经更新之后任何时间但在最后期限《d_n》之前针对各个边缘部件切换特征。
[0071]
在一些示例中,对于类型[b](针对承租者全局地)的特征,可以如上文针对类型[a]所述那样,根据风险和最佳部署窗口,分波完成部署。在已经将所有边缘部件更新到版本《n》之后,特征的切换要针对所涉及的边缘实例的具有全局最低风险的合适时间点来调度。在承租者和边缘中使用客户座舱206切换打开特征。在一些示例中,特征《f》的分阶段卷展包括调度时间的第一波,在此期间,将作为第一波部分的边缘实例更新到《s_e》版本《n》(对于类型[a],切换被打开《ft_e》)。评估部署的执行和对所连接的(多个)过程的影响,并且可以根据需要调整调度。如果有问题,则阻止继续卷展,停止卷展并通知供应商。否则,在调度时间执行第二波,在此期间,将作为第二波部分的边缘实例更新到《s_e》版本《n》(对于
类型[a],切换打开《ft_e》)。再次进行评估。这个过程可以继续直到部署了最后一波(例如,第二波可以是最后一波)。
[0072]
对于类型[b]的特征,使用客户座舱206打开切换,其向供应商座舱推送信息:客户已经完全采用了版本《n》和特征《f》。供应商可以在采用期间通过供应商座舱204和客户座舱206与客户交互。例如,可以通知供应商采用出现的问题。在一些示例中,通知来自客户,指示更新/切换特征《f》导致问题(例如,通过在供应商故障票据系统中创建故障票据)。供应商座舱204周期性地分析故障票据和客户警报。在一些示例中,供应商分析问题并针对任何(多个)问题开发方案。
[0073]
在一些示例中,如果方案可以由客户实施,客户调节自动化脚本,运行测试并规划下一波部署。典型地,供应商支持人员通过客户创建的事故票据提供信息。在一些示例中,如果解决方案在供应商一侧,则将最后期限《d_n》扩展或耦合到新最后期限《d_n_i》。利用版本《n+i》创建特征《f_new》的新版本,并且为新的特征切换《ft_i》提供新最后期限《d_n_i》,该过程从一开始就启动。这一过程是通过供应商座舱204,至少部分地通过供应商座舱204向客户座舱206推送信息以使得客户能够调整时间表来控制的。采用了特征《f》而未发生问题的客户能够继续使用特征《f》。未采用特征《f》的客户能够推迟采用,并且通过针对《ft_i》的新计划替换其计划,最后期限现在为《d_n_i》。
[0074]
如上所述,供应商通过供应商座舱204监测客户对所提供特征的采用情况。如果客户不运行采用并且最后期限越来越近,供应商通知客户即将到来的最后期限以及特征切换弃用。如果一些客户不能应用所请求的版本,并且这个版本是部署进一步云端版本的前提条件(例如,因为自从特定版本之后就去除了特征开关),则可以暂停云端方案升级,直到所有客户都在所需版本上并且已经激活了特征。
[0075]
图5描绘了能够根据本公开的实施方式执行的示例性过程500。在一些示例中,利用由一个或多个计算设备执行的一个或多个计算机可执行程序来提供示例性过程500。
[0076]
接收更新数据(502)。例如,如本文所述,使用供应商座舱发布表示对混合软件部署的更新的数据。在一些示例中,该数据包括边缘部件的部件版本、一个或多个边缘特征以及边缘特征中的每一个的特征最后期限,该特征最后期限指示要激活每个边缘特征的最后期限。多个客户座舱中的每一个接收表示对混合软件部署的更新的数据。调度针对一个或多个边缘部件的特征激活(504)。例如,如本文所述,每个客户能够在(多个)最后期限的视图中确定用于激活边缘部件(边缘部件实例)的边缘特征的适当时间。
[0077]
将计数器i设置为等于1(506)。确定边缘部件i(eci)上是否在执行过程(508)。如果eci上未执行过程,在eci中将一个或多个特征切换到激活状态(510)。如果eci上在执行过程,则等待过程结束(512),然后在eci中将一个或多个特征切换到激活状态(510)。例如,如本文所述,触发每个特征的特征切换以将相应边缘特征从不活动状态转变到激活状态。确定i是否等于m(514)。即,确定是否已经对相应客户的所有边缘部件寻址。如果i不等于m,则i递增(516),该示例性过程500循环返回。如果i等于m,则将一个或多个承租者特征切换到激活状态(518)。例如,如本文所述,触发每个承租者特征的特征切换以将相应承租者特征从不活动状态转变到激活状态。启用边缘部件以执行一个或多个过程(520)。
[0078]
现在参考图6,提供了示例性计算系统600的示意图。系统600可以用于结合本文描述的实施方式描述的操作。例如,系统600可以包括在本文论述的服务器部件的任一个或全
部中。系统600包括处理器610、存储器620、存储设备630和输入/输出设备640。部件610、620、630、640使用系统总线650互连。过程610能够处理在系统600内执行的指令。在一些实施方式中,处理器610为单线程处理器。在一些实施方式中,处理器610为多线程处理器。处理器610能够处理存储在存储器620内或存储设备630上的指令,以在输入/输出设备640上为用户界面显示图形信息。
[0079]
存储器620存储系统600之内的信息。在一些实施方式中,存储器620为计算机可读介质。在一些实施方式中,存储器620为易失性存储器单元。在一些实施方式中,存储器620为非易失性存储器单元。存储设备630能够为系统600提供海量存储。在一些实施方式中,存储设备630为计算机可读介质。在一些实施方式中,存储设备630可以是软盘设备、硬盘设备、光盘设备或磁带设备。输入/输出设备640提供系统600的输入/输出操作。在一些实施方式当中,输入/输出设备640包括键盘和/或定点设备。在一些实施方式中,输入/输出设备640包括用于显示图形用户界面的显示器单元。
[0080]
上述特征可以实施于数字电子电路中或计算机硬件、固件、软件或它们的组合中。该装置可以实施于有形地包含于信息载体(例如,机器可读存储设备中,用于供可编程处理器执行)中的计算机程序产品中,并且方法步骤可以由执行指令程序的可编程处理器执行以通过对输入数据进行操作并生成输出来执行上述实施方式的功能。所描述的特征可有利地在能够在可编程系统上执行的一个或多个计算机程序中实施,该可编程系统包括被耦接以从数据存储系统接收数据和指令并且将数据和指令发送到数据存储系统的至少一个可编程处理器、至少一个输入设备以及至少一个输出设备。计算机程序是在计算机中可以直接或间接使用以执行某种活动或者产生某种结果的指令集。计算机程序可以包括编译和解释语言在内的任何形式的编程语言来编写,并且其可以任何形式部署,包括作为独立程序或者作为模块、组件、子例程、或适于在计算环境中使用的其它单元。
[0081]
例如,用于执行指令的程序的合适处理器包括通用微处理器和专用微处理器两者、以及单独处理器或任何类型的计算机的多个处理器中的一个。一般来讲,处理器将从只读存储器或随机存取存储器或这两者接收指令和数据。计算机的元件可以包括用于执行指令的处理器和用于存储指令和数据的一个或多个存储器。通常,计算机还可以包括一个或多个用于存储数据文件的海量存储设备或被操作性耦合以与一个或多个用于存储数据文件的海量存储设备通信;这样的设备包括磁盘,诸如内部硬盘和可移动磁盘;磁光盘;和光盘。适于有形地实现计算机程序指令和数据的存储设备包括所有形式的非易失性存储器,例如包括半导体存储器设备,诸如eprom、eeprom、和闪存存储器设备;诸如内部硬盘和可移动磁盘的磁盘;磁光盘;和cd-rom和dvd-rom盘。处理器和存储器可由asic(专用集成电路)补充,或者被并入asic中。
[0082]
为了提供与用户的交互,这些特征可以在具有用于向用户显示信息的显示设备(诸如crt(阴极射线管))以及用户可用来向计算机提供输入的键盘和指向设备(诸如鼠标或轨迹球)的计算机上实施。
[0083]
这些特征可在计算机系统中实施,该计算机系统包括后端部件(诸如数据服务器),或者该计算机系统包括中间件部件(诸如应用服务器或互联网服务器),或者该计算机系统包括前端部件(诸如具有图形用户界面或互联网浏览器的客户端计算机)或者它们的任意组合。系统的部件可通过任何形式或介质的数字数据通信(诸如通信网络)来连接。通
信网络的示例包括例如lan、wan、和形成互联网的计算机和网络。
[0084]
计算机系统可包括客户端和服务器。客户端和服务器一般是相互远离的,并且通常通过网络进行交互,例如所描述的那种。客户端和服务器的关系借助于在相应计算机上运行并且彼此具有客户端-服务器关系的计算机程序而产生。
[0085]
此外,附图中描绘的逻辑流不需要所示出的具体顺序或者顺次的顺序才能实现预期结果。此外,可以提供其他步骤,或者可以从所描述的流程消除步骤,并且可以向所描述的系统添加或从其消除其他部件。因此,其他实施方式在以下权利要求书的范围内。
[0086]
已经描述了本公开的若干实施方式。然而,应当理解,可以做出各种修改而不脱离本公开的实质和范围。因此,其他实施方式在以下权利要求书的范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1