CN113504937A - 一种分体式开发部署平台 - Google Patents

一种分体式开发部署平台 Download PDF

Info

Publication number
CN113504937A
CN113504937A CN202110630514.5A CN202110630514A CN113504937A CN 113504937 A CN113504937 A CN 113504937A CN 202110630514 A CN202110630514 A CN 202110630514A CN 113504937 A CN113504937 A CN 113504937A
Authority
CN
China
Prior art keywords
development
code
program
unit
package
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
CN202110630514.5A
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.)
China Guangfa Bank Co Ltd
Original Assignee
China Guangfa Bank 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 China Guangfa Bank Co Ltd filed Critical China Guangfa Bank Co Ltd
Priority to CN202110630514.5A priority Critical patent/CN113504937A/zh
Publication of CN113504937A publication Critical patent/CN113504937A/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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种分体式开发部署平台,所述平台包括代码开发单元、代码管理单元和代码运行单元,其中,代码开发单元用于根据开发需求进行程序代码的开发、修改、备份及导出,具体地,对程序代码进行打包后,导出为程序包,并将程序包推送至代码管理单元;代码管理单元用于接收并存放所述程序包;代码运行单元用于从代码管理单元中获取程序包,并对程序包进行程序执行及发布。上述平台通过将现有的一体化开发平台拆分为代码开发单元、代码管理单元以及代码运行单元三部分,实现代码开发和程序运行环境的相互独立,有效规避了开发交付程序版本错乱的风险。

Description

