基于软件容器提供云端服务的系统及方法与流程

文档序号:19942993发布日期:2020-02-14 23:26阅读:181来源:国知局
基于软件容器提供云端服务的系统及方法与流程

本申请主要涉及云端服务技术,特别涉及一种基于软件容器(softwarecontainer)提供云端服务的系统及方法。



背景技术:

近年来,随着网络逐渐普及化,网络存取技术乃至云端服务得以迅速发展。通过遍及的网络,可整合分散的远端运算装置以提供各式资源及服务。例如:使用者可通过桌上型计算机、笔记型计算机、平版计算机、智能型手机、或任何具备网络通信功能的运算装置去读取储存在远端伺服器的电子邮件,或将运算需求转送至远端伺服器执行。此外,通过网络连结,远端伺服器更可扮演云端伺服器的角色,以供数据备份及云端存取的功能、或提供云端服务的功能,而实现云端服务的关键则是虚拟化技术,如:虚拟机器(virtualmachine,vm)技术、以及软件容器(softwarecontainer)技术。

以虚拟机器技术为例,云端服务的应用程序是由底层主机(host)(如:云端伺服器)上的虚拟机器所提供,这些应用程序,是在开发人员(developmentteam)发布完成后,转交给维运人员(operationteam)并在虚拟机器上运行。

上述环境建置的流程繁复且常需因应各种需求而进行更新,举例来说,环境建置的流程包括:底层主机的建置、虚拟机器的建置、数据库的设定、以及网络设备的设定等,而更新的需求包括:对新增的虚拟化主机进行管控、对虚拟机器的作业系统进行差异化建置、以及不同版本的数据库的语法不同、以及网络设备的软/固件更新后的设定方式不同等。

一般来说,开发人员以及维运人员是独立分工的角色,然而,为了加速上述环境建置的流程以及更新的需求,开发维运合一(devops)的概念于焉而生,其目的在于有效率地整合开发人员以及维运人员,让这两个角色各自的工作流程可以更流畅地连结在一起,从而提升云端伺服器交付/维护云端服务的效率。

相较于虚拟机器技术,以微服务为诉求的软件容器技术提供了更轻量化的云端服务,软件容器除了比虚拟机器的执行效率更高且更省存储器空间之外,通过软件容器可实现建置环境的一致化,更易于云端服务的上线以及后续更新,因此,更为符合开发维运合一的需求。

然而,在开发维运合一的架构上提供云端服务时,常会因为快速的更新需求而面临到许多问题。例如:维运人员对底层主机的软硬件进行更新,而已上线的服务若是不支援新版的软硬件,将导致服务异常,可能损害服务层级协议(servicelevelagreement,sla)与商誉;或者,欲上线的新云端服务需要更新底层主机的软硬件,而更新底层主机的软硬件以及建置测试环境将导致提供云端服务的时程延宕;或者,当底层主机的其中一个软硬件版本更新时,整个管控系统需一并更新,频繁的更新将造成维运人员负担;或者,开发人员必须针对底层主机的每个软硬件的版本进行核心(kernel)开发,即使版本更新后设定的方法无异动或仅需少许异动,都将增加开发人员在版本控管的负担。



技术实现要素:

为了解决上述问题,本申请提出一种云端服务系统以及基于软件容器提供云端服务的方法。

本申请所述的云端服务系统包括硬件资源、储存装置、以及控制器。上述硬件资源安装有系统,且使软件容器被实体化(instantiated)以运行云端服务。上述储存装置系用以储存包括多个函式的函式库,其中上述函式的每一个对应至上述系统的个别版本。上述控制器系用以根据建置需求决定对应到上述系统的第一版本,决定上述多个函式中是否有对应上述第一版本的函式,以在上述多个函式中没有对应上述第一版本的函式时,根据上述多个函式的选用历史记录来决定上述多个函式的一个以用于上述软件容器的实体化。

上述控制器还在上述多个函式中有对应上述第一版本的函式时,将对应上述第一版本的函式用于上述软件容器的实体化。

此外,上述控制器还在上述硬件资源将上述软件容器实体化之前,将上述系统的第一系统设定进行备份,在上述硬件资源将上述软件容器实体化之后,决定上述系统的第二系统设定,以及在上述第一系统设定与上述第二系统设定不同时,输出消息以通知上述云端服务系统的管理者。

