SREWorks v1.4 版本发布 | 离线安装&前端重构
在v1.3版本之后,SREWorks团队收集了较多的用户反馈,大家普遍对于SREWorks的内网离线安装有较大的诉求。于是团队决定进一步增强这部分的安装能力。
前端工程部分(frontend),为了开发者更加敏捷高效的协作开发,以及便于社区开发者参与共建前端组件生态。我们对前端工程架构进行了重新梳理拆分,按照Monorepo模式架构演进; 同时也对工程构建相关工具进行了优化升级。
下面为v1.4的版本功能版本介绍:
1. 前端工程Monorepo模式重构
Monorepo即单仓(repository)多包(package),大型前端工程项目采用这种模式进行开发管理,能带来诸多的开发和管理便利:
更加清晰的模块结构和依赖关系;
更细粒度的独立构建单元便于协作开发和不同更新频率的子包单独发版;
更加高效的代码复用等。
我们在v1.4版本中采用lerna + yarn workspace 的技术方案进行了Monorepo的架构实践:将原工程拆分为@sreworks/app主包应用,和@sreworks/components、@sreworks/widgets、@sreworks/framework、@sreworks/shared-utils四个npm子依赖包。目录结构变动如下图所示:
工程重构过程中,我们对原有构建工具也进行了优化升级:
主包应用采用webpack5作为构建工具,子依赖包采用Rollup作为构建工具;
通过调优构建配置,将构建时间由v1.3版本的74秒降低到23秒,提升68%;
通过统一各子包依赖版本、合并重复依赖、以及部分npm依赖cdn引用本地化处理等方式进行了构建体积调优,调优至1.6M,较Monorepo初版本的5.4M,降低70%;
@sreworks/widget-cli 远程组件脚手架进行了同步的构建升级。
2. 离线安装
早期版本的离线安装,依赖用户的Maven源、PIP源在用户内网做应用的二次构建,用户普遍反馈内网场景对于这些源的支持也不齐全,更希望无构建直接拉起。
于是在v1.4版本中,我们将整个底座(appId: flycore)也都上架到了运维市场,使得其相关镜像及元信息,能够作为部署基线固化至开源代码中。
经过收敛之后的镜像清单如下链接,后续每次发版有应用版本更新,都会自动更新该镜像清单。
https://github.com/alibaba/SREWorks/blob/master/images.txt
清单中总共59个镜像,共计存储空间约为5.9G。
下图为通过SREWorks前端组件绘制的按照镜像大小排列的清单矩形树图:
离线部署的命令示例如下,底层依赖软件和运维应用的镜像仓库需要分开设置:
镜像仓库以 sreworks.io/hub-test 为例:
# 下载sreworks到本地 git clone http://github.com/alibaba/sreworks.git -b v1.4 sreworks cd sreworks/chart/sreworks-chart # 安装SREWorks helm install sreworks ./ \ --create-namespace --namespace sreworks \ --set global.accessMode="nodePort" \ --set global.images.tag="v1.4" \ --set appmanager.home.url="http://localhost:30767" \ --set saas.onlyBase=true \ --set global.images.registry="sreworks.io/hub-test" \ --set global.images.imagePullPolicy="IfNotPresent" \ --set appmanagerbase.kruise.manager.image.repository="sreworks.io/hub-test/kruise-manager" \ --set appmanagerbase.mysql.image.registry="sreworks.io" \ --set appmanagerbase.mysql.image.repository="hub-test/mysql" \ --set appmanagerbase.zookeeper.image.registry="sreworks.io" \ --set appmanagerbase.zookeeper.image.repository="hub-test/zookeeper" \ --set appmanagerbase.redis.image.registry="sreworks.io" \ --set appmanagerbase.redis.image.repository="hub-test/redis" \ --set appmanagerbase.minio.image.registry="sreworks.io" \ --set appmanagerbase.minio.image.repository="hub-test/minio"
3. 其他
- appmanager kankio 构建逻辑优化升级
- 使用 rancher/local-path-provisioner 作为默认存储供应,移除openebs依赖
- skywalking进行版本升级(从8.5.0升级到9.3.0),解决skywalking初始化es相关index异常的问题
4. 如何从当前版本升级到v1.4
- 升级包含底座,页面可能会有5-10分钟的不可访问,请注意。
- 用户自行开发的云原生应用不会受影响(不重启),SREWorks网关到应用的流量会有中断。
git clone http://github.com/alibaba/sreworks.git -b v1.4 sreworks cd sreworks ./sbin/upgrade-cluster.sh --kubeconfig="****"
如在使用过程中遇到问题,欢迎各位在GitHub中提出Issues或Pull requests。
SREWorks开源地址:https://github.com/alibaba/sreworks

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
5分钟搞定 HertzBeat 对物联网数据库 IoTDB 监控实践
使用 HertzBeat 对物联网数据库 IoTDB 进行监控实践,5分钟搞定! IoTDB 介绍 Apache IoTDB (Internet of Things Database) 是一款时序数据库管理系统,可以为用户提供数据收集、存储和分析等服务。 IoTDB由于其轻量级架构、高性能和高可用的特性,以及与 Hadoop 和 Spark 生态的无缝集成,满足了工业 IoT 领域中海量数据存储、高吞吐量数据写入和复杂数据查询分析的需求。 HertzBeat 介绍 HertzBeat 是一款开源,易用友好的实时监控系统,无需Agent,拥有强大自定义监控能力。 支持对应用服务,数据库,操作系统,中间件,云原生等监控,阈值告警,告警通知(邮件微信钉钉飞书)。 HertzBeat 的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。 在 HertzBeat 5分钟搞定监控 IoTDB 操作前提,您已拥有 IoTDB 环境和 HertzBeat 环境。 IoTDB 部署安装文档 HertzBeat 部署安装文档 一. 在 IoTDB 端开启metrics...
- 下一篇
店滴云 1.3.4 版本发布
扩展模块生成取消views目录 增加swoole协议下的会员数据表 取消扩展插件生成过程汇总对Python的支持
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路