自动化产品发布系统的制作方法

文档序号:11233832阅读:392来源:国知局
自动化产品发布系统的制造方法与工艺

本发明涉及计算机网络技术,具体而言,涉及一种自动化产品发布系统。



背景技术:

目前,软件产品的开发大致可分为代码开发、编译、测试及产品发布四个阶段。在每个阶段中都有相应的管理工具,例如代码开发阶段用于代码版本管理的git和svn,编译阶段的buildbot,产品发布阶段的jenkins等。但这些管理工存在一个共同的问题,需要开发人员先学习相关规范,而无法开箱即用直接上手。因此导致在软件开发周期中,编译、发布等阶段人工干预过多,从而使产品开发、发布效率低且管理难度大。



技术实现要素:

有鉴于此,本发明提供一种自动化产品发布系统,能够降低人工干预,提高产品发布效率。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明的一方面,提供了一种自动化产品发布系统,包括:代码管理模块,用于代码开发阶段中的代码管理;代码编译模块,用于编译阶段中的代码编译;代码测试模块,用于测试阶段中的代码测试;产品发布模块,用于产品发布阶段中的产品发布;用户接口模块,用于接收用户对所述代码开发阶段、所述编译阶段、所述测试阶段及所述产品发布阶段各自的配置信息;以及调度模块,与所述代码编译模块、所述代码测试模块、所述产品发布模块及所述用户接口模块耦接,用于根据所述代码开发阶段、所述编译阶段、所述测试阶段和所述产品发布阶段 各自的配置信息,对所述代码管理模块、所述编译模块、所述测试模块及所述产品发布模块中的部分或全部的执行流程进行调度。

根据本发明的一实施方式,所述用户接口模块为web用户界面,可以显示所述代码管理模块、代码编译模块、所述代码测试模块、所述产品发布模块的工作状态。

根据本发明的一实施方式,所述调度模块监测代码管理模块、代码编译模块、所述代码测试模块、所述产品发布模块并向所述用户接口模块发送监测结果。

根据本发明的一实施方式,所述产品发布模块为saltstack系统,所述saltstack系统包括:saltstack主控端和至少一台saltstack被控端;所述saltstack主控端与所述调度模块连接,用于接受所述调度模块的调度,并根据所述调度模块的调度,控制所述至少一台saltstack被控端进行产品发布。

根据本发明的一实施方式,所述至少一台saltstack被控端为装载有saltstack被控端软件的应用服务器,所述saltstack主控端根据所述调度模块的调度,控制所述应用服务器进行应用软件产品的发布。

根据本发明的一实施方式,所述调度模块还用于调度所述应用服务器加载编译后的代码,以对所述应用服务器进行相应操作。

根据本发明的一实施方式,所述代码测试模块包括装载有silktest代码测试软件的一台或多台服务器,以用于所述测试阶段中的远程代码测试。

根据本发明的一实施方式,所述代码编译模块包括至少一台编译服务器,以用于所述编译阶段中的远程代码编译。

根据本发明的一实施方式,所述代码管理模块包括装载有git代码管理软件的多台服务器,以用于所述代码开发阶段中的分布式代码管理。

根据本发明的一实施方式,对所述代码管理模块、所述编译模块、所述测试模块及所述产品发布模块中的部分或全部的执行流程进行调度包括:所述调度模块调度所述代码编译模块对所述代码管理模块提供的代码进行编译;调度所述代码测试模块对所述代码编译模块编译后的代 码进行测试;以及调度所述产品发布模块对测试后的代码产品进行发布。

根据本发明的一实施方式,对所述代码管理模块、所述编译模块、所述测试模块及所述产品发布模块中的部分或全部的执行流程进行调度包括:所述调度模块调度所述代码测试模块加载已编译后的代码,并对所述代码进行测试;以及调度所述产品发布模块对测试后的代码产品进行发布。

根据本发明的自动化产品发布系统提供了一种松耦合的流程调度,通过分别配置产品开发全流程中各个阶段的流程及操作环境等,可以实现对产品开发全流程中的一个或多个阶段的流程单独进行调度,有效减少了产品开发全流程中的人工干预,提升了产品开发效率,并减少了管理难度;此外,本发明的自动化产品发布系统还解决了现有各阶段管理工具接口不一致不兼容等问题,将各阶段管理工具耦合,实现了真正的自动化产品发布。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。

图1是根据一示例性实施方式示出的一种自动化产品发布系统的框图。

图2是根据一示例性实施方式示出的图1所示的自动化产品发布系统的工作流程图。

具体实施方式

