SREWorks v1.3 版本发布 | 插件机制发布

news2025/7/7 14:24:26

在v1.2版本发布之后,SREWorks团队着手开始了v1.3版本的迭代。此次v1.3版本融合了较多用户需求,以及对底座机制进行了较大调整和优化,故发版时间长了很多。下面让我们切入正题,来看看这些大变化究竟是哪些?

1. 插件机制

插件包

在OAM应用体系中,组件(Component)和运维特征(Trait)本身即属于可插拔的部分。在v1.3版本中,SREWorks团队优化了appmanager的加载机制,将这些插拔模块从appmanager的源码中剥离出来,成为了独立插件包。插件管理以及包结构如下图:

├── definition.yaml                           /* 组件定义,描述了组件的元信息 */
├── frontends
│   ├── deploy.json                           /* 组件部署时前端定制交互 */
│   ├── build.json                            /* 组件构建方案的前端定制交互 */
│   └── source.json                           /* 组件构建源的前端定制交互 */
└── dynamicscripts
    ├── ComponentDeployHandler.groovy         /* 组件的部署脚本 */
    ├── ComponentBuildHandler.groovy          /* 组件的构建脚本 */
    ├── ComponentDestroyHandler.groovy        /* 组件运行时实例销毁脚本 */
    └── ComponentHandler.groovy               /* 组件定义 */

在后续的小版本中,SREWorks团队以及生态开发者们,会持续地将内置组件及运维特征转换成标准插件,预计迁移过程会持续1-2个版本。

鉴于当前插件的开发存在一定的学习门槛,v1.3版本还暂未对外公开插件的开发体系。待相应的开发者工具配套完善后,我们会将其与开发者手册一起提供给社区。

插件可视化

通常一个插件会包含前端页面,参照上图插件的目录结构,frontends目录下即为插件独有的前端定制页面。

以Helm组件为例,在选择添加该组件后,用户可以选择两种源,一种为该组件的定制源:社区仓库(Artifact Hub),另外一种为通用源:代码仓库。组件在进行构建的时候,appmanager会执行ComponentDeployHandler.groovy脚本,该脚本会自动从用户选择的源中拉取Helm包打包进应用包中。该组件添加可视化过程如下图所示:

在完成组件添加之后,可以为该组件配置部署的参数基线。这个参数基线前端是由插件中的deploy.json控制:Helm的参数均被放置在values这个大变量中。同时,这些变量也可以利用OAM中的dataInputs机制由应用层的全局变量来传入。

上述的一系列的配置完成后,OAM部署YAML(ApplicationConfiguration)会被自动生成,在应用构建页面可以预览到这份YAML文件。

PS: 这套插件的可视化机制也全部是利用前端低代码能力实现,有兴趣的同学可以把企业应用管理(APP_ID: app)这个应用在【运维开发】中导入开发查看其前端低代码编排明细。

组件定义流程标准化

从插件可视化那里,细心的同学可能会发现,我们的组件定义流程从单步变成了四步。是的,随着组件的开发体系进一步完善,SREWorks团队对组件的定义过程也进行了明确细化:

原本单步的组件定义拆了4+1步,4步如下图所示

另外的+1步即组件部署基线。SREWorks遵循OAM规范,将运维特征(Trait)这种运行时(Runtime)的能力,严格地剥离到组件定义周期之外,作为部署基线依附在组件上。比如一个组件需要使用Ingress或网关,这些与组件本身定义无关,只是运行时的运维特征附加,而如果真的让使用者到部署时候再去附加,又会增加部署的复杂度:于是以这种部署基线的方式进行维护,使用者只需要在部署基线之上,针对性地少量配置即可。

2. 应用机制优化

应用体系升级

SREWorks上线以来,由于【运维开发】中的应用和【应用开发】中的应用存在一些相似,会给使用者带去一定的困扰,尤其是一些运维团队。于是SREWorks团队针对内部使用场景以及外部意见反馈,重新明确了一下这两种应用,如下图所示:

企业应用 -> 企业应用市场:

  • 承载企业核心业务的云原生应用
  • 能够被加持数智运维能力,展开进一步的数智化运维治理
  • 市面上各类开源应用或大数据解决方案,会被以企业应用形式上架企业应用市场

运维应用 -> 运维应用市场:

  • 使用SREWorks前端低代码模式构建的云原生运维应用
  • 能够被快速嵌入集成运维中台能力
  • 所有运维应用均经过开发及模型抽象,不会直接上架开源应用至运维应用市场。

企业应用市场

企业应用市场中的云端仓库在v1.3正式上线,依据上文的应用边界定义,在企业应用市场上会上架各类开源应用的云原生部署方案,让使用者可以一键部署复杂应用支撑业务。

企业应用市场与运维应用市场使用同一套应用机制,应用包结构相同,但使用不同的连接串(endpoint)。同时在这套机制之上,也欢迎用户构建自己的公司的云原生应用市场。

