前绪

一、DDD(Domain Driven Design,领域驱动设计)、微服务、中台

       中台需要将通用的、可复用的业务能力沉淀到中台,实现企业级能力的复用。企业在进行中台建设时首先要从业务领域出发,考虑如何按照可复用的原则进行领域分解,完成中台领域建模。中台本质是企业的业务建模,而微服务则是中台领域建模系统落地时的一种架构实现方式。

       DDD首先从业务领域入手,划分业务领域边界,采用事件风暴工作坊方法,分析并提取业务场景中的实体、值对象、聚合根、聚合、领域事件等领域对象,根据界限上下文边界构建领域模型,将领域模型作为微服务设计的输入,进而完成微服务详细设计。用DDD方法设计的微服务,业务和应用边界清晰,符合“高内聚、低耦合”的设计原则,适应业务模型变化和服务架构演进。DDD包含战略设计和战术设计两个阶段。通过战略设计可完成中台业务边界划分和领域建模,然后将领域建模作为战术设计的输入,完成微服务设计。

       微服务与DDD的共生关系包含两方面。一方面,微服务提供将应用进行服务化拆分,通过业务领域边界实现应用服务边界的划分;另一方面,DDD提供了一种基于业务限界上下文边界来实现微服务“高内聚、低耦合”的服务建设方法。将两者合理搭配使用,研发组织科轻松实现面向服务的设计,享受持续交付与架构演进。

       DDD、微服务与中台都强调从业务领域出发。DDD可同时指导中台领域建模和微服务设计,是中台领域建模和微服务设计的最佳指导方法,而微服务是中台的最佳技术实践。三者为铁三角关系。三者结合,从企业领域到子域的战略设计、宏观业务领域边界划分到微服务内底层领域对象的逐级细化设计,降低软件产品建设的复杂度,实现从宏观战略到技术实现细节的无缝衔接。

二、传统企业数字化转型的问题

1、技术体系落后

       传统企业大多采用集中式架构,技术体系相对落后,可扩展能力不强。集中式架构过于依赖设备资源,基于稳定和性能考虑,大多运行在大型机或小型机上。同时,传统企业多采用“两地三中心”容灾模式,高可用能力不强,难以实现多中心多活,容易带来资源浪费。在运维能力上,过于依赖人工,难以实现自动化运维,面对突发高配访问的业务场景,不能实现自动弹性伸缩。

2、单体架构问题

       集中式单体应用会将多个功能放到一个应用中,经过日积月累,应用会变得庞大而复杂。企业难以尝试新的技术,以至于技术能力一直停滞不前,无法及时完成技术升级,导致技术债越积越多。

3、研发与运维能力落后问题

       一般单体应用通常采用传统的瀑布开发模式,弊端在于开发和测试周期耗时长,交付质量和周期难以保证,不能实现持续快速交付,对业务需求和市场的响应能力相对较慢,难以实现敏捷开发。云计算平台和自动化运维工具对单体应用的生态支持有限,应用的部署和运维过程相对复杂。当应用出现问题时,基本靠人肉排查,且研发团队与运维团队难以快速定位和协同解决问题。

4、IT能力重复建设问题

        再集团内部,由于缺少IT建设总体规划,不同子公司之间的公共业务能力的重复建设问题可能会更加突出。要解决IT重复建设问题,就要从提升技术能力和重构业务模型入手,实现企业级业务能力的复用,这也是传统企业中台数字化转型亟需重点解决的问题。

三、AKF可扩展能力立方体模型

       AKF可扩展能力立方体模型由X、Y、Z三个轴,分别从三个维度来定义软件产品的扩展能力。三个维度相辅相成,涵盖业务和技术的多个领域。通过克隆应用和数据库实例,可提高应用和数据库业务承载容量,对应X轴扩展能力。通过划分业务职能边界建立领域模型,以拆分应用和设计微服务,可以提高业务的复用和扩展能力,对应Y轴扩展能力。通过分片策略将数据集拆分为多个数据子集或业务单元,可提高数据的扩展能力,对应Z轴扩展能力。

