CN114168974B - 适用于私有云的平台与云产品分离方法及系统 - Google Patents

适用于私有云的平台与云产品分离方法及系统 Download PDF

Info

Publication number
CN114168974B
CN114168974B CN202210131221.7A CN202210131221A CN114168974B CN 114168974 B CN114168974 B CN 114168974B CN 202210131221 A CN202210131221 A CN 202210131221A CN 114168974 B CN114168974 B CN 114168974B
Authority
CN
China
Prior art keywords
cloud
product
installation
products
platform
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
CN202210131221.7A
Other languages
English (en)
Other versions
CN114168974A (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.)
Beijing Easy Star Technology Development Co ltd
Original Assignee
Beijing Easy Star Technology Development 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 Beijing Easy Star Technology Development Co ltd filed Critical Beijing Easy Star Technology Development Co ltd
Priority to CN202210131221.7A priority Critical patent/CN114168974B/zh
Publication of CN114168974A publication Critical patent/CN114168974A/zh
Application granted granted Critical
Publication of CN114168974B publication Critical patent/CN114168974B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明提供一种适用于私有云的平台与云产品分离方法及系统,该方法包括:根据平台边界的定义,将全栈云服务划分为多个可独立交付的云产品;获取云产品定义的依赖关系确定多个云产品的安装顺序;根据云产品定义的资源需求,动态扩容平台资源节点以支撑云产品安装。本发明通过将平台和云产品分离,使云产品可以独立交付,实现故障域隔离,提升平台稳定性。彻底解决了云计算平台在私有部署场景中,建设周期结束那一刻即是平台能力边界终点的短板,这项能力能够更好的帮助客户应对在数字化转型过程中对云计算技术千变万化的需求,降低成本,提升效率。从而使客户在数字化竞争中处于优势地位。

Description

