蚂蚁中后台快速研发平台的领域思考

蚂蚁中后台快速研发平台的领域思考

概要:本文介绍了什么是应用快速研发平台,并跟大家分享一些蚂蚁的中后台快速研发平台“云凤蝶”在探索过程中的思考。

1. hpaPaaS

1.1 hpaPaaS 是什么?

hpaPaaS 全称 High Productivity Application PaaS,这个词实际上是由造概念老手 Gartner 在 2018 年初提出来的,除了 hpaPaaS,读者可能还听说过 RAD(Rapid Application Develop)、LowCode/NoCode、LCAP(LowCode Application Platform)等等概念,包括特别接地气的可视化建站、应用搭建等等多到无法一一列举,我们先不纠结这些概念之间的差异,本文中,可以认为它们是一码事。文章标题中提到的云凤蝶等均属于 hpaPaaS 类产品,要了解这些产品,我们需要先对 hpaPaaS 有一个概要的理解。

简单点说,hpaPaaS 是一个对应用研发进行全生命周期管理的平台,这个平台定义了这样一种研发模式:在较强的设计、研发规范下,通过可视化拖拽、模型驱动等技术显著降低研发门槛、提升研发效率、保障基本品质。

1.2 hpaPaaS 发展简史

hpaPaaS 并不是一种新东西,早在 1980 年代开始就出现萌芽,而在 1999 年创建的 salesforce 至今仍是这个行业的领头羊,高达百亿(美金)市值。早期的这些产品希望通过一定的约束(如能力、交互、性能等),以降低开发人员的总体技能要求,换取应用的快速迭代。它们与当时的其他创新技术一同迅猛发展,例如 IDE(集成开发环境)、GUI(图形用户界面)、CS 架构(客户端服务端架构)等。特别值得一提的是,它们在当时就已经采用了可视化拖拽、图形建模、内置框架、组件模板等方案。

在此期间,某些行业标准的可视化模型得到了发展,尤其是针对应用的(如数据的实体关系、对象管理的类图、用于流程管理的流程模型和状态机的状态转换图),这些技术开拓了模型驱动的应用研发市场,典型的有 BPMS(business process management systems / 业务流程管理系统)等。

以今天的眼光来看,hpaPaaS 要解决的问题以及解决问题的方案跟几十年前并没有本质上的区别,这也是为什么读者可能会觉得这类产品都很类似,这类产品通常都具有多端支持、创建复杂表单、工作流、应用管理等基础特性。但是 hpaPaaS 在近几年发展又开始出现新一轮的浪潮(不然 Gartner 也不会为它专门造个词出来了 ),如果读者用过不同时代的产品,例如 salesforce 和 mendix,就会发现两者之间的体验差异是非常巨大的。这得益于 WEB 设计和开发 、云技术、人工智能的发展和成熟。此前,hpaPaaS 只能做一些简单、固化的应用,例如行政管理系统,但现在,它逐渐能胜任更复杂的场景,包括 2B 的企业级应用,甚至部分 2C 的应用。对于研发部门来说,是时候把 hpaPaaS 作为应用研发的一个常规选项了。而如何选择一个适合自己的 hpaPaaS,则可能需要进行一些更细致的考察,例如:可视化拖拽到底是怎么拖拽的,支持 ProCode 到底是怎么支持的?

下图是 Gartner 在 2019 年发布的 hpaPaaS 魔力象限,可以一窥整个行业的情况,细节就不在此赘述了。


1.3 hpaPaaS 适用范围

hpaPaaS 是否使用主要取决于用户规模功能特殊性两个因素。根据这两个因素对应用进行分级是使用 hpaPaaS 非常关键的一步。在未来,大部分应用都全部或部分使用 hpaPaaS 开发。

适用场景举例

  • 常规 CRUD 应用,特别是研发资源紧缺或上线时间紧迫的
  • 混合研发应用,如有大量常规页面和个别特别复杂页面的应用
  • 工作流程
  • 一次性应用,如年会抽奖、问卷调查等
  • 原型应用,用以验证想法可行性的
  • 初创应用,研发节奏快,需要根据用户反应快速调整的

此外还有一些 hpaPaaS 专注于解决某个领域问题,如多端适配的企业门户建站,办公应用等。

不适用场景举例

  • 有很多特殊的功能需要专业的研发人员通过编码实现,如 WEB IDE
  • 对体验和性能有极致要求的应用
  • 大规模应用,如淘宝网

注意事项

  • 这类产品一般跟厂商深度绑定,会深度整合所在厂商的产品和服务
  • 要对所选的 hpaPaaS 能力范围有清晰的了解,确保能力范围能满足你的需求

1.4 为什么要选择 hpaPaaS

  1. 提升研发、交付速度,在市场竞争中获得先机
  2. 降低研发门槛,解决招聘难的问题
  3. 降低企业用人成本
  4. 优化企业人才结构,业务研发和技术专家各自有明确的发展线路
  5. 保障应用的基本品质
  6. 获得能力增强,自己就能完成或更快更好的完成研发工作
  7. 从繁冗的日常研发中解放出来,专注于有挑战的工作

