首页 > 其他分享 >运维人少,如何批量管理上百个微服务、上千条流水线?

运维人少,如何批量管理上百个微服务、上千条流水线?

时间:2024-03-21 18:12:27浏览次数:30  
标签:批量 示例 千条 配置 应用 运维人少 流水线 模板

作者:周静

随着微服务和云原生技术的发展,一个业务系统往往由多个微服务应用组成,多个业务方向涉及几十上百应用。每个应用研发过程又划分为测试、预发、生产多条流水线,也即成百上千条流水线。而一个企业下通常只有 1~2 个运维或架构师负责这些应用的配置管理工作。该场景下你是否会遇到以下苦恼:

  • 业务应用太多啦,一个应用配置的修改就得修改几十上百遍,还有可能错改、漏改?
  • 流水线太多啦,怎么分组管理,快速找到目标流水线?流水线怎么批量授权给一线开发测试同学?

云效应用交付平台 AppStack 以应用为中心聚合管理资源环境、CI/CD 流程、人员权限等;提供应用模板,支持使用模板一键创建应用,快速初始化应用配置;支持应用模板修改批量升级应用,帮助你高效管理上百应用、上千条流水线,帮助企业研发流程和规范有效落地。

使用模版一键创建应用

通常企业一类应用研发会采用相同的技术栈,如 Web 类后端服务通常会采用Java开发语言、Spring boot 框架、K8s 部署形态,前端服务通常会采用 Node.js 开发语言、K8s 部署形态等。一类应用的研发流程、部署架构、环境划分、角色权限划分基本类似,可将一类应用定义为应用模板,同类应用使用模板即可快速初始化配置。

我们提供以下 2 种方式,帮助企业使用模板快速完成初始化。

方式 1:从示例应用模板快速配置应用

云效提供两套示例应用模板,你可以直接从示例模板一键初始化应用配置,体验完整应用部署流程;实际应用部署可按需修改部分流程或配置。

  • 示例模板 1 - Java K8s 应用示例模板,预置测试(镜像构建+测试环境部署)、预发(镜像构建+预发环境部署)、生产(镜像构建+人工卡点+生产环境部署)三条流水线,预置 K8s Deployment 部署 YAML,预置开发、测试、预发、生产四套环境。
  • 示例模板 2 - Java 主机应用示例模板,预置测试、预发、生产三条流水线,预置 Linux 主机部署 Shell 脚本,预置开发、测试、预发、生产四套环境。

方式 2: 企业自定义应用模板一键创建应用

示例应用模板用于帮助快速体验应用配置部署流程,在实际业务研发中,企业页可以自定义符合企业业务特征、满足企业研发流程规范的应用模板。

操作方法如下:在企业全局设置中,新建应用模板(也可以从已有模板复制),按上述单应用配置方式配置应用环境、流水线、部署 K8s YAML 等, 其中,应用下少量不同的配置可以抽取成变量,关联全局变量组或应用内变量组进行差异化配置。

如:Java 构建命令中,某些应用跳过 maven 测试。定义 skipMvnTest 为流水线变量,流水线关联应用变量组,由变量组取值决定是否跳过。

如:部署 K8s YAML 中,某些应用 Deployment 开启 xx 特殊配置。定义 pilotAutoEnable 为编排配置变量,环境关联变量组,应用环境部署时由变量组取值决定是否开启。

新建应用时,选择上述配置好的模板,即可一键初始化应用配置,省去多应用逐个重复配置成本,“解放”双手。

应用创建成功后,可以批量为应用添加成员并赋予相应角色,以角色权限方式统一为应用的多套环境、多条流水线授权。企业可按需配置开发、测试等各角色的权限点。

通过模版修改批量升级应用

随着应用架构升级或研发规范的调整,应用配置也需要不断的升级,通常会选取一两个试点应用做升级测试,验证通过后批量推广到所有应用。典型升级场景示例如下:

示例场景 1:批量修改应用部署配置,增加 sidecar 容器,统一接入监控日志

应用稳定性升级项目要求所有统一接入监控日志,需要在应用部署中增加 skywalking sidecar 容器,用于日志采集、上报等。批量升级步骤如下:

1)进入应用模板 -> 编排配置,开启同步功能。

2)修改模板编排 YAML Demployment 文件,增加 skywalking 容器配置。

3)选择试点应用,进行配置同步,重新部署试点应用进行测试验证。

4)试点应用测试验证 OK 后,再批量选择应用同步,批量推广。同步后,应用下次部署使用最新同步的 YAML 即可生效 skywalking sidecar 容器,进行应用日志采集。

5)点击应用模板 -> 版本记录,可以实时查看各应用同步状态和同步版本,整体控制升级进度和风险,避免错改、避免漏改。

示例场景 2:应用研发流程统一增加安全扫描卡点

