本报告以 OutSystems 为主要调研对象,从低代码平台发展背景、概要、客户、产品、竞品等信息调研分析。
一. 调研总结
结合outsystems和国内低代码平台的实践来看
- 低代码类厂商的客户为大型传统企业
- 解决的问题大部分为资源管控、人事、财务、流程等问题,其中人事、财务等提供saas能力,是属于封装打包,并非低代码生成;
- 厂商提供服务是有实施人员来驻场进行,主要是梳理客户流程,通过配置化方式部署系统;
- 参照应用市场概念,国内目前有宜达等平台,希望直接把应用打包,例如过年回家报表统计、打疫苗统计,能够直接生成数据;一般这些应用会和平台能力打通,例如在钉钉平台上,打通用户权限接口;
- 理论上,通过outsystems能够配置出来所有系统,但是业务复杂性不会降低,优势在于通过可视化界面,能够清晰知道逻辑走向;
- 用户体验上,前端界面比较粗糙,适合做mvp版本的应用来验证市场;
与贝壳关系
- 贝壳走中台路线,底层并非按照低代码方式进行设计,可以对中台能力进行封装和编排,减少前台接口;例如盘源系统的接口不用走前台,可以直接编排给前端;
- 前端B端系统,可以在统一的规范下,沉淀应用和物料市场,甚至可以直接提供和中台打通的数据组件,来做到前台界面配置化;例如品质、品控、小贝助手、cms系统、数据看板等
二. 历史背景
低代码开发最早在1980年代提出的。低代码应用程序平台的开发经历了不同的阶段。
第一阶段,即1980 ~ 2015年,低代码开发平台市场的发展非常缓慢,并且没有优秀的公司。
第二阶段,即2015 ~ 2018年,低代码开发平台市场快速升温。
低代码平台的快速升温
2015年,AWS,Google,Microsoft和Oracle等大型供应商开始进入市场。2018年,西门子宣布将以 6亿欧元的价格收购低代码应用程序开发的领导者Mendix,同年私募股权投资机构 KKR 和高盛共筹 3.6亿美元投资 OutSystems,本次交易对 OutSystems 的估值超过10亿美元,晋升行业独角兽。
此后海外市场低代码平台市场开始繁荣,Forrester(技术和市场调研公司)报告曾预测,低代码开发平台的市场规模将从2015年的17亿美元增长到2020年的155亿美元。Gartner 报告战略预测,到2023年,超过50%的大中型企业将采用LCAP作为其战略应用平台之一。
转看国内,企业在业务创新程度上要求更高,对响应市场机遇快速开发产品的需求更加强烈,业内人士分析头部市场的企业客户大概有5万家,这些企业每年平均会有1千万元的预算。除了暂时很难统计的长尾市场需求,单论头部市场低代码开发的潜在市场就是 500亿级的规模。放眼全球市场低代码平台有望成为to B软件开发领域的产业级变革机会。
国内低代码平台概况
低代码平台严谨来讲,目前国内较成熟的大体有 3 大类,纯表单类低代码平台、BPM 平台、代码生成平台。
1. 纯表单类低代码平台
2. BPM平台
以工作流编辑+表单编辑为主,多数都是从某一个企业服务领域的细分产品入手开始做的,做了一段时间之后,有一些 API 可以用于二次开发和灵活控制生成的应用。主要代表有氚云、明道云、搭搭云、简道云、宜搭云、JePaaS。
3. 代码生成平台
自动生成前端和后台的程序,生成后台运行的过程更接近低代码概念,和国外的Mendix、Outsystems比较像,主要代表有 iVX、牛刀。
三. OutSystems 介绍
OutSystems 是一家主营低代码快速应用开发平台的公司,是 2020年 Gartner 高生产力平台即服务魔力象限的领导者,近年来估值约为 95 亿美元。由首席执行官 Paulo Rosado 于 2001 年在葡萄牙成立,提供为各种规模的企业提供围绕 AI,云,DevOps 和安全性构建的平台,支持云、本地部署和混合部署模式。
OutSystems 是将低代码功能与高级移动功能相结合的唯一解决方案,支持整个应用程序组合的可视化开发,提供全渠道支持和可扩展性相结合的能力,可轻松与现有系统集成,帮助用户快速开发,部署和管理应用程序,实现数据库分类以及整合传统系统数码转型,致力于敏捷且持续为客户交付企业应用。
该公司在全球87个国家拥有客户,在全球拥有1300多名员工,并与350个合作伙伴(包括AWS,Deloitte和Infosys)建立了合作伙伴关系。
四. 目标群体和适用场景
目标客户
当前的主要目标市场就是大企业客户,可以提供 BMP(业务流程管理)、ERP(供应链管理)、CRM(客户关系管理)等高复杂度的重型企业系统级应用,或面向独立开发商(多指小规模企业和传统 ISV),提供低代码功能。
OutSystems 头部客户
提供整合传统系统,支持数字化转型能力,服务行业大客户如下:
- 传统大型车企,如本田、大众、奔驰、尼桑、雪佛龙
- 传统大型 IT 行业供应商,如英特尔、惠普、罗技
- 金融保险行业,ING集团、安盛集团、利宝互助保险集团
- 服务行业,新加坡 Certis 安保公司、人力资源咨询公司任仕达
- 通信电气行业,移动通讯网络公司沃达丰、施耐德电气
- 医药行业,美国制药集团查尔斯河
- 影视娱乐行业,华纳兄弟
适用用户和场景
面向开发人员(专业编程)
提高人效,让一个人可以完成本该多人的工作量,即减少 50% 的重复工作,缩短产品工作周期,70%的工作可控制在10天之内。
面向业务人员(不懂编程)
当为了响应市场机遇,业务部门向 IT 部门提出越来越多的需求,IT 部门难以迅速满足时,业务人员可通过低代码开发平台完成业务产品设计搭建,快速投入市场进行探索和验证。
如果是让业务人员,比如HR、销售、法务等等搭建各自部门的使用系统,他们有一定的业务知识,但是又欠缺低代码开发能力,也缺乏产品思维。OutSystems的解决方法是设计课程,让用户考证持证上岗开发,这比较符合外企的思路,像cisco、NI都有类似认证玩法。
面向运管人员(拉通业务与技术)
专门给 IT Leader,如 CIO/CTO,开发 BI 系统、项目管理等,可以看到所管理人员、项目情况。例如程序员每日代码数量和质量,项目经理的项目进度、项目是否正常等
五. 产品介绍
重点名词和架构介绍
生产应用程序的后台
Platform Server:提供应用程序的编译、部署、管理、运行、监视服务。
管理 Platform Server 的模块
Service Center:是一个 Platform Server 管理器和管理员控制台。它是一个 WebApplication,可以通过浏览器访问。它允许你以一个管理者和操作者的身份查看和配置platform server。Service Center里面的Factory允许开发者查看哪些应用是可用的。开发者也可以监视环境和由平台和应用程序生成的检查日志。开发者可以配置环境。开发者可以收集不同类型的分析。
LifeTime:允许我们跨多个环境管理完整的应用生命周期,LifeTime也是一个 WebApplication,作为Service Center的能力扩展。它允许开发者查看应用的生命周期的不同阶段。从开发环境到质量检查环境到生产环境。你也可以管理每个用户或团队在他们的环境或应用中拥有的权限等级。你可以看到基础设施处于的环境和管理它们如何被放置于生命周期中。你可以收集你的应用程序的性能分析,那样你可以更简单地查明和解决性能瓶颈。
开发者工具模块
Server Studio:安装在开发者的电脑上的 IDE 开发环境,正常用这个就够了,如果需要集成外部资源,可以用 Integration Studio。和 Platform Server 连接成功后,开发者可以创建和发布应用到 Platform Server。每个版本的应用将会被存储在Platform Data 数据库。Platfrom Server 会编译生成那些应用的代码,然后部署它们到标注 Application Server 上。
- Integration Studio:允许你创建平台外的扩展。比如想集成自己的项目、使用第三方数据库等外部资源,例如C#和数据库。扩展插件有两个方式:1. Service Studio 里面有一个 Forge 可以找插件; 2. 就是通过 Integration Studio 来开发定制自己的插件,定制的扩展可以被发布到platform server和被Service Studio使用。
-
运行应用程序的后台
Application Server:使用传统数据库和外部系统来运行你创建的程序。
架构总结
可以看到不同的模块围绕着 platform server,包括开发和管理应用程序。所有这些模块工具(LifeTime、Service Center、Server Studio、Integration Studio)可以连接各自的服务器(infrastructure)。LifeTime可以管理所有服务器的生命周期,不管你有多少服务器。
官网上也可以找到forge和community来帮助你使用outsystems进行工作。forge是一个类似于market的东西,在上面可以下载开源组件让你加快开发速度。community是一个社区,你可以和别人交换tips、讨论话题、问问题。
产品能力介绍
1.integration with everything
你可以用outsystems集成你现有的代码,成为一个outsytems项目,然后在Service Studio中可以找到你所集成的东西。
2.visual design and development
3.standard and optimized
当你完成了代码的部署,程序会自动生成标准的html、css、js、.net代码以运行Web或者Mobile application。
4.continuous integration and delivery
- 在完成了部署之后,outsystems会对你的代码进行一个整合检查,确保程序依赖的正确和所有的代码都是可用的。
- outsystems会对不同角色进行权限管理,让不同的角色都有正确的权限访问和控制他们所需的资源。
- outsystems对代码的监控,让你看到代码执行的效率。
5.flexible infrastructure
灵活的底层架构,可以将代码部署在本地或云服务器上。(官方:”The infrastructure can either run on the cloud or on-premise, so you have the flexibility of deploying the application’ code to any kind of infrastructure and set of servers.“)研发能力介绍
这个平台的开发编程思想是模块化编程。在outsystems,modules是存放用户图形界面、业务逻辑代码的地方,每个 module 应该封装所有的东西,modules有几种类型:
- App Type(Phone app or web app)用于创建用户图形界面。你的用户图形界面是什么,取决于你选择了什么类型的App Type。
- Blank Modules里面什么都没有的module。
- Service Modules在里面实现服务,专注于domain和面向服务的架构。
- Library Modules创建高度可重复使用的组件。
Extension modules集成数据库或你自己的C#代码。
开发流程介绍
创建应用程序
选择要创建应用类型,移动端 APP 可以根据选择类型不同,编译成 PWA 或原生的 Android/iOS app。web 和 native 应用的详细比较
应用开发工作台说明
模块详情界面说明
模块开发界面说明
示例:生产一个管理待办事项的应用
创建一个应用和模块
在开发环境中,使用移动模板创建一个名为ToDo的移动应用,然后为该应用程序创建一个新模块。
创建实体导入数据
创建数据库模型,在开发环境中,打开右上角的Data选项卡,右键单击Entities文件夹,选择Import Entities from Excel…,然后选择示例数据 Excel 文件。
创建待办事项的显示界面
现在我们将待办事项存储在数据库中,我们可以创建界面一个列出所有任务,将 Todo 从 Data 选项卡拖放到 Main Editor 窗口中,从左侧组件列表拖拽 List 组件到 HomeScreen 上。
创建待办事项的编辑界面
通过事项的标题链接到新创建的屏幕。
创建表单编辑界面将“窗体”窗口小部件从工具箱拖放到新移动屏幕中的空白区域;
- 将Todo从Data选项卡拖放到先前创建的窗口部件;
定义用户按下Save按钮时的运行逻辑
- 双击按钮Save的空白区域以定义与按钮关联的逻辑。这将创建一个名为SaveOnClick的新屏幕操作;
- 将Todo树下可用的实体操作CreateOrUpdateTodo拖放到SaveOnClick操作中的If-True分支。将Source属性设置为GetTodoById.List.Current。
- 将屏幕HomeScreen从Interface选项卡拖放到End节点,以便在保存任务后将用户重定向回主屏幕。
创建待办事项的添加功能
用户能够从列表屏幕中添加新任务:
- 双击Interface选项卡树中的HomeScreen打开列表屏幕;
- 将Icon小部件从工具箱拖放到屏幕右上角的Actions占位符中,然后选择图标“+”;
右键单击该图标,然后选择Link to -> MainFlow\Todo。
创建待办事项的触发完成功能
添加将任务标记为完成的新功能。
选择列表中的项目,然后单击工具栏上的向左滑动操作;
- 将文本“Action”替换为“Done”。
- 双击“向左滑动”区域的空白区域以定义与向左滑动操作关联的逻辑;
- 将Data选项卡中Todo下可用的实体操作DeleteTodo拖放到“向左滑动操作”的流程中。将属性Id设置为“GetTodos.List.Current.Todo.Id”;
- 将Refresh Data工具拖放到操作流中,然后选择GetTodos以刷新屏幕中的可用任务
测试待办事项应用
单击 Click Publish按钮将应用程序发布到您的环境。部署应用程序后,单击 Open in Browser 按钮以在浏览器中测试您的应用程序(支持Chrome和Safari)
六. 低代码平台竞品对比
按照代码生成平台的分类,对 OutSystems、Mendix、iVX 三家产品进行对比。
调研对象 OutSystems | 国外竞品 Mendix | 国内竞品 iVX | |
---|---|---|---|
从产品层面对比 | |||
产品定位
| 定位 “工作流”开发工具,主要用于企业各种工作流产品的开发,例如 OA 系统、APP 开发,国外重点竞品是老牌低代码平台 Mendix。
产品优势
- 提供功能强大且丰富的低代码开发平台,如强大的预建组件和集成应用市场、离线数据存储、一键式部署和回滚。
- 提供直接将应用发布到消费者应用商店的能力,如移动应用可以直接发布到 App Store和 Google Play。
- 提供成熟且设计良好的工具,可构建美观的应用程序并处理整个软件开发生命周期。
- 其他平台不具备的定制体验,可根据角色和技能水平定制和指导低代码应用程序创建经验,提供广泛的帮助资源和交互式培训、引导。
产品劣势
- 手动下载OutSystems桌面集成开发环境(IDE),没有完全基于云的应用程序创建环境。
- 偏重后台数字整合能力,前端能力较弱,UI 编辑器可能有点笨拙。
- 企业定价较高。
| 这是一家荷兰公司,后来被Outsystems的主要竞争对手西门子收购,两家公司在技术架构和服务模式上非常相似。
定位 “工作流”开发工具。为了将其与外部系统区分开来,Mendix专注于集成协作和敏捷开发。 | 国内深圳世云生产的一款零代码平台。前身是iH5,一款在业内知名度比较高的Html5交互工具,iVX则是主打应用开发的新产品。
iVX是低代码平台中的“异类”,它不单独是一款工具,而号称是一款“零代码开发语言”,因为它从开发能力来看比一般的工具要强大很多,可以开发网站、Web应用、游戏、各种工作流,还能开发小程序、原生应用等,不再局限于单一的工作流,几乎覆盖了全开发领域,确实更接近于开发语言。 |
|
产品分类
使用场景
| 私有部署,公有云相对薄弱。 | 公有云为主,也支持企业私有部署。 | 公有云为主,也支持企业私有部署。(例如华为等大企业) | |
商业模式
| 所有计划提供无限制的电子邮件使用方法和知识库支持,在线培训和教程,以及 OutSystems Forge 市场中可用的预构建连接器,建立社区和博客,运作和打造影响力。
- 企业级定价 5000+美元/月的价格较高,但依然有很多大公司青睐,年营收达到一亿美元。
- 免费计划提供了“足够入门”的机会,面向少于 100 个用户的任何组织,提供单一开发环境,一定数量的应用程序对象,例如屏幕,模块和拖放组件,有限的可扩展性和共享的云基础架构容量。
| Mendix的定价不是线性的,因此每位用户的价格会随着用户的增加而降低,并且不会因附件和使用配额而导致长期成本增加。Mendix除了通过组件和模板赚钱外,还对应用程序部署收费,而且价格很高。
一个应用每月1875美元,2-5个应用公共云每月5375美元,私有云每月72.5美元。除了云资源的成本外,这样的价格显然是中小企业无法承受的。因此,Mendix的潜在客户也集中在大型企业。 | 学习者可以免费使用,企业用户按实际使用云资源进行收费,价格比较友好。 |
| 从研发层面对比 | | | |
|
开发模式
| 开发方式上,以组件拖拉拽和流程设计为主,系统的复杂度较高,有较高上手成本,且还是需要程序员的开发组件的,只是写的代码量较少。 | 开发方式上,虽然Mendix试图从人员结构和开发流程上进行优化,但从低代码技术的本质上看,它仍然是组件和模块的拼接,但在组件库的结构上,Mendix的分类更加细化,内容更加丰富,能够实现比外系统更多的功能; | 开发方式上,相比于低代码工具,对代码的依赖性更低,接近于零代码。因为iVX直接对原生开发逻辑进行了优化,“去掉程序语法,保留程序逻辑”,学习者掌握的是完整的开发技能,而不是组件拼接模式,即使处理复杂应用也不需要代码的辅助。 | |
逻辑实现
| 逻辑实现上,通过类似画流程图的方式,实现前端和后台逻辑,但要想把比较复杂的后台逻辑画成一张流程图,思维难度并不小。 | 逻辑实现上,微流程和NanoFlow用于控制触发逻辑,而简单的逻辑由Edit Action管理,后者比外部系统更具工程性和组织性。 | 逻辑实现上,iVX通过事件来定义开发逻辑,并提供了一套集成的事件面板对事件流进行统一管理,过程和编辑程序有一点像,只是把所有可能用到的组件都封装成对象,而且很好的平衡了功能完备性和操作的简易性。 | |
版本管理
| 支持简单的版本管理 | 支持版本管理 | 支持版本管理 | |
多人开发
| 不支持多人开发 | 支持多人开发 | 支持多人开发 | |
Debug调试
| Debug前端主要依赖Chrome的调试模式,后台未见有专门Debug工具。 | 有独立的Debug工具,这方面比较成熟。 | 和Outsystems一样,前端依赖Chrome的调试模式来完成,后台还没有Debug工具,Debug功能不算非常完善。 | |
支持跨平台
| 开发需要下载安装本地客户端,支持 WebApp 和原生 Android & iOS App 的开发。 | 与OutSystems相似,Mendix也支撑原生Android&iOS、Web应用开发,但由于缺少前端功用,无法习惯网站建设等一般场景。 | 这个是iVX一大优势,一次开发可以部署成小程序、H5、网站等多个应用版本,在移动端和PC端都能无缝兼容。全部采用线上开发方式,所见即所得。 | |
组件模块
| 基础组件相对其他对量级平台较少,但 Outsystems 对自定义组件和模块的支持非常好,这个很值得借鉴,很多大公司都是在 Outsystems 上自制组件来进行开发的。 | 这部分和Outsystems类似,基础组件相对较少,但是有大量第三方开发的组件、模块,而且组件市场发展多年,比较成熟,形成了较好的开发生态。 | iVX基础组件非常丰富,这也就最大化地保证了开发的自由度,是它的主要特点。但是相比之下,第三方模块不是很多,可能因为刚上线的缘故。但有一套非常友好的机制,支持第三方开发和上传自己的小模块和组件。 | |
前端后台
| 开发上主要是设计“工作流”,前端无法实现“所见即所得”,因此,不要指望用Outsystems来开发对前端要求较高的应用、建站,游戏类应用彻底PASS;优势上后台能力强大,接口丰富,特别是对大型数据库都做了专门支持,例如Oracle、DB2等。 | 采用的Go+Docker+K8S的架构,相对新一点,要优于Outsystems所采用的老式Java框架。 | iVX将前端编辑和后台编辑解耦,并且提供上百款前端和后台基础组件,足够开发者使用了。从架构上来说,iVX的架构比较符合行业发展趋势,前端采用React(类似于React的图形化编辑工具),后台采用Go+Docker+K8S+云的架构,数据库采用最新的Aurora AWS(计算和存储分离),使得应用的一键部署更高效。接口方面,iVX允许通过API接入外部组件,配置起来比较方便。 |