The Platform(普元数字化企业云平台)

数字化时代下,企业软件的焦点成为人、组织、物体与商业的融合,选择采用合适的软件与技术,将是企业能否成功转型为数字化商业模式的关键。但是这一转型面临着诸多挑战:应用交付的速度永远跟不上市场业务需求,业务部署与运维复杂度提高导致应用的可用性下降,多元化业务和复杂体系架构导致IT治理的困难,技术人员不断的重复“开发—测试—上线”的轮回效率有待提升……。如何通过云计算模式进行软件架构的升级,加速企业数字化转型,是普元数字化企业云平台的目标。为此,我们以元数据驱动的微服务架构为核心,利用在应用架构、软件过程、IT治理、基础架构等方面的创新技术,为企业提供一个简捷易用、价格合适、稳定可靠的解决方案。

 

元数据驱动的微服务技术架构

数字化时代企业软件的一个重大改变就是从面向组织的软件,改变为面向个体的软件,以快速适应业务创新。而微服务架构就是将应用从面向组织的巨石型应用,拆解成原子化的业务服务,每个服务是一个独立的业务逻辑,类似现代工业的零部件,由这些零部件再组合成更大的业务流程,每个部件的研发、维护就会变得相对简单,带来软件适应业务变化的能力增强。和现代工业一样,仅仅研发零部件是不够的,必须具备将零部件组装起来的体系结构和系统化方法,元数据驱动的方式就是将微服务进行组装的系统化方法。微服务通过元数据实现了标准化的定义,类似工业零部件的规格;元数据明确了微服务以及微服务所依赖的资源之间的关联,类似工业产品的装配图,为软件的开发、运维提供了依据;在需求、设计、开发、交付、运维等各阶段的元数据,实现了软件规格在各阶段的数字化描述,成为软件生命周期中协作、治理、审计提供了技术手段。

基于微服务的应用框架加速软件开发

凡事有一利必有一弊,微服务将应用细分后,势必带来部署、测试、监控、信息集成难度的提高,以至于现有的很多软件设计模式并不能适应微服务架构,例如数据一致性保证。根据微服务架构的特点,我们总结了一系列设计模式,并封装成有针对性的应用框架,提高服务开发与集成的效率。这些框架包括技术、业务两方面,技术方面的框架目前业界讨论较多,也有Netflix等开源实现(包括服务的发现、路由、超时、流控、升降级、熔断、伸缩等),但业务框架却比较缺乏。普元数字化企业云平台除了提供上述技术框架之外,把重点放在了业务框架上。我们把企业软件分为联机交易、批量处理、流程驱动、数据分析等类型,并为这些类型的服务提供通用的业务处理模式,从业务视角解决分布式系统带来的问题,例如数据一致性问题、业务的异步处理模式、业务的异常处理模式、身份认证与授权等。此外,业务框架还可以根据 IT 治理的要求提供能力与数据的支持,例如企业数据的生命周期管理、数据质量检核,全路径监控、业务审计等。通过业务与技术框架,使数字化时代应用软件的开发有章可循,提高了软件研发的效率。

 

充分利用多核的并行计算技术获取低延迟与高吞吐量

近二十年来,多线程模式一直是我们工作的主要模式,这一模式产生的背景是单个CPU性能不断提升,必须将计算分解到多个CPU时间片完成以提高利用率,Java等语言和B/S架构正是基于这一模式的。但单个CPU的性能不可能无限制提高,今天CPU性能的提升已经主要来自多核技术,不幸的是编写适合多核的软件太复杂,大家只能依旧采用多线程模式,大量的CPU时间浪费在时间片的切换和线程锁的等待过程中。之所以我们还能忍耐这种模式,是因为应用中存在大量IO操作,这些操作给了 CPU 以喘息之机,但也限制了CPU发挥更强大的处理能力。

 

普元数字化企业云平台针对高吞吐量和低时延要求的应用,提出了一种适应多核的并行计算架构,每核对应单进程单线程进行串行化运算,避免了时间片切换和锁的开销,将数据全部预置于内存中避免IO操作,通过PAXOS算法避免数据预置于内存带来的不可用,通过CQRS模式解决内存数据的持久化和失效重入。通过这一技术,可以将单线程的业务处理能力提高到百万TPS水平。

数据驱动的DevOps技术加速企业敏捷

敏捷的软件研发近年来逐步为企业接收。早期的敏捷软件研发重视文化的引进,通过持续集成等理念在项目级实现敏捷团队,当敏捷进入到更大规模推广的阶段,就必须进入到企业敏捷的阶段,而这一阶段就必须使用技术手段与之配套。普元数字化企业云平台从DevOps入手,将软件生命周期的各项过程数字化,为企业敏捷的落地提供了技术手段,主要包括数字化协作和智能化运维两方面。(1)软件过程包括需求、设计、开发、交付、运维等过程,运维得到的数据又为新的需求提供了输入,形成了管理的闭环。普元数字化企业云平台利用元数据驱动的方式实现各阶段之间的数字化贯通,把各阶段间协作从手工方式改变为自动化方式,提高了各阶段间协作的效率。(2)利用元数据的定义,可以清晰的得到服务规格以及服务间、服务依赖资源间的拓扑关系,通过这些描述利用容器技术实现自动化的应用部署和模拟测试,提高交付的效率;在应用出现故障时快速定位故障产生原因和故障影响范围,通过熔断、升降级等手段提高应用整体的可用性;利用FMECA等方法在设计、开发、运维过程中发现缺陷和薄弱环节,实现智能化运维。

融合 CMMI、DMM提高 IT 治理水平

CMMI是软件能力成熟度模型集成(Capability Maturity Model Integration),帮助企业对软件工程过程进行管理和改进,增强开发与改进能力;DMM是企业数据管理能力成熟度模型(Data Management Maturity),2014年发布,可以用来评估和提升组织的数据管理水平。这两者从不同视角对企业应用提出了要求,但是由于责任主体的部门、责任和知识结构的不同,往往在落地的时候出现了两张皮的情况,数据管理和应用开发之间互为黑盒,数据管理的规范仅仅在数据仓库类应用中落地,通过数据清洗等事后手段提高数据质量,经常出现下列:“去年刚刚进行数据清洗,今年数据又脏了”、“要求对前年进行业务审计,备份的数据拿出来后,应用已经不忍地了”、“客户需要多年前的交易查询,忽然发现我们这个数据已经销毁”。

 

针对这种情况,普元从应用开发入手,从数据管理、数据运维两个视角制定了若干原则,基于这些原则为应用制定了若干规范,并将这些规范植入企业数字化云平台加以保证。这样,在应用需求设计阶段可以通过数据标准将数据架构规划的内容做为输入,在开发阶段预置数据质量检核手段,并为数据创建、使用、归档、销毁过程提供了基本的设计模式与框架,在企业应用的源头植入了便于企业满足 DMM 的要求,提高数据管理水平,避免了数据质量“先污染后治理的”状况。