四. 技术路线总体框架
4.1 企业的总体技术层次
每个企业,IT基础水平不同,业务重点不同,IT人员的世界观不同,造成的企业的整体IT架构必然是会有千差万别的。但整体上, 每个企业的IT生态,慢慢都会形成如下图所示的一个参考框架,如同计算机体系结构一样的,有相对统一的一个层次。
- IAAS层: 计算存储网络,基于不同的云平台。
- PAAS层: 狭义的PAAS层是指技术上的PAAS,即数据库,中间件,大数据等标准化的技术服务。容器,服务调度,网关,负载均衡等在技术层次上也属于PAAS层。广义的说PAAS层,也可能将中台归入到PAAS的层面(实际上中台叫中台而不叫平台,即表示其与平台是有不同的)
- 稳态的应用系统 : 传统的信息系统,传统的信息系统并不是指老的信息系统,而是指面向内部员工的特定岗位、流程的信息系统。典型的是财务、ERP系统。
- 业务中台: 业务中台将内部的应用系统的部分功能服务化,暴露服务并解决部分并发压力、安全解耦、数据校验等;另一部分是面向新的应用场景的一些公共性业务,特别是前端与最终用户有多个触点的时候的公共服务。
- 数据中台: 数据中台集中各类数据,提供面向分析、监控的智能化数据服务。
- 场景化的交互新应用: 新应用是相对的新,部分应用成熟之后,可能又会沉淀到业务中台成为公共服务,或者成为稳态的应用系统。 场景化的交互新应用是面向特定人员,特定场景的,很多时候,可能不能用传统的完整应用系统的角度去归类和衡量。即 ApplicationLess (应用的概念被打破而被服务发布,前端场景组合取代)
这个总体技术层次,在实现上应当是与具体的技术无关的。 我们需要对这个总体的框架有个公共的认识,在具体的项目落地时,每个项目都不是独立存在的系统,必须明确项目在企业IT整体的生态中的定位。
4.2 信息化项目的参考逻辑架构
每一个项目的具体技术架构,因业务需求不同,当然每个项目有所不同。但要说明两点:
项目的技术架构设计,不是技术栈设计。技术架构的设计目标是将业务需求和非功能性需求,转化为业务组件与组件之间关系的设计。
技术栈要尽量统一、收敛。每一个项目涉及到的技术栈,基本可以参考下图的架构。每个项目只是涉及到的范围多少而已。因而对于项目的技术践线,我们以这个参考架构进行展开说明。
在这个逻辑参考架构中,总体上粗线条一点分为三个层次,我们对于技术路线的说明也按这三个层次进行阐述:
技术平台。技术平台是通用的,虽然对于前端与后端有不同的侧重点。虽然表现上,与技术开发相关的是相关的中间件与技术标准(如JDBC,RESTFUll),隐藏的还有底层的基础支持。容器与容器编排作为新的基础设施,在正式应用中是前后端都有涉及到的,所以也归入到公共技术平台中。对其相关的说明见 公共基础技术。
服务层,俗称后端。服务层专注于业务逻辑服务的实现,提供API等服务。对其相关的说明见 后端技术。
用户接口层,俗称前端。注于用户的交互服务(甚至与其他外部应用)。对其相关的说明见 前端技术。
4.3 软件开发生命周期与DevOPS工具
上图是项目的开发落地的目标成果的参考设计框架。落地这个框架,是通过一系列的相关的工作活动来完成的。 这个总体过程,称为软件开发生命周期。
图中所示的只是一个从规划到运维的循环,这是很粗略的描述。如果一个软件项目整体上是这么一个循环,就是传统的瀑布模式;如果是分块的进行多次循环迭代,即敏捷开发模型。而当前随着软件复杂度的增大、为了更好的协作和更快的交付需求,DevOPS成为更为广泛采用的软件开发模式。对应的工具支持也形成了一个较为复杂的支撑体系。
对于DevOPS各过程及统一的工具平台支撑,详见: DevOPS与工具集 。