适用于私有云的平台与云产品分离方法及系统
技术领域
本发明涉及云计算技术领域,尤其涉及一种适用于私有云的平台与云产品分离方法及系统。
背景技术
纵观过去数十年,甚至可以往前展望到更远的历史时期,推动人类社会不断发展的主旋律:效率提升、成本降低与化繁为简,带来的结果是人类生产力的释放、分工的细分还有产业的升级,而这三者背后的核心是技术变革,这三者指引了技术进步的方向,但是并没有限定具体路径。当聚焦到云计算技术这一领域,过去几十年最重大技术变革是互联网技术,最重大的推动力是开源生态的蓬勃发展,互联网技术为开源生态奠定了基础并为技术创新和商业创新提供了手段,开源生态为包括云计算技术在内的技术变革提供了肥沃的土壤,但开源生态本身并不能直接使其技术价值与商业价值合二为一,仍然需要商业模式上的创新作为催化剂。云计算技术的诞生即是尝试把技术创新和商业模式创新完美结合以寻求价值最大化的绝佳案例,通过技术与商业的合二为一,以使用户既享受到开源生态带来的技术变革红利的同时,还能以商业模式上的创新来解决对用户来说过于复杂的技术要求和挑战。
在传统云计算(早期公有云)提出之初,部署形态并不是一个焦点问题,因为普遍认为公有云(公有部署形态)是云计算的唯一形态(事实上直到今天,这仍然是多数人的认知)。即使时至今日公有部署形态并不能展现云计算的所有可能性,也不可能满足所有市场需求,但在当时公有的部署形态仍然非常重要,因为任何技术或商业趋势的建立和最终形成都需要在一开始就奠定最具想象力和影响力的愿景,虽然其最终总拥有成本高昂并且灵活度不足。但是能够持续升级并不断提供新的能力以满足客户需求,以及可以即时拥有计算资源和Pay as you go使其具备强大的吸引力。
传统公有云往往部署在由厂商自建或租借的数据中心,并由一支规模可观的专业团队负责开发与运维,因此具备持续平滑升级的能力,同时具备较高的总体可用性。但是短板在于公有云一开始就不是以产品化的方式进行设计和构建,从而无法灵活私有交付,两难的背后是云的两种部署场景走到了各自的转折点。如果不能很好的解决在私有部署的同时仍能持续不断的进化,云计算终将遇到天花板。
对此无论是公有云厂商还是传统私有云厂商都有清醒的认识,同时及早就开始了布局,无论嘴上怎么坚持,身体都很诚实,加速推出能够灵活部署的平台以满足市场需求。
在现有的布局上,公有云厂商的做法:大致殊途同归,把经过裁剪的一个公有版本私有部署并把其当成公有侧的一个延伸,其背后的首要考量是,公有云面向用户极简,但是在其背后是一套经过若干年整合在一起的复杂架构,不能完美私有部署。
其具有的优势为:只能以裁剪过的一个版本实现有限私有部署,同时多数云产品和服务只能放在公有侧的限制也带来一个好处是,在提供有限私有部署的同时利用混合云连接机制推动用户把数据仍然放在公有侧,以绑定用户从而实现最大的商业价值,毕竟对于用户来说,能够制约其在不同的公有云和私有云之间灵活选择的核心限制包括不限于,行业的合规与政策要求、应用的现代化程度和一支专业团队、核心数据的数据量大小和对其安全等要求等。但是数据的迁移代价和成本是阻碍用户在不同公有云厂商之间进行灵活选择的最大限制。第二,从某种角度上采用私有部署尝试解决线上版本和线下版本不统一的问题,从而解决升级与运维的难题,消除版本碎片化带来的运维与技术支持等重大问题。第三,软件与硬件一体,以规避硬件的各种兼容性问题,实现快速交付和运维标准化。第四,强化用户使用习惯同时形成ToB客户的入口。
不足:实际上这种有限私有部署的不足也非常明显,首先是总拥有成本更加高昂,其次是灵活度严重不足,用户需要在已有硬件基础架构的兼容利久以及灵活部署形态上妥协。只能实现混合,对多云的需求往往需要通过引入第三方厂商来满足,系统总体的使用体验不佳。总结来说,即当前公有云的体验性不高。
传统私有云的优势在于可以灵活按需部署,因为完全私有部署,数据安全性更好,总体TCO更优。传统私有云的短板在于无法进化,因为传统私有云的架构采用的是整体式架构,所有进程紧密耦合,并被作为单项服务运行。这意味着,如果云平台的一个进程遇到需求峰值,则必须扩展整个架构。随着代码规模的增长,添加或改进整体式架构私有云的功能变得更加复杂。这种复杂性限制了平台能力拓展的可行性,并使版本升级变得困难。整体式架构增加了应用程序可用性的风险,因为许多依赖且紧密耦合的进程会扩大单个进程故障的影响。如果用户采用了某一个版本,想要升级到新版本,往往需要复杂的过程和较长的停机时间,有些时候因为新版本架构上的变化,用户无法直接升级到新的版本,必须面对推倒重来甚至重新选择产品重建云平台的严峻局面。
可进化架构不仅仅是一种技术手段,可进化架构也是一种设计思想与架构原则,因为无论技术如何变化,好的设计思想会持续存在。其背后的核心思想是:自然界的万事万物都处于连续不断的变化当中,如果不能适应变化或者这些变化不能适应环境,或许就会被淘汰掉。作为现实世界中的一个微观构成,软件系统也应遵循这一原则。可进化架构与传统软件架构相比,最大的不同是,传统软件架构技术并不把架构的持续可进化作为首要设计目标,而这一点是两者的最大区别。采用传统软件架构技术构建的软件系统具有明确的生命周期,随着基于传统架构软件系统的生命周期结束(往往是重大的架构升级导致原有系统无法平滑升级),意味着由这些软件系统构建的企业IT系统的生命周期结束,用户需要不断替换淘汰这些生命周期终结的软件系统,并不断重构企业业务系统,因此会给企业带来高昂的时间成本、资金成本和人力成本。总结来说,即当前私有云的各种使用成本较高。
因此,亟需一种平台与云产品的分离架构、系统,使云产品可以独立交付,解决云计算平台在私有部署场景中,建设周期结束那一刻即是平台能力边界终点的短板,帮助客户应对在数字化转型过程中对云计算技术千变万化的需求,降低成本,提升效率。
发明内容
本发明实施例提供一种适用于私有云的平台与云产品分离方法及系统,可以使用户根据需求在云平台选择安装自己需要的云产品,实现故障域隔离,彻底解决了云计算平台在私有部署场景中,建设周期结束那一刻即是平台能力边界终点的短板,能够更好的帮助客户应对在数字化转型过程中对云计算技术千变万化的需求,降低成本,提升效率。从而使客户在数字化竞争中处于优势地位。
本发明实施例的第一方面,提供一种适用于私有云的平台与云产品分离方法,所述方法包括:
根据平台边界的定义,将全栈云服务划分为多个可独立交付的云产品;
获取云产品定义的依赖关系确定多个云产品的安装顺序;
根据云产品定义的资源需求,动态扩容平台资源节点以支撑云产品安装。
可选地,在第一方面的一种可能实现方式中,根据平台边界的定义,将全栈云服务划分为多个可独立交付的云产品,包括:
所述平台边界包括硬件资源管理功能、身份与访问管理功能、平台配置管理功能、监控功能、告警功能、日志功能、审计功能、事件功能以及缓存功能中的任意一种或多种;
所述全栈云服务包括IaaS服务、PaaS服务、安全服务、大数据服务、IoT服务以及AI服务中的任意一种或多种。
可选地,在第一方面的一种可能实现方式中,获取云产品定义的依赖关系确定多个云产品的安装顺序,包括:
接收用户的云产品安装请求,基于所述云产品安装请求生成对应的第一安装列表,所述第一安装列表中包括至少一个云产品;
判断所述第一安装列表中存在互斥关系的云产品,则基于第一预设策略对所述第一安装列表更新得到第二安装列表,所述第二安装列表不具有互斥的云产品;
判断所述第二安装列表中存在依赖关系的云产品,则基于所有云产品的依赖关系对第二安装列表中的云产品进行排序得到第三安装列表;
基于所述第三安装列表中云产品的安装顺序,将云产品依次安装部署到用户的云平台中。
可选地,在第一方面的一种可能实现方式中,接收用户的云产品安装请求,基于所述云产品安装请求生成对应的第一安装列表,所述第一安装列表中包括至少一个云产品,包括:
根据所述云产品安装请求确定相应的云产品,提取所确定的云产品的第一依赖信息,所述第一依赖信息为云产品对用户云平台的依赖;
选取用户云平台能够满足第一依赖信息的所有云产品生成第一安装列表。
可选地,在第一方面的一种可能实现方式中,判断所述第一安装列表中存在互斥关系的云产品,则基于第一预设策略对所述第一安装列表更新得到第二安装列表,所述第二安装列表不具有互斥的云产品,包括:
获取第一安装列表中当前云产品的互斥信息,所述互斥信息为不能和当前云产品同时安装的云产品信息;
获取当前云产品的权重、以及与当前云产品互斥的云产品的权重,将当前云产品的权重、当前云产品互斥的云产品的权重比对得到推荐信息,所述推荐信息为推荐对当前云产品或当前云产品互斥的云产品进行保留。
根据当前云产品以及与当前云产品互斥的云产品权重,基于用户的选定信息删除第一安装列表中的当前云产品或当前云产品互斥的云产品得到第二安装列表。
可选地,在第一方面的一种可能实现方式中,判断所述第二安装列表中存在依赖关系的云产品,则基于所有云产品的依赖关系对第二安装列表中的云产品进行排序得到第三安装列表,包括:
获取第二安装列表中所有云产品的总数组;
将所述总数组按照云产品的依赖和被依赖关系分为依赖方数组和被依赖方数组;
获取被依赖方数组中具有第一依赖关系的第一目标,选取依赖方数组中与所述第一目标对应的云产品得到安装数组;
根据所述安装数组,对所述依赖方数组和被依赖方数组更新处理,再次获取具有第一依赖关系的第一目标,选取依赖方数组中与所述第一目标对应的云产品对所述安装数组更新;
在依赖方和/或被依赖方的数组中不再具有云产品后,对安装数组去重处理后得到第三安装列表。
可选地,在第一方面的一种可能实现方式中,根据云产品定义的资源需求,动态扩容平台资源节点以支撑云产品安装,包括:
接收下载的云产品,获取用户云平台当前时刻所有的资源节点,判断当前时刻所有的资源节点能否满足云产品的安装需求;
若能,则用户云平台基于当前时刻所有的资源节点对云产品进行安装;
若不能,则用户云平台扩容预设数量的资源节点,用户云平台基于扩容的资源节点对云产品进行安装。
可选地,在第一方面的一种可能实现方式中,通过以下公式确定资源节点的资源占用信息,所述资源占用信息包括CPU资源和内存资源;
Figure 731880DEST_PATH_IMAGE002
其中,
Figure 100002_DEST_PATH_IMAGE003
为CPU资源占用总量,
Figure 879964DEST_PATH_IMAGE004
为内存资源占用总量,
Figure 100002_DEST_PATH_IMAGE005
为第
Figure 294765DEST_PATH_IMAGE006
个沙箱所占用的 CPU资源占用量,
Figure 100002_DEST_PATH_IMAGE007
为沙箱的上限值,
Figure 100002_DEST_PATH_IMAGE009
为第
Figure 128991DEST_PATH_IMAGE006
个沙箱第p个容器的CPU资源占用量,
Figure 160401DEST_PATH_IMAGE010
为容器 的上限值,
Figure 100002_DEST_PATH_IMAGE011
为第
Figure 643335DEST_PATH_IMAGE012
个沙箱所占用的内存资源占用量,
Figure 100002_DEST_PATH_IMAGE013
为沙箱的上限值,
Figure 100002_DEST_PATH_IMAGE015
为第
Figure 739074DEST_PATH_IMAGE012
个沙箱 第
Figure 321365DEST_PATH_IMAGE016
个容器的内存资源占用量,
Figure DEST_PATH_IMAGE017
为容器的上限值。
可选地,在第一方面的一种可能实现方式中,获取当前时刻任意一个节点的内存资源,通过以下公式计算该节点的剩余内存资源,
Figure 100002_DEST_PATH_IMAGE019
其中,
Figure 636808DEST_PATH_IMAGE020
为剩余内存资源,
Figure DEST_PATH_IMAGE021
为总内存资源。
本发明实施例的第二方面,提供一种适用于私有云的平台与云产品分离系统,包括:
划分模块,用于根据平台边界的定义,将全栈云服务划分为多个可独立交付的云产品;
解析模块,用于获取并解析云产品定义的依赖关系,确定多个云产品的安装顺序;
安装模块,用于根据云产品定义的资源需求,动态扩容平台资源节点以支撑云产品安装。
本发明实施例的第三方面,提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时用于实现本发明第一方面及第一方面各种可能设计的所述方法。
附图说明
图1为本发明所提供的技术方案中数字原生引擎架构图;
图2为适用于私有云的平台与云产品分离方法的第一种实施方式的流程图;
图3为适用于私有云的平台与云产品分离方法的第二种实施方式的流程图;
图4为云产品版本示意图;
图5为适用于私有云的平台与云产品分离系统的第一种实施方式的结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
应当理解,在本发明的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
应当理解,在本发明中,“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本发明中,“多个”是指两个或两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和C”、“包含A、B、C”是指A、B、C三者都包含,“包含A、B或C”是指包含A、B、C三者之一,“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。
应当理解,在本发明中,“与A对应的B”、“与A相对应的B”、“A”与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。A与B的匹配,是A与B的相似度大于或等于预设的阈值。
取决于语境,如在此所使用的“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
关于本申请中的词语解释:
云产品:云产品是一组云端程序集合,在运行时为用户提供云服务,基于数字原生引擎,遵循云原生规范,以可进化为设计原则,具备所见即所得的能力,可以按需获取、使用、升级、卸载。
OTA(Over The Air):是指通过无线网络无需人工协助即可完成整个系统软件更新、参数配置、固件升级的一项技术,在不具备OTA能力的系统中这些操作需要通过原厂专业人员介入并需要较长时间才能完成,OTA最早应用于PC,近年来从智能手机逐步应用到智能汽车等领域。OTA带来的种种好处在ToC领域逐步深入人心,但是对于云计算平台这种往往支撑核心关键应用,同时又是处于以复杂分布式系统为特征的ToB领域,毫无疑问想要让全栈、全平面具备OTA能力对易捷行云在技术和架构上提出了更高要求和挑战。
可进化:不等同于传统上的认知-软件升级,可进化首先需要云平台在总体架构上由整体式架构进化到微服务架构,将云平台构建成为一组各自独立的具备合适粒度的组件,并将每个组件进程作为一项服务运行。这些服务使用轻量级 API 通过明确定义的接口进行通信。这些服务围绕各自业务功能进行构建,每项服务负责担负一项功能。由于它们独立运行,因此可以针对各项服务进行持续不断的部署、更新和扩展,以满足云平台在运行时动态调整部署形态、实时可伸缩、动态更新和扩展新的能力,以及总体持续进化的需求。实际上升级是其中一种手段,而进化是总体目标,升级解决的是软件版本升级的问题,进化解决的是消除软件版本的问题,解决云平台的部署形态和部署规模与能力持续不断交付的问题,换句话说,只有可进化能够彻底解决软件平台与硬件之间的耦合,而这是云计算背后最为重要的设计初衷软件定义和硬件解藕,无论客户硬件基础设施怎么更新换代,无论客户应用如何改造,具备可进化能力的云平台始终应能够适应这些变化,以使用户可以始终聚焦在业务上而不是平台上。
如图1所示,为本发明所适用的数字原生引擎架构图,数字原生引擎EOS(EasyStack Operating System)、ECAS(EasyStak Cloud Automation Service)、ESCL(EasyStack Cloud Linux)和OTA,数字原生引擎EOS是稳定、可靠、安全的数据中心操作系统,区别于传统裸金属操作系统,数据中心操作系统把整个数据中心抽象成为一台计算机,每一台物理硬件可以被视作传统操作系统负责管理并调度的CPU、Memory、Storage和Network单元。ECAS则是这台由数据中心抽象出的操作系统的Firmware,负责初始化硬件并引导并部署整个裸金属操作系统和数据中心操作系统。裸金属操作系统ESCL(EasyStackCloud Linux)负责为单台物理服务器和其内部资源进行抽象与封装,同时提供基础计算力(Virtualization,Containerize)、网络虚拟化能力、存储虚拟化能力,以及供EOS调度的统一接口。EOS借鉴传统操作系统的设计经验,采用微内核的设计理念,内核模块和用户态的应用在架构设计上完全分离,仅仅由系统约定的接口动态安装部署和运行用户态应用。不同的是传统操作系统需要通过不同指令集架构下的编译器、链接器等工具链通过对目标代码的重新编译来实现同一套代码可以在不同体系结构下正常运行,但是传统操作系统不能在一台设备上以主对称的方式支持不同指令集架构的CPU,而数据中心操作系统可以很好的运行在多种不同指令集架构上。
一个云产品可以指定以下资源依赖:平台的版本依赖、其他云产品的版本依赖、互斥云产品依赖。限制:云产品间不能出现环形依赖。
在安装或升级一个云产品时,会做以下检查:
1、检查平台版本是否满足依赖,例如云产品依赖的平台版本为6.0.1,当前平台版本大于等于6.0.1版本时才能通过依赖检查。
2、检查当前平台中是否已安装互斥云产品,例如基础网络云产品和OVN云产品只能安装其中一个,如果平台中已经安装了基础网络云产品,则不能安装OVN云产品。
3、检查依赖的其他云产品是否满足版本需求,例如资源编排云产品依赖计算云产品6.0.1及以上版本和基础网络云产品6.0.3及以上版本,平台中需要同时安装计算云产品和基础网络云产品,并且同时满足版本需求才允许进行安装。
在删除一个云产品时,会检查是否有依赖此云产品的已安装云产品,如果存在,则不允许删除。
本发明提供一种适用于私有云的平台与云产品分离方法,如图2所示,该方法包括:
步骤S110、根据平台边界的定义,将全栈云服务划分为多个可独立交付的云产品;
步骤S120、获取云产品定义的依赖关系确定多个云产品的安装顺序;
步骤S130、根据云产品定义的资源需求,动态扩容平台资源节点以支撑云产品安装。
本发明提供的技术方案,在一个可能的实施方式中,步骤S110具体包括:
所述平台边界包括硬件资源管理功能、身份与访问管理功能、平台配置管理功能、监控功能、告警功能、日志功能、审计功能、事件功能以及缓存功能中的任意一种或多种。
所述全栈云服务包括IaaS服务、PaaS服务、安全服务、大数据服务、IoT服务以及AI服务中的任意一种或多种。
本发明提供的技术方案,在一个可能的实施方式中,如图3所示,步骤S120具体包括:
步骤S1201、接收用户的云产品安装请求,基于所述云产品安装请求生成对应的第一安装列表,所述第一安装列表中包括至少一个云产品。
在一个实施例中,云产品平台接收到批量安装请求之后,会先获取到待安装的第一安装列表P = [A,B,C,D,E,F,G],其中A为第1个云产品、B为第2个云产品等等,遍历判断每个云产品依赖的平台版本是否满足需求,将用户云平台版本依赖不满足的云产品从待安装列表中移除。如图4所示,上述云产品依赖的平台版本都为6.0.1,全部满足需求,所以无需移除。
本发明提供的技术方案,在一个可能的实施方式中,步骤S1201具体包括:
根据所述云产品安装请求确定相应的云产品,提取所确定的云产品的第一依赖信息,所述第一依赖信息为云产品对用户云平台的依赖。用户会根据需求请求安装相应的云产品,此时本发明会判断所所请求安装的第一依赖信息,第一依赖信息为对用户云平台版本的依赖,如果用户云平台与云产品的版本不对应,则无法安装相应的云产品。
选取用户云平台能够满足第一依赖信息的所有云产品生成第一安装列表。本发明会选取与用户云平台版本相对应的云产品,进而得到相对应的第一安装列表。
步骤S1202、判断所述第一安装列表中存在互斥关系的云产品,则基于第一预设策略对所述第一安装列表更新得到第二安装列表,所述第二安装列表不具有互斥的云产品。
在一个实施例中,检查每个云产品的互斥云产品依赖,可以检索到云产品A和云产品G互斥,此时会提示用户做出选择,同时平台也会分析整体依赖关系设定权重,推荐用户安装云产品A,因为云产品A是其他云产品安装的关键依赖项。如果用户选在安装云产品A,当前待安装云产品列表 P 更新为[A,B,C,D,E,F]。
本发明提供的技术方案,在一个可能的实施方式中,步骤S1202具体包括:
获取第一安装列表中当前云产品的互斥信息,所述互斥信息为当前云产品与其他至少一个云产品互斥;
对当前云产品以及与当前云产品互斥的云产品输出,基于用户的选定信息删除第一安装列表中的当前云产品或当前云产品互斥的云产品得到第二安装列表。
通过以上的步骤,可以将互斥的云产品对用户显示,用户可以根据需求选定删除当前云产品或当前云产品互斥的云产品,进而使第二安装列表中的所有云产品不再存在互斥的关系。
本发明提供的技术方案,在一个可能的实施方式中,还包括:
获取第一安装列表中当前云产品的互斥信息,所述互斥信息为不能和当前云产品同时安装的云产品信息;
获取当前云产品的权重、以及与当前云产品互斥的云产品的权重,将当前云产品的权重、当前云产品互斥的云产品的权重比对得到推荐信息,所述推荐信息为推荐对当前云产品或当前云产品互斥的云产品进行保留;
根据当前云产品以及与当前云产品互斥的云产品权重,基于用户的选定信息删除第一安装列表中的当前云产品或当前云产品互斥的云产品得到第二安装列表。
通过以上的步骤,可以根据互斥的云产品的权重的不同对互斥的云产品进行保留的推荐,其中每个云产品的权重可以是预先设置的,在进行推荐后,用户可以进行相应的选择,该种方式能够使得用户可以根据云产品的重要程度进行保留。
步骤S1203、判断所述第二安装列表中存在依赖关系的云产品,则基于所有云产品的依赖关系对第二安装列表中的云产品进行排序得到第三安装列表。
本发明提供的技术方案,在一个可能的实施方式中,步骤S1203具体包括:
获取第二安装列表中所有云产品的总数组;
将所述总数组按照云产品的依赖和被依赖关系分为依赖方数组和被依赖方数组;
获取被依赖方数组中具有第一依赖关系的第一目标,选取依赖方数组中与所述第一目标对应的云产品得到安装数组;
在进行云产品安装后,对所述依赖方数组和被依赖方数组更新处理,再次获取具有第一依赖关系的第一目标,选取依赖方数组中与所述第一目标对应的云产品对所述安装数组更新;
在依赖方和/或被依赖方的数组中不再具有云产品后,对安装数组去重处理后得到第三安装列表。
在一个可能的实施方式中,将关系数组R按照依赖方和被依赖方拆分为两个数组,依赖方M = [ A, B, B, C, D, E, F ],被依赖方N = [ D, A, C, None, None, B, B ]。在N数组长度变为0之前,持续遍历并获取N数组中为None的下标i,Q(len(R) - len(N)) =M[i],遍历完一次之后,从N数组中移除N[i],从M数组中移除M[i],并将N数组中所有M[i],修改为None。执行第一次遍历之后得出结果为:Q = [ C, D ],依赖方M = [ A, B, B, E,F ],被依赖方N = [ None, A, None, B, B ]。执行第二次次遍历之后得出结果为:Q = [C, D, A, B ],M = [ B, E, F ],被依赖方N = [ None, None, None ]。执行第三次次遍历之后得出结果为:Q = [ C, D, A, B, B, E, F ],依赖方M = [ ],被依赖方N = [ ]。最后对Q数组执行去重操作后得到最终待安装云产品顺序[ C, D, A, B, E, F ]。
步骤S1204、基于所述第三安装列表中云产品的安装顺序,将云产品依次安装部署到用户的云平台中。
本发明提供的技术方案,平台与云产品分离设计的核心点之一是将服务组件按照云产品的方式拆分为独立的可交付原子,并基于云产品的依赖关系信息,自动化安装、升级云产品,整个过程无需运维和研发人员介入,有效降低私有云建设和维护过程中的人力成本和时间成本。
本发明提供的技术方案,在一个可能的实施方式中,步骤S1204具体包括:
接收下载的云产品,获取用户云平台当前时刻所有的资源节点,判断当前时刻所有的资源节点能否满足云产品的安装需求;
若能,则用户云平台基于当前时刻所有的资源节点对云产品安装;
若不能,则用户云平台扩容预设数量的资源节点,用户云平台基于扩容的资源节点对云产品安装。
在一个可能的实施方式中,通过以下公式确定资源节点的资源占用信息,所述资源占用信息包括CPU资源和内存资源;
Figure 595537DEST_PATH_IMAGE022
其中,
Figure 250509DEST_PATH_IMAGE003
为CPU资源占用总量,
Figure 738123DEST_PATH_IMAGE004
为内存资源占用总量,
Figure 245590DEST_PATH_IMAGE005
为第
Figure 539168DEST_PATH_IMAGE006
个沙箱所占用的 CPU资源占用量,
Figure 189592DEST_PATH_IMAGE007
为沙箱的上限值,
Figure DEST_PATH_IMAGE023
为第
Figure 176002DEST_PATH_IMAGE006
个沙箱第
Figure 341404DEST_PATH_IMAGE024
个容器的CPU资源占用量,
Figure 500990DEST_PATH_IMAGE010
为容器 的上限值,
Figure 5921DEST_PATH_IMAGE011
为第
Figure 959971DEST_PATH_IMAGE012
个沙箱所占用的内存资源占用量,
Figure 612669DEST_PATH_IMAGE013
为沙箱的上限值,
Figure DEST_PATH_IMAGE015A
为第
Figure 770022DEST_PATH_IMAGE012
个沙箱 第
Figure 926197DEST_PATH_IMAGE016
个容器的内存资源占用量,
Figure 316727DEST_PATH_IMAGE017
为容器的上限值。
在一个可能的实施方式中,获取当前时刻任意一个节点的内存资源,通过以下公式计算该节点的剩余内存资源,
Figure 128825DEST_PATH_IMAGE019
其中,
Figure 895793DEST_PATH_IMAGE020
为剩余内存资源,
Figure DEST_PATH_IMAGE025
为总内存资源。
Figure 640895DEST_PATH_IMAGE026
Figure DEST_PATH_IMAGE027
是预设的数据量值,G是内存 计量单位,例如
Figure 405589DEST_PATH_IMAGE026
即为4GB、
Figure 596661DEST_PATH_IMAGE027
为3GB。
本发明提供的技术方案,还提供一种适用于私有云的平台与云产品分离系统,如图5所示,
划分模块,用于根据平台边界的定义,将全栈云服务划分为多个可独立交付的云产品;
解析模块,用于获取并解析云产品定义的依赖关系,确定多个云产品的安装顺序;
安装模块,用于根据云产品定义的资源需求,动态扩容平台资源节点以支撑云产品安装。
本发明提供的技术方案,包括但不限于具有以下优势:
基于平台与云服务分离的设计,在易捷行云全栈云平台首次安装部署以后,用户仍然可以持续不断的以所见即所得(What you see is what you get)的方式按需(Payasyou go)获取新的云服务,同时用户获取新的云服务可以仅仅通过鼠标点击即可完成,整个过程时长仅仅几分钟,并且整个过程可以用户自行完成,不需要厂商提供技术支持,完全可以由用户通过自服务的方式完成。和传统的软件交付方式相比较,效率是成百上千倍的提升,同时对整个平台的业务连续性没有任何影响。
传统私有云或传统全栈云的最大不足在于平台能力和形态在建设周期结束那一刻就基本固化下来,但实际上客户对云的需求在不断快速变化,因此传统私有云或传统全栈云无法从真正意义上满足客户对云的需求,而这一点成为了传统云平台最大的短板。快速多变的市场会催生客户对云的需求随时间推移也是千变万化,因此想要采用传统架构云平台来解决不同需求场景(No One Size Fits All)就变得不切实际。易捷行云新一代云平台采用平台与云产品分离的创新架构使这两个传统云平台无法解决的难题得到完美解决。同时,技术架构上的突破带来商业模型上的创新,易捷行云新一代云平台采用平台永续生命周期永久授权+云产品订阅结合的商业模型。易捷行云云产品订阅的实质是解决客户如何开通、获取并使用云的服务,而不仅仅是分期付费。订阅的核心是软件要面向客户能够更方便快捷开通、获取和使用云能力的方式设计。订阅背后的价值是在数字化时代通过使用户具备快速获取各种各样云服务的能力,使客户的业务更加敏捷。订阅模式同时具备降低客户采购门槛,降低采购成本,提升企业资金使用效率,从而降低企业总体运营成本,因为预算可预测性更强,同时保留后悔权等诸多好处。
其中,可读存储介质可以是计算机存储介质,也可以是通信介质。通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。计算机存储介质可以是通用或专用计算机能够存取的任何可用介质。例如,可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(ApplicationSpecific Integrated Circuits,简称:ASIC)中。另外,该ASIC可以位于用户设备中。当然,处理器和可读存储介质也可以作为分立组件存在于通信设备中。可读存储介质可以是只读存储器(ROM)、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本发明还提供一种程序产品,该程序产品包括执行指令,该执行指令存储在可读存储介质中。设备的至少一个处理器可以从可读存储介质读取该执行指令,至少一个处理器执行该执行指令使得设备实施上述的各种实施方式提供的方法。
在上述终端或者服务器的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (7)