一种分体式开发部署平台
技术领域
本发明涉及计算机技术领域,特别是涉及一种分体式开发部署平台。
背景技术
随着程序开发设计工具的发展,现阶段的软件开发模式已从传统的本地IDE开发逐渐改进为平台化开发,平台化开发模式是指利用图形化开发工具来管理开发、交付和运维等整个开发周期内的流程,可通过调用可视化组件进行参数化开发。
现阶段,银行业的程序开发管理通常部署一套程序开发平台环境,并在该环境中完成全量程序开发,若有开发、测试及生产环境隔离交付的需求,则先将程序包批量导出,再进行同步,具体如图1所示。
但这种基于平台化开发的交付方式往往存在一定的问题:
一是易引起程序版本错乱,银行业要求开发、测试及生产环境具备明确的交付流向,代码改动必须先在开发环境中完成,再导入测试、生产环境进行部署,但目前的平台模式无法控制程序开发流向,存在着技术人员直接在测试或生产环境中开发并导出程序的风险,从而引起程序版本错乱;
二是状态变更带来的风险,技术人员通过变更上下线状态对程序参数进行修改时,仅能保留最新版本的代码信息,无法记录修改过程中的代码情况;三是代码修改等待时间长,对于批处理程序,可能需要在开发环境中进行连续性跑批测试,若跑批过程中,程序运行时间较长,则会导致技术人员无法下线代码进行修改,使开发周期延长。
发明内容
为了解决上述技术问题,本发明提供一种分体式开发部署平台,能够避免开发交付过程中的程序版本错乱、线上下状态变更错乱以及代码修改等待时间长问题,确保开发环境交付的代码版本有效性。
为实现上述目的,本发明第一方面提供的一种分体式开发部署平台包括:
代码开发单元,用于根据开发需求进行程序代码的开发、修改、备份及导出;其中,
所述导出用于对所述程序代码进行打包后,导出为程序包,并将所述程序包推送至代码管理单元;
代码管理单元,用于接收并存放所述程序包;
代码运行单元,用于从代码管理单元中获取所述程序包,并对所述程序包进行程序执行及发布。
可选的,所述分体式开发部署平台还包括后台数据库,所述数据库用于将所述程序代码存放于后台数据库的开发区库表中。
可选的,所述代码管理单元包括SVN、Git。
可选的,所述代码开发单元部署于开发环境;所述代码运行单元部署于开发环境、测试环境和生产环境;其中,在所述开发环境中,所述代码运行单元与所述代码开发单元相隔离。
可选的,将开发完成的程序代码打包为DAG程序包后,导出所述DAG程序包并自动生成程序版本号。
可选的,导出所述程序包时,导出信息还包括版本信息、开发代码、运行参数、建表语句和数据治理信息。
可选的,所述对所述程序包进行程序执行及发布,具体为:
在开发环境和测试环境中,将所述程序包分别导入至所述代码运行单元进行技术测试,得到测试结果;若所述测试结果不符合测试要求,将所述程序包回退至所述代码开发单元进行代码修改;若所述测试结果符合测试要求,则将所述程序包导入至所述生产环境中进行发布。
可选的,将所述程序包导入至所述生产环境中进行发布时,还包括:
根据所述程序包的版本信息判断是否为首次导入:若是首次导入,直接导入所述程序包进行部署发布;若不是首次导入,则轮询等待部署。
第二方面,本发明提供一种数据处理设备,包括:
处理器,所述处理器和存储器耦合,所述存储器存储有程序,所述程序由所述处理器执行,使得所述数据处理设备执行如本发明第一方面所述的基于表级血缘关系的数据批次处理方法。
第三方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如本发明第一方面所述的基于表级血缘关系的数据批次处理方法。
相比现有技术,本发明的有益效果在于:
通过利用微服务架构将现有的一体化开发平台拆分为代码开发单元、代码管理单元以及代码运行单元三部分,仅在开发环境部署程序开发模块服务,并在代码管理单元引入代码打包管理机制,实现了代码开发和程序运行环境相互独立,有效规避了开发交付程序版本错乱的风险。
附图说明
为了更清楚地说明本发明的技术方案,下面将对实施方式中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是现有技术中一种程序开发流程图;
图2是本发明某一实施例提供的一种分体式开发部署平台模块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,文中所使用的步骤编号仅是为了方便描述,不作为对步骤执行先后顺序的限定。
应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如图2所示,本发明一个实施例提供一种分体式开发部署平台,包括代码开发单元101、代码管理单元102和代码运行单元103。
代码开发单元101用于根据开发需求进行程序代码的开发、修改、备份及导出;其中,所述导出用于对所述程序代码进行打包后,导出为程序包,并将所述程序包推送至代码管理单元102。
在本实施例中,分体式开发部署平台还包括后台数据库,后台数据库用于将开发的相关程序代码存放于数据库内的开发区库表中。
开发完成后,将程序代码打包为DAG程序包,导出所述DAG程序包并自动生成程序版本号。
其中,导出所述程序包时,导出信息还包括版本信息、开发代码、运行参数、建表语句和数据治理信息。
代码管理单元102用于接收并存放程序包。具体地,代码管理单元102包括SVN、Git等主流的代码管理工具。
代码运行单元103用于从代码管理单元102中获取程序包,并对程序包进行程序执行及发布。
本发明实施例将传统的开发、运行一体化开发过程拆分为代码开发单元101和代码运行单元103,其中,代码开发单元101主要用于开发人员对自己名下的代码进行开发、修改、备份和导出;代码运行单元103则主要用于执行程序并监控程序的执行结果。
具体地,代码开发单元101部署于开发环境;代码运行单元103部署于开发环境、测试环境和生产环境,其中,在开发环境内,代码运行单元103与代码开发单元101相隔离,以避免技术人员在测试、生产环境直接改动代码。
代码开发单元101所导出的程序包被推送和保存于代码管理单元102中,在程序部署时,从代码管理工具102获取投产包进行导入。
具体地,当程序代码新增或修改时,从代码开发单元101导出DAG程序包并附带上版本信息(即程序包名称),再将DAG程序包保存于代码管理工具102中,部署时,代码运行单元103通过从代码管理单元102中获取投产包进行导入。
在测试环节,开发人员将程序包导入开发环境中的代码运行单元103进行技术测试,测试交付人员则将程序包导入测试环境中的代码运行单元103进行技术测试;在部署发布环节,运维人员将程序包导入生产环境中的代码运行单元103进行投产发布。
具体地,在开发环境和测试环境中进行技术测试时,分别得到测试结果,若任一测试结果不符合测试要求,将程序包回退至开发环境中的代码开发单元101进行代码修改;若测试结果均符合测试要求,则将程序包导入至生产环境内的代码运行单元103,进行所述程序包的部署发布。
本发明将一体化代码开发和运行环境拆分为分体式隔离部署,所以可有效保留程序代码各个部署版本的原始信息,又可避免代码在测试、生产环境被篡改,确保开发环境交付的代码版本有效性。
具体地,将程序包导入至生产环境内的代码运行单元103后,根据所述程序包的版本信息判断程序包是否为首次导入:若是首次导入,直接导入程序包并完成投产发布;若不是首次导入,则需判断程序当前执行状态,如果程序处于非运行中(下线)状态,则直接部署发布;如果程序处于运行中(上线)状态,则轮询等待,直到该批次运行完成后,再进行部署发布。
具体地,所述轮询等待包括:生成定时任务,当程序在当天批次运行完成后,自动发起程序更新任务,确保运行中的批次不受影响。
通过将投产部署代码流程从现有的手工上下线部署模式,改为轮询等待部署模式,可有效避免程序包在投产过程中受运行时间较长的批次以及模型类程序的影响,
本发明实施例提供了一种数据处理设备,包括处理器,处理器和存储器耦合,该存储器存储有程序,程序由所述处理器执行,使得数据处理设备执行如上述实施例所述的分体式开发部署平台的部署方法。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个控制处理器执行,可使得上述一个或多个控制处理器执行上述实施例所述的分体式开发部署平台的部署方法。
通过以上的实施方式的描述,本领域技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现。本领域技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。
在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