本申请所述的基于软件容器提供云端服务的方法适用于云端服务系统,且包括以下步骤:提供硬件资源,其安装有系统,且使软件容器被实体化以运行云端服务;根据建置需求决定对应到上述系统的第一版本;决定函式库中是否有对应上述第一版本的函式;以及在上述函式库中没有对应上述第一版本的函式时,根据上述函式库中的多个函式的选用历史记录来决定上述多个函式的一个以用于上述软件容器的实体化。

此外,上述基于软件容器提供云端服务的方法还进一步包括以下步骤:在上述硬件资源将上述软件容器实体化之前,将上述系统的第一系统设定进行备份;在上述硬件资源将上述软件容器实体化之后,决定上述系统的第二系统设定;以及在上述第一系统设定与上述第二系统设定不同时,输出消息以通知上述云端服务系统的管理者。

特别是,上述选用历史记录包含以下信息:每个函式被选用的次数、以及被选用距今最近的天数。

上述系统包括以下至少一者:超管理系统(hypervisor);虚拟机器管理系统(systemcentervirtualmachinemanager,scvmm);数据库系统;防火墙系统;以及负载平衡系统。

关于本申请其他附加的特征与优点,本领域技术人员在不脱离本申请的精神和范围的情况下,应当可根据本申请实施方法中所公开的云端服务系统、以及基于软件容器提供云端服务的方法做些许的更动与润饰而得到。

附图说明

图1是根据本申请实施例所述的云端服务环境的示意图。

图2是根据本申请实施例所述的云端服务系统140的硬件架构示意图。

图3是根据本申请实施例所述基于软件容器提供云端服务的方法的软件架构图。

图4a、图4b是根据本申请实施例所述基于软件容器提供云端服务的方法流程图。

符号说明

1000云端服务环境

110、120用户计算装置

130网际网络

140云端服务系统

141通信装置

142硬件资源

143控制器

144储存装置

145输入输出装置

150开发人员计算装置

160维运人员计算装置

310执行模块

320备份模块

330决策模块

340比对模块

350通知模块

s401~s413步骤编号

具体实施方式

本章节所叙述的是实施本申请的较佳方式,目的在于说明本申请的精神而非用以限定本申请的保护范围,应当可理解的是,使用在本说明书中的「包含」、「包括」等词,是用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。

图1是根据本申请实施例所述的云端服务环境的示意图。

云端服务环境1000包括用户计算装置110、120、网际网络130、云端服务系统140、开发人员计算装置150、以及维运人员计算装置160。

用户计算装置110、120可通过网际网络130连接到云端服务系统140以存取已上线的云端服务,或者,用户计算装置110、120可通过网际网络130传送建置需求到云端服务系统140。举例来说,用户计算装置110、120可个别为具备网络通信功能的计算装置,如:笔记型计算机、桌上型计算机、智能型手机、或平板计算机等。

云端服务系统140可包括多个硬件资源(如:主机),每一硬件资源可安装至少一个系统(包括:超管理系统(hypervisor)、虚拟机器管理系统(systemcentervirtualmachinemanager,scvmm)、数据库系统、以及网络设备系统(如:防火墙系统、负载平衡系统)等),且用以使软件容器被实体化(instantiated)以运行云端服务。其中硬件资源由维运人员通过维运人员计算装置160所管控。

另外,云端服务系统140可根据接收到的建置需求(如:用户计算装置110、120所传送的代管请求、或维运人员计算装置160所传送的系统更新请求)决定对应的系统及系统版本,然后根据系统及系统版本进行环境建置作业。

在实施例,当建置需求为用户计算装置110、120的代管请求时,云端服务系统140可在环境建置作业完成后,将服务运行时对外的发布连结传送给用户计算装置110或120。

更进一步地,云端服务系统140可根据环境建置作业的结果通知开发人员计算装置150、以及/或维运人员计算装置160。举例来说,当云端服务系统140中没有代管请求所对应的系统及系统版本、且现有的系统及系统版本也无法适用时,可通知开发人员计算装置150进行对应系统版本的函式开发并将函式包装成映像档(image),同时通知维运人员计算装置160使用容器管理平台进行函式库更新。