1.一种适用于私有云的平台与云产品分离方法,其特征在于,所述方法包括:
根据平台边界的定义,将全栈云服务划分为多个可独立交付的云产品,所述云产品按需获取、使用、升级与卸载;
获取云产品定义的依赖关系确定多个云产品的安装顺序,包括,
接收用户的云产品安装请求,基于所述云产品安装请求生成对应的第一安装列表,所述第一安装列表中包括至少一个云产品;
判断所述第一安装列表中存在互斥关系的云产品,则基于第一预设策略对所述第一安装列表更新得到第二安装列表,所述第二安装列表不具有互斥的云产品;
判断所述第二安装列表中存在依赖关系的云产品,则基于所有云产品的依赖关系对第二安装列表中的云产品进行排序得到第三安装列表;
基于所述第三安装列表中云产品的安装顺序,将云产品依次安装部署到用户的云平台中;
根据云产品定义的资源需求,动态扩容平台资源节点以支撑云产品安装;
其中,判断所述第一安装列表中存在互斥关系的云产品,则基于第一预设策略对所述第一安装列表更新得到第二安装列表,所述第二安装列表不具有互斥的云产品,包括,
获取第一安装列表中当前云产品的互斥信息,所述互斥信息为不能和当前云产品同时安装的云产品信息;
获取当前云产品的权重、以及与当前云产品互斥的云产品的权重,将当前云产品的权重、当前云产品互斥的云产品的权重比对得到推荐信息,所述推荐信息为推荐对当前云产品或当前云产品互斥的云产品进行保留;
根据当前云产品以及与当前云产品互斥的云产品权重,基于用户的选定信息删除第一安装列表中的当前云产品或当前云产品互斥的云产品得到第二安装列表;
判断所述第二安装列表中存在依赖关系的云产品,则基于所有云产品的依赖关系对第二安装列表中的云产品进行排序得到第三安装列表,包括,
获取第二安装列表中所有云产品的总数组;
将所述总数组按照云产品的依赖和被依赖关系分为依赖方数组和被依赖方数组;
获取被依赖方数组中具有第一依赖关系的第一目标,选取依赖方数组中与所述第一目标对应的云产品得到安装数组;
根据所述安装数组,对所述依赖方数组和被依赖方数组更新处理,再次获取具有第一依赖关系的第一目标,选取依赖方数组中与所述第一目标对应的云产品对所述安装数组更新;
在依赖方和/或被依赖方的数组中不再具有云产品后,对安装数组去重处理后得到第三安装列表。
2.根据权利要求1所述的适用于私有云的平台与云产品分离方法,其特征在于,根据平台边界的定义,将全栈云服务划分为多个可独立交付的云产品,包括:
所述平台边界包括硬件资源管理功能、身份与访问管理功能、平台配置管理功能、监控功能、告警功能、日志功能、审计功能、事件功能以及缓存功能中的任意一种或多种;
所述全栈云服务包括IaaS服务、PaaS服务、安全服务、大数据服务、IoT服务以及AI服务中的任意一种或多种。
3.根据权利要求2所述的适用于私有云的平台与云产品分离方法,其特征在于,接收用户的云产品安装请求,基于所述云产品安装请求生成对应的第一安装列表,所述第一安装列表中包括至少一个云产品,包括:
根据所述云产品安装请求确定相应的云产品,提取所确定的云产品的第一依赖信息,所述第一依赖信息为云产品对用户云平台的依赖;
选取用户云平台能够满足第一依赖信息的所有云产品生成第一安装列表。
4.根据权利要求1所述的适用于私有云的平台与云产品分离方法,其特征在于,根据云产品定义的资源需求,动态扩容平台资源节点以支撑云产品安装,包括:
接收下载的云产品,获取用户云平台当前时刻所有的资源节点,判断当前时刻所有的资源节点能否满足云产品的安装需求;
若能,则用户云平台基于当前时刻所有的资源节点对云产品进行安装;
若不能,则用户云平台扩容预设数量的资源节点,用户云平台基于扩容的资源节点对云产品进行安装。
5.根据权利要求4所述的适用于私有云的平台与云产品分离方法,其特征在于,通过以下公式确定资源节点的资源占用信息,所述资源占用信息包括CPU资源和内存资源;
Figure 24236DEST_PATH_IMAGE002
其中,
Figure DEST_PATH_IMAGE003
为CPU资源占用总量,
Figure 216183DEST_PATH_IMAGE004
为内存资源占用总量,
Figure DEST_PATH_IMAGE005
为第
Figure 594337DEST_PATH_IMAGE006
个沙箱所占用的CPU资源占用量,
Figure DEST_PATH_IMAGE007
为沙箱的上限值,
Figure 213537DEST_PATH_IMAGE008
为第
Figure 74046DEST_PATH_IMAGE006
个沙箱第
Figure DEST_PATH_IMAGE009
个容器的CPU资源占用量,
Figure 335263DEST_PATH_IMAGE010
为容器的上限值,
Figure DEST_PATH_IMAGE011
为第
Figure 299414DEST_PATH_IMAGE012
个沙箱所占用的内存资源占用量,
Figure DEST_PATH_IMAGE013
为沙箱的上限值,
Figure 89516DEST_PATH_IMAGE014
为第
Figure 171741DEST_PATH_IMAGE012
个沙箱第
Figure DEST_PATH_IMAGE015
个容器的内存资源占用量,
Figure 971070DEST_PATH_IMAGE016
为容器的上限值。
6.根据权利要求5所述的适用于私有云的平台与云产品分离方法,其特征在于,获取当前时刻任意一个节点的内存资源,通过以下公式计算该节点的剩余内存资源,
Figure 323816DEST_PATH_IMAGE018
其中,
Figure DEST_PATH_IMAGE019
为剩余内存资源,
Figure 815977DEST_PATH_IMAGE020
为总内存资源。
7.一种适用于私有云的平台与云产品分离系统,其特征在于,包括:
划分模块,用于根据平台边界的定义,将全栈云服务划分为多个可独立交付的云产品,所述云产品按需获取、使用、升级与卸载;
解析模块,用于获取并解析云产品定义的依赖关系,确定多个云产品的安装顺序,包括,
接收用户的云产品安装请求,基于所述云产品安装请求生成对应的第一安装列表,所述第一安装列表中包括至少一个云产品;
判断所述第一安装列表中存在互斥关系的云产品,则基于第一预设策略对所述第一安装列表更新得到第二安装列表,所述第二安装列表不具有互斥的云产品;
判断所述第二安装列表中存在依赖关系的云产品,则基于所有云产品的依赖关系对第二安装列表中的云产品进行排序得到第三安装列表;
基于所述第三安装列表中云产品的安装顺序,将云产品依次安装部署到用户的云平台中;
安装模块,用于根据云产品定义的资源需求,动态扩容平台资源节点以支撑云产品安装;
其中,判断所述第一安装列表中存在互斥关系的云产品,则基于第一预设策略对所述第一安装列表更新得到第二安装列表,所述第二安装列表不具有互斥的云产品,包括,
获取第一安装列表中当前云产品的互斥信息,所述互斥信息为不能和当前云产品同时安装的云产品信息;
获取当前云产品的权重、以及与当前云产品互斥的云产品的权重,将当前云产品的权重、当前云产品互斥的云产品的权重比对得到推荐信息,所述推荐信息为推荐对当前云产品或当前云产品互斥的云产品进行保留;
根据当前云产品以及与当前云产品互斥的云产品权重,基于用户的选定信息删除第一安装列表中的当前云产品或当前云产品互斥的云产品得到第二安装列表;
判断所述第二安装列表中存在依赖关系的云产品,则基于所有云产品的依赖关系对第二安装列表中的云产品进行排序得到第三安装列表,包括,
获取第二安装列表中所有云产品的总数组;
将所述总数组按照云产品的依赖和被依赖关系分为依赖方数组和被依赖方数组;
获取被依赖方数组中具有第一依赖关系的第一目标,选取依赖方数组中与所述第一目标对应的云产品得到安装数组;
根据所述安装数组,对所述依赖方数组和被依赖方数组更新处理,再次获取具有第一依赖关系的第一目标,选取依赖方数组中与所述第一目标对应的云产品对所述安装数组更新;
在依赖方和/或被依赖方的数组中不再具有云产品后,对安装数组去重处理后得到第三安装列表。
CN202210131221.7A 2022-02-14 2022-02-14 适用于私有云的平台与云产品分离方法及系统 Active CN114168974B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210131221.7A CN114168974B (zh) 2022-02-14 2022-02-14 适用于私有云的平台与云产品分离方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210131221.7A CN114168974B (zh) 2022-02-14 2022-02-14 适用于私有云的平台与云产品分离方法及系统

