云执行的系统和方法

文档序号:7982768阅读:333来源:国知局
云执行的系统和方法
【专利摘要】本发明提出一种云执行系统,包括代码管理服务器、代码文件服务集群和云执行集群,其中,代码管理服务器用于接收用户上传的代码文件,并建立代码文件与相应的应用程序之间的对应关系信息,并将代码文件和对应关系信息发送至代码文件服务集群;代码服务集群用于保存代码文件和对应关系信息;云执行集群用于从代码管理服务器中获得需要执行的应用程序相应的代码文件所存储的Fuse服务器的地址,并根据需要执行的应用程序从Fuse服务器中获取相应的代码文件。本发明降低了代码发布失败的风险,提高了系统的稳定性,灵活性好,可扩展性高。本发明还公开了一种云执行方法。
【专利说明】云执行的系统和方法
【技术领域】
[0001]本发明涉及计算机科学【技术领域】,特别涉及一种云推送的系统和方法。
【背景技术】
[0002]一个软件产品往往包含了大量的代码,对这些代码的保存和管理对开发、测试、维护等都有着非常重要的意义。现存的代码发布方案一般包含一个资源调度系统,由资源调度系统决定将应用程序的代码发布到哪台具体的计算机器,即执行单元机器上。代码在发布的时候通常采取增量发布方式,通过获取增量差异,在patch上对代码进行更新。当执行单元需要扩容的时候,会执行扩容操作,扩容操作将该执行单元上所有应用的代码都完整的迁移到新的执行单元机器上面。
[0003]该方案有如下两个缺点:
[0004]1.执行单元上有应用程序的代码,扩容会带来大量的程序代码文件的发布,增加了失败的风险,降低了系统的稳定性。
[0005]2.为了给应用提供更好的服务,执行单元需要在资源调度的管理下实现动态的扩展,但应用程序的代码文件会束缚这种灵活性,这将降低系统的可扩展性。
[0006]伴随着云计算概念的提出和发展,也有将代码发布系统部署到云环境中的新思路。这种方案通常将云环境作为一个云应用执行引擎,计算层的执行环境访问部署在上面的每个应用的代码文件。然后这种方式也面临两个问题:一方面云环境流量的增长会带来执行单元数量的线性增长,而代码必须发布到每个执行单元上面,这样会带来代码发布失败增加的风险;另一方面因为计算层的增加必须搬移所有的代码到新的计算层机器上面,因此不利于计算层的自动扩展,

【发明内容】

