一种基于多人协同办公软件的代码发版部署自动化方法及系统与流程

文档序号:21777940发布日期:2020-08-07 19:46阅读:239来源:国知局
一种基于多人协同办公软件的代码发版部署自动化方法及系统与流程

本发明涉及代码发版部署技术领域,具体涉及一种基于多人协同办公软件的代码发版部署自动化方法及系统。



背景技术:

以深度学习网络训练为代表的第三代人工智能技术发展日新月异,企业里一个项目的算法解决方案和模型层出不穷,一个算法开发项目所需开发和尝试算法越来越多,需要维护和迭代的算法版本也越来越多,算法发版人员要提测、集成、发版和部署一套人工智能算法的过程越来越繁重和复杂。随着提测和集成各个算法模块代码的发版工作量越来越大,因为人为疏漏和主观错误导致的算法代码发版问题也越来越突出,容易造成整套算法解决方案发版和部署的系统安全漏洞。但是,在万众创新、全民创业的年代,各家初创企业在面对巨大资金压力的时候,却难以投入资金去购买或建立昂贵的专业代码发版管理系统。如何以较为经济却行之有效的方式来进行算法代码的登记、提测、发版、部署等代码管理协同工作,是初创企业们面对的一个重要课题。

鉴于目前初创企业为了节约购买昂贵的office办公软件的购买成本,通常会采用采购诸如office365、钉钉文档、石墨文档、腾讯文档等多人协同办公软件的方案以替代,从而为员工提供相对廉价却轻便的互联网云平台协同办公环境。这些多人协同办公云平台具有多人即时协同修改同一份文档的功能,非常有助于进行多人参与的项目管理文档协作。同时,这些云平台也通常会提供文档导入导出的软件开发工具包(sdk)接口,为文档自动化读取和维护提供了相对成熟的条件。



技术实现要素:

针对现有技术中存在的上述问题,本发明提供一种基于多人协同办公软件的代码发版部署自动化方法及系统,其充分利用了现在多人协同办公平台的即时多人协同的特点,采用易于读取和维护的表格文件形式,基于多人协作建立的表格文件信息来全自动地完成代码提取、集成、发版和部署工作。

本发明公开了一种基于多人协同办公软件的代码发版部署自动化方法,包括:

部署具有定时功能的代码下载控制器;

控制器从办公协同平台获取算法版本的表格文件,判断需要部署的算法模块;

控制器根据所述算法模块从代码版本管理平台下载算法代码;

控制器将下载的算法代码进行格式转化及压缩打包;

控制器将打包的代码部署到指定的算法代码部署平台上。

作为本发明的进一步改进,还包括:

控制器将每步骤的执行日志信息存储在文件存储服务器上。

作为本发明的进一步改进,所述控制器从办公协同平台获取算法版本的表格文件,判断需要部署的算法模块;包括:

控制器操作所述办公协同平台的sdk,读取算法版本的表格文件;

控制器解析所述表格文件中每列和每行表格内的信息;

控制器在定时时间到达后读取表格文件是否部署和部署时间信息,判断算法模块是否到达预设部署时间;

若达到,则启动该算法的部署。

作为本发明的进一步改进,所述表格文件为微软office365的excel表格文件,所述表格文件包括算法名称、是否部署、部署日期、代码项目名称、地址路径、分支、版本和维护人,所述部署日期包含部署时间信息。

作为本发明的进一步改进,所述控制器根据所述算法模块从代码版本管理平台下载算法代码,包括:

控制器根据所述表格文件中需要部署的算法模块,登录该算法的代码版本管理平台;

根据所述表格文件中该算法的项目名称、地址路径、分支和版本,下载算法代码。

作为本发明的进一步改进,所述控制器将下载的算法代码进行格式转化及压缩打包,包括:

控制器根据算法代码保密性的部署要求,将需要部署的算法代码进行预设的代码格式转换和压缩打包。

作为本发明的进一步改进,所述控制器将打包的代码部署到指定的算法代码部署平台上,包括:

控制器登录算法代码部署平台,将打包的代码传输至所述算法代码部署平台。

本发明还公开了一种基于多人协同办公软件的代码发版部署自动化系统,包括:办公协同平台、代码版本管理平台、文件存储服务器和算法代码部署平台;还包括:具有定时功能的代码下载控制器;

所述控制器,用于从办公协同平台获取算法版本的表格文件,判断需要部署的算法模块;

所述控制器,用于根据所述算法模块从代码版本管理平台下载算法代码;

所述控制器,用于将下载的算法代码进行格式转化及压缩打包;

所述控制器,用于将打包的代码部署到指定的算法代码部署平台上。

作为本发明的进一步改进,所述控制器,包括:

读取模块,用于操作所述办公协同平台的sdk,读取算法版本的表格文件;其中,所述表格文件包括算法名称、是否部署、部署日期、代码项目名称、地址路径、分支、版本和维护人,所述部署日期包含部署时间信息;

解析模块,用于解析所述表格文件中每列和每行表格内的信息;