Publications (2)

Publication Number Publication Date
CN114168974A CN114168974A (zh) 2022-03-11
CN114168974B true CN114168974B (zh) 2022-05-20

Family

ID=80489790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210131221.7A Active CN114168974B (zh) 2022-02-14 2022-02-14 适用于私有云的平台与云产品分离方法及系统

Country Status (1)

Country Link
CN (1) CN114168974B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018182411A1 (en) * 2017-03-31 2018-10-04 Eshgro B.V. Cloud platform configurator
EP3734379A1 (en) * 2019-04-30 2020-11-04 Siemens Aktiengesellschaft Method and system for generating control programs in a cloud computing environment

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104735102A (zh) * 2013-12-18 2015-06-24 广州岚萃贸易有限公司 一种基于云平台和云计算的客户关系管理系统
US10225140B2 (en) * 2017-04-26 2019-03-05 Oracle International Corporation Portable instance provisioning framework for cloud services
CN109327490B (zh) * 2017-07-31 2021-01-15 华为技术有限公司 一种部署云服务组件的方法和服务器
CN110688197A (zh) * 2019-09-11 2020-01-14 新华三大数据技术有限公司 一种云操作系统
CN113849196A (zh) * 2021-09-22 2021-12-28 杭州安恒信息安全技术有限公司 一种基于多云管理平台的产品管理方法及相关组件

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018182411A1 (en) * 2017-03-31 2018-10-04 Eshgro B.V. Cloud platform configurator
EP3734379A1 (en) * 2019-04-30 2020-11-04 Siemens Aktiengesellschaft Method and system for generating control programs in a cloud computing environment