图2是根据本申请实施例所述的云端服务系统140的硬件架构示意图。

云端服务系统140包括通信装置141、硬件资源142、控制器143、储存装置144、以及输入输出装置145。

通信装置141用以提供连线至网际网络130,并通过网际网络130连接到用户计算装置110、120。通信装置141可依循至少一个特定通信技术提供有线或无线网络连线。

有线网络可以是:乙太网(ethernet)、非对称数字用户线路(asymmetricdigitalsubscriberline,adsl)网络、光纤(optical)网络、双绞线(twistedpair)网络、或同轴电缆(coaxialcable)网络。

无线网络可以是:无线局域网络(wirelesslocalareanetwork,wlan)或无线广域网络(wirelesswideareanetwork,wwan),其中无线局域网络可使用无线保真(wirelessfidelity,wi-fi)技术、蓝牙技术、或群蜂技术所建立;无线广域网络可以是:全球移动通信系统(globalsystemformobilecommunications,gsm)网络、通用封包无线服务(generalpacketradioservice,gprs)网络、全球增强型数据传输(enhanceddataratesforglobalevolution,edge)网络、宽频分码多工存取(widebandcodedivisionmultipleaccess,wcdma)网络、分码多工存取-2000(codedivisionmultipleaccess2000,cdma-2000)网络、分时同步分码多工存取(timedivision-synchronouscodedivisionmultipleaccess,td-scdma)网络、全球互通微波存取(worldwideinteroperabilityformicrowaveaccess,wimax)网络、长期演进(longtermevolution,lte)网络、长期演进强化(lteadvanced,lte-a)网络、或分时长期演进(time-divisionlte,td-lte)网络等。

硬件资源142可为主机,如:工作站伺服器(或可称为云端伺服器),每一主机可包括数据处理及运算的基本元件(如:处理器、存储器、以及/或硬盘等),且可安装至少一个软件或硬件系统,包括:超管理系统、虚拟机器管理系统、数据库系统、以及网络设备系统(如:防火墙系统、负载平衡系统)等。

控制器143可为通用处理器、微处理器(microcontrolunit,mcu)、应用处理器(applicationprocessor,ap)、或数字信号处理器(digitalsignalprocessor,dsp)等,其可包括各式电路逻辑,用以提供数据处理及运算的功能、控制通信装置141的操作以提供网络连结、管理硬件资源142的配置、从储存装置144读取或储存数据、以及通过输入输出装置145传送通知给开发人员计算装置150及维运人员计算装置160、或接收来自维运人员计算装置160的建置需求。

特别是,控制器143用以协调控制通信装置141、硬件资源142、储存装置144、以及输入输出装置145的操作,以执行本申请的基于软件容器提供云端服务的方法。

储存装置144为非暂态(non-transitory)的计算机可读取储存媒体,例如:随机存取存储器(randomaccessmemory,ram)、快闪存储器,或硬盘、光盘,或上述媒体的任意组合,用以储存函式库、指令集、应用及/或通信协定的程序码等,其中函式库包括了多个函式,每个函式个别对应到不同系统及系统版本,例如:函式1对应到版本v1.0的虚拟机器管理系统、函式2对应到版本v2.0的虚拟机器管理系统、函式3对应到版本v3.0的虚拟机器管理系统、函式4对应到版本v1.0的数据库系统、函式5对应到版本v2.0的数据库系统、函式6对应到版本v1.0的防火墙系统、以及函式7对应到版本v1.0的负载平衡系统等。

特别是,储存装置144还储存有本申请的基于软件容器提供云端服务的方法的指令集或程序码,由控制器143载入并执行。

输入输出装置145可包括一个或多个通信端口、按钮、键盘、鼠标、触碰板、视频镜头、麦克风、显示屏幕(例如:液晶显示器、发光二极体显示器、或电子纸显示器等)、以及/或喇叭等,用以作为人机介面与管理者(如:开发人员及维运人员)互动。

应当可理解的是,图2所示的元件仅用以提供说明的范例,并非用以限制本申请的保护范围。举例来说,云端服务系统140还可包括其他元件,例如:更多硬件资源。

