10年经验总结,华为fellow教你如何成为一名优秀的架构师?
摘要:华为云首席架构师分享成为架构师必备的一些特质和能力。
本文分享自华为云社区《10年经验总结,华为fellow教你如何成为一名优秀的架构师?》,作者: 技术火炬手 。
在《云享人物·大咖面对面》第四期的采访中,华为云首席架构师顾炯炯基于10多年架构设计的经验,分享了架构师必备的一些特质和能力,本文将详细呈现顾炯炯对架构师能力的思考,并列出能力清单,和广大开发者共勉。
架构师要具备的专业视角
从云服务产品原始业务规划制定、需求定义,到方案设计开发联调测试,乃至最终的部署上线与生命周期运维与持续优化,架构师扮演了一个“关键桥梁”的角色,既要连接负责原始需求收集与规格定义的产品经理,又要串联起支撑这些原始需求与规格的每个软件特性编码落地的开发团队。
也即架构师既要从“为什么要这样做”“要做哪些功能”、“这些功能需要服务于哪些利益相关人”、“需要达到怎样的各维度质量属性”、“相比友商能构建什么样的差异化竞争力”等这些偏服务产品定义的宏观视角出发,去收集架构规划与设计的原始输入。
在这个过程中,架构师要有整体的宏观架构上下文的视角,避免“只顾埋头拉车,不顾抬头看路”,一头扎进技术实现与开发细节的讨论上。但与此同时,也需要架构师从偏研发的开发实现视角出发, 去判断如何进行领域服务架构的设计与划分,以及为支撑该领域服务架构,如何选择最合适的技术组件/微服务划分更为合理。
同时,在投入资源以及可选技术路径有限的前提下,架构师要权衡判断如何在各维度的方案选择与质量属性之间做出“恰如其分”的选择。
以华为全栈云为例,它的利益相关方包括云租户、云服务SRE运维人员,云服务运营与产品管理人员、云数据中心建设与运营、云服务生态合作伙伴,以及开发者等,设计架构时综合考量各方各面的核心诉求:
- 最终云租户: 云服务承诺的业务功能,以及非业务功能(可靠性、可用性、安全性、性能、成本)质量属性(DFx, 安全可信、韧性等)均得到满足。
- 云服务SRE运维人员: 尽可能降低人均运维成本,降低故障爆炸半径,最大限度确保云服务的连续性免受外部恶意安全攻击的影响,杜绝软硬件因系统单点失败导致的连续性受损。即便在极端的多点甚至站点全面故障的场景下,也具备跨站点切换的容灾保护能力。
- 云服务运营人员: 云服务作为线上服务产品,支持多样化的计量计费策略,在购买以及使用体验方面,可以满足不同等级客户的诉求。
- 云数据中心站点建设与运营人员: 云服务作为线上服务产品,支持多样化的计量计费策略,在购买以及使用体验方面,可以满足不同等级客户的诉求;软硬协同的云服务站点的构建要足够高效,同时云服务收入与云数据中心站点的成本投入要能支撑云服务赢利商业目标的要求。
- 云服务生态与开发人员: 云服务API的易用性、全面性,生态的广泛接受度及兼容性,对敏捷快速迭代开放能力的支持等等。
在华为全栈云的落地实施过程中,往往由于投入资源的制约,在特定的时间窗内,必须要在不同质量属性之间,不同的架构利益相关方,甚至不同的服务产品团队的软件功能边界方面做出权衡和选择。
总而言之,架构师必须具备从开发者视角出发,对支撑产品实现落地的微服务、子系统在特定技术工具与语言选择下实现落地过程中遇到的挑战与代价,有基本全面、客观、准确的认知。还需从系统日常运维管理者(SRE运维团队)的视角,安全管理员的视角,以及“云生态开发者”的视角,全面整体、开放地看待云服务。
优秀的架构师:全局观+洞察力+想象力
从近10年来在云领域及架构师岗位的经验来看,架构师是一个既需要掌控整体,又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。
全局掌控指的是对业务层面或者商业价值层面上的深入理解,这一点也是架构师和研究人员、科学家的不同。某种意义上,架构师这个岗位首先还是为商业目标服务。在对业务有深入洞察和理解的同时,架构师要把握技术的敏感度,了解最新的技术发展动态、新技术的发展机会点,让技术得以跟业务有非常深度无缝的结合。
与此同时,一个架构师也需要有足够的洞察力与想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。不满足于“人云亦云”、“Me too, But Better”,能够准确地挖掘和识别出本领域可能存在的差异化竞争力构建的机会和路径,创造机会点,打破既有格局,构建真正业界领先、捅破天、扎到根的技术架构与竞争力来支撑所负责领域的商业成功。
另外,架构师要有空杯心态,虚心向各服务领域专家,以及业界标杆与主要竞争对手学习, 加之云与IT领域的技术可谓一日千里,因此架构师在这个行当里就好比“逆水行舟,不进则退”。如果平时不注意学习积累、缺乏深入钻研和思考的积极主动性,就不可能主导做好一个大系统的架构规划及各项重大方案设计权衡与最终落地。
架构师能力清单
最后,附上顾炯炯总结的架构师能力清单,和开发者共勉。
作为云领域架构持续竞争力的构建者: 具备深远而敏锐的技术洞察能力,广博、全面的云领域相关知识,将技术创新与商业价值无缝融合,构筑实现良性的互助互促闭环的能力。
作为云领域/云服务产品的架构设计者:
软能力: 技术领导能力、决策能力.
硬能力: 核心框架编码能力,架构设计模式、原则;架构设计方法、工具;系统成功经验;编程语言、操作系统、数据库、网络通信;等等。
业务能力: 云计算、大数据、AI、IOT、媒体、区块链等领域的知识,无需做到面面俱到,包罗万象,但也至少需要在其中2-3个领域内有比较好的积累。
作为云领域/云服务产品架构的守护者:出色的沟通能力、协调能力、决策能力。