CN113127052A - 一种基于多目标文件托管的项目信息交付方法 - Google Patents

一种基于多目标文件托管的项目信息交付方法 Download PDF

Info

Publication number
CN113127052A
CN113127052A CN202110471164.2A CN202110471164A CN113127052A CN 113127052 A CN113127052 A CN 113127052A CN 202110471164 A CN202110471164 A CN 202110471164A CN 113127052 A CN113127052 A CN 113127052A
Authority
CN
China
Prior art keywords
project
file
information
code
acquiring
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
Application number
CN202110471164.2A
Other languages
English (en)
Inventor
余张民
仲跻炜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ouye Yunshang Co ltd
Original Assignee
Ouye Yunshang Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ouye Yunshang Co ltd filed Critical Ouye Yunshang Co ltd
Priority to CN202110471164.2A priority Critical patent/CN113127052A/zh
Publication of CN113127052A publication Critical patent/CN113127052A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Power Engineering (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Automation & Control Theory (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种基于多目标文件托管的项目信息交付方法,包括步骤:1)创建发布任务,获取项目配置属性,根据项目代码库信息获取项目代码文件;2)获取托管配置属性,根据项目代码库信息获取项目托管代码文件;3)获取项目动态路径配置,对托管文件进行替换;4)获取项目打包编译命令,获得项目产物;5)获取项目发布脚本,将产物推送目标机器后,运行脚本进行发布。与现有技术相比,本发明具有配置灵活、提升系统整体的安全性、支持项目单独发布等优点。

Description