Claims (10)

1.一种分体式开发部署平台,其特征在于,所述分体式开发部署平台包括:
代码开发单元,用于根据开发需求进行程序代码的开发、修改、备份及导出;其中,
所述导出用于对所述程序代码进行打包后,导出为程序包,并将所述程序包推送至代码管理单元;
代码管理单元,用于接收并存放所述程序包;
代码运行单元,用于从代码管理单元中获取所述程序包,并对所述程序包进行程序执行及发布。
2.根据权利要求1所述的分体式开发部署平台,其特征在于,还包括:
后台数据库,用于将所述程序代码存放于后台数据库的开发区库表中。
3.根据权利要求1所述的分体式开发部署平台,其特征在于,所述代码管理单元包括SVN、Git。
4.根据权利要求1所述的分体式开发部署平台,其特征在于,还包括:
所述代码开发单元部署于开发环境;
所述代码运行单元部署于开发环境、测试环境和生产环境;其中,
在所述开发环境中,所述代码运行单元与所述代码开发单元相隔离。
5.根据权利要求1所述的分体式开发部署平台,其特征在于,还包括:
将开发完成的程序代码打包为DAG程序包后,导出所述DAG程序包并自动生成程序版本号。
6.根据权利要求1所述的分体式开发部署平台,其特征在于,所述对所述程序包进行程序执行及发布,具体为:
在开发环境和测试环境中,将所述程序包分别导入至所述代码运行单元进行技术测试,得到测试结果;
若所述测试结果不符合测试要求,将所述程序包回退至所述代码开发单元进行代码修改;
若所述测试结果符合测试要求,则将所述程序包导入至所述生产环境中进行发布。
7.根据权利要求5或6所述的分体式开发部署平台,其特征在于,将所述程序包导入至所述生产环境中进行发布时,还包括:
根据所述程序包的版本信息判断是否为首次导入:
若是首次导入,直接导入所述程序包进行部署发布;
若不是首次导入,则轮询等待部署。
8.根据权利要求5所述的分体式开发部署平台,其特征在于,导出所述程序包时,导出信息还包括版本信息、开发代码、运行参数、建表语句和数据治理信息。
9.一种数据处理设备,其特征在于,包括:
处理器,所述处理器和存储器耦合,所述存储器存储有程序,所述程序由所述处理器执行,使得所述数据处理设备执行如权利要求1至8中任一项所述分体式开发部署平台的执行方法。
10.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机指令,所述计算机指令用于执行上述权利要求1至8中任一项所述分体式开发部署平台的执行方法。
CN202110630514.5A 2021-06-07 2021-06-07 一种分体式开发部署平台 Pending CN113504937A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110630514.5A CN113504937A (zh) 2021-06-07 2021-06-07 一种分体式开发部署平台

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110630514.5A CN113504937A (zh) 2021-06-07 2021-06-07 一种分体式开发部署平台

Publications (1)

Publication Number Publication Date
CN113504937A true CN113504937A (zh) 2021-10-15

