DatistEQ之流程优化

0、前言

某企业级研究平台,经过十多年的迭代,数据量高达数十亿,功能项三千有余,每天有数千用户在线。多年的经营,主要借助外包的力量,进行平台的代码开发,从顶盛时期的数百,如今仅剩数十人,人才流失,迎来一批又批的新面孔。平台从无到有,也留坑无数。时至今天,填不完坑,明知资源缺乏,去又不得不苦苦维系。
众多坑中,也不乏系统崩塌的天坑存在,架构师曰:“我猜问题,大约在.....地方。”这是要人命的节奏啊。

1、DatistEQ监测方案

猜平台的问题所在,2000万行代码,怎么能够猜得了来呢?这是“重业务应用、轻技术沉淀,追求短期见效,忽视长期发展”的必然产物。是的,系统运维缺乏有效的工具。平台每次产生约20万条日志,这是性能提升的抓手,也是填坑的关键所在。

于是,使用DatistEQ写了10余张报表,每天早上分析前一天的系统运行状况,给系统运维的管理者。领导是第一生产力,只有领导者盯了,代码人员才有可能动起来,谁也不愿去翻前人的代码,这是常态。

这些报表,主要包括当天活跃用户,每个用户产生的日志量、高并发时段、用户下载量、API的访问量及单次耗时等。整个流程共使用了120多个节点,以Excel文档的形式推送至用户的手机端。

日报优化前

2、流程优化

日报流程的上线运行,半年时间,发现大量隐含的BUG,如下载过程中的大量IO、图元选中时触发的无效查询等;更有奇葩的键盘坏了导致产生的大量请求。精确定位,使得运维人员有目标,有方向,大幅度提升了运维的效率。这也是运维关键所在——精确制导。

对于流程本身而言,120个节点不算多,然而最终汇集到一个Excel表格,版面略显杂乱,美感不够,层次不够清晰,运维扩展工作渐有疲惫感。“想改,又不愿去改。”

于是产生优化流程的想法,优化之后,虽节点增加到130多个,但大幅度增强流程可读性。

日报优化后

所谓优化,就是借助于超节点,流程进行分组,构建若干个子流程,从而使流程的逻辑更加清晰。
超节点有一个特性就是,仅有一个入口和一个出口。这就限制了超节点的使用范围。

首先是多个入口问题。
例如,用户信息部分的分支节点,需要从前节点引入三次数据,同时前节点,又为其他的分支提供数据源。创建超节点,违反了仅有一个入口的原则。
这可以用一个不产生实际使价值的节点,在前节点与后续节点之间做桥接,首选的列过滤节点。当然其它节点也可以。

用户
总览

其次是多个出口问题。
多个出口问题的解决方案,是从多个出口选一个主要出口,作为分支流程的唯一出口。而其它出口,则使用内部分支节点,在流程内部进行数据跳转。内部分支的使用方法,见下文。
这里存在一个问题,对于内部分支节点而言,可以指定任意节点。在后续的运维过程中,有可能忽略这些节点存在,导致流程无法运行,这是个很大的风险。

API

最后是多个源头生成Excel文档的问题
流程中之所以这么复杂,是把10多个表单,指向一个生成Excel文档的节点,使用界面过于复杂。
对于Excel文件节点,属于终端节点,可以通过文件收集器,将其转换为流数据,向后扭转。再使用Excel合并节点,合成一个Excel文件。

SQL

下载

3、关键节点

内部分支(V 2023 Q2版)

内部分支节点,将数据源定向到指定节点,数据与指定节点数据相同。
首先,该节点是一个数据源节点;
其次,这个数据源节点的数据,取决于它指向的节点。
在流程中,节点与节点之间通过链接定义数据的流向;流程通过超节点进行分组,划分成若干个子流程,可大幅度增加流程的可读性,便于流程的维护工作;通常情况下,链接不可跨越超节点,这也大幅度限制了,流程自身节点的复用。该节点,可以在多个子流程中进行跳转,不受超节点的分组的限制。类似于VB语言中的Goto语句。

内部分支的节点指定关系,支持两种方式:
一、文字筛选方式,在文本输入框中,输入关键字,查找并指定节点。内部分支节点通过节点ID映射,在查找过程中,需注意同名节点的ID。

文字筛选方式

二、快速映射方式,也是推荐使用方式,键盘Ctrl+鼠标左键,从源节点拖至内部分支节点。请注意这里起止,代表是数据的流向。数据映射完成后,源节点图标上,将出现一个链图标。

快速映射方式

三、跳转定位
大数据处理流程,跳转与引用之间难以定位,系统支持数据源与分支节点之间的跳转定位。

查看指向的内部分支节点
查看分支的源节点

结论

流程是一个逻辑产品,也是对现实的映射。需要的不断地优化,以保持其可读性,释放运维人员的脑力,推进流程产品的可持续发展。

你可能感兴趣的:(DatistEQ之流程优化)