企业内引入安全扫描能力,安全同学要求将安全扫描结果作为发布流程卡点,没有通过安全扫描的应用不允许发布。应用批量接入步骤如下:

1)进入应用模板 -> 研发流程配置,开启同步功能(即将上线)。

2)编辑生产发布阶段流水线,增加「安全扫描卡点」组件。

3)选择试点应用,进行配置同步,重新运行试点应用生产阶段发布流程,进行流程验证。

4)试点应用流程验证 OK 后,再批量选择应用同步,批量推广。同步后,应用下次发布时,生产发布流程将经过「安全扫描卡点」,作为发布卡点。

以上,即介绍了以应用维度分组管理测试、预发、生产等不同环境流水线;通过应用模板一键初始化应用配置;通过应用模板批量同步功能统一配置管理上百应用、上千流水线,真正做到“解放”管理员双手。

欢迎点击此处前往云效 AppStack,体验应用批量管理。

标签:批量,示例,千条,配置,应用,运维人少,流水线,模板
From: https://www.cnblogs.com/yyds114/p/18087976

相关文章

  • 运维人少,如何批量管理上百个微服务、上千条流水线?
    作者:周静随着微服务和云原生技术的发展,一个业务系统往往由多个微服务应用组成,多个业务方向涉及几十上百应用。每个应用研发过程又划分为测试、预发、生产多条流水线,也即成百上千条流水线。而一个企业下通常只有1~2个运维或架构师负责这些应用的配置管理工作。该场景下你是否会遇......
  • 流水线
            ......
  • 图像处理ASIC设计方法 笔记10 插值算法的流水线架构
    (一)三次插值算法实现的图像旋转设计的流水线架构传统上,三次插值算法实现的图像旋转设计需要三块一样的处理资源,为了节约资源,采用流水线设计,简单来讲就是三次插值算法共用一块资源,优化这部分使用的存储器结构,以达成流水线的目标。插值算法最直接的是需要DFF模块,现在对它进......
  • 基于英特尔® Gaudi® 2 AI 加速器的文本生成流水线
    随着生成式人工智能(GenerativeAI,GenAI)革命的全面推进,使用Llama2等开源transformer模型生成文本已成为新风尚。人工智能爱好者及开发人员正在寻求利用此类模型的生成能力来赋能不同的场景及应用。本文展示了如何基于OptimumHabana以及我们实现的流水线类轻松使用Llam......
  • 借助 Terraform 功能协调部署 CI/CD 流水线-Part 1
    在当今快节奏的开发环境中,实现无缝、稳健的CI/CD流水线对于交付高质量软件至关重要。在本文中,我们将向您介绍使用BitbucketPipeline、ArgoCDGitOps和AWSEKS设置部署的步骤,所有步骤都将利用Terraform的强大功能进行编排。在Part1里,将主要介绍通过Terraform创建和部署......
  • 流水线设计方法学习
    在数字设计中寄存器对输入信号有着一定的要求,主要是在两个方面上,一个是建立时间(SetupTiming),另外一个是保持时间(HoldTiming),最小建立时间是指在寄存器对信号进行采样之前信号已经提前完成变化,并保持不变;保持时间是指,寄存器在对其进行采样的时候,信号必须在这个时间内保持不变;要想寄......
  • Jenkins流水线使用@Grab 导入Maven库
    有个需求需要在pipeline中调用Java的SDK去执行业务使用@Grab注解可以在Maven中导入Java库,@Grab('org.apache.commons:commons-math3:3.4.1')importorg.apache.commons.math3.primes.Primes引入依赖后,在通过import导入另外的写法@Grab(group='org.springframework',mod......
  • 运用 Argo Workflows 协调 CI/CD 流水线
    ArgoWorkflows是一个开源的容器原生工作流引擎,用于协调CI/CD在Kubernetes中的运作。它以Kubernetes自定义资源(CRD)的形式实现,使开发人员能够创建自定义API对象,以兼容的方式扩展Kubernetes的功能。 选择ArgoWorkflows的原因ArgoWorkflows旨在运行于Kubernetes......
  • 线程池工作流程 工厂流水线打比方
    线程池工作原理关于线程池的工作原理,我用下面的7幅图来展示。1.通过execute方法提交任务时,当线程池中的线程数小于corePoolSize时,新提交的任务将通过创建一个新线程来执行,即使此时线程池中存在空闲线程。2.通过execute方法提交任务时,当线程池中线程数量达到corePoolSize时,新......
  • 作为前端leader,如何搭建属于我们公司自己的流水线自动化部署系统(node+express)
    背景:自动化部署系统主要可以集成到公司内部的管理系统中去,比如公司有多个项目,移动端H5,大屏网站,门户网站等...每次发布或者迭代都需要前端同事打包然后在交给运维或者后端同事放到服务器上进行部署,如果有一个项目多个同事合作完成还要走git合并流程,所以我们的目标就是不让前端进......