1、X轴:容量扩展能力

       X轴关注无差别的服务和数据的复制,解决应用和数据库容量水平扩容问题。当应用或数据库实例负载过重时,可复制应用或数据实例实现扩容。扩容后,任务可通过负载均衡均匀分布到不同应用服务或数据实例,所有实例都可无差异地完成任务。在分布式架构下,X轴的典型实践案例主要体现在应用和数据库实例的水平扩展能力上。

2、Y轴:业务扩展能力

       Y轴主要用于划分业务和应用边界,解决业务能力复用的问题。Y轴的典型实践案例是从单体向微服务的演进。这个过程会有业务和应用边界拆分的问题。DDD帮助完成应用的拆分和微服务的设计。会按照流程或功能边界分解业务领域,根据业务上下文边界,构建领域模型,并将其进行微服务设计的输入。

3、Z轴:数据扩展能力

       Z轴关注数据的扩展能力,它按照业务类型或数据属性进行数据分片。根据数据分片策略将数据集划分为不同的数据子集,提升数据的扩展能力。数据库水平切分是通过数据分片规划将一个大的数据集切分为多个数据子集,并分布到不同的数据库中,按照分片规则可路由到具体数据库完成数据查询等操作。单元化架构是按照业务特点或yoghurt需求进行数据分片,将一个数据集水平切分为多个数据子集,然后根据数据分片分别部署业务应用单元。业务应用单元包含若干依赖紧密的应用,应用在单元内可不依赖单元外的服务独立完成单元内地业务全流程,以形成业务场景闭环。业务单元之间相互独立、天然隔离。但业务需要扩容时,只需增加和部署新的业务单元与数据子集就可以很容易实现扩容,从而提高业务承载能力。

四、企业数字化转型的重要关注点

       数字化转型是企业能力全面体系提升的过程,远不是升级几个系统技术架构就能解决的事情。这种能力的提升是企业从技术、业务到组织能力的全面提升,需要从技术能力、业务能力和组织架构等多方面,分步骤、有计划地统筹推进,从多个方面整体提升企业核心竞争力。

1、提升技术能力,完成从集中式架构向分布式架构的转型

  • 提升技术平台能力
  • 提升人员技能、知识和方法体系等方面邓丽
  • 打破传统核心应用与移动互联应用才有统一的技术壁垒,促进量大关键技术和业务体系的融合。

       技术鞥哪里提升了,传统应用和移动互联因公才有统一的基础;应用统一了,才会有业务模型的统一;业务模型统一了,才能实现业务能力共享和复用,企业才会有实时中台战略的技术基础。

2、降低应用建设复杂度,完成从单体到微服务的转型

       微服务采用分治的策略,降低了应用建设复杂度,解决了单体应用建设过程中遇到的若干问题。从单体到微服务的转型,对应AKF模型Y轴的业务扩展能力。“高内聚、低耦合”的可复用的业务模型和微服务,可更灵活地应对业务变化,更快地响应市场需求。微服务优势:

  • 业务职责单一,团队规模较小,可更好地实施敏捷开发。
  • 微服务软件部署包较小,可更好地上云,实现应用弹性扩展能力,提高自动化的运维能力,更好地管理和利用好资源。

3、提升业务复用能力,从IT重复建设到中台战略

       实现企业级能力复用,降低IT重复建设。通过实施中台战略,重构企业业务模型,提升企业级业务的复用能力。在从单体应用向微服务转型时,通过划分业务边界构建领域模型,将可复用的业务能力沉淀到中台领域模型,建立企业级整理解决方案,实现业务和流程的组合、复用和融合。

4、提升移动运营能力,从传统PC端向移动线上化转型

       结合AI和大数据等技术应用,完成核心业务能力的移动线上化转型,进而实现企业业务能力的无限延伸。在产品移动线上化后,企业可将能力延伸到客户和前台一线,这样企业就具备了实施数字化转型的前提和基础。

5、提升企业组织能力,建立与中台相适应的组织架构和方法体系

       建立与中台建设、中台运营和商业模式创新相适应的组织架构。在企业全院建立统一的中台文化和方法体系,按照统一的标准和方法协同推进中台建设。