Also Published As

Publication number Publication date
CN114168974A (zh) 2022-03-11

Similar Documents

Publication Publication Date Title
CN102725733B (zh) 在平台之间移植虚拟机映像
US8312419B2 (en) Automated lifecycle management of a computer implemented service
CN103582867A (zh) 用于指定基于云的部署的配置的高级语言
CN102141925B (zh) 使用第三方目标状态的适用性检测
CN110325968A (zh) 分布式计算系统中的系统升级管理
CN102132268A (zh) 数据中心编程模型
EP2107458A1 (en) Modelling software appliance
US20080270153A1 (en) Service oriented architecture (soa) lifecycle model migration
EP3163436A1 (en) Visual software modeling method based on software meta-view for constructing software view
US20200142679A1 (en) Constructing and enhancing a deployment pattern
NL2018627B1 (en) Cloud platform configurator
CN106656622A (zh) 一种接口调用任务配置的方法与装置
CN114154641A (zh) Ai模型的训练方法、装置、计算设备和存储介质
US9904574B2 (en) Parallel computing without requiring antecedent code deployment
CN108304209A (zh) 固件升级方法及固件升级系统
CN109471620A (zh) 一种app的自动生成方法、装置、终端设备及可读存储介质
CN104838358A (zh) 基于云的应用工厂及发布服务
CN111582645A (zh) 基于因子分解机的app风险评估方法、装置和电子设备
CN111459506A (zh) 深度学习平台集群的部署方法、装置、介质及电子设备
CN114168974B (zh) 适用于私有云的平台与云产品分离方法及系统
CN109542942A (zh) 函数调用的查询方法及装置、电子设备
CN110262782A (zh) 软件系统的接口比对方法和装置
CN116737393B (zh) 资源部署方法、装置和存储介质及电子设备
CN113485833A (zh) 资源预测方法和装置
CN107256167A (zh) 应用于应用系统迁移的升级控制方法及升级控制设备

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