CN111858370B - DevOps的实现方法、装置、计算机可读介质 - Google Patents

DevOps的实现方法、装置、计算机可读介质 Download PDF

Info

Publication number
CN111858370B
CN111858370B CN202010735367.3A CN202010735367A CN111858370B CN 111858370 B CN111858370 B CN 111858370B CN 202010735367 A CN202010735367 A CN 202010735367A CN 111858370 B CN111858370 B CN 111858370B
Authority
CN
China
Prior art keywords
container
devops
service
mirror image
compiling
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.)
Active
Application number
CN202010735367.3A
Other languages
English (en)
Other versions
CN111858370A (zh
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.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology 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 Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN202010735367.3A priority Critical patent/CN111858370B/zh
Publication of CN111858370A publication Critical patent/CN111858370A/zh
Application granted granted Critical
Publication of CN111858370B publication Critical patent/CN111858370B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3624Software debugging by performing operations on the source code, e.g. via a compiler
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种DevOps的实现方法、装置、计算机可读介质,属于DevOps技术领域,要解决的技术问题为如何实现开发、测试和生产环境的统一化标准化,解决底层基础环境的异构问题。包括如下步骤:签出项目代码;对项目代码进行编译、打包并执行静态测试;构建容器镜像;将容器镜像文件提交至云容器镜像管理服务器中;将上述容器部署到生产环境中;完成服务的注册工作;检测所述服务是否可用;将生成的容器镜像提交到容器镜像管理云服务中。装置包括至少一个存储器和至少一个处理器。计算机可读介质上存储有计算机指令,计算机指令在被处理器执行时,使处理器执行方法。

Description

DevOps的实现方法、装置、计算机可读介质
技术领域
本发明涉及DevOps技术领域,具体地说是一种DevOps的实现方法、装置、计算机可读介质。
背景技术
传统DevOps存在如下问题:
(1)在开发、测试和生产环境缺乏统一标准化;
(2)底层基础环境的异构问题,基础环境的多元化造成了从Dev到Ops过程中的阻力;
(3)不易于构建、迁移和部署。
基于上述,如何实现开发、测试和生产环境的统一化标准化,解决底层基础环境的异构问题,是需要解决的技术问题。
发明内容
本发明的技术任务是针对以上不足,提供一种DevOps的实现方法、装置、计算机可读介质,来解决如何实现开发、测试和生产环境的统一化标准化,解决底层基础环境的异构问题。
第一方面,本发明提供一种DevOps的实现方法,包括如下步骤:
基于Jenkins的触发器启动Pipel ine,通过Piel ine从源代码仓库管理服务器中签出项目代码;
通过Piel ine对项目代码进行编译、打包生成编译打包文件,并执行静态测试;
基于上述编译打包文件以及预先定义的部署用Dockerfile,通过Dokcer工具构建容器镜像,生成容器镜像文件;
将上述容器镜像文件提交至云容器镜像管理服务器中;
通过Ansible配置管理工具将上述容器部署到生产环境中;
通过Ansible对生产环境下方向代理进行配置,并启动容器和服务,完成服务的注册工作;
在生成环境下完成服务的部署和加载后,检测所述服务是否可用;
将生成的容器镜像提交到容器镜像管理云服务中,以供下一个集成部署循环周期使用。
作为优选,在源代码仓库注册Jenkins的触发器,通过提交的代码自动触发Jenkins启动集成部署的Pieline,通过Piel ine从源代码仓库管理服务器中签出项目代码。
作为优选,Pieline通过Git工具从源代码仓库管理服务器中将项目代码签出。
作为优选,通过Piel ine对项目代码进行编译、打包生成编译打包文件,并执行静态测试,包括如下步骤:
构建一个开发测试环境;
通过预先定义的Dockerfile文件,用Docker工具构建一个面向开发与测试的容器镜像;
加载所述容器镜像,运行编译、打包生成编译打包文件,并执行静态测试。
作为优选,将上述容器镜像文件提交至私有的云容器镜像管理服务器中。
作为优选,通过Ansible配置管理工具将上述容器部署到生产环境中,包括如下步骤:
部署生产环境下需要的计算资源和存储资源;
采用容器集群工具完成服务容器的部署。
第二方面,本发明提供一种装置,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行第一方面任一所述的方法。
第三方面,本发明提供一种计算机可读介质,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行第一方面任一所述的方法。
本发明的DevOps的实现方法具有以下优点:
1、实现镜像作为标准的交付件,可在开发、测试和生产环境上以容器来运行,最终实现三套环境上的应用以及运行所依赖内容的完全一致;
2、解决了底层基础环境的异构问题,基础环境的多元化造成了从Dev到Ops过程中的阻力,而使用Docker可无视基础环境的类型,不同的物理设备,不同的虚拟化类型,不同云计算平台,只要是运行了Docker的环境,最终的应用都会以容器为基础来提供服务;
3、易于构建、迁移和部署,Dockerfile实现镜像构建的标准化和可复用,镜像本身的分层机制也提高了镜像构建的效率。可以将构建好的镜像迁移到任意环境,而且环境的部署仅需要将静态只读的镜像转换为动态可运行的容器即可。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
下面结合附图对本发明进一步说明。
图1为实施例1DevOps的实现方法的流程框图;
图2为实施例1DevOps的实现方法的应用结构框图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。
本发明实施例提供DevOps的实现方法、装置、计算机可读介质,用于解决如何实现开发、测试和生产环境的统一化标准化,解决底层基础环境的异构问题的技术问题。
实施例1:
本发明的一种DevOps的实现方法,包括如下步骤:
S100、签出代码,基于Jenkins的触发器启动Pipel ine,通过Pieline从源代码仓库管理服务器中签出项目代码;
S200、运行部署前编译打包代码并进行测试,通过Piel ine对项目代码进行编译、打包生成编译打包文件,并执行静态测试;
S300、构建部署用的容器镜像,基于上述编译打包文件以及预先定义的部署用Dockerfile,通过Dokcer工具构建容器镜像,生成容器镜像文件;
S400、提交容器镜像,将上述容器镜像文件提交至云容器镜像管理服务器中;
S500、将容器部署到生产环境中,通过Ansible配置管理工具将上述容器部署到生产环境中;
S600、容器的集成与服务的启动,通过Ansible对生产环境下方向代理进行配置,并启动容器和服务,完成服务的注册工作;
S700、运行集成部署后的测试,在生成环境下完成服务的部署和加载后,检测所述服务是否可用;
S800、提交测试用的容器镜像,将生成的容器镜像提交到容器镜像管理云服务中,以供下一个集成部署循环周期使用。
其中,
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或者Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间没有任何接口。
DevOps是一组过程、方法与系统的统称,用于促进开发、技术运营和质量保障部门之间的沟通、协作与整合。
SVN是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,实现共享资源,实现最终集中式的管理。
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
Jenkins是一个开源软件项目,基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。
Ansible是新出现的一种自动化运维工具,基于Python开发,集合了众多运维工具的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
步骤S100中,在源代码仓库注册有Jenkins的触发器,当开发人员在提交代码并审核通过后,自动触发Jenkins启动集成部署的Pipeline。Pipeline的第一步,是用Git工具从源代码仓库管理服务器中将项目代码签出。
Pipeline的第二步主要目标是确认代码可以成功编译打包、顺利执行静态测试。首先构建一个开发测试环境,通过预先定义的Dockerfile文件,用Docker工具构建一个面向开发与测试的容器镜像,然后加载此容器镜像,运行编译、打包、静态测试。
步骤S400中,将生成的容器镜像文件要提交到云容器镜像管理服务器中,本实施例采用提交到私有的容器镜像管理云服务。
步骤S500中,采用Ansible配置管理工具完成部署工作,首先部署生产环境下需要的计算资源和存储资源,再采用容器集群工具完成服务容器的部署.
容器部署成功后,到Ansible对生产环境下方向代理进行配置,然后启动容器和服务,完成服务的注册工作。
步骤S800中,为了提高测试容器的加载速度,将生成的容器镜像提交到容器镜像管理云服务中,供给下一个集成部署循环周期使用。
本实施例应用到山西自然资源大数据云平台,如附图2所示,以容器为基础形成DevOps,在开发、测试和生产环境上的应用以及运行所依赖内容的完全一致。持续交付的实现,首先很大程度上实现了自动化,其次可以在很短的时间内把一个想法变成可交付到生产环境中的工作代码,而且同时还能提高交付软件的质量。
实施例2:
本发明实施例提供了一种装置,包括:至少一个存储器和至少一个处理器;上述至少一个存储器,用于存储机器可读程序;上述至少一个处理器,用于调用所述机器可读程序,执行实施例1公开的方法。
实施例3:
本发明实施例还提供了一种计算机可读介质,该计算机可读介质上存储有计算机指令,上述计算机指令在被处理器执行时,使所述处理器执行本发明实施例1的方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,上述各流程和各系统结构图中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上各实施例中,硬件单元可以通过机械方式或电气方式实现。例如,一个硬件单元可以包括永久性专用的电路或逻辑(如专门的处理器,FPGA或ASIC)来完成相应操作。硬件单元还可以包括可编程逻辑或电路(如通用处理器或其它可编程处理器),可以由软件进行临时的设置以完成相应操作。具体的实现方式(机械方式、或专用的永久性电路、或者临时设置的电路)可以基于成本和时间上的考虑来确定。
上文通过附图和优选实施例对本发明进行了详细展示和说明,然而本发明不限于这些已揭示的实施例,基与上述多个实施例本领域技术人员可以知晓,可以组合上述不同实施例中的代码审核手段得到本发明更多的实施例,这些实施例也在本发明的保护范围之内。

Claims (8)

1.DevOps的实现方法,包括如下步骤:
基于Jenkins的触发器启动Pipeline,通过Pieline从源代码仓库管理服务器中签出项目代码;
通过Pieline对项目代码进行编译、打包生成编译打包文件,并执行静态测试;
基于上述编译打包文件以及预先定义的部署用Dockerfile,通过Dokcer工具构建容器镜像,生成容器镜像文件;
将上述容器镜像文件提交至云容器镜像管理服务器中;
通过Ansible配置管理工具将上述容器部署到生产环境中;
通过Ansible对生产环境下方向代理进行配置,并启动容器和服务,完成服务的注册工作;
在生成环境下完成服务的部署和加载后,检测所述服务是否可用;
将生成的容器镜像提交到容器镜像管理云服务中,以供下一个集成部署循环周期使用。
2.根据权利要求1所述的DevOps的实现方法,其特征在于在源代码仓库注册Jenkins的触发器,通过提交的代码自动触发Jenkins启动集成部署的Pieline,通过Pieline从源代码仓库管理服务器中签出项目代码。
3.根据权利要求2所述的DevOps的实现方法,其特征在于Pieline通过Git工具从源代码仓库管理服务器中将项目代码签出。
4.根据权利要求1、2或3所述的DevOps的实现方法,其特征在于通过Pieline对项目代码进行编译、打包生成编译打包文件,并执行静态测试,包括如下步骤:
构建一个开发测试环境;
通过预先定义的Dockerfile文件,用Docker工具构建一个面向开发与测试的容器镜像;
加载所述容器镜像,运行编译、打包生成编译打包文件,并执行静态测试。
5.根据权利要求1、2或3所述的DevOps的实现方法,其特征在于将上述容器镜像文件提交至私有的云容器镜像管理服务器中。
6.根据权利要求1、2或3所述的DevOps的实现方法,其特征在于通过Ansible配置管理工具将上述容器部署到生产环境中,包括如下步骤:
部署生产环境下需要的计算资源和存储资源;
采用容器集群工具完成服务容器的部署。
7.装置,其特征在于,包括:至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至6中任一所述的方法。
8.计算机可读介质,其特征在于,所述计算机可读介质上存储有计算机指令,所述计算机指令在被处理器执行时,使所述处理器执行权利要求1至6任一所述的方法。
CN202010735367.3A 2020-07-28 2020-07-28 DevOps的实现方法、装置、计算机可读介质 Active CN111858370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010735367.3A CN111858370B (zh) 2020-07-28 2020-07-28 DevOps的实现方法、装置、计算机可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010735367.3A CN111858370B (zh) 2020-07-28 2020-07-28 DevOps的实现方法、装置、计算机可读介质

Publications (2)

Publication Number Publication Date
CN111858370A CN111858370A (zh) 2020-10-30
CN111858370B true CN111858370B (zh) 2023-12-26

Family

ID=72947902

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010735367.3A Active CN111858370B (zh) 2020-07-28 2020-07-28 DevOps的实现方法、装置、计算机可读介质

Country Status (1)

Country Link
CN (1) CN111858370B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112286580B (zh) * 2020-10-31 2023-08-04 成都新潮传媒集团有限公司 一种用于处理流水线作业的方法、装置及计算机设备
CN113448837B (zh) * 2020-11-03 2024-03-19 北京新氧科技有限公司 开发及测试环境部署方法、系统、电子设备及介质
CN112346750B (zh) * 2020-11-16 2022-04-01 珠海格力电器股份有限公司 组态软件控制方法、系统和存储介质
CN113515293B (zh) * 2021-04-29 2022-09-09 上海安畅网络科技股份有限公司 一种管理DevOps工具链的方法和系统
CN113467829A (zh) * 2021-09-03 2021-10-01 广州嘉为科技有限公司 一种基于Docker的代码检查方法及代码检查服务器
CN113949534A (zh) * 2021-09-22 2022-01-18 广东电网有限责任公司 信息化系统的资源访问方法、装置、电子设备及存储介质
CN114124739B (zh) * 2021-11-11 2024-02-27 北京房江湖科技有限公司 部署FreeSWITCH服务的方法、装置、电子设备及存储介质
CN117648198B (zh) * 2024-01-30 2024-05-10 北京比格大数据有限公司 应用适配方法及装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790483A (zh) * 2016-12-13 2017-05-31 武汉邮电科学研究院 基于容器技术的Hadoop集群系统及快速构建方法
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化系统及方法
CN109491674A (zh) * 2018-11-07 2019-03-19 李斌 一种在Kubernetes集群中自动部署服务的方法与系统
CN111273943A (zh) * 2018-12-04 2020-06-12 北京嘀嘀无限科技发展有限公司 应用文件的生成方法、装置及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10305752B2 (en) * 2017-08-18 2019-05-28 International Business Machines Corporation Automatically orchestrating the compliance of cloud services to selected standards and policies
CN111279309A (zh) * 2017-09-30 2020-06-12 甲骨文国际公司 基于环境要求的容器部署

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106790483A (zh) * 2016-12-13 2017-05-31 武汉邮电科学研究院 基于容器技术的Hadoop集群系统及快速构建方法
CN106873975A (zh) * 2016-12-30 2017-06-20 武汉默联股份有限公司 基于Docker的devops持续交付与自动化系统及方法
CN109491674A (zh) * 2018-11-07 2019-03-19 李斌 一种在Kubernetes集群中自动部署服务的方法与系统
CN111273943A (zh) * 2018-12-04 2020-06-12 北京嘀嘀无限科技发展有限公司 应用文件的生成方法、装置及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
新一代运营系统中持续交付平台的实现;孙琼;罗光峰;;电信技术(03);全文 *

Also Published As

Publication number Publication date
CN111858370A (zh) 2020-10-30

Similar Documents

Publication Publication Date Title
CN111858370B (zh) DevOps的实现方法、装置、计算机可读介质
US11372639B2 (en) System and method for automated microservice source code generation and deployment
CN106407101B (zh) 基于lxc的持续集成方法及装置
CN107704238B (zh) 一种对项目进行打包的方法及装置
US9823909B1 (en) Program code conversion for cross-platform compatibility
US11467951B2 (en) System and method for implementing mainframe continuous integration continuous development
CN114270306A (zh) 应用程序开发部署方法、装置和计算机可读介质
US11816464B1 (en) Cloud computing platform architecture
CN111399840B (zh) 一种模块开发方法及装置
CN112379969B (zh) 一种基于容器化应用的持续集成交付方法及相关设备
CN108282513B (zh) 服务器部署方法、系统、存储介质及计算机设备
CN107632829A (zh) 一种基于iOS系统下的App自动化持续集成系统及方法
CN112463123A (zh) 任务编译方法、装置、网络节点、系统及存储介质
CN113609019A (zh) 一种容器云应用跨集群部署的流水线方法及装置
CN113064630A (zh) 移动端app自动打包方法、系统、电子设备及存储介质
CN112099815B (zh) 持续集成环境构建方法及装置
CN109492749B (zh) 在局域网中实现神经网络模型线上服务的方法及装置
CN111562942B (zh) 基于Gitlab的移动APP持续集成装置和方法
Zúñiga-Prieto et al. Incremental integration of microservices in cloud applications
CN113110872B (zh) 一种Android自动化配置构建平台及操作方法
US11789712B2 (en) Data configuration deployment framework
CN115543358A (zh) 基于Docker的分布式云平台微服务业务编排方法及系统
CN117859309A (zh) 自动选择在其上执行任务的节点
CN115248680A (zh) 软件构建方法、系统、设备、介质和程序产品
KR102242622B1 (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
GR01 Patent grant
GR01 Patent grant