1.5 如何选择一个合适的 hpaPaaS

下表列出了 hpaPaaS 主要的基础功能,可以通过逐项检查这个表格的条目,以挑选出符合业务需求的产品。

  1. 产品定位
    1. 目标用户
    2. 目标场景:通用场景,还是某个特定场景
    3. 覆盖研发链路:前端、后端、监控运维
    4. 核心优势
  2. 前端研发
    1. 可视化拖拽 UI
    2. 数据驱动 UI:通过接口、模型等生成 UI
    3. 内置 UI 资产:组件、模板
    4. 自定义 UI 资产
    5. 客户端支持:可创建 PC WEB、移动端、小程序应用...
    6. 多端适配:一次开发,多客户端运行
    7. 混合研发部分页面用 hpaPaaS 开发,部分页面用 ProCode 研发,混合部署成一个应用
    8. 埋点监控
  3. 后端研发
    1. 应用托管
    2. 用户和权限:接入不同的用户登录方式,提供垂直权限管控
    3. 数据连接:HTTP(S)、TR、数据源、各种云服务...
    4. 逻辑编写
    5. 可视化业务建模
    6. 流程编排
  4. 监控运维
    1. 部署类型:统一部署、私有部署
    2. 发布三板斧:可监控、可灰度、可回滚
    3. 监控运维
  5. 其他
    1. 多人协作
    2. 版本控制
    3. 国际化

2. 云凤蝶是什么

我们先通过一段视频来快速了解一下云凤蝶:

https://www.zhihu.com/video/1175084528170901504


正如上面介绍所说,云凤蝶是一个 hpaPaaS,目标是为中后台应用研发提供简单、高效、高质量的研发方案。用云凤蝶,不仅是前后端,甚至 PD、设计师都能直接参与研发工作。

3. 云凤蝶对中后台应用研发的思考

云凤蝶上半年的重心主要在前端能力的建设上,在不断的尝试和总结中逐渐明确了四个核心能力。

3.1 自由拖拽的画布

https://www.zhihu.com/video/1175086960807514112

上图简单演示了在云凤蝶中制作一个带操作按钮和搜索按钮的表格制作过程,我们可以看到过程十分的简单(而且基本上不可能有更简单的方式),有那么点儿像做 PPT,当然还需要进行少量的布局设置,就可以看到页面能很好的自适应的变化。

自由拖拽的优势非常明显:使用门槛特别低,几乎无需学习;另外一个优势是操作确定性高,你把一个元素放下去之后,这个页面会变成什么样是非常清楚的。

但自由拖拽也有让人吐槽的地方:那就是精确拖拽的效率不高。针对这个问题云凤蝶做了不少改进,除了上图中的测距与吸附,还有对齐与分布


云凤蝶还有一个非常有特色的功能是使用了相对定位系统。我们知道在制作页面的过程中,摆放一个元素,开发者的心里面其实是有参考物的,比如“在表格的上面放一个右对齐的按钮”中的表格就是那个参照物,所以使用相对定位就会非常简单高效。


在 PC 页面的做作过程中,布局中最难的就是处理页面宽度变化时页面中的元素如何变化的问题。云凤蝶采用了一个非常简单的布局模型,如下图所示,用户只需要指定一个元素的尺寸和间距是固定的还是自适应的即可,完全无需了解 CSS。


而这些都还不够,其实云凤蝶完全可以做到用户不需要关心布局这件事情。当给到工程师一张设计稿的时候,设计稿中的组件随页面宽度如何变化基本是心中有数的,云凤蝶只要把这种开工程师潜意识中的转换逻辑给找出来,就能做到根据页面元素的摆放关系自动计算这些设置,想想是不是很酷?

3.2 开箱即用的精品 UI 资产

云凤蝶认为,好的基础资产应该能满足应用研发的大部分的需求(大量长尾用户可能也仅仅会用到这部分),其次是少量的业务资产,而自定义资产只占非常小的比例。


开箱即用的基础资产对应用研发的提效是至关重要的,所以云凤蝶全量全能力内置了 Ant DesignAntV ,还有金融科技的业务资产库 TechUI。
其中 Ant Design 是蚂蚁的中后台组件库,拥有全球最高热度。

AntV 是蚂蚁的可视化解决方案,包含常见图表,关系图及地图等等。
这两者都代表了行业顶尖水平。

自定义资产只占非常小的比例,但是如果没有办法制作自定义资产或者制作成本特别高,会让用户放弃使用。同时,在 ProCode 的世界已经有大量优质的资产(包括 Ant DesignAntV),如果不能以非常低的成本拿来使用那将是非常可惜的事情。所以云凤蝶花了很大的精力去做 npm 组件一键导入,用以构建内置的资产,并以同样的方式支持用户沉淀自己的业务资产和自定义资产。