判断模块,用于在定时时间到达后读取表格文件是否部署和部署时间信息,判断算法模块是否到达预设部署时间;若达到,则启动该算法的部署;

第一接口模块,用于根据所述表格文件中需要部署的算法模块,登录该算法的代码版本管理平台;根据所述表格文件中该算法的项目名称、地址路径、分支和版本,下载算法代码;

转换、打包模块,用于根据算法代码保密性的部署要求,将需要部署的算法代码进行预设的代码格式转换和压缩打包;

第二接口模块,用于登录算法代码部署平台,将打包的代码传输至所述算法代码部署平台。

作为本发明的进一步改进,所述控制器,还包括:

读写模块,用于将每步骤的执行日志信息存储在文件存储服务器上。

与现有技术相比,本发明的有益效果为:

1.本发明充分利用了协同平台易于多人协同编辑优点,算法开发人员和代码发版人员能够一起协同使用,不需要额外的软件学习和培训成本;

2.本发明基于企业常见必备的多人协同办公软件平台进行发版管理,能有效地帮助企业节约软件采购资金成本;

3.本发明使用定时全自动发布算法的方法,效率更高,同时节省了人工工作量;

4.本发明使用定时全自动发布算法的方法,避免了人工账户登录,提高了系统安全性;

5.本发明主要使用了脚本语言完成,易于实现;不管在线上或线下,都易于部署;同时脚本语言可以编译成二进制文件,提高了安全性。

附图说明

图1为本发明一种实施例公开的基于多人协同办公软件的代码发版部署自动化方法的流程图;

图2为本发明一种实施例公开的基于多人协同办公软件的代码发版部署自动化系统的框架图;

图3为本发明一种实施例公开的控制器的框架图;

图4为本发明一种实施例公开的办公协作平台的表格文件示意图。

图中:

10、控制器;11、读取模块;12、解析模块;13、判断模块;14、第一接口模块;15、转换、打包模块;16、第二接口模块;17、读写模块;20、办公协同平台;30、代码版本管理平台;40、算法代码部署平台;50、文件存储服务器。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图对本发明做进一步的详细描述:

如图1所示,本发明提供一种基于多人协同办公软件的代码发版部署自动化方法,包括:

步骤1、在现有办公协同平台、代码版本管理平台、文件存储服务器和算法代码部署平台的基础上,部署具有定时功能的代码下载控制器;其中:

控制器的需满足如下功能:

1)、可操作办公协同软件平台sdk,进而读取指定办公协同平台的表格文件;其中,表格文件可以使用微软office365的excel表格文件;

2)、可操作表格文件,并解析出表格文件每列和每行表格内的信息;

3)、具有定时器功能,定时时间到达后,读取表格文件是否部署和部署时间信息,如果到达预设部署时间(算法开发人员填入的部署时间),则启动该算法的部署。可选地,控制器定时器取每5-30分钟检查一次表格文件。可选地,控制器定时器每天固定时间检查表格文件;

4)、具有从代码版本管理平台中下载代码的权限,可以读取版本管理平台的算法代码文件;优选地,代码版本管理平台为git版本管理系统;

5)、具有访问算法代码部署平台的权限;

6)、具有文件存储服务器的读写权限,可以备份、存储代码文件或存储日志信息;

7)、控制器使用脚本语言实现。优选地,控制器使用跟人工智能算法代码一致的python语言实现,控制器可以进一步编译成加密的二进制程序。

步骤2、控制器从办公协同平台获取算法版本的表格文件,判断需要部署的算法模块;

具体的实现方法为:

步骤21、控制器操作办公协同平台的sdk,读取算法版本的表格文件;

步骤22、控制器解析表格文件中每列和每行表格内的信息;其中,

如图4所示,表格文件包括算法名称、是否部署、部署日期、代码项目名称、地址路径、分支、版本和维护人,可选地,表格文件包含算法是否备份信息;可选地,办公协作平台选用office365多人协同办公平台;优选地,是否部署列选用简要的标志,如“y”或“n”,方便算法开发人员填写和程序判断;优选地,部署日期包含部署时间信息;

步骤23、控制器在定时时间到达后读取表格文件是否部署和部署时间信息,判断算法模块是否到达预设部署时间;若达到,则启动该算法的部署;其中,

控制器先判断该算法的是否部署列是否为“y”,如果是再去检查部署日期和时间,如果部署日期和时间到达,则部署该算法代码。如果所有部署标志为“是”且没有到达部署时间的算法,此次自动部署完毕,控制器把此次算法部署信息写入日志文件后返回,停止执行后续步骤,直到下一次自动部署检查开启。

步骤3、控制器根据算法模块从代码版本管理平台下载算法代码;

具体的实现方法为:

控制器根据表格文件中需要部署的算法模块,登录该算法的代码版本管理平台;根据表格文件中该算法的项目名称、地址路径、分支和版本,下载算法代码。优选地,代码版本管理平台可以选用git管理。

步骤4、控制器将下载的算法代码进行格式转化及压缩打包;

具体的实现方法为:

控制器根据算法代码保密性的部署要求,将需要部署的算法代码进行预设的代码格式转换和压缩打包。优选地,对于基于python开发的人工智能算法代码可以从*.py格式转换为*.pyc格式;优选地,可以把目标代码文件夹进行zip格式压缩打包;可选地,可以进一步根据算法部署要求对算法代码进行其它形式的编译、加密或压缩。

步骤5、控制器将打包的代码部署到指定的算法代码部署平台上;

具体的实现方法为:

控制器登录算法代码部署平台,将打包的代码传输至算法代码部署平台;优选地,算法代码部署平台采用容器化部署平台docker。优选地,控制器访问算法代码部署平台采用restapi接口。

步骤6、控制器输出部署结果日志信息,并将步骤2~5的执行日志信息存储在文件存储服务器上;其中,

优选地,记录需要部署的算法模块是否部署成功,算法模块的部署日期,部署过程使用时间。可选地,记录备份文件地址,文件名字和大小。可选地,文件日志服务器可以和控制器使用同一个服务器。

进一步,

1.本发明中以算法代码的部署为例,在适合的场景,可拓展为其他需要维护、集成大量不同代码版本和模块的场合;

2.本发明中的采用定时控制器+办公协作平台表格的形式,可以应用到检查部署算法模块的每日代码更新数量统计,算法开发人员工作量评估等管理信息。

如图2所示,本发明提供一种基于多人协同办公软件的代码发版部署自动化系统,包括:具有定时功能的代码下载控制器10、办公协同平台20、代码版本管理平台30、算法代码部署平台40和文件存储服务器50;其中,

本发明的办公协同平台20、代码版本管理平台30、算法代码部署平台40和文件存储服务器50均与控制器10相连。

基于上述构建的系统,其实现代码发版部署自动化的实现过程为:

控制器10在独立的办公协同平台20、代码版本管理平台30、算法代码部署平台40和文件存储服务器50之间起到连接调配的作用,其中:

控制器10,用于从办公协同平台获取算法版本的表格文件,判断需要部署的算法模块;

控制器10,用于根据算法模块从代码版本管理平台下载算法代码;

控制器10,用于将下载的算法代码进行格式转化及压缩打包;

控制器10,用于将打包的代码部署到指定的算法代码部署平台上。

控制器10,用于输出部署结果日志信息,并将上述各步骤的执行日志信息存储在文件存储服务器上。

为保证上述实现过程的顺利进行,本发明控制器10的需满足如下功能:

1)、可操作办公协同软件平台sdk,进而读取指定办公协同平台的表格文件;其中,表格文件可以使用微软office365的excel表格文件;

2)、可操作表格文件,并解析出表格文件每列和每行表格内的信息;

3)、具有定时器功能,定时时间到达后,读取表格文件是否部署和部署时间信息,如果到达预设部署时间(算法开发人员填入的部署时间),则启动该算法的部署。可选地,控制器定时器取每5-30分钟检查一次表格文件。可选地,控制器定时器每天固定时间检查表格文件;

4)、具有从代码版本管理平台中下载代码的权限,可以读取版本管理平台的算法代码文件;优选地,代码版本管理平台为git版本管理系统;

5)、具有访问算法代码部署平台的权限;

6)、具有文件存储服务器的读写权限,可以备份、存储代码文件或存储日志信息;

7)、控制器使用脚本语言实现。优选地,控制器使用跟人工智能算法代码一致的python语言实现,控制器可以进一步编译成加密的二进制程序。

具体的:

如图3所示,本发明的控制器10包括读取模块11、解析模块12、判断模块13、第一接口模块14、转换、打包模块15、第二接口模块16、读写模块17;其中:

读取模块11,用于实现上述步骤21;

解析模块12,用于实现上述步骤22;

判断模块13,用于实现上述步骤23;

第一接口模块14,用于实现上述步骤3;

转换、打包模块15,用于实现上述步骤4;

第二接口模块16,用于实现上述步骤5;

读写模块17,用于实现上述步骤6。

进一步,

1.本发明中以算法代码的部署为例,在适合的场景,可拓展为其他需要维护、集成大量不同代码版本和模块的场合;

2.本发明中的采用定时控制器+办公协作平台表格的形式,可以应用到检查部署算法模块的每日代码更新数量统计,算法开发人员工作量评估等管理信息。

本发明的优点为:

1.本发明充分利用了协同平台易于多人协同编辑优点,算法开发人员和代码发版人员能够一起协同使用,不需要额外的软件学习和培训成本;

2.本发明基于企业常见必备的多人协同办公软件平台进行发版管理,能有效地帮助企业节约软件采购资金成本;

3.本发明使用定时全自动发布算法的方法,效率更高,同时节省了人工工作量;

4.本发明使用定时全自动发布算法的方法,避免了人工账户登录,提高了系统安全性;

5.本发明主要使用了脚本语言完成,易于实现;不管在线上或线下,都易于部署;同时脚本语言可以编译成二进制文件,提高了安全性。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本发明优选实施例只是用于帮助阐述本发明。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

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