[0007]本发明的目的旨在至少解决上述技术缺陷之一。
[0008]为此,本发明的第一个目的在于提出一种云执行系统,该系统低了代码发布失败的风险,提高了系统的稳定性,灵活性好,可扩展性高。
[0009]本发明的第二个目的在于提出一种云执行方法。
[0010]为达到上述目的,本发明第一方面的实施例公开了一种云执行系统,包括代码管理服务器、代码文件服务集群和云执行集群。所述代码管理服务器用于接收用户上传的代码文件,并建立所述代码文件与相应的应用程序之间的对应关系信息,并将所述代码文件和所述对应关系信息发送至所述代码文件服务集群;所述代码文件服务集群用于保存所述代码文件和所述对应关系信息,其中,所述代码文件服务集群包括多个用户空间文件系统Fuse服务器,所述多个Fuse服务器中的至少一个Fuse服务器保存所述代码文件和所述对应关系信息;所述云执行集群用于从所述代码管理服务器中获得需要执行的应用程序相应的代码文件所存储的Fuse服务器的地址,并根据需要执行的应用程序从所述Fuse服务器中获取相应的代码文件,其中,所述云执行集群包括多个Fuse客户端,所述多个Fuse客户端分别与所述代码文件服务集群中的多个Fuse服务器相连,以从所述多个Fuse服务器中获得相应的代码文件。
[0011]在本发明的实施例中,本方案利用Fuse技术,使用代码文件服务集群来对代码文件进行存储和管理,利用Fuse客户端通过网络来远程访问代码,实现了计算层和代码文件的解耦。本发明降低了代码发布失败的风险,提高了系统的稳定性,并且在云环境中,系统的可扩展性和灵活性都得到了加强。
[0012]在本发明的一个实施例中,所述多个Fuse服务器中的一部分Fuse服务器保存所述代码文件和所述对应关系信息以相互构成备份。备份增强了代码文件的安全性。
[0013]在本发明的一个实施例中,所述代码文件服务集群对所述多个Fuse服务器进行压力监控,并对压力超标的Fuse服务器进行自动扩容。自动扩容增强了系统的可扩展性,提高了系统的灵活性。
[0014]在本发明的一个实施例中,所述代码文件包括文件头信息和文件内容信息。
[0015]在本发明的一个实施例中,所述Fuse客户端对获得的相应的代码文件进行缓存。缓存的增加能够提高访问代码文件的速度,提高效率,缓解Fuse服务器的压力
[0016]在本发明的一个实施例中,所述Fuse服务器还用于在所述Fuse服务器中保存的代码文件更新之后,通知对应的Fuse客户端更新缓存。。
[0017]在本发明的一个实施例中,所述Fuse客户端记录所述代码文件的缓存时间,在所述缓存时间超过预设时间之后,更新所述文件头信息,并将缓存的文件头信息与所述更新的文件头信息进行比较,如果相同则维持所述文件内容信息继续有效。
[0018]本发明第二方面的实施例公开了一种云执行方法,包括以下步骤:接收用户上传的代码文件,并建立所述代码文件与相应的应用程序之间的对应关系信息;将所述代码文件和所述对应关系信息发送至代码文件服务集群,其中,所述代码文件服务集群包括多个用户空间文件系统Fuse服务器,所述多个Fuse服务器中的至少一个Fuse服务器保存所述代码文件和所述对应关系信息;云执行集群获得需要执行的应用程序,并获得所述需要执行的应用程序相应的代码文件所存储的Fuse服务器的地址,其中,所述云执行集群包括多个Fuse客户端,所述多个Fuse客户端分别与所述代码文件服务集群中的多个Fuse服务器相连,以从所述多个Fuse服务器中获得相应的代码文件;所述云执行集群根据需要执行的应用程序从所述Fuse服务器中获取相应的代码文件。
[0019]在本发明的实施例中,利用Fuse技术,使用代码文件服务集群来对代码文件进行存储和管理。Fuse客户端通过网络来远程访问代码,实现了计算层和代码文件的解耦,降低了代码发布失败的风险,提高了系统的稳定性,并且在云环境中可扩展性和灵活性都得到了加强。
[0020]在本发明的一个实施例中,所述多个Fuse服务器中的一部分Fuse服务器保存所述代码文件和所述对应关系信息以相互构成备份。备份增强了代码文件的安全性。
[0021]在本发明的一个实施例中,还包括:所述代码文件服务集群对所述多个Fuse服务器进行压力监控,并对压力超标的Fuse服务器进行自动扩容。自动扩容增强了系统的可扩展性,提高了系统的灵活性。
[0022]在本发明的一个实施例中,所述代码文件包括文件头信息和文件内容信息。
[0023]在本发明的一个实施例中,还包括:所述Fuse客户端对获得的相应的代码文件进行缓存。缓存的增加能够提高访问代码文件的速度,提高效率,缓解Fuse服务器的压力
[0024]在本发明的一个实施例中,还包括:所述Fuse服务器在所述Fuse服务器中保存的代码文件更新之后,通知对应的Fuse客户端更新缓存。
[0025]在本发明的一个实施例中,还包括:所述Fuse客户端记录所述代码文件的缓存时间;判断所述缓存时间是否超过预设时间;如果判断所述缓存时间超过所述预设时间,则更新所述文件头信息,并进一步将缓存的文件头信息与所述更新的文件头信息进行比较;如果判断所述缓存的文件头信息与所述更新的文件头信息相同,则维持所述文件内容信息继续有效;如果判断所述缓存的文件头信息与所述更新的文件头信息不同,则从所述Fuse服务器获得更新的文件内容信息。
[0026]本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【专利附图】