运维应用市场

随着应用体系的升级,原本内置运维应用也都被上架到了云端运维应用市场。每个内置运维应用功能更新后,会被优先发布至云端市场,用户可以保持更快的更新频率(运维应用的小版本迭代频率会快于SREWorks大版本)。

同时后续版本中会进一步对SREWorks底座和运维应用进行解耦(底座不升级也可以通过云端市场升级到最新),整体采取这样的更新策略:底座更新频率下降,运维应用更新频率上升。

针对用户反馈的孤岛环境部署难的问题,我们在这个版本开放了离线运维应用包便捷导入导出的能力,进一步降低使用者应用交付门槛。如下图为SREWorks 云端/离线 两个应用分发渠道。

下图为离线应用包的前端交互操作链路:

3. 前端组件自定义集成

很多用户深度使用了运维应用的前端组件编排之后,觉得当前的通用前端组件还无法满足需求,提出希望开发自己的前端组件。但进行尝试的用户需要将自行编写的组件源码合并到frontend的源码目录中重新编译出包,这大大增加了用户的开发成本。于是我们在底层结构上做了适配优化,支持组件可以用UMD包形态远程加载

这也就意味着,用户可以直接将自己写的组件打成UMD包,整个打包构建过程与frontend编译无关,可以独立完成。前端组件在构建完成后,支持在运维物料中一键快速导入,导入后使用体验完全等同内置组件

提供@sreworks/widget-cli 远程组件开发脚手架,内置vue 和 react 工程初始化配置模板,用户可根据自身技术栈自由选择,将已有业务组件发布到npm或自定义私有仓库,快捷集成使用,且方便版本管理,支持组件runtime在线升级更新。

4. 数据运维平台的流计算作业监控大盘

数据运维平台中的流计算部分基于开源VVP平台实现,由于其缺失有效的作业监控大盘,v1.3版本基于Grafana,以全托管方式新增VVP作业的监控大盘。

5. 其他

  1. 支持helm install SREWorks之后的进度跟踪查询
  2. 增加表格组件行高亮动态配置功能,支持5种颜色
  3. 增加前端组件: wordcloud 词云图 / heatmap热力图, 优化前端组件: Tab竖向过滤器支持
  4. 增加操作提交提示信息自定义能力 https://github.com/alibaba/SREWorks/issues/86
  5. 优化kankio容器构建机制
  6. 增加应用管理默认纳管自身k8s集群
  7. 桌面背景伸缩适配优化

如何从当前版本升级到v1.3

  • 升级包含底座,页面可能会有5-10分钟的不可访问,请注意。
  • 用户自行开发的云原生应用不会受影响(不重启),SREWorks网关到应用的流量会有中断。
git clone http://github.com/alibaba/sreworks.git -b v1.3 sreworks

cd sreworks
./sbin/upgrade-cluster.sh --kubeconfig="****"

如在使用过程中遇到问题,欢迎各位在GitHub中提出Issues或Pull requests。

SREWorks开源地址:https://github.com/alibaba/sreworks

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web3——开发第一个智能合约

学习写第一个智能合约,下面连接是集成开发环境 https://github.com/smartcontractkit/full-blockchain-solidity-course-js#lesson-2-welcome-to-remix-simple-storage 点击 “Remix” 来到Remix IDE,这就是我们要写代码的地方,集成开发环境…

一文入门mybatis-plus

mybatis-plus mybatis-plus官网 MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生. 可以说呢,在MP基础上还可…

一次想不到的 Bootstrap 类加载器带来的 Native 内存泄露分析

最近我们线上有同学反馈,java 服务在接入了支持预发的 javaagent 以后会出现缓存的内存增长,去掉 agent 启动以后内存增长正常。于是分析了一下这个问题,写了这篇文章。 备注:JVM 堆内存最大 1000M 主要会涉及下面这些内容&#…

防火墙基础技术

目录 一、内容概述 二、防火墙概述 防火墙的应用 防火墙的本质 防火墙的发展历程 防火墙特征 防火墙分类 包过滤防火墙: 包过滤防火墙的缺点: 代理防火墙: 代理防火墙的缺点: 状态检测防火墙: 状态检测防火…

【Linux修炼手册:基本指令(下)】

目录 1 man指令(重要) 2 more指令 3 less指令(重要) 4 head指令和tail指令 5 时间相关的指令 6 Cal指令 7 find指令:(灰常重要) -name 8 grep指令 9 zip/unzip指令 10 其他常见命令 1…

SiPM使用总结

1、SiPM的电子模型 首先我们来看一下二极管的雪崩电子模型,电子模型和雪崩时的电流波形如下图所示, 电流上升的快慢是由电容的充放电速度决定的,充电的时常数TdRS*Cd,放电的时常数 TqRq*Cd,这里Rq>>Rs&#xf…

《Hidden Markov Map Matching Through Noise and Sparseness》读书笔记