现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。附图仅为本发明的示意性图解,并 非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知结构、方法、装置、实现或者操作以避免喧宾夺主而使得本发明的各方面变得模糊。

图1是根据一示例性实施方式示出的一种自动化产品发布系统的框图。如图1所示,自动化产品发布系统10包括:调度模块102、代码管理模块104、代码编译模块106、代码测试模块108、产品发布模块110及用户接口模块112。

其中,代码管理模块104用于代码管理,如版本管理等。例如可以包括或实施为装载有git代码管理软件的一台或多台服务器,从而使开发人员可以利用git对代码进行分布式管理。

代码编译模块106用于对开发人员开发的代码进行编译。例如可以包括或实施为一台或多台编译服务器,从而实现远程编译。

代码测试模块108用于对编译后的代码进行测试。例如可以包括或实施为装载有silktest代码测试软件的一台或多台服务器,对编译后的代码进行测试。

产品发布模块110用于软件产品的发布。例如可以包括或实施为saltstack系统,saltstack系统包括:saltstackmaster(主控端)1102和多台saltstackminion(被控端)1104,其中saltstackminion1104例如为各应用服务器(appserver)。saltstackmaster1102控制各应用服务器进行应用产品的发布。saltstack系统可实现软件产品的远程发布。

用户接口模块112用于提供人机接口,接收用户的配置信息。例如可以实施为web用户界面。

调度模块102用于根据从用户接口模块112接收的用户配置信息, 对上述各模块的执行流程进行调度。

用户接口模块112与调度模块102可以实施在同一物理实体(如服务器)中;或者,也可以实施为不同的物理实体,本发明不以此为限。

图2是根据一示例性实施方式示出的图1所示的自动化产品发布系统的工作流程图。根据用户配置信息,调度模块102指示代码编译模块106对代码管理模块104提供的相应版本的代码进行编译;并调度代码测试模块108对编译后的代码进行测试;最后指示产品发布模块110对测试完成的代码进行发布。例如如图1所示,调度模块102与saltstackmaster1102连接,指示saltstackmaster1102控制器下辖的saltstackminion1104进行产品发布。此外,在产品发布阶段中,还可以根据调度模块102的调度返回代码测试阶段再次进行测试,之后再次进入产品发布阶段重新发布产品。

因为在产品开发的全流程中,各个阶段都可以通过用户接口单元112进行单独的配置,所以调度模块102还可以根据用户配置信息,改变上述代码开发、编译、测试及产品发布的作业流程,而仅对其中的一个或多个流程单独进行调度。例如,当开发人员不想使用其他的代码管理工具,也不想进行远程编译。开发人员可以将本地编译好的代码包上传,通过调度模块102调度代码测试模块108对上传的编译包进行自动测试,之后再调度产品发布模块110对测试后的产品进发布。或者,当开发人员不想使用其他的代码管理工具,也不想进行远程编译及自动化测试,而仅想将本地编译好的代码包进行上传,并通过调度模块102的调度用于对应用服务器(saltstackminion1104)进行若干操作(如重启、修改配置等)。

在本发明中,调度模块102可以对代码管理模块104、代码编译模块106、代码测试模块108、产品发布模块110的工作状态进行监测并将监测结果发送至用户接口单元112。在用户接口单元112上,通过可视化方式向用户展示各工作模块的工作状态及可调配资源,供用户在下达配置信息前决策参考。例如,当用户通过用户接口单元112了解代码编译模块106工作不饱和,则可向代码编译模块106下达其他代码编译工作的配置信息,指示代码编译模块106单独完成该部分工作。又例如,当用 户通过用户接口单元112了解代码编译模块106工作过饱和,则可调用其他代码编译模块,连接至调度模块102上,缓解代码编译工作过饱和问题。以上仅是为显示本发明的自动化产品发布系统功能的举例,但本发明并不限于此。本发明提供的自动化产品发布系统,提供了一种松耦合的流程调度,通过分别配置产品开发全流程中各个阶段的流程及操作环境等,可以实现对产品开发全流程中的一个或多个阶段的流程单独进行调度,有效减少了产品开发全流程中的人工干预,提升了产品开发效率,并减少了管理难度;此外,本发明的自动化产品发布系统还解决了现有各阶段管理工具接口不一致不兼容等问题,将各阶段管理工具耦合,实现了真正的自动化产品发布。

需要注意的是,上述附图中所示的框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本发明实施方式的方法。

以上具体地示出和描述了本发明的示例性实施方式。应可理解的是,本发明不限于这里描述的详细结构、设置方式或实现方法;相反,本发明意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。

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