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

作者:周静

随着微服务和云原生技术的发展,一个业务系统往往由多个微服务应用组成,多个业务方向涉及几十上百应用。每个应用研发过程又划分为测试、预发、生产多条流水线,也即成百上千条流水线。而一个企业下通常只有 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,体验应用批量管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/475357.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++的内存管理

目录 1. C/C内存分布 2. C语言中动态内存管理方式 3. C内存管理方式 3.1 new/delete操作内置类型 4. operator new与operator delete函数 4.1 连续开辟空间(尽力了解) 5. new和delete的实现原理 5.1 内置类型 5.2 自定义类型 6. 深入理解 6.1malloc/free和new/delete的区…

Git的原理与使用(二)

目录 修改文件 版本回退 小测试 第一次修改提交 第二次修改提交 第三次修改 查看历史提交记录 版本回退快的原因 撤销修改 位于工作区未add 已add未commit 已add且commit 删除文件 分支管理 理解分支 创建分支 切换分支 修改文件 版本库是指maser 查看当前…

Docusaurus和HelpLook:谁更适合做知识库管理

在当今信息化时代,企业建立和维护一个好用、高效、能持续更新的知识库,对内部沟通、团队合作和客户服务都很重要。Docusaurus和HelpLook都是很好的知识库管理工具,但它们的功能和优势各有不同。跟着我一起深入了解两个工具之间的优劣&#xf…

云轴科技ZStack受邀参加鲲鹏原生开发合作启动仪式

3月14日-15日,华为中国合作伙伴大会2024在深圳隆重开幕。作为鲲鹏生态重要合作伙伴,云轴科技ZStack创始人&CEO张鑫受上海鲲鹏生态创新中心之邀参加此次大会,并参加鲲鹏原生开发合作启动仪式。 鲲鹏原生应用开发旨在为伙伴提供鲲鹏硬件底…

Yolo系列各代网络结构分析(一)

Yolo系列 Yolo系列算是目标检测领域的常青树了,从v1到最近的v9,一直都在不断迭代,不断改进,但是细看其各代网络的发展,其实还是有很多一脉相承之处以及算法设计偏好的,总结主要为以下几个方面:…

3、类的生命周期

类的生命周期描述了一个类加载、使用、卸载的整个过程。整体可以分为: 加载连接,其中又分为验证、准备、解析三个子阶段初始化使用卸载 2.3.1 加载阶段 1、加载(Loading)阶段第一步是类加载器根据类的全限定名通过不同的渠道以二进制流的方式获取字节码…

Halcon 3D算子总结整理

halcon 3D包含以下几个模块: 3D Matching(3D匹配)3D Object Model(3D模型)3D Reconstruction(3D重构)3D Transformations(3D转换) 1. 3D Matching 1.1 3D Box3D盒查找器…

【Memcached】springBoot 集成 memcached 两万字长文带你认识memcached

目录 一、 memcached 介绍1.1 简介1.2 特性1.3 优点1.4 缺点1.5 实现原理1.6 适用场景1.7 不适用场景1.8 与 Redis 比较相同点1.9 与 Redis 比较不同点 二、对 java 的支持2.1 Memcached-java-client 客户端2.2 Spymemcached 客户端2.3 XMemcached 客户端 三、下载安装3.1 wind…

anaconda迁移深度学习虚拟环境 在云服务器上配置

1 anaconda 虚拟环境操作 1、 查看虚拟环境 conda info -e2、 创建新的虚拟环境 conda create -n deeplearning_all pip python3.63、 激活新建的虚拟环境 Conda activate deeplearning_all2 环境中相关库的版本即安装说明(这些库都是对应匹配的) …

1236 - 二分查找

代码 #include<bits/stdc.h> using namespace std; int a[1100000]; int main() {int n,x,l,r,p,mid,i;cin>>n;for(i1;i<n;i)cin>>a[i];cin>>x;l1;rn;p-1;while(l<r){mid(rl)/2;if(a[mid]x){pmid;break;}else if(x<a[mid]) rmid-1;else if(x…

微服务day04(上)-- RabbitMQ学习与入门