https://www.zhihu.com/video/1175448837732425728

UI 资产对研发的提效是毋庸置疑的,但时常令人矛盾的一个点是:资产粒度越小,复用度越高,但用起来越麻烦,资产粒度越大,用起来越简单,但复用度就非常低。这也是为什么提供了很多模板,但是用户使用起来,还是要做大量修改(行业沉淀另当别论)。云凤蝶希望能解决这个问题,因此投入了大量精力去做第三个核心能力:数据/接口/模型驱动。

3.3 数据/接口/模型驱动 UI

云凤蝶认为不仅仅是业务模型,所有数据来源都可以驱动 UI

而表单生成的过程也十分简单,仅需 3 步:

  1. 选择数据/接口/模型
  2. 选择用户需要填写的表单项
  3. 配置表单项

在下图的最右边会实时显示表单的生成结果

这是一个表单生成的动图

https://www.zhihu.com/video/1175090994339655680

根据数据所处的页面环境、元信息以及特征自动生成符合设计标准且美观的 UI,连 Loading 这种琐细但非常体现品质感的细节也一一为用户处理好。用户只需要关注业务本身,就能以十倍效率制作出高质量的页面。

更有趣的是这个能力让云凤蝶对用户的业务有所理解,就有可能自动进行业务的监控分析,给到业务全面及时的反馈。

3.4 混合研发

对于一些无法一次性迁移的存量应用,或者仅有少量特殊页面的应用,云凤蝶提供了部分使用云凤蝶部分使用 ProCode 的混合研发能力。像云凤蝶自身即是如此,编辑器使用 ProCode 研发,其余页面使用云凤蝶研发。这样能推进老业务的升级,并能让开发者为每个页面选择合适的研发模式。


最后说一说踩过的坑或一些经验(其实道理说出来大家都懂,总要自己撞过墙才知道:)

  1. 最最最重要的是要明确产品的定位。即使是在 hpaPaaS 这个领域里,也有非常多的细分场景:是全流程研发还是仅解决部分问题?是面向开发者还是非开发者?要开发的应用是不是有设计师介入?应用的外观和交互是否遵循统一的标准?等等这些问题,如果没有明确的答案那是必定会失败的,因为仅仅是面向开发者或非开发者这一因素带来的产品差异都非常大。云凤蝶的定位是通用中后台应用的研发,但在初期承接了一个门户类的应用研发,不仅做的非常狼狈,最后业务方还不买单又用 procode 重新做了一套。
  2. 要明确产品的核心竞争力。hpaPaaS 的基础能力都非常类似的,明确自己的核心竞争力并做到极致,才能牢牢抓住这部分目标用户的心。例如云凤蝶在产品最初就明确了一个非常重要的产品原则:和 procode 的世界要打通。这不仅体现在 npm 组件包可以一键导入,还体验在 procode 研发的应用可以和云凤蝶研发的应用混合部署等特性上。这在很多 hpaPaaS 中是没有也是不必要的,但是云凤蝶服务的场景比较复杂,这个产品原则就很好地提振了开发者的信心,知道他想要的东西即使云凤蝶中没有现成的也能很容易从 procode 的世界导入使用。
  3. 要有足够的耐心。因为 hpaPaaS 的最小 feature 集比较大,所以这类产品的孵化期一般需要 1 到 2 年,这跟一般的互联网产品来说是非常长的,所以如何做好规划,一步步拿到阶段性的成果非常重要,否则不仅团队的士气很容易受到打击,老板也可能因为看不到希望把项目给咔嚓掉。
  4. 要有优秀的架构。hpaPaaS 的代码量级基本是十万起步的,如果没有一个特别优秀的架构,用不了多久就会发现代码无法维护了,即使是加人也不知道代码该从何写起。云凤蝶的代码也一度出现改不动的情况,后来在几个大项目的推动下对整体的代码架构都进行了升级,情况才得到了明显改善。
  5. 体验决定成败。hpaPaaS 本质上是一个效率工具,它是通过提供优秀的研发体验来降低研发门槛和提升研发效率。例如可视化拖拽是很好的降低开发门槛的方式,但是如果拖拽的体验非常差,用户就会放弃使用;需求超出产品能力的时候,是不是有很低成本的方式来解决等等都是需要仔细打磨的点。一旦研发体验非常优秀,就能产生非常大的用户粘性。

4. 中后台应用研发的未来

随着 hpaPaaS 逐步发展成熟,未来的研发格局将会发生转变。首先有大量应用全部或部分使用 hpaPaaS 研发,同时公司的人才结构将会得到优化,技术专家更专注于技术,产品工程师更专注于业务,两者都有明确的发展路线。


未来已来,时不我待!
云凤蝶目前在高速发展中,急需各路前端、Java、PD、设计大神加盟,未来等你共创!
简历请发送给 沉鱼 chenyu@antfin.com

发布于 2019-11-06

文章被以下专栏收录