一种基于多目标文件托管的项目信息交付方法
技术领域
本发明涉及计算机技术领域,尤其是涉及一种基于多目标文件托管的项目信息交付方法。
背景技术
随着目前企业内信息化程度的不断增加,软件项目产品的不断累积,也为软件项目产品的持续交付提出了更多的要求。不同的软件项目产品交付涉及到环境差异、代码仓库差异、安全因素等影响,现有交付模式和交付工具往往只能关注特定的几个影响点,存在缺陷如下:
1、多环境同时管理,存在网络安全问题,不符合环境隔离原则;
2、可支持配置动态修改,但托管配置文件类型支持范围有局限性;
3、多环境托管文件配置key-val对繁琐,效率低下;
4、托管系统存在一定的权限相关安全漏洞;
5、发布进度及关键进度情况不详,缺乏履历信息支持。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于多目标文件托管的项目信息交付方法。
本发明的目的可以通过以下技术方案来实现:
一种基于多目标文件托管的项目信息交付方法,该方法包括如下步骤:
S1:创建发布任务,获取项目配置属性,根据项目代码库信息获取项目代码文件。具体步骤包括:
S101:判断代码库类型,配置项目代码库信息;若为svn方式的代码库,则配置对该代码库的url访问地址和访问所需的认证信息,若为git方式的代码库,则配置对该代码库的url访问地址、访问所需的认证信息以及分支信息。
S102:根据配置后的项目代码库信息,初始化代码库对应的拉取客户端,拉取客户端拉取代码文件到指定目录,同时生成对应履历信息。
若代码库为svn方式的代码库,则初始化svn对应的拉取客户端,拉取项目工程文件,若代码库为git方式的代码库,则初始化git客户端,拉取指定分支项目工程文件,拉取文件后生成项目文件目录,同时生成对应的拉取履历信息和文件履历信息。
S2:获取托管配置属性,根据项目代码库信息获取项目托管代码文件。具体步骤包括:
S201:判断代码库类型,配置托管文件代码库信息;若为svn方式的代码库,则配置对该代码库的url访问地址和访问所需的认证信息,若为git方式的代码库,则配置对该代码库的url访问地址、访问所需的认证信息以及分支信息。
S202:根据托管文件的代码库信息,初始化对应的拉取客户端,拉取客户端拉取托管文件到指定的临时目录。
若代码库为svn方式的代码库,则初始化svn对应的拉取客户端,拉取托管文件,若代码库为git方式的代码库,则初始化git客户端,拉取指定分支托管文件,拉取文件后生成项目托管文件临时目录,同时生成对应的拉取履历信息和文件履历信息。
S3:获取项目动态路径配置,对托管文件进行替换。具体地,针对不同的项目文件自定义配置项目动态路径信息,将临时目录中的文件,对项目文件进行同路径同文件名覆盖,完成后,将对应的配置文件临时目录进行清理。
S4:获取项目打包编译命令,获得项目产物。
S5:获取项目发布脚本,将产物推送目标机器后,运行脚本进行发布。进一步地,将生成的产物文件,推送至指定的目标机器中,获取发布脚本,目标机器运行相关该脚本,同时监控相关状态信息,判断发布任务完成状态后,生成并展示发布履历信息以及任务整体信息。
进一步地,通过scp命令及上下文中的路径信息将生成的产物文件,推送至指定的目标机器中。
本发明提供的基于多目标文件托管的项目信息交付方法,相较于现有技术至少包括如下有益效果:
一、各环境独立部署,利用所属网段间的不可访问性避免网络安全问题,方便权限管理,提升系统整体的安全性;
二、本发明在获取项目配置属性和托管文件属性后分别对代码库进行判断,以针对不同代码库获取不同的拉取文件及目录,实现了项目工程代码和托管文件代码库可同时支持git和svn的功能,配置更加灵活;
三、配置托管在项目产物生成前,采用同路径同名文件覆盖方式,可支持多种文件类型的配置托管,同时避免了现有繁琐的键值对配置,简化操作,更加灵活;
四、本发明通过采用多部署方式支持,可同时支持项目单独发布,实现批量灵活发布、优雅发布等;
五、在获取项目工程文件和托管文件时,通过配置url访问地址和访问所需的认证信息,对配置的用户名密码进行认证,并对通过后访问的url进行授权校验,即依托git和svn的安全认证及权限控制,能够提升文件的安全性和隐私性;
六、本发明方法会在发布过程中对关键步骤进行履历信息的存储,通过对履历信息的判断,实现发布进度进行跟踪展示,并能够实时查询多履历信息,友好支撑发布人员掌握发布任务状态,便于任务异常状态的排查。
附图说明
图1为实施例中基于多目标文件托管的项目信息交付方法的流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
实施例
如图1所示,本发明涉及一种基于多目标文件托管的项目信息交付方法,该方法以多环境部署的方式,依托网络隔离提升系统安全性。多代码库支持方式灵活配置,配置文件整体覆盖的方式,简化操作。该方法具体包括如下步骤:
步骤一、创建发布任务,获取项目信息配置属性,根据项目代码库信息获取项目代码文件。具体地:
1.1)获取项目信息:项目信息在节点管理项目中进行维护,配置的代码库信息有svn和git两种类型,具体为配置代码库的url访问地址、访问所需的认证信息,若为git仓库,则需额外配置分支信息。发布任务执行时,通过Rest请求获取配置url访问地址和访问所需的认证信息,用于对配置的用户名密码进行认证,通过后对访问的url进行授权校验,以确保工程文件的安全性和隐私性。
1.2)项目代码获取:根据配置后的项目的代码库信息,利用maven仓库里映入的公用组件,初始化对应的拉取客户端,拉取客户端拉取代码文件到指定目录。同时生成对应履历信息。拉取的代码文件位于配置的文件目录下,同一项目下可保存多份项目产物,可通过日期等方式命名文件名来进行区分,一次进行项目产物历史记录的备份。同时,项目的全量路径名会利用ThreadLocal技术保存在当前线程的上下文环境中,方便后续处理。最后生成对应的拉取履历信息和文件履历信息。
基于上述内容,配置的代码库信息支持svn和git两种方式的代码库信息的具体内容为:
首先对代码库类型进行判断,若是svn方式的代码库,则初始化svn客户端,然后拉取项目工程文件,若为git方式的代码库,则初始化git客户端,拉取指定分支项目工程文件。拉取文件后生成项目文件目录,然后获取项目托管文件配置属性。
步骤二、获取托管配置信息,根据项目代码库信息获取项目托管代码文件。具体地:
2.1)获取托管文件信息:系统配置托管文件代码库信息,该托管文件代码库信息需同样支持svn和git两种方式,配置的托管文件代码库信息需配置代码库的url地址、访问所需的认证信息,对于git仓库需额外配置分支信息。同样地,对配置的用户名密码进行认证,并在通过后对访问的url进行授权校验,可确保工程文件的安全性和隐私性。
2.2)托管文件获取:根据托管文件的代码库信息,初始化对应的拉取客户端,拉取客户端拉取托管文件到指定的临时目录。拉取的文件会位于临时目录下,同一项目只会有一份。同时配置文件的全量名路径也会保存到当前线程的上下文环境中即步骤二同样需要先判断代码库的类型,若为svn方式的代码库,则初始化svn客户端,然后拉取托管文件,若为git方式的代码库,则初始化git客户端,拉取指定分支托管文件。拉取文件后生成项目托管文件临时目录,然后获取动态路径配置。
步骤三、获取项目动态路径配置,将托管文件进行替换。
3.1)获取动态路径配置信息:系统配置项目动态路径信息,此动态路径信息可针对不同的项目文件进行自定义配置,满足不同项目的特定需求。
3.2)将托管文件进行替换:将临时目录中的文件,对项目文件进行同路径同文件名覆盖。具体地,根据上下文中的全量名路径信息,进行同名文件覆盖。完成后,将对应的配置文件临时目录进行清理。
步骤四、获取项目打包编译命令,获得项目产物。
系统配置打包编译命令,通过在服务器环境中部署的maven组件运行对应脚本对项目代码文件进行打包编译,同时生成对应的编译履历信息。
步骤五、发布产物。
通过scp命令及ThreadLocal中的路径信息,将生成的产物文件,推送到指定的目标机器中。获取配置的发布脚本,目标机器运行相关该脚本,同时通过项目的检活接口监控相关状态信息,判断发布任务完成状态。最后生成发布履历信息以及任务整体信息展示。产物推送目标机器对于多节点项目可根据项目节点配置的机器信息,如beta节点和非beta节点的区分,来实现支持优雅发布和灰度发布方式,优雅发布指在发布过程中优先发送beta节点,无异常情况下发布非beta节点。而灰度发布则只发布beta节点。
本发明方法中各环境独立部署,利用所属网段间的不可访问性避免网络安全问题,方便权限管理,提升系统整体的安全性;在获取项目配置属性和托管文件属性后分别对代码库进行判断,以针对不同代码库获取不同的拉取文件及目录,实现了项目工程代码和托管文件代码库可同时支持git和svn的功能,配置更加灵活。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种基于多目标文件托管的项目信息交付方法,其特征在于,包括下列步骤:
1)创建发布任务,获取项目配置属性,根据项目代码库信息获取项目代码文件;
2)获取托管配置属性,根据项目代码库信息获取项目托管代码文件;
3)获取项目动态路径配置,对托管文件进行替换;
4)获取项目打包编译命令,获得项目产物;
5)获取项目发布脚本,将产物推送目标机器后,运行脚本进行发布。
2.根据权利要求1所述的基于多目标文件托管的项目信息交付方法,其特征在于,步骤1)中,获取项目配置属性,根据项目代码库信息获取项目代码文件的具体内容为:
11)判断代码库类型,配置项目代码库信息;
12)根据配置后的项目代码库信息,初始化代码库对应的拉取客户端,拉取客户端拉取代码文件到指定目录,同时生成对应履历信息。
3.根据权利要求2所述的基于多目标文件托管的项目信息交付方法,其特征在于,步骤11)的具体内容为:
对代码库类型进行判断,若为svn方式的代码库,则配置对该代码库的url访问地址和访问所需的认证信息,若为git方式的代码库,则配置对该代码库的url访问地址、访问所需的认证信息以及分支信息。
4.根据权利要求3所述的基于多目标文件托管的项目信息交付方法,其特征在于,步骤12)的具体内容为:
若代码库为svn方式的代码库,则初始化svn对应的拉取客户端,拉取项目工程文件,若代码库为git方式的代码库,则初始化git客户端,拉取指定分支项目工程文件,拉取文件后生成项目文件目录,同时生成对应的拉取履历信息和文件履历信息。
5.根据权利要求1所述的基于多目标文件托管的项目信息交付方法,其特征在于,步骤2中),获取托管配置属性,根据项目代码库信息获取项目托管代码文件的具体内容为:
21)判断代码库类型,配置托管文件代码库信息;
22)根据托管文件的代码库信息,初始化对应的拉取客户端,拉取客户端拉取托管文件到指定的临时目录。
6.根据权利要求5所述的基于多目标文件托管的项目信息交付方法,其特征在于,步骤21)的具体内容为:
对代码库类型进行判断,若为svn方式的代码库,则配置对该代码库的url访问地址和访问所需的认证信息,若为git方式的代码库,则配置对该代码库的url访问地址、访问所需的认证信息以及分支信息。
7.根据权利要求6所述的基于多目标文件托管的项目信息交付方法,其特征在于,步骤22)的具体内容为:
若代码库为svn方式的代码库,则初始化svn对应的拉取客户端,拉取托管文件,若代码库为git方式的代码库,则初始化git客户端,拉取指定分支托管文件,拉取文件后生成项目托管文件临时目录,同时生成对应的拉取履历信息和文件履历信息。
8.根据权利要求1所述的基于多目标文件托管的项目信息交付方法,其特征在于,步骤3)的具体内容为:
针对不同的项目文件自定义配置项目动态路径信息,将临时目录中的文件,对项目文件进行同路径同文件名覆盖,完成后,将对应的配置文件临时目录进行清理。
9.根据权利要求1所述的基于多目标文件托管的项目信息交付方法,其特征在于,步骤5)的具体内容为:
将生成的产物文件,推送至指定的目标机器中,获取发布脚本,目标机器运行相关该脚本,同时监控相关状态信息,判断发布任务完成状态后,生成并展示发布履历信息以及任务整体信息。
10.根据权利要求9所述的基于多目标文件托管的项目信息交付方法,其特征在于,通过scp命令及上下文中的路径信息将生成的产物文件,推送至指定的目标机器中。
CN202110471164.2A 2021-04-29 2021-04-29 一种基于多目标文件托管的项目信息交付方法 Pending CN113127052A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110471164.2A CN113127052A (zh) 2021-04-29 2021-04-29 一种基于多目标文件托管的项目信息交付方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110471164.2A CN113127052A (zh) 2021-04-29 2021-04-29 一种基于多目标文件托管的项目信息交付方法

