DevOps落地实践之持续集成

摘要

最近几年很多企业都在推行DevOps,本人结合之前工作的经历将DevOps落地过程分为以下几个部分阐述:持续集成、自动化测试、自动化部署、运维监控。希望能跟大家探讨分享DevOps落地过程中使用到的工具和技术。

目前大部分公司已使用各种工具不同程度的实现了持续集成,但没有统一的规范和标准,本文以较常见的Java项目为例说明自动化发布的过程和涉及到的工具,

概述

本文的自动发布是指将项目交付物发布到构件仓库,也可称为自动构建,而非自动部署。本文主要使用以下工具实现自动发布过程:
  • JIRA:需求管理工具

  • Gitlab:代码仓库,管理项目代码

  • Jenkins:持续集成的引擎,承载自动化集成流程,驱动、调度持续集成和交付过程

  • Artifactory:构件仓库,应用交付中心

    通过以上工具完成自动化发布有以下好处:

  1. 以需求为起点在后续发布流程中任意环节可以对应到JIRA需求条目,确保最终交付物不会偏离原始需求。
  2. 减少手动操作部分,提高项目发布效率,降低出错概率和运维成本。
  3. 通过工具自动升级版本号,规范版本管理。
  4. 通过工具完成发布过程并提供最终交付物,可监控溯源。

流程

DevOps落地实践之持续集成_第1张图片

  1. 需求分析
    参与人员:业务、需求、项目经理、开发
    工作内容:使用JIRA分析需求。业务人员录入原始需求,需求人员协助项目经理将业务需求转换为开发需求。
  2. 创建代码库
    参与人员:项目经理、开发
    工作内容:使用Gitlab创建项目并根据JIRA上的需求条目创建功能分支,配置项目成员和分支保护策略。
  3. 代码开发
    参与人员:开发
    工作内容:遵循项目组制定的代码管理规范和分支管理策略开发代码。
  4. Jenkins监听代码库事件自动触发或由开发/测试人员手动触发构建流程。
  5. Jenkins 从Gitlab拉取代码并在构建服务器上编译构建,构建过程中执行单元测试用例并使用SonarQube扫描代码,最终将构建出的快照版本推送至Artifactory仓库。
  6. 发布正式版本
    参与人员:项目经理
    工作内容:编译构建、静态代码扫描、收集发布版本对应JIRA需求条目并与代码提交时携带需求条目编号比对、推送正式版本至Artifactory仓库、创建发布分支、指定下个开发版本号。

实现步骤

需求分析

Jira安装部署

Jira权限管理

Jira看板管理

Jira需求拆分

代码管理

Gitlab安装部署

分支保护策略

分支管理策略

代码结构规范

交付物管理

Artifactory安装部署

Artifactory 远程同步公网Maven仓库

Artifactory本地仓库

交付物规范

静态代码扫描

SoanrQube安装部署

设置质量关卡

持续集成工具Jenkins

Jenkins安装部署

Jenkins插件管理

Jenkins系统配置

配置持续集成Job

持续集成效果演示

你可能感兴趣的:(DevOps系列)