【附图说明】
[0027]本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0028]图1为根据本发明实施例的云执行系统的结构示意图;
[0029]图2为根据本发明实施例的云推送实现方案图;和
[0030]图3为根据本发明实施例的云执行方法的流程图。
【具体实施方式】
[0031]下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0032]下面参考图1描述根据本发明实施例的云执行系统100,包括代码管理服务器110、代码文件服务集群120和云执行集群130,其中,代码管理服务器110用于接收用户上传的代码文件,并建立代码文件与相应的应用程序之间的对应关系信息,并将代码文件和对应关系信息发送至代码文件服务集群;代码文件服务集群120用于保存代码文件和对应关系信息,其中,代码文件服务集群包括多个用户空间文件系统Fuse服务器121,多个Fuse服务器121中的至少一个Fuse服务器121保存代码文件和对应关系信息;云执行集群130用于从代码管理服务器110中获得需要执行的应用程序相应的代码文件所存储的Fuse服务器121的地址,并根据需要执行的应用程序从Fuse服务器121中获取相应的代码文件,其中,云执行集群130包括多个Fuse客户端131,多个Fuse客户端131分别与代码文件服务集群中的多个Fuse服务器121相连,以从多个Fuse服务器121中获得相应的代码文件。
[0033]其中,代码文件包括文件头信息和文件内容信息。
[0034]Fuse (Filesystem In Userspace,用户空间文件系统)是在Iinux等平台上,用应用程序实现专用的文件系统的解决方案。其原理是在VFS (Virtual File System,虚拟文件系统)层上面实现一种类型为Fuse的文件系统,然后将VFS的各种请求发送给/dev/Fuse设备,用户程序监听该设备的请求并进行处理。Fuse能够提高生产率,简化为操作系统提供新的文件系统的工作量,特别适用于各种虚拟文件系统和网络文件系统。[0035]因为Fuse的文件请求可以定制,这样代码文件可以不存放在本地机器,通过网络实现远程访问。云执行系统100采用Fuse完成对代码文件的访问,下面参考图2描述具体的一种实现方案。其中,代码管理服务器110使用SVN,SVN是一种代码版本管理软件,本例中用户的代码提交到SVN提交模块上,由SVN进行统一的管理和版本控制。
[0036]本例中的云执行系统100采用专门的文件服务器用来存放代码文件。应用程序的代码不发至计算层机器上,而发至专门的代码文件服务集群120。多个Fuse服务器121中的一部分Fuse服务器121保存代码文件和对应关系信息以相互构成备份。代码文件服务集群120对多个Fuse服务器121进行压力监控,并对压力超标的Fuse服务器121进行自动扩容。
[0037]在计算层机器上,当有文件请求时,云执行集群130中的Fuse客户端131从代码文件服务集群中的Fuse服务器121得到对应关系信息,提取访问路径,并定位到保存应用程序的Fuse服务器121上,对代码文件进行请求。
[0038]具体地,云执行集群130中的Fuse客户端首先访问文件的文件头信息,然后访问文件内容信息。
[0039]Fuse客户端131对获得的相应的代码文件进行缓存。由于计算层上对代码文件的访问比较密集(一般情况下流量在亿级别),因此Fuse客户端131对文件的文件头信息以及文件内容信息都做了缓存,避免每次访问都请求文件服务器而导致文件服务器压力过载。
[0040]Fuse客户端131缓存原理如下:
[0041]在代码文件的发布不频繁的情况下,缓存在一个相当长的时间内是有效的。Fuse客户端131记录代码文件的缓存时间,在缓存时间超过预设时间之后,更新文件头信息,并将缓存的文件头信息与更新的文件头信息进行比较,如果相同则维持文件内容信息继续有效。这样能够尽量减少对文件服务器请求。
[0042]Fuse客户端131还用于在Fuse服务器121中保存的代码文件更新之后,通知对应的Fuse客户端更新缓存。
[0043]可以理解的是,上述实现方案仅出于示例目的,本发明的实施例不限于此。
[0044]根据本发明实施例的云执行系统不受限于应用代码的位置,计算层机器通过Fuse客户端即可访问代码,计算层可以随时将流量导向任何一个执行单元。并且代码文件发布到有限的代码文件服务集群上,进一步减少了代码发布失败的风险。计算层与代码文件的解耦减少了失败风险,提高了系统稳定性。此外,本系统的灵活性高,可扩展性好,并且通过缓存提高了访问速度,缓解了服务器压力。
[0045]下面参考图2和图3描述根据本发明实施例的云执行方法,其中,图2描述的是根据本发明实施例的具体的一种实现方案。代码管理服务器使用SVN。SVN是一种代码版本管理软件,本例中用户的代码提交到SVN提交模块上,由SVN进行统一的管理和版本控制。
[0046]Fuse (Filesystem In Userspace,用户空间文件系统)是在Iinux等平台上,用应用程序实现专用的文件系统的解决方案。其原理是在VFS (Virtual File System,虚拟文件系统)层上面实现一种类型为Fuse的文件系统,然后将VFS的各种请求发送给/dev/Fuse设备,用户程序监听该设备的请求并进行处理。Fuse能够提高生产率,简化为操作系统提供新的文件系统的工作量,特别适用于各种虚拟文件系统和网络文件系统。
[0047]因为Fuse的文件请求可以定制,这样代码文件可以不存放在本地机器,通过网络实现远程访问。根据本发明实施例的云执行方法采用Fuse完成对代码文件的访问,方法包括以下步骤:
[0048]步骤SllO:接收用户上传的代码文件,并建立代码文件与相应的应用程序之间的对应关系信息。其中,代码文件包括文件头信息和文件内容信息。
[0049]步骤S120:将代码文件和对应关系信息发送至代码文件服务集群,其中,代码文件服务集群包括多个用户空间文件系统Fuse服务器,多个Fuse服务器中的至少一个Fuse服务器保存代码文件和对应关系信息。
[0050]在本发明的一个实施例中,多个Fuse服务器中的一部分Fuse服务器保存代码文件和对应关系信息以相互构成备份。
[0051]代码文件服务集群还对多个Fuse服务器进行压力监控,并对压力超标的Fuse服务器进行自动扩容。
[0052]步骤S130:云执行集群获得需要执行的应用程序,并获得需要执行的应用程序相应的代码文件所存储的Fuse服务器的地址,其中,云执行集群包括多个Fuse客户端,多个Fuse客户端分别与代码文件服务集群中的多个Fuse服务器相连,以从多个Fuse服务器中获得相应的代码文件。
[0053]在本发明的一个实施例中,Fuse客户端对获得的相应的代码文件进行缓存。Fuse服务器在Fuse服务器中保存的代码文件更新之后,通知对应的Fuse客户端更新缓存。
[0054]具体的,Fuse客户端对响应的代码文件进行缓存进一步包括:
[0055]步骤S131:Fuse客户端记录代码文件的缓存时间。
[0056]步骤S132:判断缓存时间是否超过预设时间。
[0057]步骤S133:如果判断缓存时间超过预设时间,则更新文件头信息,并进一步将缓存的文件头信息与更新的文件头信息进行比较。
[0058]步骤S134:如果判断缓存的文件头信息与更新的文件头信息相同,则维持文件内容信息继续有效。
[0059]步骤S135:如果判断缓存的文件头信息与更新的文件头信息不同,则从Fuse服务器获得更新的文件内容信息。
[0060]步骤S140:云执行集群根据需要执行的应用程序从Fuse服务器中获取相应的代码文件。
[0061 ] 根据本发明实施例的云执行方法采用专门的文件服务器用来存放代码文件。应用程序的代码不发至计算层机器上,而发至专门的代码文件服务集群。在计算层机器上,当有文件请求时,云执行集群中的Fuse客户端从代码文件服务集群中的Fuse服务器得到对应关系信息,提取访问路径,并定位到保存应用程序的Fuse服务器上,对代码文件进行请求。
[0062]可以理解的是,上述实现方案仅出于示例目的,本发明的实施例不限于此。
[0063]根据本发明实施例的云执行方法不受限于应用代码的位置,计算层机器通过Fuse客户端即可访问代码,计算层可以随时将流量导向任何一个执行单元。并且代码文件发布到有限的代码文件服务集群上,进一步减少了代码发布失败的风险。计算层与代码文件的解耦减少了失败风险,提高了系统稳定性。此外,本方法的灵活性高,可扩展性好,并且通过缓存提高了访问速度,缓解了服务器压力。
[0064]在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。在本发明中,术语“多个”是指两个或两个以上。
[0065] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。
【权利要求】
1.一种云执行系统,其特征在于,包括代码管理服务器、代码文件服务集群和云执行集群,其中, 所述代码管理服务器,用于接收用户上传的代码文件,并建立所述代码文件与相应的应用程序之间的对应关系信息,并将所述代码文件和所述对应关系信息发送至所述代码文件服务集群; 所述代码文件服务集群,用于保存所述代码文件和所述对应关系信息,其中,所述代码文件服务集群包括多个用户空间文件系统Fuse服务器,所述多个Fuse服务器中的至少一个Fuse服务器保存所述代码文件和所述对应关系信息;以及 所述云执行集群,用于从所述代码管理服务器中获得需要执行的应用程序相应的代码文件所存储的Fuse服务器的地址,并根据需要执行的应用程序从所述Fuse服务器中获取相应的代码文件,其中,所述云执行集群包括多个Fuse客户端,所述多个Fuse客户端分别与所述代码文件服务集群中的多个Fuse服务器相连,以从所述多个Fuse服务器中获得相应的代码文件。
2.如权利要求1所述的云执行系统,其特征在于,所述多个Fuse服务器中的一部分Fuse服务器保存所述代码文件和所述对应关系信息以相互构成备份。
3.如权利要求1或2所述的云执行系统,其特征在于,所述代码文件服务集群对所述多个Fuse服务器进行压力监控,并对压力超标的Fuse服务器进行自动扩容。
4.如权利要求1-3任一项所述的云执行系统,其特征在于,所述代码文件包括文件头信息和文件内容信息。
5.如权利要求4所述的云执行系统,其特征在于,所述Fuse客户端对获得的相应的代码文件进行缓存。
6.如权利要求5所述的云执行系统,其特征在于,所述Fuse服务器还用于在所述Fuse服务器中保存的代码文件更新之后,通知对应的Fuse客户端更新缓存。
7.如权利要求5所述的云执行系统,其特征在于,所述Fuse客户端记录所述代码文件的缓存时间,在所述缓存时间超过预设时间之后,更新所述文件头信息,并将缓存的文件头信息与所述更新的文件头信息进行比较,如果相同则维持所述文件内容信息继续有效。
8.一种云执行方法,其特征在于,包括以下步骤: 接收用户上传的代码文件,并建立所述代码文件与相应的应用程序之间的对应关系信息; 将所述代码文件和所述对应关系信息发送至代码文件服务集群,其中,所述代码文件服务集群包括多个用户空间文件系统Fuse服务器,所述多个Fuse服务器中的至少一个Fuse服务器保存所述代码文件和所述对应关系信息; 云执行集群获得需要执行的应用程序,并获得所述需要执行的应用程序相应的代码文件所存储的Fuse服务器的地址,其中,所述云执行集群包括多个Fuse客户端,所述多个Fuse客户端分别与所述代码文件服务集群中的多个Fuse服务器相连,以从所述多个Fuse服务器中获得相应的代码文件;以及 所述云执行集群根据需要执行的应用程序从所述Fuse服务器中获取相应的代码文件。
9.如权利要求8所述的云执行方法,其特征在于,所述多个Fuse服务器中的一部分Fuse服务器保存所述代码文件和所述对应关系信息以相互构成备份。
10.如权利要求8所述的云执行方法,其特征在于,还包括: 所述代码文件服务集群对所述多个Fuse服务器进行压力监控,并对压力超标的Fuse服务器进行自动扩容。
11.如权利要求8所述的云执行方法,其特征在于,所述代码文件包括文件头信息和文件内容信息。
12.如权利要求11所述的云执行系统,其特征在于,还包括: 所述Fuse客户端对获得的相应的代码文件进行缓存。
13.如权利要求12所述的云执行方法,其特征在于,还包括: 所述Fuse服务器在所述Fuse服务器中保存的代码文件更新之后,通知对应的Fuse客户端更新缓存。
14. 如权利要求12所述的云执行方法,其特征在于,还包括: 所述Fuse客户端记录所述代码文件的缓存时间; 判断所述缓存时间是否超过预设时间; 如果判断所述缓存时间超过所述预设时间,则更新所述文件头信息,并进一步将缓存的文件头信息与所述更新的文件头信息进行比较; 如果判断所述缓存的文件头信息与所述更新的文件头信息相同,则维持所述文件内容信息继续有效;以及 如果判断所述缓存的文件头信息与所述更新的文件头信息不同,则从所述Fuse服务器获得更新的文件内容信息。
【文档编号】H04L29/06GK103685348SQ201210322669
【公开日】2014年3月26日 申请日期:2012年9月3日 优先权日:2012年9月3日
【发明者】陈思, 杜熙, 肖伟, 丁文斌 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1