摘要 Our test shows how the algorithm breaks down as the sampling rate of the GPS is reduced. We also test the effect of increasing amounts of additional measurement noise in order to assess how well our algorithm could deal with the inaccuracies of other…

甘露糖修饰阿奇霉素|mannose-Azithromycin|甘露糖-聚乙二醇-阿奇霉素

甘露糖修饰阿奇霉素|mannose-Azithromycin|甘露糖-聚乙二醇-阿奇霉素 甘露糖修饰阿奇霉素,溶于大部分有机溶剂,如:DCM、DMF、DMSO、THF等等。在水中有很好的溶解性,取用一定要干燥,避免频繁的溶解和冻,提供…

2022年11月华南师范大学自考本科计算机信息管理系统加考实践题目

《 管理信息系统 》课程试卷 答卷提交说明: 在access环境下填写SQL命令完成以下实践的题目,并返回执行结果的截图,答卷的答题格式如下,包括三部分:题目,SQL文本代码,代码运行截图&#xf…

负载均衡架构

整体架构 设计关键点 4级负载架构 3级负载架构 2级负载架构 技术剖析 DNS 应用 地理位置和机房级别的负载均衡 优点 标准协议 缺点 能力有限,不够灵活DNS劫持DNS缓存 HTTP-DNS 应用场景 App、客户端 优缺点 可以根据业务和团队技术灵活定制非标协议、不通…

企业微信汇报怎么定时提醒?如何导出?

汇报工作的重要性在哪里? 作为职场人,能够准确及时的和自己的领导汇报自己的工作,不仅仅是我们工作的一部分,也是我们和领导工作沟通的一种十分重要的形式。汇报工作的重要性主要体现在: ● 可以让你的领导知道你日常…

算法刷题日志——贪心

文章目录分发糖果根据身高重建队列分发糖果 相邻的学生中,评分高的学生必须获得更多的糖果 ,所以需要分别从左往右和从右往左遍历,然后取两次遍历结果的最大值就是最少糖果的数目了。 class Solution {public int candy(int[] ratings) {int[…

xgplayer西瓜视频插件引用后因视频格式引起问题?

起因是我的医疗公众号项目为了应对新需求引入了西瓜视频插件,但后台配置视频文件后有的可以正常展示,有的却是黑屏。我这边的安卓和ios端app都嵌套了我写的h5页面。 初步调查: 个别课程在手机上看着确实不能播放,在电脑上播放是…

大麦 Android 选座场景性能优化全解析

作者:于世雷(蓝彻) 通常情况下移动端APP由于受到设备性能所限一般较少有场景会处理超量数据,更多的是将复杂数据处理交付给服务端。本质上降低终端强数据处理是很有必要的,降低CPU使用率、减少内存抖动可以大幅提升APP使用体验。但是有时移动…

Node.js学习记录

一、Node.js简介 浏览器中JavaScript在浏览器中的运行环境(代码正常运行需要的环境), Node.js后端的运行环境,通过Node.js可以实现用JavaScript后端开发 Node.js是一个基于Chrome V8引擎的JavaScript运行环境 二、fs文件系统模块 …

腾讯云短信告警

腾讯云短信告警 密钥获取地址:https://console.cloud.tencent.com/cam/capi #!/bin/python #-*- coding: utf-8 -*-import json, sys from tencentcloud.common import credential from tencentcloud.common.profile.client_profile import ClientProfile from tenc…

来!简单了解一下计算机发展史!

一、古代的运算工具 1.双手 当我们还是远古人的时候,我们用双手来进行计算 2.结绳、垒石 渐渐的,又出现了结绳记事和垒石记事 3.春秋战国时期 — 算筹 春秋战国的时候,广泛使用的算筹,根据不同的排列来表示不同的数字并进行计…

JavaScript基础(11)_方法、枚举对象中的属性、作用域

函数可以成为对象的属性。如果一个函数作为一个对象的属性保存,那么我们称这个函数是这个对象的方法,调用这个函数就是调用对象的方法(method) 比如:console.log()调用console对象的log方法。document.write() 调用document对象的write方法。…

RabbitMQ详解

RabbitMQ详解 文章目录RabbitMQ详解一、AMQP 和 JMS1.1 JMS1.2 AMQP1.3 两者对比二、RabbitMQ消息模型2.1 基本消息模型2.2 工作消息模型2.3 订阅模型2.3.1 Fanout 订阅模型2.3.2 Direct 订阅模型2.3.3 Topic 订阅模型三、消息持久化3.1 交换机持久化3.2 队列持久化3.3 签收机制…

玩推特营销必知的基础常识上篇

现如今,Twitter已从一个让人们分享其想法的地方变成了一个强大的营销,该可让品牌实时与受众交流。每月活跃用户超过3.21亿,很容易看出为什么公司在所有这些时间之后仍继续使用Twitter。但是,仅仅偶尔发出有关趋势的话题&#xff0…