1.初识MQ 1.1.同步和异步通讯 微服务间通讯有同步和异步两种方式&#xff1a; 同步通讯&#xff1a;就像打电话&#xff0c;需要实时响应。 异步通讯&#xff1a;就像发邮件&#xff0c;不需要马上回复。 两种方式各有优劣&#xff0c;打电话可以立即得到响应&#xff0c;但…

MySQL数据库 - 索引

一. 索引的相关知识 1. 索引的概念 是一个排序的列表&#xff0c;存储着索引值和这个值所对应的物理地址&#xff08;类似于C语言的链表通过指针指向数据记录的内存地址&#xff09;使用索引后可以不用扫描全表来定位某行的数据&#xff0c;而是先通过索引表找到该行数据对应…

NodeJS 集群模块: 为App创建集群实例

NodeJS 集群模块: 为App创建集群实例 目录 NodeJS 集群模块: 为App创建集群实例Node.js 集群介绍:终极扩展策略使用集群模块开始扩展 Node.js扩展 Node.js 的两种集群策略使用集群受益的 Node.js 应用程序示例没有集群的 Node.js:不可伸缩的原则集群操作:一个扩展的 Node.js…

全新体验|德克萨斯州奥斯汀市登陆 The Sandbox

以前所未有的方式探索德克萨斯州奥斯汀——The Sandbox迎来虚拟旅游&#xff0c;新体验由Smobler工作室打造。 我们的使命是为虚拟旅游创造新机遇&#xff0c;让每个人都能更方便地游览城市和国家。我们非常兴奋地宣布&#xff1a;Cobbleland&#xff1a;Austin&#xff0c;这款…

1.C#对接微信Native支付(准备工作)

近期有需求需要在PC网站接入微信支付&#xff0c;遂了解了一下相关文档。https://pay.weixin.qq.com/static/applyment_guide/applyment_index.shtml 官网文档种有多种支付对接方式比如&#xff1a;jsapi、native、app支付、小程序支付等。大家可自行了解&#xff0c;根据自身…

电子合同和纸质合同有同等法律效力吗?

根据《中华人民共和国民法典》的规定&#xff0c;电子合同是合同的一种形式&#xff0c;只要依法成立&#xff0c;就具有法律效力&#xff0c;和纸质合同具有同样的法律效力。同时&#xff0c;法律也认可了以电子数据交换、电子邮件等方式能够有形地表现所载内容&#xff0c;并…

深度解析:普通人运用ChatGPT10大经典场景,你用过几种?(内含使用教程)

本内容来源---布博士&#xff08;擎创产品专家&#xff09;公众号 很长时间没有更新ChatGPT相关内容了&#xff0c;最近一段时间一直在通过各种渠道了解大型语言模型&#xff0c;重点关注其在各个应用领域的使用情况&#xff0c;以此来了解其应用的边界。 在近两个月的学习过…

Emotion Prompt-LLM能够理解并能通过情感刺激得以增强

Large Language Models Understand and Can be Enhanced by Emotional Stimuli 情感智能对我们的日常行为和互动产生了显著的影响。尽管大型语言模型&#xff08;LLMs&#xff09;被视为向人工通用智能迈进的一大步&#xff0c;在许多任务中表现出色&#xff0c;但目前尚不清楚…

xercesc库中文保存XML功能实现

目录 一 参考链接 二 运行结果 三 代码 一 参考链接 DOM Programming Guide (apache.org) Xerces-c DOM XML文件的构造_xerces-c domimplementation-CSDN博客 Xerces-c库的使用-CSDN博客 二 运行结果 三 代码 #include "XercesC_Test.h"#if 1//参考链接&…

基于爬虫对山西省人口采集+机器学习的可视化平台

文章目录 数据来源一、研究背景与意义二、研究目标三、研究内容与方法四、预期成果五、代码讲解六、全文总结 数据来源 1.所有原数据均来自&#xff1a;国家统计局-政府的数据网站 2.涉及到的一些预测数据是根据现有数据进行预测而来。 本文从数据来源&#xff0c;研究意义&am…