关于技术架构:PingCode-Flow技术架构揭秘

作者:PingCode 研发 VP@徐子岩本文是PingCode Flow系列文章的第四篇,不出意外的话,也是最初一篇。从去年五月份PingCode Flow正式上线,就在脑海中构思好了四篇文档的程序和大抵内容,从介绍研发自动化的现状、痛点和解决方案,到展现如何应用PingCode Flow来实现研发的自动化。而这最初一篇,则是心愿可能从纯技术角度展现PingCode Flow外部是如何工作的,如何在每天将近4000次规定执行的压力下,保障99%的规定都能在1秒内实现,同时反对程序、并行、判断、循环等简单的运行逻辑。同时,咱们也心愿在这篇文章中分享一下咱们是如何剖析和思考,并最终得出当初的架构。因而本文不会间接展现最终的设计后果,而是会论述咱们为什么要如此的设计,优缺点的衡量,以及开发过程中的重构。PingCode Flow系列文章传送门 研发自动化,你筹备好了么 5分钟带你玩转PingCode Flow 咱们是如何应用 PingCode Flow实现研发自动化治理的 PingCode Flow的实质是什么在前几篇文章中咱们提到,PingCode Flow是一款研发自动化工具。所谓的自动化,就是指在某个事件产生后,依照预约义的流程去实现一系列的操作。所以,实质上来讲,PingCode Flow是一个TAP(Trigger Action Platform)零碎。它由一个触发器和多个动作组成一个有序的执行规定,而后依照这个规定程序执行。因而,PingCode Flow在技术架构设计的时候,就是要确保这样的流程可能顺畅的运行。 数据结构:怎么定义一个规定确定了产品的外围指标后,第一件事就是要明确数据是如何定义的。依照下面的图示,在一个团队中用户可能会定义多个规定,而每个规定都蕴含了一个触发器和多个后续的动作。基于这个简略的需要,能够将规定的数据结构定义如下。这样,一个规定就蕴含了一个触发器以及它所蕴含的动作。而动作的序号决定了他们执行的先后顺序。这样的设计看来根本满足了目前的产品需要。然而咱们晓得,当初的PingCode Flow不仅仅反对上述的复线程序执行流程,还反对条件、并行、判断、循环等负责的执行流程。而且不止于此,咱们须要将上述这些流程自由组合,譬如并行外部有判断,判断外面有循环,循环中还有并行……通过这样简直有限的组合,让一个规定实现简直任意的流转。因而,上述简略的数据结构就齐全不能满足需要。而如何设计一个可能反对各种场景的规定,是摆在咱们PingCode Flow团队背后的第一个难题。如果咱们以「一个规定就是一系列动作的汇合」这个形式去思考,那么很难设计出绝对通用的数据结构。因为规定内的动作是由用户决定的,不可能穷举出所有可能的构造进去。然而能够尝试换一种思路来思考这个问题,也就是说,咱们不再把规定看做是触发器和动作的有序列表,而是将他们定义为一个链表。那么一个规定就是 触发器及下一个动作以后动作及下一个动作的汇合。如果咱们再将「触发器」和「动作」合并为「步骤」。那么一个规定就是第一个步骤以后步骤的下一个步骤这样,咱们对于规定和步骤的定义就能够对立为即规定并不关怀它外部的动作都是什么以及先后顺序,它只关怀第一个动作是什么。而每一个动作也仅仅关怀下一个动作是什么。对于并行、循环、判断等简单的流程,咱们只须要扩大对应动作的数据结构,就能够实现不同的排列组合。譬如对于并行,它的数据结构是这样的。「并行」外部的每个分支的第一个步骤ID保留在一个数组中,示意这个分支要执行的第一个步骤是什么。「并行」自身不关怀每个分支外面具体的流程是什么样的。它只关怀当所有分支都执行结束后,下一个步骤是什么。基于这样的构造,对于上述这个简单的规定 咱们的数据大抵是这样的。对于 步骤1 ,它只设置了下一个步骤是 步骤2 。 对于 步骤2 ,它外部有两个分支 步骤3 和 步骤4 ,下一个步骤是整个分支全副执行结束的 步骤10 。因而它的数据是这样的。 对于 步骤4 ,它是一个循环步骤。进入循环体的第一个步骤是 步骤6 ,而它实现循环后就会完结以后的分支操作。因而它的数据是这样的。 下一个步骤ID 为空,示意以后分支完结。 执行逻辑:如何反对各种类型的步骤当咱们确定了数据结构之后,规定内步骤的执行形式也随之确定了。和构造相似,当一个规定被启动后(咱们先不思考规定是如何被触发的),它会首先找到第一个动作的ID。相熟PingCode Flow的读者们都晓得,咱们零碎内预置了很多的动作,譬如设置工作项负责人、创立页面、变更测试用例状态等等。那么这些动作是怎么被执行起来的呢。首先,每一个动作都会有一个全局惟一的名称。当规定执行到这个步骤的时候,咱们会通过步骤的ID找到它的动作名。通过动作的名称定位代码中对应的理论执行逻辑。譬如「设置工作项负责人」这个动作,它的连接器名称是 project ,动作名称是 set_assignee 。代码大抵如下。 @action({ name: "set_assignee", displayName: "设置工作项负责人", description: "设置以后一个或多个工作项的负责人。", isEnabled: Is.yes, allowCreation: Is.yes, allowDeletion: Is.yes})export class AgileActionSetWorkItemsAssignee extends AgileWorkItemsAction<AgileActionSetAssigneeDynamicPropertiesSchema, AgileActionSetAssigneeDirectives, AgileActionSetAssigneeRuleStepEntity> { constructor() { super(AgileActionSetAssigneeRuleStepEntity, undefined, /* ... */); } protected onGetDirectivesMetadata(): DirectivesMetadata<Omit<AgileActionSetAssigneeDirectives, keyof AgileWorkItemsActionDirectives>> { /* ... */ }; protected onGetDynamicPropertiesMetadata(): PropertiesMetadata<Omit<AgileActionSetAssigneeDynamicPropertiesSchema, keyof AgileWorkItemsDynamicPropertiesSchema>> { /* ... */ }; protected async onExecute(context: ExecuteContextWrapper<AgileActionSetAssigneeDynamicPropertiesSchema, AgileActionSetAssigneeDirectives, AgileActionSetAssigneeRuleStepEntity>): Promise<RuleStepResult<AgileActionSetAssigneeDynamicPropertiesSchema>> { /* ... */ }}其中最次要的代码是 onExecute ,它将会在执行这个步骤时候被调用。当操作执行结束后,会将数据库中保留的的 下一个步骤ID 返回,规定执行引擎会去调用后续的步骤。这就是一个最简略的动作步骤,由零碎调用,执行具体的操作,而后返回下一个步骤的ID。除了一般的动作之外,PingCode Flow还反对条件、并行、判断、循环等简单的流程管制。和方才提到的动作一样,都是通过重写 onExecute 这个办法来实现的。以「条件」为例,它须要在判断为真的时候继续执行后续的步骤,为假则进行以后步骤。那么它的 onExecute 就是这样的。 ...

