一种基于云平台的产品发布及部署系统技术方案

技术编号:12305365 阅读:69 留言:0更新日期:2015-11-11 14:50
本发明专利技术公开了一种基于云平台的产品发布及部署系统,包括一调度系统、一源代码服务器、多个测试服务器、多个生产服务器,所述源代码服务器、测试服务器和生产服务器均具有一组发布系统和部署系统,该调度系统用于分配任务给发布系统和部署系统,源代码服务器用于提供源代码;发布系统从源代码服务器获取最新源代码然后经过本地编译生成可执行程序,可执行程序同步到云平台的文件存储服务器中然后自动发布至测试服务器进行测试;当测试达到上线标准后,通过部署系统更新可执行程序至全部或者指定的生产服务器。本发明专利技术的产品发布及部署系统将云平台上的产品发布、测试和部署自动化,使产品最终上线交付更可靠、更健壮。

【技术实现步骤摘要】

本专利技术属于网络云技术,具体涉及一种基于云平台的产品发布及部署系统
技术介绍
如何实现基于云平台上的产品开发、测试、上线的整个流程的自动化,使之产品能够按照其自身迭代的周期持续发展,是本领域亟待解决的问题。现行的技术中,针对开发、测试、上线各个环节都有相应的系统工具实现,针对特定的产品作企业定制,也可以基本实现自动化,但是针对云平台的流程自动化工具则稀少。为了提高产品的可维护性、可扩展性,降低运维成本,已将产品开发、测试和上线等流程从传统的物理服务器集群中迀移到云平台,这样可以充分利用云平台的虚拟机资源。但是伴随而来的是相应配套工具的缺失,虽然能够按照原来旧的方式进行开发、测试和上线,已经无法更高效地促进产品发展。由于云平台上对所有虚拟机配置的限制,使之无法部署单个配置极高的服务器节点,只能提供一系列统一的、流水线型生产出来的服务器。
技术实现思路
为了克服上述技术问题,本专利技术旨在实现一个机制,使云平台任意服务器节点都可以运行发布和部署系统,使原来的一个集中的发布和部署系统,变成一个分布式的可调度发布和部署平台。本专利技术采用的技术方案是: 一种基于云平台的产品发布及部署系统,包括一调度系统、一源代码服务器、多个测试服务器、多个生产服务器,所述源代码服务器、测试服务器和生产服务器均具有一组发布系统和部署系统,该调度系统用于分配任务给发布系统和部署系统,源代码服务器用于提供源代码;发布系统从源代码服务器获取最新源代码然后经过本地编译生成可执行程序,可执行程序同步到云平台的文件存储服务器中然后自动发布至测试服务器进行测试;当测试达到上线标准后,通过部署系统更新可执行程序至全部或者指定的生产服务器。所述调度系统根据每个服务器的运行状况动态分配发布或者部署任务,如果单个服务器过于繁忙,即cpu、内存资源占用较多则自动找下一个服务器执行任务;如果单个服务器有空闲资源但不足以完成全部任务,则只分配其对若干个服务器发布或部署子任务。所述调度系统平均分配任务,每个服务器均发布可执行程序到指定的测试服务器,或者部署测试过的可执行程序到指定的生产服务器。所述测试服务器包含Alpha测试环境和beta测试环境。所述调度系统记录所有的发布、部署任务的明细、运行进度和结果报告,以及定时监控所有服务器的健康状况。本专利技术的有益效果是:本专利技术的产品发布及部署系统将云平台上的产品发布、测试和部署自动化,使产品最终上线交付更可靠、更健壮。【附图说明】下面结合附图对本专利技术的【具体实施方式】做进一步的说明。图1是本专利技术产品发布及部署系统的原理框架图; 图2是本专利技术产品发布及部署系统的工作流程图。【具体实施方式】参考图1和图2所示,为本专利技术的一种基于云平台的产品发布及部署系统,包括一调度系统、一源代码服务器、多个测试服务器、多个生产服务器,所述源代码服务器、测试服务器和生产服务器均具有一组发布系统和部署系统,该调度系统用于分配任务给发布系统和部署系统,源代码服务器用于提供源代码,测试服务器用于完成产品的可执行程序测试,生产服务器用于更新测试后符合标准的产品至云平台上。由于所有应用都部署在云平台中,如下图所示,每个服务器都可以运行发布系统和部署系统,调度系统根据每个节点的运行状况动态分配发布或者部署任务。如果单个节点过于繁忙,其cpu、内存等资源占用较多,也就无法承受任务则自动找下一个节点;如果单个节点有空闲资源但是不足以完成全部任务,则只分配其对若干个服务器发布或部署子任务。理想的情况下,调度系统会平均分配任务,每个节点都有可能发布到指定的测试服务器,或者部署到指定的生产服务器。产品的生产、测试、上线的流程自动化如图2所示,发布系统从工程源代码中拉取最新源代码后,经本地编译生成可执行程序,同步到云平台的文件存储服务器中,然后自动更新到测试环境。更新到测试环境时,根据发布时选择的分支,自动寻找alpha或者beta测试环境来更新,不同的分支对应的测试环境都不一样。Alpha、beta测试环境都可能有多个服务器,需要更新到那个服务器,调度系统会根据当时的服务器情况来动态分配任务。当测试达到上线标准后,可通过部署系统更新全部或者指定的生产服务器。部署系统先获取生产环境的版本号,然后从文件存储服务器中拉取需要更新的可执行程序,根据实际需要选择目标的生产环境服务器来部署。调度系统会根据当时云平台的所有可用的服务器资源来评估,自动分配部署任务。调度系统会记录所有的发布、部署任务的明细、运行进度和结果报告,以及定时监控所有服务器的健康状况。对比传统的基于单个或集群的服务器来说,基于云平台的产品上线的更加标准化,不存在个别服务器配置特别高、特别低的情况,这样就要求发布、部署工具必须能够充分利用有限的资源来达到预期的效果。该专利技术可以实时监控所有服务器的运行状态,并且动态分配服务器来完成发布、部署任务。这些任务有可能被拆分成为多个子任务,每个资源有限的服务器只会接收到特定的子任务,更新特定的测试、生产服务器。最终的效果有调度系统决定。如果某些测试、生产服务器节点更新失败,调度系统会自动重新下发任务,分配到其他服务器节点去执行。这样做可以提高产品上线的可靠性和自动化程度。以上所述仅为本专利技术的优先实施方式,本专利技术并不限定于上述实施方式,只要以基本相同手段实现本专利技术目的的技术方案都属于本专利技术的保护范围之内。【主权项】1.一种基于云平台的产品发布及部署系统,其特征在于:包括一调度系统、一源代码服务器、多个测试服务器、多个生产服务器,所述源代码服务器、测试服务器和生产服务器均具有一组发布系统和部署系统,该调度系统用于分配任务给发布系统和部署系统,源代码服务器用于提供源代码;发布系统从源代码服务器获取最新源代码然后经过本地编译生成可执行程序,可执行程序同步到云平台的文件存储服务器中然后自动发布至测试服务器进行测试;当测试达到上线标准后,通过部署系统更新可执行程序至全部或者指定的生产服务器。2.根据权利要求1所述的一种基于云平台的产品发布及部署系统,其特征在于:所述调度系统根据每个服务器的运行状况动态分配发布或者部署任务,如果单个服务器过于繁忙,即cpu、内存资源占用较多则自动找下一个服务器执行任务;如果单个服务器有空闲资源但不足以完成全部任务,则只分配其对若干个服务器发布或部署子任务。3.根据权利要求1所述的一种基于云平台的产品发布及部署系统,其特征在于:所述调度系统平均分配任务,每个服务器均发布可执行程序到指定的测试服务器,或者部署测试过的可执行程序到指定的生产服务器。4.根据权利要求1所述的一种基于云平台的产品发布及部署系统,其特征在于:所述测试服务器包含Alpha测试环境和beta测试环境。5.根据权利要求1所述的一种基于云平台的产品发布及部署系统,其特征在于:所述调度系统记录所有的发布、部署任务的明细、运行进度和结果报告,以及定时监控所有服务器的健康状况。【专利摘要】本专利技术公开了一种基于云平台的产品发布及部署系统,包括一调度系统、一源代码服务器、多个测试服务器、多个生产服务器,所述源代码服务器、测试服务器和生产服务器均具有一组发布系统和部署系统,该调度系统用于分配任务给发布系统和部署系统,源代码服务器用于提供源代码;发布系统从源代码服务器获取本文档来自技高网...

【技术保护点】
一种基于云平台的产品发布及部署系统,其特征在于:包括一调度系统、一源代码服务器、多个测试服务器、多个生产服务器,所述源代码服务器、测试服务器和生产服务器均具有一组发布系统和部署系统,该调度系统用于分配任务给发布系统和部署系统,源代码服务器用于提供源代码;发布系统从源代码服务器获取最新源代码然后经过本地编译生成可执行程序,可执行程序同步到云平台的文件存储服务器中然后自动发布至测试服务器进行测试;当测试达到上线标准后,通过部署系统更新可执行程序至全部或者指定的生产服务器。

【技术特征摘要】

【专利技术属性】
技术研发人员:余敬龙
申请(专利权)人:广东能龙教育股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1