为什么需要组装式架构?
随着企业数字化转型在各行各业中如火如荼的展开,不同行业对于实现本行业的数字化改造的需求与日俱增,B端客户都希望借助公司的数字化改造升级降低企业运营成本,同时为自身用户带来数字化创新价值以及智能化服务价值。但是在实际的数字化转型落地过程中,如何快速的构建符合自身业务特征的业务平台以及APP来应对业务发展变化是每个进行数字化改造的企业必须要面对的实际问题。
另外在一些大公司当中,由于需要支撑各种各样的行业业务场景,各个部门平台服务重复建设现象比较严重,因此从整个公司的层面来看,肯定希望通过沉淀通用的服务来避免重复开发浪费研发资源,这样当业务发生变化的时候或者有新的业务需要进行支撑的时候,可以快速的通过已有组件进行服务组装形成平台产品来支撑新的业务,从而提升行业服务平台交付效率。另外各个行业的业务场景碎片化现象比较严重,十分考验服务提供方的架构应变能力,因此一套能够提高服务复用度,灵活应变需求变化的组装式软件架构的诉求越来越强烈。
因此无论是从一线公司自身业务发展的内部因素考虑,还是从参与企业数字化转型的外部因素考虑,沉淀一套能够进行应用服务组装式开发的平台,帮助大公司自身以及B端客户解决组件复用以及业务需求快速响应都是非常重要的能力体现,同时也可以有效降低B端客户业务平台开发接入成本,进一步赋能企业数字化转型。
我们到底组装什么?
要想落地实现组装式的技术架构,那么首先就要搞清楚我们组装的到底是什么,或者说什么样的软件单元才能够被组装。因此我们需要先厘清可以自由组装的软件单元到底包含哪些关键要素。在笔者看来一个可被组装的软件单元或者组件应该满足以下四个条件:
1、独立运行
对于一个组件来说首先它应该是可以独立运行的,不强依赖于其他业务组件(基础中间件除外),可以独立运行是后期实现自由组装的前提,否则组件之间存在运行依赖的话实际上反应的是组件业务范围切割的不够清晰完整,需要进一步进行切分,另外组件之间过于强耦合不利于软件产品组装的灵活性。
2、完整业务
一个组件应该包含一个完整的业务范围,举个栗子,如果把用户管理作为一个单独的组件,那么用户管理应该包含完整的用户创建、用户查询、用户删除、用户信息修改等一系列围绕用户管理的完整业务。那么任何一个行业软件平台在组件的时候都可以选择用户管理组件作为自身平台的通用组件。
3、可被寻址
组件必须能够被寻址到,否则它提供的服务无法被其他组件调用。
4、接口齐全
作为一个组件需要对外提供齐全的接口,也就意味着组件要将自身已有的业务能力API化,如此,在和其他组件进行组合集成之后,组件直接的业务往来都通过标准的Restful接口进行承载。
实际上Gartner也有类似的软件单元的定义,即PBC(Packaged Business Capability),PBC是一个定义良好的,能够在功能上被用户识别的软件组件,它和云巧中的组件的含义有异曲同工之妙,和笔者在上文中提到的独立运行的具有完整业务能力的服务其实都差不多。云巧定义了一个组件可以被组装四大关键属性:模块化、可发现、自治、可编排。
构建组件库
当我们明确了什么是组件之后,我们需要构建完备的组件库,所谓组件库就相当于组件仓库。以便于后期进行软件产品组装集成的时候可以从组件库中选择符合业务的组件进行产品构建,同时也是为了提高组件的复用度,避免相同或者类似的功能重复开发浪费研发资源,当我们需要组装软件产品的时候便组件库中的组价可以按照能力属性进行分类,大致可以分为基础中间件、公用组件以及行业应用组件等。
组件集成
当用户用于平台账号之后 ,可以根据自身的行业业务属性在行业市场中选择合适的行业软件产品模板。这个模板实际上就是行业平台大致的软件骨架,这就好比在建造房子的时候总是要先搭建钢筋结构再进行浇筑安装门窗。有了行业产品模板之后再结合软件产品风格渲染,一个软件平台的雏形就形成了。
软件骨架选好之后,我们就需要往这个骨架当中去填充各种功能的组织以完善其机能。其实这个过程就是在预先已经构建更好的组件库中选择可以满足业务需要的组件。中间件组件组要根据自身的业务场景选择合适的中间件,公用组件一般都是各种软件平台比较通用的能力下沉后形成的组件,比如用户管理组件,只要是软件平台必定要涉及用户管理,因此把这部分能力抽象为一个公用组件提供给行业人业务平台该进行使用。
当行业平台模板以及组件选择确认后,我们就可以通过模板结合组件的方式打包一个产品安装包。B端客户可以选择将产品包在本地进行私有化部署,或者直接进行公有云发布。
另外无论是通用组件还是业务组件都需要支持高度的定制扩展能力,由于需要支持各类行业平台,业务场景碎片化严重,另外业务需求也是在不断的变化当中。因此需要具备高度的定制扩展能力,在需求发生变化的时候可以方便定制开发者方便的进行修改定制开发。
总结
本文主要分析了软件平台组装式开发发展的必然趋势以及如何进行组装式架构设计,同时在组装式架构如何赋能行业业务层面提出了自己的思考。组装式架构因为其灵活的组合形式以及开放式定制能力,越来越受各行各业谋求数字化转型的B端客户的欢迎。而类似云巧这样的平台不仅提供了动态构建行业应用平台的能力,同时还为行业用户进行实际落地培训以及维护,通过一整套的解决方案式的交付形式进一步为企业数字化转型注入强劲的动力。