May 6, 2022 · 2 min · jiezi

关于技术架构:CDO玩跨界数据驱动有戏了

随着社会的提高,专业分工呈现了。很多人被限定在本人相熟的畛域里,边界越发清晰。然而,有这样一群人渴求扭转和摸索,在数智化转型的赛道上一直跨界和冲破。他们就是“跨界人”——首席数据官,俗称CDO。 提及CDO,行内人并不生疏。作为一个新型管理者,在各大媒体、大V齐刷刷的宣传下,曾被誉为企业数智化转型的救世主。 与CIO达成IT撑持业务的职责不同,CDO须要兼顾业务倒退和数据变现,兼顾和布局企业的数据资产,让数据赋能经营决策和策略落地。显然,CDO曾经进入最高决策层,且随着数智化转型的深刻,他们极有可能成为下一任CEO的不二人选。 可事实却偏偏大失所望,CDO的倒退不孚众望。有调研显示,CDO在中大型企业内装备的比例并不算高,只有一些头部的集团型企业和创新型企业正在尝试和布局。即便“每个企业都须要一个CDO”曾经被不少管理者所认可,然而仍造成了明天这样倒退不利的困境。 到底是为什么呢? CDO,能力过人的全才之将 随着数据的利用愈演愈烈,企业对CDO的能力要求也越来越高。 首先,他们要具备数据全生命周期治理的能力,包含数据的开掘、获取、应用、存储、散发等,放弃对数据的敏感性。 其次,CDO要具备数据驱动业务的能力。不仅是联合工具开掘数据的价值,更要洞察行业发展趋势、客户生产习惯及产业链上下游的变动,让数据引领业务倒退,让业务真正匹配企业改革。 第三,CDO要具备整合资源的能力。对于不少龙头企业来说,数智化转型不止是将企业外部的数据资产积淀下来,更要鼎力补充内部数据,进而欠缺翻新利用场景,推动产业降级。 例如,在供应链金融体系中,依附内部数据判断供应商是否衰弱;在大宗贸易的过程中,依据动态数据的变动,如天气、路线、突发事件等影响,判断整个行业的开采量、生产状况,最终为产品定价。 第四,CDO要具备生态整合的能力,这是他们将来最重要的能力之一。中国企业的崛起依附的是一直拓展的商业边界,只有建设一个凋谢、协同、凋敝的生态系统,能力拉开与竞争者的差距。这样一来,CDO不仅仅要思考数据,更要聚合生态资源,以“平台+生态”的组合模式引领产业倒退。 第五,CDO要具备搭建底层数据架构的能力,善用数据中台、低代码开发平台、系统集成平台等产品,以新技术、新产品疾速拓展翻新利用,打造更多新型的商业场景,买通生态的底层架构。 用友网络助理总裁罗小江认为,只有实现数据反哺业务、驱动业务增长、进步企业生产力,能力成为一名合格的CDO。反观目前业界普遍存在的CDO,能具备如此综合实力的人少之又少,因而这也不难理解CDO的倒退为何差强人意了。 随话说,临渊羡鱼,不如退而结网。这两年企业数智化转型进入“深水区”,业务重构成为现阶段的外围工作。可仍有不少企业偏离行业趋势,疏忽企业将来倒退,全面的将原有信息化零碎以新的技术重构一遍,导致失败的案例频现。 然而,这样的后果却意外的带动了CDO的倒退,让他们有机会基于新的技术架构和产品,从数据驱动的视角落实企业数智化建设,从将来市场竞争格局和策略高度帮忙企业商业翻新,并带动产业转型降级。 CDO的时代降临了。   从新定义“数据驱动” 随着大数据和AI的衰亡,人人都在谈数据驱动。就像一百个人心中有一百一个哈姆雷特一样,每个人对数据驱动的了解都不雷同。早在2014年,用友就确定了“数据驱动”的倒退模式。那么这么多年来,用友对数据驱动又有哪些新的了解呢? 用友网络董事长兼CEO王文京,曾在公开发言中示意,业务在整个数智化过程中变成了外围,数据是根底,最初通过智能化产生价值。 用友提出,在新形势下,企业应该利用数据洞察商业机会,围绕价值发明的过程,将数据作为经济因素纳入到企业经营流动中。通过提供正当的根据,缩小企业经营流动的危险,带来企业效益的增长。 而随着数据技术的倒退,企业数据将逐渐汇总到数据中台下,通过数据采集、计算、加工、剖析等配套工具,实现数据治理,造成数据资产,进行数据共享和凋谢、全程数据安全爱护等机制。 然而,数据驱动下的基础设施建设,不仅仅是一项技术工作,更是对企业组织、文化的升华。对此,罗小江强调,企业须要在组织上配套,建设平行于IT的DT组织,并在CDO的率领下推动数据驱动的文化建设,帮忙业务成长,辅助管理决策,基于数据谈话。 有人不禁要问,如此宏大的工程,企业该如何实现数据驱动呢? 用友公司倡议,企业不仅须要构建数据连贯和采集能力、批流一体的数据架构、全生命周期的数据管理平台,而且须要基于现有数据与实在业务场景交融,依附自动化、智能化伎俩优化业务流程。不仅如此,CDO还须要让数据死记硬背,并借助自助式剖析、图谱剖析、机器学习算法等技术进行高阶的数据价值开掘,翻新商业模式。 依据多年的实践经验,罗小江认为,因为不足采集工具,很多企业并没有历史数据留存,能够说在开始就败下阵来。而大部分具备数据的企业,也只有不到35%的数据是可用的。2020年信通院公布《大数据白皮书》也验证了罗小江的推断。 报告指出,企业经营中的数据只有56%可能被及时捕捉,而这其中仅有57%的数据失去了利用。也就是说,仅有32%的企业数据价值可能被激活。 为了解决这个问题,用友推出的AIoT智能物联网平台正是连贯和买通了云端的算力与边缘端的实时处理能力,帮忙企业在获取数据的同时,通过规定引擎对数据加工、流转、可视化出现,赋能企业智慧场景利用。 正如一家创新型的医疗器械流通企业,买通了从仓储运输到生产终端的业务链条,在数据互通互联的根底上优化现有服务模式,将医生的取件过程IoT化并收集应用反馈,而后反哺到生产端,实现数据驱动下的产品个性化定制,在升高病患医疗老本的同时,拓展业务边界。 再比方中国振华,这个国内产品体系最全、综合能力最强的电子元器件产业团体,通过“工业互联网标识解析二级节点”新型基础设施,放慢“振华工业云”建设,推动社会化大数据共享和产业优化降级,并将贵州工业化能力对外输入,为工业全产业链和经济增长注入新动能。 其实,AIoT智能物联网平台只是用友在数据综合能力方面的体现之一。正是通过一直的摸索和积攒,他们帮忙企业残缺构建了从数据认知、实际到价值发明的过程。    CDO青眼的赋能工具 为了达成企业数据价值变现的需要,用友打造了全套的数据产品和工具,并人造嵌入到BIP商业翻新平台中,以数据中台的模式出现。这样做能够帮忙企业采集海量多维的数据,提供从荡涤、会集、利用、建模、剖析到监测的一系列深加工增值服务,以残缺的全生命周期治理将数据资源资产化、价值化。 细数以后数据中台赛道,玩家泛滥纷纭。前有传统数据治理厂商御数坊,后有数据中台大厂阿里巴巴,还有互联网人工智能巨头百度等,然而,用友的数据中台仍是中大型企业的首选。他们为何独受CDO和企业的青眼呢? 首先,服务企业30余载,用友BIP|YonBIP积淀了残缺的数据能力体系,通过一体化的工具和平台帮忙企业开掘数据价值。 其次,基于在各行业的Kown-How,用友具备一批批高质量的业务专家、咨询师和数据架构师资源,能够帮忙企业洞察行业趋势,把脉业务痛点,梳理数据应用流程和标准,打造数据利用的方法论,从业余角度帮忙企业构建数据能力体系。 第三,用友数据中台并不是独自存在。作为用友BIP|YonBIP的一部分,它与业务中台造成双轮驱动的中台策略,与技术平台、低代码开发平台、利用集成平台等技术平台互通互联,造成一体化、端到端的数据解决方案。 第四,将来的企业将成为整个社会化商业网络的连接器,不仅须要连贯产业链上下游数据,连贯客户的数据,还要连贯政府的数据,连贯第三方的数据。那么,用友BIP|YonBIP作为构建产业互联网和社会化商业的根底能力,能够帮忙企业整合生态资源,买通企业内外部数据连贯,疾速构建社会商业子网络。比方通过供应商互洽升高企业业务危险,通过大数据危险模型升高优质中小企业融资老本等。 罗小江认为,只有借助工具将企业底层数据价值链拉通,设计合乎业务倒退的施行门路,能力从根本上解决企业的痛点。就好比BI我的项目尽管做了很多年,然而当初仍旧很多企业在重复施行,起因就在于没有拉通企业的数据链条,管理者看到的驾驶舱并不能实在的反馈企业的经营状态。 再比方不少纯技术厂商在做数据我的项目时,因为不具备相干的行业教训而主观疏忽了主数据平台,数据标准化做不好,数据治理不到位,导致大型团体企业在施行数据策略的开始就每每失败,大失信念。 用友数据中台产品总监陈宏志说,对于头部企业来说,从优良到卓越,技术创新尤为重要,然而没有一家企业会单纯的为工具买单。尽管,用友的技术实力并不是最强的,然而用友YonBIP不只是企业的商业翻新平台,更是整合了工具、能力、资源、生态于一体的多元服务体。而只有具备全面的综合能力,能力满足企业在数据层面的多种诉求,构建数据驱动的体系框架,实现商业翻新。这也正是其余数据厂商所不可匹敌的。    从数据驱动到价值驱动 从数据大国到数据强国,海量数据空前会聚和计算力指数级增长催生出前所未有的新产业、新业态、新模式,也由此涌现出一批高素质跨界人——CDO。 他们正以数据的视角,在用友这样弱小的搭档帮忙下,驱动企业构建数智化的数据体系,盘活外部数据资产。而后通过用友BIP|YonBIP买通产业链上下游数据,搭建平安的数据基础设施平台,让数据资产化、业务化、价值化,最终赋能企业转型降级。 如此一来,从流程驱动到数据驱动,从数据驱动到价值驱动,还边远吗?

