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

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 云效 AppStack 平台针对微服务和云原生环境下的应用管理难题,提供了以应用为中心的资源、流水线和权限管理解决方案。

作者:周静

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


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


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


01 使用模版一键创建应用


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


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


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

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


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

image.png

image.png

image.png


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

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


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


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

image.png

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

image.png

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

image.png

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

image.png

image.png


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


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


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


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


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

image.png

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

image.png

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


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

image.png

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

image.png


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

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


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


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

image.png

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


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


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


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

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
3月前
|
弹性计算 运维 监控
基于钉钉的阿里云管理实践(三)之运维管控
随着移动互联网的发展,使用移动设备进行云资源管理变得越来越普及。钉钉作为一款企业沟通和协作工具,其集成的阿里云控制台小程序让用户能够在移动端进行便捷的云资源管理操作。本教程将为您介绍如何在钉钉的阿里云控制台小程序内访问并操作阿里云资源。
115 1
|
1月前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
1月前
|
运维 应用服务中间件 调度
微服务容器化的运维
【2月更文挑战第27天】
|
1月前
|
SQL 分布式计算 运维
Hudi的管理与运维
Hudi的管理与运维
35 0
|
1月前
|
SQL NoSQL 数据库
深入浅出:微服务架构下的数据库事务管理
【2月更文挑战第12天】 在当今微服务架构日益流行的背景下,如何有效地管理跨服务的数据库事务成为了开发与维护中的一大挑战。本文旨在探讨微服务环境下数据库事务管理的关键技术和策略,包括但不限于分布式事务的基本概念、常见的解决方案(如两阶段提交、补偿事务等),以及这些方案在实际应用中的优缺点比较。通过深入浅出的方式,本文希望能够帮助读者更好地理解并应对微服务架构下的数据库事务管理问题,进而提升系统的稳定性和可靠性。
|
4月前
|
前端开发 JavaScript API
SpringCloud微服务之学生管理
SpringCloud微服务之学生管理
56 0
|
4月前
|
存储 弹性计算 运维
阿里云——云服务器基础运维与管理
阿里云——云服务器基础运维与管理
223 0
|
3月前
|
监控 安全 Java
JAVA智慧工地管理系统源码基于微服务
JAVA智慧工地管理系统源码基于微服务
50 0
|
3月前
|
监控 安全 关系型数据库
微服务+Java+Spring Cloud +UniApp +MySql智慧工地综合管理云平台源码,SaaS模式
微服务+Java+Spring Cloud +UniApp +MySql智慧工地综合管理云平台源码,SaaS模式
111 0
|
4月前
|
JavaScript Java 关系型数据库
基于微服务、Java、Springcloud、Vue、MySQL开发的智慧工地管理系统源码
基于微服务、Java、Springcloud、Vue、MySQL开发的智慧工地管理系统源码
40 0

热门文章

最新文章

  • 1
    Serverless 应用引擎产品使用之数据文件(例如sdxl)超过了OSS(对象存储服务)的单个上传大小限制(5GB)如何解决
    6
  • 2
    Serverless 应用引擎产品使用之在函数计算中,数据库访问失败如何解决
    12
  • 3
    Serverless 应用引擎产品使用之在阿里云函数计算中发现没有NAC(Native Application Component)选项,且无法自己上传MOD(模块)如何解决
    13
  • 4
    Serverless 应用引擎操作报错合集之在阿里云函数计算中,调用了FC函数但是没有执行或者报错,并且在FC函数后台也看不到调用记录日志如何解决
    15
  • 5
    Serverless 应用引擎操作报错合集之在阿里函数计算中,sd部署启动报错CAExited 报错信息“operation not permitted”如何解决
    11
  • 6
    Serverless 应用引擎操作报错合集之在阿里函数计算中,SD Controlnet Depth 运行过程中出现错误“urllib3 v2.0 only supports OpenSSL 1.1.1+”如何解决
    11
  • 7
    Serverless 应用引擎操作报错合集之在阿里云函数计算中,laravel zip包使用示例的start.sh脚本启动时出现错误代码如何解决
    13
  • 8
    Serverless 应用引擎操作报错合集之在阿里云函数计算中,服务器调用FC函数时出现 "[Errno -3] Temporary failure in name resolution)" 错误如何解决
    11
  • 9
    Serverless 应用引擎操作报错合集之在Serverless 应用引擎中,部署过程中遇到错误代码如何解决
    13
  • 10
    Serverless 应用引擎操作报错合集之在 Serverless 应用引擎中,遇到“没法通过 head 传递灰度标识”如何解决
    13