孔庆龙,一线架构师,多年金融架构经验,具备 SOA 服务化、服务治理、系统优化、 分布式系统项目经验。目前关注于互联网金融技术架构设计、分布式架构、微服务架构、 DevOps 实践、大数据等领域。
在多年的架构工作中,我经常反问自己什么才是自己应该做的事,如何才能做好架构工作。本章意在从职责、核心能力、能力修炼等方面总结自己的经验和对架构工作的看法。做架构师要仰望星空、匍匐前行。仰望的是远景和方向,匍匐是要对业务和具体的研发有掌控,避免成为空中楼阁一般的“PPT 架构师”。
1
架构师承担的职责
在记录片《黑猩猩的守护者》中珍妮·古道尔博士说过:“唯有了解,才会开心,唯有开心,才会采取行动,唯有行动,生命才有希望。”将这句话套用到架构师身上同样适用:
“唯有了解,才会关心,唯有关心,才会采取行动,唯有行动,才会有结果。”
技术管理多为结果导向的,作为架构师首先要知道自己承担什么样的角色和职责,之后才能构建自己的知识体系用于辅助决策和指导实施。不同的企业对架构师工作的要求不同,有些企业没有设置架构师岗位,相关工作由需求或开发人员承担。按照架构师工作内容的侧重点不同, 架构师可以分为业务架构师(进行系统分析、建模以及业务架构设计)、技术专项领域架构 师(业务领域专家、业务顾问,可以洞察行业发展)、技术架构师(技术专家,从事技术架 构设计)、企业总体架构师(从事企业总体架构的规划和设计)、项目层面的技术架构师(Java 架构师、.NET 架构师)、方案架构师等。
2
架构师的核心能力
2.1
经验
架构师的经验很重要,若没有丰富的实战经验,在架构设计或指导开发时就很难预见哪些地方可能出问题。因为只有经历过才能更深入地理解痛点以及繁华表面的背后所需要 填的“坑”。但是,比经验更重要的是要具备深入思考的能力,只有时常对从事的专题领域进行经验总结,才能跳出本位看全局,不断提升自己的判断和分析能力。
在做分析或经验总结时,一般采用结构化思维方法:
首先梳理目标,理清目标与现在或将来发展的关系。
其次做现状分析,知道有什么、缺什么、现状与目标的差距,以及眼下首要的任务是什么。
接下来是路线与措施分析,并制定可以保证有效执行的方案。
最后是下定决心以较高的执行力来实践。下面以传统企业几年前的服务整理为例,分析企业机构服务治理的过程。
目标:改善目前无序的现状,建立服务及交易标准,构建符合企业发展需要的 SOA 服务平台,为灵活多变的业务提供支撑。
现状:企业创立多年,已经积累了大大小小几百个系统,因为建设之初上线时间要求得比较紧,所以大部分套件是采购的成熟的、基于垂直架构体系的商业套件,长期下来,系统如烟囱一样一个一个建立。为了解决信息孤岛,采用了系统集成方案, 但是由于在执行过程中接口缺少统一的管理,所以导致系统边界、模块边界模糊不 清。解决生产问题的过程中,需要相关或无关的人员一起参与进来才能定位问题, 问题排查慢,且需要耗费大量人力。因此当前最重要的是,先建立服务及交易标准, 规范新建系统对接,再制定计划指导历史系统改造。
路线:如何执行是需要好好规划的,具体的规划步骤可以是“找出差距——差距图, 明确整改措施——整改图,制定时间表——行动路线图”。
一般来说,传统企业在开始考虑做服务治理时,已经积累了大量接口。接口改造和测试的耗费巨大而且周期长,其中部分系统可能是外包出去的,难以控制。综合企业环境和 团队人员等因素,服务治理分阶段执行是比较合适的。
第一阶段,通过统一的服务总线和 监控平台实现交易的监控,这就需要选择比较成熟的产品和经验丰富的实施商(根据以往 经验,有时候有经验的实施商比产品重要),制定交易线服务接入接出规范,并进行服务接入;
第二阶段,深入服务治理,将一些基础服务下沉为平台,将流程服务放入 BPM(Business Process Manag