再谈业务信息化操作系统(BIOS)

Posted by Coding Ideal World on June 9, 2021

笔者在去年写过信息化操作系统(BIOS)的设想,一年后再谈BIOS,本文将进一步阐述对这一新形态的思考。

什么是BIOS

BIOS的普遍定义是基本输入输出系统(Basic Input Output System),而这里所说的BIOS是业务信息化操作系统(Business Informatization OS),这是我取的名称,前者(Basic Input Output System)是现代计算机的核心系统,而后者(Business Informatization OS)将是现代企业信息化的核心系统。

从中台的角度看BIOS便是技术中台最终的产出物(详见我之前的文章: http://www.idealworld.group/2020/05/12/business-informationization-os/ ),无独有偶,阿里在后来也表示“中台其实是一个新型的操作系统”( https://segmentfault.com/a/1190000040116627 )。

可以说行业的趋势已很明显,在企业数字化转型的当口,云架构为其扫平了基础设施的障碍,如何从软件架构层面入手提供稳定、快速地支撑业务成为了信息化提供商们的兵家必争之地。前有以SAP、甲骨文、微软为代表的套装软件方案,后有百花齐放的SaaS化平台解决方案,再有以阿里为首的中台赋能转型方案,当我们抛开概念看本质,一次次的改变都有明确的技术升级诉求:

  • 多云适配:当下云架构必定是主流,而多云适配、无厂商绑定也越来越被重视

  • 开箱即用:支持基础的、常用的场景需求,用户不用在这方面投入额外的研发成本

  • 灵活定制:支持为复杂的、个性化的场景需求提供低门槛的扩展能力

  • 开放共建:实现能力复用,减少重复研发

而这些正是BIOS所要解决的问题,BIOS由 两大属性一个生态 组成:

  • 操作系统属性,面向技术领域,对应于PaaS、BaaS层,制定技术规范,对下适配不同的云平台,对上提供稳定、安全、丰富的开发API

  • 业务信息化属性,面向业务领域,一是建设标准化的核心业务服务,实现开箱即用,对应于SaaS层;二是建设在线化的应用构建平台(低代码),实现复杂个性业务的快速构建,对应于aPaaS层

  • 开放共建生态,面向运营领域,以开放的心态吸纳更多的上下游厂商共同建设完善,提供以物料市场为核心的共建共享共赢能力

BIOS既可以独立服务于企业数字化转型,又可以与主流的中台结合,作为中台的核心能力,借由中台组织架构的拉通实现更高层面的研发协作及能力复用。

用一句话概况: BIOS是一种低侵入、高适配、快产出的赋能企业数字化转型的新形态

在BIOS的形态下企业可以使用很低的(软、硬件)成本部署在不同的(公有或私有)云平台之上,BIOS自身提供了用户权限、用户触达、流程决策等基础功能,在物料市场中还可以获取更多可复用的功能,为我们的产品研发提供了丰富的服务支撑,同时低代码构建能力也为产品的快速构建及二次开发提供了强有力的保障。企业只需关注业务实现,软件研发的复杂度由BIOS自身消化。并且这一切都是可以扩展的,可与企业现有系统集成、可被中台集成。

BIOS技术架构

从技术层面分析BIOS的核心诉求有:

  1. 安全可靠:作为核心平台安全可靠必定是最基础的要求,技术上关注使用内存/类型安全的语言、避免反射、减少三方依赖、使用无状态服务、完善测试等

  2. 高性能:性能是永恒的追求,核心接口TPS单机1w以上,技术上关注引入Reactive模型、使用分布式架构、合理的缓存架构、减少或避免GC等

  3. 低成本:降低部署使用的成本,验证环境资源控制在8C32G内,技术上关注Docker化部署、减少使用Spring等重型框架、服务可拆可合等

  4. 可扩展:支持二次开发及集成,技术上关注功能扩展点设计、模型抽象等

2021 06 09 10 57 59

上图是BIOS的整体架构设计方案。我在 http://www.idealworld.group/2021/04/25/reflections-of-middle-platform-future-of-technical-architecture/ 此文中有进一步的说明。

2021 06 09 11 09 38

现代操作系统分为了内核模式与用户模式两大层,对应于BIOS,基础技术、公共服务中用户权限及原子服务就是其内核,是PaaS、BaaS层能力,公共服务中的基础服务及应用构建平台是用户模式,基础服务是SaaS层能力,应用构建平台是aPaaS层能力。

与现代操作系统类似,BIOS的内核模式要保证稳定、性能、轻量,所以整体上会考虑采用Rust语言实现,BIOS的用户模式要保证开发上手简单、开发迭代快速,所以会使用Java、TS等语言实现。

BIOS基于Kubernetes,服务网关采用APISix,实现用户权限过滤、安全防御等lua插件,服务框架提供基于Actix的Rust性能版本及基于Spring Boot的Java通用版本,DevOps上实现对Gitlab、Nexus、Harbor、Kubernetes、Prometheus等产品的集成形成统一的能力调用。

BIOS建设方案

要实现BIOS需要多少的投入想必是比较关心的问题,笔者这里做个简单地匡算,以目前主流的技术人员水平而言,实现一个基础版本的BIOS大概资源如下:

模块 核心任务 资源需求 工期 优先级

PaaS 基础技术

服务网关、服务框架、DevOps研发

DevOps *1 后端 *3 前端 *1

3m

BaaS 公共服务

用户权限、原子服务研发

后端 *3 前端 *1

3m

SaaS 公共服务

用户触达、数据采集、特征画像等

(后端 *1 前端 *0.5)/服务

2m

低/一期不考虑

aPaaS 应用构建平台

应用管理、开发编排、持续发布

后端 *>5 前端 *>3

3m

合计至少 DevOps*1 后端*11 前端*5 ,加上架构、产品,需要20人的团队,一个季度完成基础版本的交付。