优维产品最佳实践:流水线的编排

优维产品最佳实践:流水线的编排_第1张图片

前言:在前面的内容中,我们已经深入探讨了流水线的设计思路以及“一次构建多次部署”的核心概念。现在,让我们将这些理论知识付诸实践,在 EasyOps 平台上开始编排流水线。

本期优维EasyOps产品使用最佳实践,我们将为您介绍:

  • EasyOps持续集成的核心功能
  • 优维在不同阶段的流水线编排

优维EasyOps平台中流水线这个功能是由持续集成这个小产品承载,持续集成模块为用户提供了以下核心功能:

  • 流水线编排: 用户可以使用 EasyOps 平台的流水线设计器,轻松地创建、配置和排列多个构建、测试和部署步骤,以构建完整的持续集成流水线。
  • 多种任务支持: 持续集成模块支持多种任务类型,如代码构建、单元测试、集成测试、部署到不同环境等。用户可以根据项目需求,选择合适的任务类型。
  • 插件集成:EasyOps 平台提供了丰富的插件,用于执行各种任务。用户可以根据需要选择适当的插件,以满足不同的集成需求。
  • 参数传递和配置: 用户可以在流水线的不同步骤之间传递参数,从而实现数据共享和流程控制。任务的配置也可以根据项目需要进行灵活调整。
  • 触发和自动化: 用户可以设置流水线的触发条件,如代码提交、定时触发等。这样,当触发条件满足时,系统会自动触发流水线的执行。
  • 日志和监控: 在流水线执行过程中,EasyOps 平台会生成详细的日志和报告,供用户查看任务执行情况和结果。用户可以通过监控和日志查看来排查问题。

优维内部按不同的场景有不同的流水线:

  • 研发阶段:开发流水线、打包流水线,
  • 开发流水线:开发流水使用容器保持敏捷开发

优维产品最佳实践:流水线的编排_第2张图片

1)提交即构建,push事件通过webhook触发流水线执行 ,这里希望当研发提交代码后,就立即升级到dev环境中进行自测,所以监听的push事件。点击流水线设置tab中的事件触发器,勾选push事件即可。

优维产品最佳实践:流水线的编排_第3张图片


优维产品最佳实践:流水线的编排_第4张图片

2) 单元测试

优维产品最佳实践:流水线的编排_第5张图片

3)这里是直接使用了多阶段构建,编译代码构建镜像一步完成,通过${{app_name}}、${{package_name}}获取流水线参数,${{image_tag}}获取上一步生成的ID

优维产品最佳实践:流水线的编排_第6张图片

4)API测试

优维产品最佳实践:流水线的编排_第7张图片

5)部署到dev环境进行自测,这里使用的自定义脚本通过helm发布,部署到dev环境后,研发自测;部署失败立即通知研发检查。

优维产品最佳实践:流水线的编排_第8张图片

打包流水线,也可以称为MR流水线,研发自测通过后提MR,合并后由tag触发。

当正式版本生成后,这个版本是贯穿后续的整个CI/CD的。

1)通过tag触发流水线

优维产品最佳实践:流水线的编排_第9张图片

2)编译代码
3)上传制品到制品仓库,按照实际约定好的路径获取制品包并上传到制品仓库


测试阶段:测试流水线
1)研发通过部署流水线部署提测组件api_gateway:1.82.1到测试环境,并提测给QA同事。

2)QA测试,自动/人工测试
3)升级制品,合入发行版

生产阶段:使用双态部署发布单批量部署

优维产品最佳实践:流水线的编排_第10张图片

在优维内部,我们深刻理解软件开发的不同阶段所需的灵活性和稳定性。因此,我们在不同的开发阶段采用了定制化的流水线,以满足不同阶段的需求。

在灵活性的同时,我们也坚守着一个核心原则:在研发完成后的正式出包阶段,我们始终采用相同的版本号,在测试和生产环境中进行部署。这就是我们坚守的“一次构建,多次部署”的原则。它确保了软件的一致性。

通过在测试和生产环境中使用相同的版本号,我们可以消除由于版本差异而引起的问题,确保测试的可靠性,并降低在生产环境中出现未知问题的风险。

你可能感兴趣的:(运维,流水线编排)