共计 2526 个字符,预计需要花费 7 分钟才能阅读完成。
在 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/SR…
清单中总共 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