图3是根据本申请实施例所述基于软件容器提供云端服务的方法的软件架构图。

在此实施例,基于软件容器提供云端服务的方法适用于云端服务系统140,明确来说,基于软件容器提供云端服务的方法可用程序码实作为多个软件模块,并由控制器143载入并执行,基于软件容器提供云端服务的方法的软件架构可包括执行模块310、备份模块320、决策模块330、比对模块340、以及通知模块350。

执行模块310主要负责提供介面让用户计算装置110、120、或维运人员计算装置160输入建置需求,根据建置需求决定对应的系统及系统版本,然后将系统及系统版本信息传递给决策模块330。接着,决策模块330从函式库接收适用于建置需求的函式,并通知备份模块320对该系统设定进行备份。之后,根据从决策模块330接收到的函式开始进行环境建置作业,也就是将该函式用于软件容器的实体化以运行云端服务。

在另一实施例,如果环境建置作业失败,则执行模块310可要求决策模块330选择另一适合的函式重新进行环境建置作业,直到没有适合的函式可用为止,再把环境建置作业的结果、发生问题的系统及系统版本等信息传送给比对模块340。反之,如果环境建置作业成功,则执行模块310可更新函式的选用历史记录。

备份模块320主要负责决定执行模块310所指定的系统是否需要进行备份,举例来说,当指定的系统为数据库系统或网络设备系统(如:防火墙系统或负载平衡系统)时,则将该系统的设定进行备份。

决策模块330主要负责根据执行模块310所指定的系统及系统版本信息到函式库中找寻适合的函式,明确来说,当函式库中有对应该系统及系统版本的函式时,则直接将该函式回传给执行模块310;反之,当函式库中没有对应该系统及系统版本的函式时,则呼叫运算评分单元(未示出)根据函式库中现有的函式的选用历史记录挑选适用的函式,其中选用历史记录可包含每个函式被选用的次数、以及每个函式被选用距今最近的天数。

在具体实施例中,运算评分单元可为决策模块的内部单元。在另一具体实施例中,运算评分单元也可为独立的模块。

举例来说,假设建置需求所对应的系统为版本v4.0的负载平衡系统,而函式库中只有版本v1.0、v2.0、v3.0的负载平衡系统的函式,因此,运算评分单元会根据以下公式1挑选适用的函式。

其中v1_ratio~v3_ratio代表v1.0~v3.0版本的函式被选用次数除以总计算天数,2/(l+1)为平滑指数,l代表对应版本的函式被选用距今最近的天数。

为方便理解,以下举例以最近五天(总计算天数为5)所使用的函式版本进行说明,其中n代表今日。

表格1.

在表格1所示范例中,版本v1.0的分数为版本v2.0的分数为版本v3.0的分数为根据公式1,运算评分单元最后会选择版本v2.0的函式。

值得注意的是,公式1的设计并不倾向于优先选择最近的使用版本(如上述范例的版本v3.0),其原因在于,为确保服务可正常操作,通常会以高可用性(availability)为主要考量,举例来说,一般会准备多台相同规格的主机/系统,若需要进行主机/系统的版本更新时,一般为先尝试更新一台主机/系统并持续运行几天,确定一切正常,再逐步更新其他主机/系统;反之,若更新后出现异常状况,则可由其他主机/系统接手服务,再将已更新的主机/系统进行版本回复。因此,以实务经验而言,最近的使用版本不一定就是具有最高可用性的版本,而本申请的公式1除了考量时间的加权(使越近期被选用的版本将有更高的机率在本次被选用)之外,还加入每个版本被选用的频率(与可用性有正相关)。

比对模块340主要负责将套用选定函式后的系统设定与备份的系统设定(也就是套用选定的函式前的系统设定)进行比对,当比对不同时,则通过通知模块350输出消息以通知开发人员计算装置150以及/或维运人员计算装置160。此用意在于,即便套用决策模块330所选出的函式去进行环境建置作业成功,但系统设定有所不同时仍需开发人员、以及/或维运人员进一步确认。此外,比对模块340还接收来自执行模块310的环境建置作业的结果、发生问题的系统及系统版本等信息,并转送给通知模块350。