Publications (1)

Publication Number Publication Date
CN113127052A true CN113127052A (zh) 2021-07-16

Family

ID=76780501

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110471164.2A Pending CN113127052A (zh) 2021-04-29 2021-04-29 一种基于多目标文件托管的项目信息交付方法

Country Status (1)

Country Link
CN (1) CN113127052A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114253598A (zh) * 2021-12-22 2022-03-29 浪潮卓数大数据产业发展有限公司 一种在线编码系统的代码托管方法及工具
CN114785861A (zh) * 2022-06-22 2022-07-22 飞狐信息技术(天津)有限公司 一种服务请求转发系统、方法、计算机设备和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114253598A (zh) * 2021-12-22 2022-03-29 浪潮卓数大数据产业发展有限公司 一种在线编码系统的代码托管方法及工具
CN114253598B (zh) * 2021-12-22 2023-09-05 浪潮卓数大数据产业发展有限公司 一种在线编码系统的代码托管方法及工具
CN114785861A (zh) * 2022-06-22 2022-07-22 飞狐信息技术(天津)有限公司 一种服务请求转发系统、方法、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
US20200184108A1 (en) Container update system
US8667096B2 (en) Automatically generating system restoration order for network recovery
CN102438041B (zh) 高可用性场服务器组的升级
CN113127052A (zh) 一种基于多目标文件托管的项目信息交付方法
US8990368B2 (en) Discovery of network software relationships
US9009696B2 (en) Generating encoded identifications of selected subsets of installed software packages on a client machine
CN102571906B (zh) 打补丁期间机器的高可用性
CN102523101B (zh) 机器管理器服务结构
CN112486547B (zh) 多租户场景下的应用程序更新方法、装置及电子设备
CN102571905A (zh) 为在线服务管理网络和机器
US20100223608A1 (en) Systems and methods for generating reverse installation file for network restoration
CN105468720A (zh) 集成分布式数据处理系统的方法、相应系统及其数据处理方法
US20050278341A1 (en) Component offline deploy
CN106599195B (zh) 一种海量网络数据环境下的元数据同步方法及系统
US20160179494A1 (en) Integration of an arbitrary server installed as an extension of a computing platform
CN105610946B (zh) 一种基于docker技术的云跳板机系统
CN112579613B (zh) 数据库集群差异比对与数据同步的方法、系统及介质
CN106663023A (zh) 对云应用中的虚拟机进行分组
CN103631636A (zh) 用于为商业服务器使能多个租用的方法及系统
US9772834B2 (en) Exportable encoded identifications of networked machines
CN102053855B (zh) 一种软件的生成系统及方法
CN107133036A (zh) 一种模块的管理方法及装置
CN113726575A (zh) 前端项目自动化上线方法、装置、服务器和存储介质
CN114443294B (zh) 大数据服务组件部署方法、系统、终端及存储介质
CN107480547A (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