Family

ID=78008872

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110630514.5A Pending CN113504937A (zh) 2021-06-07 2021-06-07 一种分体式开发部署平台

Country Status (1)

Country Link
CN (1) CN113504937A (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120180024A1 (en) * 2011-01-07 2012-07-12 International Business Machines Corporation Synchronizing development code and deployed executable versioning within distributed systems
CN107797914A (zh) * 2016-09-07 2018-03-13 阿里巴巴集团控股有限公司 代码处理方法、装置及代码发布系统
CN108897548A (zh) * 2018-06-29 2018-11-27 北京金山数字娱乐科技有限公司 程序包生产部署方法、装置、系统、电子设备及存储介质
CN108897571A (zh) * 2018-06-29 2018-11-27 北京金山数字娱乐科技有限公司 程序打包部署方法、装置、系统、电子设备及存储介质
CN111324412A (zh) * 2018-12-13 2020-06-23 阿里巴巴集团控股有限公司 服务部署方法、设备及存储介质
CN111414172A (zh) * 2020-03-18 2020-07-14 时时同云科技(成都)有限责任公司 应用软件自动部署发布系统及方法
CN112905199A (zh) * 2021-02-04 2021-06-04 上海中通吉网络技术有限公司 代码更新检测方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120180024A1 (en) * 2011-01-07 2012-07-12 International Business Machines Corporation Synchronizing development code and deployed executable versioning within distributed systems
CN107797914A (zh) * 2016-09-07 2018-03-13 阿里巴巴集团控股有限公司 代码处理方法、装置及代码发布系统
CN108897548A (zh) * 2018-06-29 2018-11-27 北京金山数字娱乐科技有限公司 程序包生产部署方法、装置、系统、电子设备及存储介质
CN108897571A (zh) * 2018-06-29 2018-11-27 北京金山数字娱乐科技有限公司 程序打包部署方法、装置、系统、电子设备及存储介质
CN111324412A (zh) * 2018-12-13 2020-06-23 阿里巴巴集团控股有限公司 服务部署方法、设备及存储介质
CN111414172A (zh) * 2020-03-18 2020-07-14 时时同云科技(成都)有限责任公司 应用软件自动部署发布系统及方法
CN112905199A (zh) * 2021-02-04 2021-06-04 上海中通吉网络技术有限公司 代码更新检测方法及装置

Similar Documents

Publication Publication Date Title
CN111414172B (zh) 应用软件自动部署发布系统及方法
US9697020B2 (en) Execution and real-time implementation of a temporary overrun scheduler
US20080082974A1 (en) Managing Software Component Version Identifications in a Componentised Software System
CN108614770A (zh) 自动化测试断言方法、装置、存储介质及设备
US8095917B2 (en) Debugger for virtual intermediate language operations
CN103309804A (zh) 自动化代码规则检查平台
Paech et al. A new Concept of Refinement used for Behaviour Modelling with Automata
CN105955239B (zh) 一种基于共享内存的通用测试平台快速构建方法
CN112131315A (zh) 多任务并行开发下的数据库同步方法及装置
CN107179982B (zh) 一种跨进程调试方法和装置
US7747899B2 (en) Providing mapping fault processing
CN113986395A (zh) 一种linux系统下应用依赖自包含技术的打包方法
Geiger et al. On the evolution of BPMN 2.0 support and implementation
Vogel-Heuser et al. Key maturity indicators for module libraries for PLC-based control software in the domain of automated Production Systems
Macher et al. Bridging Automotive Systems, Safety and Software Engineering with a Seamless Toolchain
CN102023919B (zh) 整合测试方法及其系统
CN113504937A (zh) 一种分体式开发部署平台
US8539468B2 (en) System and methods for replacing software application classes using transparent object adapters
CN117270864A (zh) 代码编译方法、装置、设备及存储介质
KR20090099977A (ko) 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및장치
US9772836B2 (en) Delivery of correction packages
CN114327600A (zh) 全环境一体化cicd应用部署平台
CN111881056A (zh) 一种自动化测试框架及测试方法
CN105868118A (zh) 应用测试方法、装置及系统
KR101506656B1 (ko) 애플리케이션 품질 관리를 위한 시스템 및 그 방법

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