December 22, 2021 · 1 min · jiezi

关于技术架构:德荣医疗廖毅技术共建数智化平台这样选

德荣医疗科技股份有限公司创立于2010年,已倒退为以医疗供应链数智化治理为外围,集销售服务、生产研发为一体的全国性集团化公司。德荣医疗秉承“所有为人民衰弱服务”的使命,为医院提供SPD精细化治理和医疗耗材、设施供给服务,为临床医护人员提供业余医学服务,助力公立医院高质量倒退;以德荣智仓+数智化中台为外围,为厂商提供医疗器械第三方物流服务,并提供全品类医疗器械仓配解决方案;搭建数智化医疗供应链治理平台,实现医疗器械产品数据全流程可追溯,助力晋升政府监管程度。 德荣医疗业务笼罩湖南省14个地州市,服务三级医院四十多家家,根本全覆盖率,二级以上医院二百多家,湖南省二、三级医院覆盖率达70%以上。 在用友主办的“2021企业数智化转型高峰论坛-湖南站“流动上,德荣医疗副总裁廖毅发表了《平台思维助力德荣医疗产业链降级》的主题演讲,同时在承受媒体拜访时,分享了德荣医疗构建数智化平台的初衷、平台构建思路、选型过程等。 廖毅次要负责德荣医疗的经营治理和信息化建设,堪称既懂业务又懂技术。德荣医疗的数智化平台建设之路离不开他前瞻思维与求实风格的影响。 以下是局部采访内容: 01.如何了解数字化?为什么要进行数字化转型?廖毅:我了解数字化的逻辑,首先要业务在线,在此基础上通过数据赋能,给业务带来翻新。数字化并不只是一个工具,而是一种价值状态,或者说曾经成为一种生存形式。通过数字化能够取得高配置资源,以取代以后落后的生产力,带来产品、渠道、服务的重构。 德荣进行数字化转型,次要是内外因素独特驱动的。从外部环境来看,迅速增长的市场加上医院需要降级加上国家宏观政策正在深度重构这个行将逾越万亿级的行业。从国家“衰弱中国2030”策略,咱们能够看到两个趋势:一:从因素数字化到流程数字化,再到服务数字化成为演变门路。二:数据价值开掘是竞争劣势,定制化服务是要害。数字资产治理决定将来。 从外部来看,将来,德荣将全力打造覆盖全国的一流医疗供应链治理服务平台,成为国内医疗器械行业供应链治理的引领者。预计2025年实现1000家SPD单干医院的施行布局,为医院提供“业余经营团队+软件+智能硬件”的全院级医用耗材精细化治理服务。这样的业务策略,要求咱们必须以医院为核心,进行产业链整合,实现数字化供应链高效率经营。这就必须要依附数字化、智能化的力量,打造一个数字化的供应链治理平台。 02.数字化转型过程中最大的艰难是什么?廖毅:有的人会认为转型中,没有资源是最难办的。我认为,资源是能够用幻想去整合的。反而观点认知和团队文化是最难的。 数字化建设不是一个短期利益,咱们不能要求通过数字化降级或者在数字化平台上能够疾速产生价值,这是不事实的。在观点上,咱们保持长期主义。在强调求实的根底上的长期主义。同时,利用一把手的布局,来建设激励规定,扭转团队传统思维,重塑数字化的企业文化。 03.为什么抉择以中台来构建数智化供应链平台?廖毅:抉择中台并不是必然的,因为咱们选的不是技术,而是技术能带来的价值。我认为中台不是一个标准化的产品,它更多是一种方法论。能够领导咱们怎么去构建数字化体系,或者IT架构。 每个人对中台的定义都不一样。德荣抉择中台,是因为它能够满足咱们业务的多样性,以及不确定性。咱们把中台作为根底,用这种办法去搭建零碎,日后数据的标准化,数据治理、数据利用等,都会更加正当、无利,可能疾速适应前端的需要,让业务变得更加麻利。同时,中台能够为咱们的IT团队赋能,补救技术力量有余的缺憾。 04.抉择数字化供应商的规范有哪些?廖毅:首先,要有较强的综合实力。比方服务企业的教训要丰盛,产品要成熟,品牌在企业客户中的口碑要很好等; 其次是技术的先进性。德荣医疗IT部门在30人左右,开发团队8人,其余都是运维。这样的小团队去自建平台不事实,在抉择平台时,也要抉择技术实力较强的产品; 再者,共建平台。平台提供服务商的模式,必须是征询加共建,或者征询加服务的模式。肯定要是共建平台。同时第三方的技术平台能够让咱们轻松驾驭新技术,疾速获取内部能力。平台提供商也要提供整体数字化征询的服务,为咱们带来整体的转型思路与布局门路,以及可落地的计划。 05.为什么最终抉择用友iuap构建平台?廖毅:德荣与用友属于“反动友情“。过来在ERP方面单干非常欢快,给咱们也积攒了不少信息化的成绩。 第一,在数字化阶段咱们要构建平台,首先要抉择一个相熟的合作伙伴。用友通过平台和生态的理念在为企业提供服务,他们违心和企业独特构建平台独特倒退。这和咱们的观点是统一的; 第二,用友的iuap平台领有前沿技术能力,它是YonBIP和用友所有产品的撑持底座,可能撑持这么多优良产品的平台,也曾经在大量不同行业和规模的企业数字化转型过程中起到了重要的撑持作用。咱们置信它的能力; 第三,求实的团队。在今年的单干教训中,咱们认为用友和德荣一样都是求实的团队。他们和咱们一起认真调研行业、企业当下的需要,继续理解上下游状况,一直刷新认知,独特为了构建一个医疗产业的数智化供应链平台; 第四,翻新的观点和能力。在iuap平台上,能够翻新更多业务场景。而且都是具备翻新思维的团队。项目组正在通过对现有客户、业务场景的理解,剖析市场机会,寻找更多可能翻新的因素。 06.年度工作总结廖毅:咱们大略能够分为三个阶段。 在1.0阶段,次要是通过数智中台底座建设,构建数智化根底能力。比方夯实技术、数据和平安等根底,对团队进行赋能建设,并且通过中台疾速构建利用场景;2.0阶段,通过一体化服务平台优化,实现精准服务和精益智能。为经营决策提供反对,基于数据与供应链服务用户一直优化;3.0阶段,通过产业化推广翻新,最终实现数智化的德荣,为整个医疗产业服务,提供产业互联网洽购、营销、运维等整体服务,实现产业共赢。 对于YonBIP 用友商业翻新平台YonBIP(Yonyou Business Innovation Platform),是用友擦用新一代信息技术,依照云原生(含服务)、元数据驱动,中台化和数用拆散的架构设计,涵盖平台服务、应用服务、业务服务与数据服务等状态,集工具、能力和资源服务为一体,服务产业与产业商业翻新的平台型、生态型的云服务群。 YonBIP具备数字化、智能化、高弹性、平安可信、平台化、生态化、全球化和社会化八大个性,书企业通过数智化实现商业翻新倒退的使能平台。YonBIP基于最新的大数据、人工智能、云计算、物联网&5G、挪动互联网、区块链等数智化技术,采纳云原生(含微服务)、元数据驱动、中台化、数用拆散等新一代技术架构,构建技术平台、数据中台、智能中台和业务中台,并聚焦财务、人力、协同、营销、洽购、制作、供应链、金融等八大外围畛域,全面撑持企业经营治理与产业价值链,使能企业数智化转型与倒退,推动社会商业提高。

July 1, 2021 · 1 min · jiezi