首页 > 其他分享 >优维产品最佳实践:流水线的编排

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

时间:2023-09-11 17:33:13浏览次数:36  
标签:集成 触发 EasyOps 部署 编排 流水线 优维

优维产品最佳实践:流水线的编排_生产环境

优维产品最佳实践:流水线的编排_生产环境_02

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

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

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

优维产品最佳实践:流水线的编排_持续集成_03

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

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

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

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

优维产品最佳实践:流水线的编排_生产环境_04

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

优维产品最佳实践:流水线的编排_上传_05

优维产品最佳实践:流水线的编排_持续集成_06

2) 单元测试

优维产品最佳实践:流水线的编排_生产环境_07

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

优维产品最佳实践:流水线的编排_生产环境_08

4)API测试

优维产品最佳实践:流水线的编排_上传_09

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

优维产品最佳实践:流水线的编排_生产环境_10

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

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

优维产品最佳实践:流水线的编排_生产环境_11

1)通过tag触发流水线

优维产品最佳实践:流水线的编排_生产环境_12

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

优维产品最佳实践:流水线的编排_持续集成_13

优维产品最佳实践:流水线的编排_生产环境_14

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

优维产品最佳实践:流水线的编排_持续集成_15

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

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

优维产品最佳实践:流水线的编排_生产环境_16

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

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

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

标签:集成,触发,EasyOps,部署,编排,流水线,优维
From: https://blog.51cto.com/u_15605878/7437443

相关文章

  • 使用Jenkins的流水线生产Allure报告发送到企业微信
    pipeline{agentanyenvironment{name="${JOB_NAME}"times="${currentBuild.duration}"task="${BUILD_ID}"logs="${ChangeLog}"}stages{stage('拉取代码'){steps{gitcred......
  • Docker(2)--图形化及编排
    1.Docker图形化界面图形化界面直接使用命令下载,其本身也是一个镜像dockerrun-id-p8000:8000-p9000:9000--name=portainer  --restart=always  -v/var/run/docker.sock:/var/run/docker.sock  -vportainer_data:/data  portainer/portainer ......
  • 深入理解容器编排与Kubernetes
    什么是容器编排?容器编排是一种自动化和管理容器化应用程序的方法。它涉及到管理多个容器实例、负载均衡、自动伸缩、服务发现等。容器编排工具可以帮助开发人员和运维团队有效地部署、扩展和维护容器化应用程序。为什么使用容器编排?使用容器编排的好处包括:自动化扩展:容器编排工具......
  • deepspeed流水线并行
    docs/_tutorials/pipeline.mdhttps://gitee.com/qzl66/DeepSpeed/blob/master/docs/_tutorials/pipeline.md 1、重构管道模型  ExpressingPipelineModels 流水线并行要求模型被表示为一系列层。在前向传播中,每一层输入为上一层的输出。其实管道并行模型是不需要指定forw......
  • 分享生产项目DevOps CICD流水线解决方案
    一、前言每家互联网业务迭代更新都会有自己的一套DevOps发布上线技术架构体系,不管是采用什么工具都离不开编译、打包、发布、部署等几个环境,随着互联网快速的发展,为了满足企业业务上线需求,大批的技术人员都研发出各种有意思的工具,像我们熟知的Jenkins、Spug等,都为我们互联网公司业......
  • node前端的流水线pipline案例
    pipeline{agent{kubernetes{cloud'kubernetes-dev'slaveConnectTimeout1200workspaceVolumehostPathWorkspaceVolume(hostPath:"/opt/jenkins/workspace",readOnly:false)yaml'''apiVersi......
  • jdk后端的流水线pipline案例
    pipeline{agent{kubernetes{cloud'kubernetes-dev'slaveConnectTimeout1200workspaceVolumehostPathWorkspaceVolume(hostPath:"/opt/jenkins/workspace",readOnly:false)yaml'''apiVersi......
  • 企业实现客户旅程编排必备的三大引擎
    每一个时代有每一个时代的主题,每一个时代也有每一个时代的挑战。2010-2020年是移动互联网的时代,大量的智能手机和App诞生并在线上加速推广,越来越多的网民加入进来,流量红利时代登场。具体来看,交易型业务开始向线上迁移,电商、O2O、互联网金融等行业飞速发展,各行各业的经营需求不局......
  • Kubernetes、Docker Swarm和Rancher的特点 - 容器编排平台比较
    本文将介绍三种流行的容器编排平台:Kubernetes、DockerSwarm和Rancher。我们将比较它们的特点,包括架构、功能、性能和生态系统。通过了解这些平台的优势和劣势,读者可以更好地选择适合自己需求的容器编排平台。引言随着容器技术的快速发展,容器编排平台的需求也日益增长。容器编排......
  • 融媒行业落地客户旅程编排,详解数字化用户运营实战
    移动互联网时代是流量红利的时代,企业常用低成本的方式进行获客,“增长黑客”的概念大范围传播。与此同时,机构媒体受到传播环境的影响,也开始启动全行业的媒体融合转型。在此背景下,2015年神策数据成立,核心解决的是帮助客户通过数据分析实现更好的增长。2020年之后数字化转型的大趋势......