系统架构设计之 平台化建设思路

一、平台是什么,为什么要建?

    每个人心目中的平台都不一样,我们首先需要统一认识。我非常认同一个说法:架构师的根本职责是降低软件产品落地的复杂度问题,而软件产品复杂度的核心就是成本(工作量、复用度、质量、管理成本、维护成本、沟通成本、升级成本)。架构师的精力是有限的,不能事无巨细也不能全都从头建设,所以平台作为工具来降低成本。

    所以平台是降低软件产品构建成本的工具合集。

    事实上,为了解决重复建设和工作量问题,我们建设过XX平台、XX平台等,但是在这些平台的建设和使用过程中,暴露了尖锐的管理成本、维护成本、沟通成本、升级成本的问题。

    这就体现了事物的两面性,在解决复用度和工作量问题时,带来了其他问题,这是不可避免的,但是也不是不可解决的。而解决之道正是平台建设的核心。

二、平台的核心能力应该有哪些?

    产品的核心价值在于其有效性和用户体验,而构建好的产品有三个阶段的目标:构建业务壁垒(业务积累、业务定制、数据积累)、构建关键能力壁垒、引领客户和制定规范。

    而平台需要支撑好业务构建和关键能力建设,这为平台提出了能力要求。平台需要提供好的业务构建能力和关键技术能力;


三、平台的建设思路

    平台建设的核心是分层、模型化分解、标准化接口协议。

    分层是指在大的层面上要分好层,基础设施层、数据层、中间件及服务层,核心业务组件层,业务层。一般基础设施层、数据层、中间件和服务层由平台提供;核心业务组件层为核心研发提供;业务层由普通研发提供。

    模型化分解是指,将现有业务模型化,分解为有限的、核心的、可复用的组件、中间件、系统。

    标准化接口协议依赖于模型化分解,能最大程度解决管理成本、维护成本、沟通成本、升级成本的关键,大家基于有限的稳定接口定义开发。模型化和分解的合理性可以最大程度的保证接口的合理性、有限性和稳定性;

    另外要聚焦可以被抽象和分解的部分,解决一部分问题而不是所有问题。达成业务组件中间件化。与代码层面的面向接口编程异曲同工。可以参照JDBC和对象存储等中间件的设计。

    提供基础框架、脚手架、代码生成器、代码质量扫描工具、业务编排工具;提供Paas、CI/CD、自动化测试、监控运维、日志、等实施方案和基础设施。

    以上策略支撑业务构建能力。

    模型化分解以后,聚焦核心中间件和业务组件,不断加强组件能力支撑关键技术能力突破。

    通过业务模型化分解,人员分工自然划分,沉淀核心团队。

你可能感兴趣的:(系统架构设计之 平台化建设思路)