Skip to main content

moregeek program

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 子依赖包。目录结构变动如下图所示:

SREWorks v1.4 版本发布 | 离线安装 & 前端重构_大数据

工程重构过程中,我们对原有构建工具也进行了优化升级:

  • 主包应用采用 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 v1.4 版本发布 | 离线安装 & 前端重构_大数据_02

离线部署的命令示例如下,底层依赖软件和运维应用的镜像仓库需要分开设置:

镜像仓库以 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. 其他

  1. appmanager kankio 构建逻辑优化升级
  2. 使用 rancher/local-path-provisioner 作为默认存储供应,移除 openebs 依赖
  3. 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​


在此感谢来自开源社区的 @kw214 (Kimmy Wang) 同学在 Monorepo 演进方案中积极的讨论参与以及代码贡献,也欢迎更多的伙伴能够参与到我们的开源工作组中来,一起将项目做的更好(有意向的同学可以联系群中小助手或群管理员进组)

©著作权归作者所有:来自51CTO博客作者阿里云大数据AI技术的原创作品,请联系作者获取转载授权,否则将追究法律责任

hadoop中的mapreduce框架-多极客编程

一个MapReduce作业通常会把输入的数据集切分为若干独立的数据块,由Map任务以完全并行的方式去处理它们。           框架会对Map的输出先进行排序,然后把结果输入给Reduce任务。通常作业的输入和输出都会被存储在文件系统中,整个框架负责任务的调度和监控,以及重新执行已经关闭的任务。           通常,MapReduce框架

hadoop中mapreduce配置-多极客编程

一,配置mapred-site.xml进入以入目录[root@hadoop01 hadoop]# cd /home/software/hadoop-2.7.1/etc/hadoop复制mapred-site.xml示例文件[root@hadoop01 hadoop]# cp mapred-site.xml.template mapred-site.xml修改mapred-site.xml,增加如下

hdfs的常用指令-多极客编程

 指令说明hadoop fs -mkdir /park01在hdfs根目录下创建文件夹park01hadoop fs -ls /查看hdfs根目录下有哪些目录或文件hadoop fs -put /root/1.txt /park01将linux操作系统root目录下的1.txt放在hdfs的park01目录下hadoop fs -get /park01/jdk /home把hdfs文件系统下par

hadoop概述-多极客编程

官方网址:​​http://hadoop.apache.org/​​Welcome to Apache™ Hadoop®!What Is Apache Hadoop?The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.The Apache Ha

hdfs,mapreduce,yarn的架构思想和设计原理-多极客编程

Hadoop 三大组件:HDFS,MapReduce,Yarn 的架构分析和原理1引子        大数据就是将各种数据统一收集起来进行计算,发掘其中的价值。这些数据,既包括数据库的数据,也包括日志数据,还包括专门采集的用户行为数据;既包括企业内部自己产生的数据,也包括从第三方采购的数据,还包括使用网络爬虫获取的各种互联网公开数据 ...        面对如此庞大的数据,如何存储、如何有效利用

hadoop中namenode职责和hdfs读写-多极客编程

1、namenode职责:1.1、管理各个datanode节点1.2、管理分布式文件系统的元数据信息比如 一个文件多大,文件名,文件被切成几块,每个文件块存到哪台datanode服务上1.3、通过RPC心跳机制来监控datanode的状态。对于网络通信,http主外,rpc主内1.4、为了确保数据存储的可靠性,采用冗余机制来实现,注意:副本数量不宜过多,因为会降低整个集群的磁盘利用率,一般采用3副

【服务器数据恢复】5盘raid5中1块硬盘掉线被误重建为4盘raid5的数据恢复案例-多极客编程

服务器数据恢复环境: 一台服务器上5块硬盘组建raid5磁盘阵列,用于存储公司数据,无备份。 服务器故障&分析: 服务器上一块硬盘故障掉线,用户聘请一家运维公司对服务器进行维护,运维公司技术人员在没有了解清楚服务器原始环境的情况下,将服务器上没有掉线的4块硬盘重新组建为一组新的raid5阵列,导致服务器原有数据全部丢失。 本案例中导致服务器数据丢失的原因就是重建raid5这个操作。用户服务

贴吧低代码高性能规则引擎设计-多极客编程

作者 | 贴吧UEG技术组导读本文首先介绍了规则引擎的使用场景,引出贴吧规则引擎。从组件、变量、规则、处置四个模块介绍了规则引擎的组成部分,同时对最终规则文件的编译过程做了详细介绍。为了做到低代码,在规则配置上做到平台化,非研发同学即可完成。增加新的变量也只需要在变量平台进行简单操作,无需额外的代码提交。另外框架层面支持并行和异步的封装,在服务调用上也尽量做到减少代码,提高研发同学的效率。最后文章

zynq ps之uart调试-多极客编程

在创建应用工程时,选择Hello World模板即可,以XCZU21DR开发。硬件原理图如下:Vivado中添加&配置IP添加Zynq UltraScale+ MPSoc IP。UART设置DDR配置硬件设计中选择的DDR4型号是MT40A2G8VA-062E IT,DDR配置如下图:Other Options设置如下:执行Generate Output Products右键bd,选择Ge

zynq pl端调用ps端的时钟-多极客编程

ZYNQ PS端最多可以分配4个时钟供给PL端使用,见下图。本文的目的:在XCZU21DR环境下,PS给PL提供一个100MHz的时钟,PL端根据此时钟产生1S信号,点亮LED。 添加&配置Zynq UltraScale+ MPSoc IP 双击该IP,在Clock Configuration -> Output Clocks -> Low Power Domain Cloc

程序:三子棋游戏-多极客编程

头文件game.h#define _CRT_SECURE_NO_WARNINGS//头文件#include<stdio.h>#include <stdlib.h>#include <time.h>//定义行列#define ROW 3#define COL 3//函数声明void menu();void InitBoard(char board[ROW][COL

基于mfc的学生成绩管理系统-多极客编程

1.基本功能演示​1.1软件登陆界面​为实现多账户的登陆方式,故采用了标签页组合的方式,每个分页面指向一个登录窗口。​1.2学生界面​学生界面所需要的功能为课程分数查询,功能较为简单,采用了下拉框+编辑框+按钮的方式实现,需要的特殊功能为学分预警。当科目分数小于60时,弹出弹框,并提示,当前科目分数小于60,要加油啦。​1.3教师界面​教师界面相对于学生界面略显复杂,采用了列表+下拉框+编辑框的方