CN118034774A - 一种程序发布和分发方法及系统 - Google Patents
一种程序发布和分发方法及系统 Download PDFInfo
- Publication number
- CN118034774A CN118034774A CN202410203758.9A CN202410203758A CN118034774A CN 118034774 A CN118034774 A CN 118034774A CN 202410203758 A CN202410203758 A CN 202410203758A CN 118034774 A CN118034774 A CN 118034774A
- Authority
- CN
- China
- Prior art keywords
- program
- software
- distribution
- application server
- software product
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013515 script Methods 0.000 claims description 6
- 230000010354 integration Effects 0.000 claims description 4
- 230000002085 persistent effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 abstract description 13
- 230000000977 initiatory effect Effects 0.000 abstract 1
- 239000003795 chemical substances by application Substances 0.000 description 6
- 238000012423 maintenance Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000007613 environmental effect Effects 0.000 description 2
- 230000008713 feedback mechanism Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种程序发布和分发方法及系统,首先使用CI工具编译源代码,生成软件制品并上传至OSS存储。然后通过上位控制平台发起升级指令,驱动目标环境的代理程序下载软件包并分发至应用服务器。最后,为程序运行准备必要的环境并在启动过程中检查服务状态,最终给予实时反馈。能够自动完成从源代码编译到软件制品分发的全过程,大大提高了软件发布的效率和准确性。
Description
技术领域
本发明涉及计算机软件工程技术领域,尤其涉及一种程序发布和分发方法及系统。
背景技术
本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
近年来,移动技术的飞速发展,多样的应用程序让人们在资讯获取、社交活动、游戏等多个方面得到极大的满足。在应用开发过程中,传统的程序发布和分发方式往往依赖于手动操作,而手动部署过程需要繁琐的操作,且容易出现错误;手动部署过程通常是不可重复的,这意味着在不同的环境中部署应用程序时,可能会出现不一致的情况;手动部署过程需要人工干预,无法实现自动化流程,这会导致发布速度慢,容易出现错误,同时也会占用人力资源。
虽然存在一些自动化发布的发布管理系统可供选择,可以帮助自动化和简化软件发布流程,然而这些发布系统存在高风险,不能完全的适配到任何行业和软件系统。随着软件规模的增大和更新频率的提升,一种自动化、高效、准确的程序发布和分发系统变得尤为重要。
发明内容
为克服上述现有技术的不足,本发明提供了一种程序发布和分发方法及系统,能够自动完成从源代码编译到软件制品分发的全过程,大大提高了软件发布的效率和准确性。
为实现上述目的,本发明的一个或多个实施例提供了如下技术方案:
第一方面,本发明提供一种程序发布和分发方法,包括:
将源代码编译为软件制品,并生成文件标签,将所述软件制品和文件标签上传至云平台进行存储;
根据软件升级指令驱动目标环境跳板机上的代理程序;
所述代理程序经云平台下载指定软件包至跳板机,并按照上位控制平台要求将所述软件包分发至目标应用服务器;
应用服务器为软件程序准备附件,在启动过程中检查服务启动情况,并给予实时反馈。
进一步的技术方案,所述软件制品是采用持续集成工具编译源代码获得。
进一步的技术方案,所述文件标签包括版本号和编译日期,根据文件标签确定指定软件包。
进一步的技术方案,所述软件升级指令通过上位控制平台发起。
进一步的技术方案,将所述软件包分发至应用服务器具体为:跳板机通过网络连接将软件制品传输至目标应用服务器。
进一步的技术方案,所述附件为必要的目录和启动脚本。
进一步的技术方案,通过接口或日志形式进行反馈。
第二方面,本发明提供一种程序发布和分发系统,包括:
软件上传模块,其被配置为:将源代码编译为软件制品,并生成文件标签,将所述软件制品和文件标签上传至云平台进行存储;
指令下发模块,其被配置为:根据软件升级指令驱动目标环境跳板机上的代理程序;
软件分发模块,其被配置为:所述代理程序经云平台下载指定软件包至跳板机,并按照上位控制平台要求将所述软件包分发至目标应用服务器;
软件应用模块,其被配置为:应用服务器为软件程序准备附件,在启动过程中检查服务启动情况,并给予实时反馈。
第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如第一方面所述的一种程序发布和分发方法中的步骤。
第四方面,本发明提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如第一方面所述的一种程序发布和分发方法中的步骤。
以上一个或多个技术方案存在以下有益效果:
本发明实现了从源代码编译到软件分发的全程自动化,减少了人工干预,提高了效率。同时,通过引入版本控制、OSS存储等机制,确保了软件制品的安全性和可追溯性。此外,通过反馈机制,使得整个流程更加透明可控。
本发明不仅保障了多环境下应用程序部署的一致性和稳定性,还成功屏蔽了底层程序打包的差异,为上层程序提供了统一、简洁的接口,极大地提升了程序发布和分发的效率及准确性。
本发明提供的程序发布和分发系统具备出色的兼容性,支持多种类型的程序打包,如Java程序、前端程序以及容器镜像等。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1是本发明实施例方法的流程图;
图2是本发明实施例整体系统架构图。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本发明提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
参见附图1所示,本实施例公开了一种程序发布和分发方法,包括以下步骤:
步骤一:将源代码编译为软件制品,并生成文件标签,将所述软件制品和文件标签上传至云平台进行存储;
在本实施例中,利用持续集成工具CI实现源代码的自动编译,减少人工操作,提高编译效率,同时也降低了因人为因素引发的错误。在该步骤中,可以使用任何支持将源代码编译为软件制品的CI工具,本实施例不作具体限定。
在本实施例中,生成的文件标签可以包括版本号、编译日期等信息;通过生成文件标签,实现版本的有效管理。
在本实施例中,Object Storage Service,即对象存储服务,使用HTTP API存储和检索非结构化数据和元数据对象的工具,是一种基于云计算的存储方式。利用OSS云存储,实现了软件制品的安全、可靠存储,同时便于后续的下载和分发。
在本实施例中,持续集成工具CI编译的软件制品也可作为容器存储对象,存储在容器仓库中,后续下载也可在容器仓库中下载指定软件包。但需要说明的是,即使使用容器存储的软件制品,也需要先下载文件标签,根据文件标签确定容器存储对象的版本号,然后在容器仓库中下载。
步骤二:根据软件升级指令驱动目标环境跳板机上的代理程序;
在本实施例中,通过上位控制平台发起软件升级指令驱动目标环境跳板机上的代理程序。其中,上位控制平台可以是一个独立的软件系统,用于管理软件部署和升级;代理程序可以是一个部署在环境跳板机上的小程序,用于下载和分发软件制品。
上位控制平台(包括但不限于公司运维平台、jenkins或其他与代理程序对接的应用程序)的主要功能是按照要求对任务进行编排和生成。通过向目标环境跳板机上的代理程序发送软件操作指令,指令内容包括需操作的软件名称,版本号,操作类型,部署类型,目标服务器和其它控制信息。上位控制平台能够实现对目标环境的操作和管理。
目标环境跳板机上的代理程序是一款高效可执行的工具。它不仅支持普通部署和容器部署,还兼容kubernetes容器编排平台。通过提供一个统一的入口和状态返回机制,该代理程序有效地消除了不同环境之间的差异,从而简化了运维的复杂性。其主要职责是接收并解析上位控制平台发出的指令。按照这些指令,代理程序能执行多项任务,包括部署、重启、删除和移动微服务,以及部署、重启、配置和删除中间件。此外,它还可以查询服务运行状态和应用配置信息,甚至在目标服务器上直接运行系统命令。
该步骤实现了软件的集中化、统一化管理,可以根据实际需要,灵活发起软件升级指令。
步骤三:所述代理程序经云平台下载指定软件包至跳板机,并按照上位控制平台要求将所述软件包分发至目标应用服务器;
具体的,所述代理程序经云平台下载指定软件包至跳板机的工作空间,根据文件标签确定指定软件包,文件标签中包含对应软件包的位置,需先下载文件标签后得到对应软件包的位置,之后再下载指定软件包,并将下载的软件包按照上位控制平台要求分发至目标应用服务器指定工作目录。
在本实施例中,目标环境代理程序经OSS云平台下载上位控制平台要求的软件包至跳板机;通过代理程序,实现软件包的快速、准确下载,为后续的分发步骤做好准备。
在本实施例中,分发至应用服务器可以通过网络连接将软件制品传输至目标服务器,按照要求将软件制品分发至应用服务器,上位控制平台的要求主要包括软件名,版本号,部署类型,操作类型,目标服务器和其它控制指令。
该步骤确保软件制品能够准确、及时地分发到各个应用服务器,保证服务的连续性和可用性。
步骤四:应用服务器为软件程序准备附件,在启动过程中检查服务启动情况,并给予实时反馈。
具体的,代理程序在目标服务器远程执行命令,将存放在配置中心的配置文件模板下载至目标应用服务器,并按照软件要求对模板进行修改和调整为该应用必要的专用附件。然后执行相关指令。在服务关闭、启动、删除过程中,代理程序每隔10s检查下程序运行状态。整个过程中在目标服务器保存完整的执行日志,在上位控制平台中提供实时信息反馈。反馈是实时进行的,在上位控制平台中会有返回的结果和执行状态信息,代理程序会记录完整的工作日志。
在本实施例中,为程序运行准备必要的目录和启动脚本等附件,准备的目录和启动脚本等附件可以根据实际需求进行配置和编写;该步骤确保了程序在目标服务器上能够顺利启动和运行,减少了因环境差异导致的问题。
在本实施例中,在启动过程中检查服务启动情况,可以使用任何适合的监控工具和技术来检查服务启动情况;通过检查服务的启动情况,可以及时发现并处理问题,确保服务的稳定性和可靠性。
在本实施例中,反馈可以包括启动结果、异常情况等信息,可以通过接口或日志形式反馈给用户和管理员;通过反馈机制,使操作者能够清晰地了解整个发布和分发流程的状态,为后续操作提供决策依据。
本发明提供了一种高效、一致且稳定的程序发布和分发系统。该系统通过集成CI工具,由研发人员将源代码编译成软件制品,并生成标签后上传至OSS存储。在发布阶段,上位控制平台发起软件升级指令,触发环境跳板机上的代理程序从OSS下载对应的文件至跳板机。此后,按照预设规则,软件制品会被按照上位控制平台要求分发至应用服务器。为确保程序的顺利运行,系统会预先准备必要的目录和启动脚本等附件。在启动过程中,服务启动情况会受到实时监控,并在流程结束时给予实时反馈,确保用户了解整个流程的状态。此外,该系统具备出色的兼容性,支持多种类型的程序打包,如Java程序、前端程序以及容器镜像等。本发明不仅保障了多环境下应用程序部署的一致性和稳定性,还成功屏蔽了底层程序打包的差异,为上层程序提供了统一、简洁的接口,极大地提升了程序发布和分发的效率及准确性,为软件工程领域提供了一种新型的程序发布和分发系统,具有很高的实用价值和广泛的应用前景。
实施例二
本实施例公开了一种程序发布和分发系统,具体包括:
软件上传模块,其被配置为:将源代码编译为软件制品,并生成文件标签,将所述软件制品和文件标签上传至云平台进行存储;
指令下发模块,其被配置为:根据软件升级指令驱动目标环境跳板机上的代理程序;
软件分发模块,其被配置为:所述代理程序经云平台下载指定软件包至跳板机,并按照上位控制平台要求将所述软件包分发至目标应用服务器;
软件应用模块,其被配置为:应用服务器为软件程序准备附件,在启动过程中检查服务启动情况,并给予实时反馈。
在本实施例中,如图2所示,系统整体流程为:研发人员通过CI工具从代码仓库中拉取源代码进行编译,生成软件制品和文件标签,上传至OSS云存储平台和容器仓库;分发部署程序可分别从OSS存储平台或容器仓库中拉取目标软件程序分发至目标应用服务器,所述分发部署程序分别与运维平台、CI/CD工具、预加载缓存、各应用服务器和配置中心双向数据通信,执行软件程序运行所需操作;可通过运维平台对分发部署程序进行升级;运维人员向配置中心升级启动脚本和配置。
实施例三
本实施例提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如实施例一所述的一种程序发布和分发方法中的步骤。
实施例四
本实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如实施例一所述的一种程序发布和分发方法中的步骤。
以上实施例三和四的装置中涉及的各步骤与方法实施例一相对应,具体实施方式可参见实施例一的相关说明部分。术语“计算机可读存储介质”应该理解为包括一个或多个指令集的单个介质或多个介质;还应当被理解为包括任何介质,所述任何介质能够存储、编码或承载用于由处理器执行的指令集并使处理器执行本发明中的任一方法。
本领域技术人员应该明白,上述本发明的各模块或各步骤可以用通用的计算机装置来实现,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。本发明不限制于任何特定的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种程序发布和分发方法,其特征是,包括:
将源代码编译为软件制品,并生成文件标签,将所述软件制品和文件标签上传至云平台进行存储;
根据软件升级指令驱动目标环境跳板机上的代理程序;
所述代理程序经云平台下载指定软件包至跳板机,并按照上位控制平台要求将所述软件包分发至目标应用服务器;
应用服务器为软件程序准备附件,在启动过程中检查服务启动情况,并给予实时反馈。
2.如权利要求1所述的一种程序发布和分发方法,其特征是,所述软件制品是采用持续集成工具编译源代码获得。
3.如权利要求1所述的一种程序发布和分发方法,其特征是,所述文件标签包括版本号和编译日期,根据文件标签确定指定软件包。
4.如权利要求1所述的一种程序发布和分发方法,其特征是,所述软件升级指令通过上位控制平台发起。
5.如权利要求1所述的一种程序发布和分发方法,其特征是,将所述软件包分发至应用服务器具体为:跳板机通过网络连接将软件制品传输至目标应用服务器。
6.如权利要求1所述的一种程序发布和分发方法,其特征是,所述附件为必要的目录和启动脚本。
7.如权利要求1所述的一种程序发布和分发方法,其特征是,通过接口或日志形式进行反馈。
8.一种程序发布和分发系统,其特征是,包括:
软件上传模块,其被配置为:将源代码编译为软件制品,并生成文件标签,将所述软件制品和文件标签上传至云平台进行存储;
指令下发模块,其被配置为:根据软件升级指令驱动目标环境跳板机上的代理程序;
软件分发模块,其被配置为:所述代理程序经云平台下载指定软件包至跳板机,并按照上位控制平台要求将所述软件包分发至目标应用服务器;
软件应用模块,其被配置为:应用服务器为软件程序准备附件,在启动过程中检查服务启动情况,并给予实时反馈。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一项所述的一种程序发布和分发方法中的步骤。
10.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-7中任一项所述的一种程序发布和分发方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410203758.9A CN118034774A (zh) | 2024-02-23 | 2024-02-23 | 一种程序发布和分发方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410203758.9A CN118034774A (zh) | 2024-02-23 | 2024-02-23 | 一种程序发布和分发方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118034774A true CN118034774A (zh) | 2024-05-14 |
Family
ID=90987093
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410203758.9A Pending CN118034774A (zh) | 2024-02-23 | 2024-02-23 | 一种程序发布和分发方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118034774A (zh) |
-
2024
- 2024-02-23 CN CN202410203758.9A patent/CN118034774A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111309441B (zh) | 一种基于Jenkins实现DevOps的微服务部署方法 | |
CN111142879B (zh) | 软件集成发布方法及自动运维平台 | |
US10114637B1 (en) | Automatically updating a shared project build platform | |
US8533676B2 (en) | Single development test environment | |
CN112882700B (zh) | iOS应用程序构建方法及装置、电子设备及存储介质 | |
US20130174124A1 (en) | Version numbering in single development and test environment | |
CN111324379B (zh) | 基于通用soa服务的模型部署系统 | |
CN112965786A (zh) | 一种基于容器化的持续集成和持续交付方法及装置 | |
CN112711411A (zh) | 一种基于Kubernetes及docker的CI/CD流水线系统 | |
EP2503449A2 (en) | Single development test environment | |
CN114253562A (zh) | 一种服务器软件包的管理及部署方法及其系统 | |
CN114237632A (zh) | 一种混合云自动化运维发布系统及其操作方法 | |
CN117539791B (zh) | 一种嵌入式软件的自动化测试系统 | |
CN111147291A (zh) | 一种服务维护方法及装置 | |
CN112860251A (zh) | 一种网站前端构建的方法与系统 | |
CN110647349B (zh) | 一种实现iOS APP持续交付的方法 | |
CN111522623B (zh) | 组件化软件多进程运行系统 | |
Salvador et al. | Embedded Linux Development Using Yocto Project: Leverage the power of the Yocto Project to build efficient Linux-based products | |
EP4162649B1 (en) | Stable references for network function life cycle management automation | |
CN118034774A (zh) | 一种程序发布和分发方法及系统 | |
CN114265595B (zh) | 一种基于智能合约的云原生应用开发与部署系统和方法 | |
CN113821228B (zh) | 一种基于分层容器镜像构建ros或类ros项目的方法 | |
AU2012201752A1 (en) | Version numbering in single development and test environment | |
CN112650189A (zh) | 一种嵌入式plc自动化测试系统及方法 | |
CN112836220B (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 |