在具体实施例中,上述比对对于本次(套用后)与前次(套用前)的语法与参数进行比对。详细而言,若系统在设定负载平衡时,须设定如virtualserver、port、protocol、及ipaddress等参数。当比对结果发现设定不同,如前次参数有值而本次参数却是空白,则认定比对结果异常须通知。

通知模块350主要负责接收来自比对模块340的信息,然后把这些信息通知开发人员、以及/或维运人员。明确来说,当环境建置作业失败时(表示没有适合的函式可用),通知模块350会从比对模块340接收到环境建置作业的结果、发生问题的系统及系统版本等信息,然后转为通知开发人员及维运人员,让维运人员可先手动对系统进行设定,而开发人员则可根据发生问题的系统及系统版本进行对应函式的开发,待函式开发完成后,再由维运人员进行函式库的更新。另外,当环境建置作业成功时,通知模块350会从比对模块340接收到选定的函式、以及套用函式前后的系统设定等信息,然后转为通知开发人员及维运人员以作进一步确认。

图4a、图4b是根据本申请实施例所述基于软件容器提供云端服务的方法流程图。

首先,执行模块310从用户端或维运人员接收建置需求(步骤s401)。在实施例,用户端的建置需求可以是请求代管新的服务。在另一实施例,维运人员的建置需求可以是请求更新特定系统。

接着,执行模块310根据建置需求决定其对应的系统及系统版本(步骤s402)。举例来说,建置需求可以是请求代管新的服务,而该服务需要使用版本v1.0的虚拟机器管理系统、版本v4.0的防火墙系统、以及版本v2.0的负载平衡系统。或者,建置需求可以是请求更新现有的系统,例如:将超管理系统从版本v2.0升级到v3.0、或将数据库系统从版本v1.0升级到v2.0。

然后,决策模块330从执行模块310接收系统及系统版本信息(步骤s403),并决定函式库中是否有对应该版本的函式存在(步骤s404),若有,则直接取出该函式并回传给执行模块310(步骤s405);反之,如果函式库中没有对应该版本的函式存在,则呼叫运算评分单元根据函式库中现有的函式的选用历史记录挑选适用的函式(步骤s406)。

接着,执行模块310从决策模块330取得函式(步骤s407),然后指示备份模块320针对相关的系统进行备份(步骤s408)。

之后,执行模块310再使用该函式进行环境建置作业(步骤s409),也就是将该函式用于软件容器的实体化以运行云端服务。

然后,执行模块310决定环境建置作业是否成功(步骤s410),若是,则指示比对模块340针对套用函式前后的系统设定进行比对(步骤s411)。

在具体实施例中,若执行模块310没有回传是否成功,将默认执行成功。

接续步骤s411,比对模块340决定比对结果是否为相同(步骤s412),若是,则没有通知管理者(如:开发人员、以及/或维运人员)的必要,故流程结束;反之,如果比对不相同,则指示通知模块350通知管理者(如:开发人员、以及/或维运人员)以作进一步确认(步骤s413),流程结束。通知内容可包括:选定的函式、以及套用函式前后的系统设定等信息。

接续步骤s410,如果环境建置作业失败,则流程进入步骤s413,由通知模块350通知管理者,通知内容可包括:环境建置作业的结果、发生问题的系统及系统版本等信息。

根据上述实施例,应当可理解的是,本申请的基于软件容器提供云端服务的方法其特征在于,使用软件容器技术将各个版本的系统模块化,并采用函式库储存每个系统的核心程序(实作为函式),如此一来,即可有效提升系统更新的效率。另外,针对系统版本不被支援的情况,本申请的基于软件容器提供云端服务的方法还会以现有函式的选用历史记录来挑选适用的函式直接进行环境建置作业,因此,可大幅减少开发人员及维运人员的负担,并提升云端伺服器交付/维护云端服务的效率。

本申请虽以各种实施例公开如上,然而其仅为范例参考而非用以限定本申请的范围,任何本领域技术人员在不脱离本申请的精神和范围的情况下,应当可做些许的更动与润饰。因此上述实施例并非用以限定本申请的范围,本申请的保护范围当视所附的权利要求所界定的为准。

在权利要求中所使用的「第一」、「第二」等词用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1