10年经验总结,华为fellow教你如何成为一名优秀的架构师?
摘要:华为云首席架构师分享成为架构师必备的一些特质和能力。
本文分享自华为云社区《10年经验总结,华为fellow教你如何成为一名优秀的架构师?》,作者: 技术火炬手 。
在《云享人物·大咖面对面》第四期的采访中,华为云首席架构师顾炯炯基于10多年架构设计的经验,分享了架构师必备的一些特质和能力,本文将详细呈现顾炯炯对架构师能力的思考,并列出能力清单,和广大开发者共勉。
架构师要具备的专业视角
从云服务产品原始业务规划制定、需求定义,到方案设计开发联调测试,乃至最终的部署上线与生命周期运维与持续优化,架构师扮演了一个“关键桥梁”的角色,既要连接负责原始需求收集与规格定义的产品经理,又要串联起支撑这些原始需求与规格的每个软件特性编码落地的开发团队。

也即架构师既要从“为什么要这样做”“要做哪些功能”、“这些功能需要服务于哪些利益相关人”、“需要达到怎样的各维度质量属性”、“相比友商能构建什么样的差异化竞争力”等这些偏服务产品定义的宏观视角出发,去收集架构规划与设计的原始输入。
在这个过程中,架构师要有整体的宏观架构上下文的视角,避免“只顾埋头拉车,不顾抬头看路”,一头扎进技术实现与开发细节的讨论上。但与此同时,也需要架构师从偏研发的开发实现视角出发, 去判断如何进行领域服务架构的设计与划分,以及为支撑该领域服务架构,如何选择最合适的技术组件/微服务划分更为合理。
同时,在投入资源以及可选技术路径有限的前提下,架构师要权衡判断如何在各维度的方案选择与质量属性之间做出“恰如其分”的选择。
以华为全栈云为例,它的利益相关方包括云租户、云服务SRE运维人员,云服务运营与产品管理人员、云数据中心建设与运营、云服务生态合作伙伴,以及开发者等,设计架构时综合考量各方各面的核心诉求:
- 最终云租户: 云服务承诺的业务功能,以及非业务功能(可靠性、可用性、安全性、性能、成本)质量属性(DFx, 安全可信、韧性等)均得到满足。
- 云服务SRE运维人员: 尽可能降低人均运维成本,降低故障爆炸半径,最大限度确保云服务的连续性免受外部恶意安全攻击的影响,杜绝软硬件因系统单点失败导致的连续性受损。即便在极端的多点甚至站点全面故障的场景下,也具备跨站点切换的容灾保护能力。
- 云服务运营人员: 云服务作为线上服务产品,支持多样化的计量计费策略,在购买以及使用体验方面,可以满足不同等级客户的诉求。
- 云数据中心站点建设与运营人员: 云服务作为线上服务产品,支持多样化的计量计费策略,在购买以及使用体验方面,可以满足不同等级客户的诉求;软硬协同的云服务站点的构建要足够高效,同时云服务收入与云数据中心站点的成本投入要能支撑云服务赢利商业目标的要求。
- 云服务生态与开发人员: 云服务API的易用性、全面性,生态的广泛接受度及兼容性,对敏捷快速迭代开放能力的支持等等。
在华为全栈云的落地实施过程中,往往由于投入资源的制约,在特定的时间窗内,必须要在不同质量属性之间,不同的架构利益相关方,甚至不同的服务产品团队的软件功能边界方面做出权衡和选择。
总而言之,架构师必须具备从开发者视角出发,对支撑产品实现落地的微服务、子系统在特定技术工具与语言选择下实现落地过程中遇到的挑战与代价,有基本全面、客观、准确的认知。还需从系统日常运维管理者(SRE运维团队)的视角,安全管理员的视角,以及“云生态开发者”的视角,全面整体、开放地看待云服务。
优秀的架构师:全局观+洞察力+想象力
从近10年来在云领域及架构师岗位的经验来看,架构师是一个既需要掌控整体,又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。
全局掌控指的是对业务层面或者商业价值层面上的深入理解,这一点也是架构师和研究人员、科学家的不同。某种意义上,架构师这个岗位首先还是为商业目标服务。在对业务有深入洞察和理解的同时,架构师要把握技术的敏感度,了解最新的技术发展动态、新技术的发展机会点,让技术得以跟业务有非常深度无缝的结合。
与此同时,一个架构师也需要有足够的洞察力与想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。不满足于“人云亦云”、“Me too, But Better”,能够准确地挖掘和识别出本领域可能存在的差异化竞争力构建的机会和路径,创造机会点,打破既有格局,构建真正业界领先、捅破天、扎到根的技术架构与竞争力来支撑所负责领域的商业成功。
另外,架构师要有空杯心态,虚心向各服务领域专家,以及业界标杆与主要竞争对手学习, 加之云与IT领域的技术可谓一日千里,因此架构师在这个行当里就好比“逆水行舟,不进则退”。如果平时不注意学习积累、缺乏深入钻研和思考的积极主动性,就不可能主导做好一个大系统的架构规划及各项重大方案设计权衡与最终落地。
架构师能力清单
最后,附上顾炯炯总结的架构师能力清单,和开发者共勉。
作为云领域架构持续竞争力的构建者: 具备深远而敏锐的技术洞察能力,广博、全面的云领域相关知识,将技术创新与商业价值无缝融合,构筑实现良性的互助互促闭环的能力。
作为云领域/云服务产品的架构设计者:
软能力: 技术领导能力、决策能力.
硬能力: 核心框架编码能力,架构设计模式、原则;架构设计方法、工具;系统成功经验;编程语言、操作系统、数据库、网络通信;等等。
业务能力: 云计算、大数据、AI、IOT、媒体、区块链等领域的知识,无需做到面面俱到,包罗万象,但也至少需要在其中2-3个领域内有比较好的积累。
作为云领域/云服务产品架构的守护者:出色的沟通能力、协调能力、决策能力。
10年经验总结,华为fellow教你如何成为一名优秀的架构师?的更多相关文章
- 一个4年工作经验的java程序员的困惑,怎样才能能为一个架构师,请教大神
一个4年工作经验的java程序员的困惑,怎样才能能为一个架构师 LZ本人想往架构师发展, 业余时间也会看一些书籍, 但是感觉没有头绪, 有些书看了,也没有地方实践 我做了4年的java开发, 在一个公 ...
- 阿里Java架构师分享自己的成长经历,教你如何快速成长为架构师
架构师是公司的“金领”,很少需要考虑生存的问题,从而有更多的精力思考关键技术,形成“强者愈强”的良性循环.当然,冰冻三尺非一日之寒,成为一名合格的架构师是一个漫长的积累过程.对于大部分的软件开发人员来 ...
- 为什么你有10年经验,但成不了专家?(重复性刻意训练+反馈修正,练习的精髓是要持续地做自己做不好的,太精彩了)真正的高手都有很强的自学能力,老师和教练的最重要作用是提供即时的反馈(莫非我从小到大学习不好的原因在这里?没有单独刻意训练?) good
也许简单看书就是没有刻意训练.更没有反馈,所以没有效果 我倒是想起自己,研究VCL源码的时候,都是自己给自己提问,然后苦思冥想.自己解决问题,然后Windows编程水平果然上了一个台阶.对什么叫做“框 ...
- 一位10年Java工作经验的架构师聊Java和工作经验
从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源软件推动者之一, ...
- 转:一位10年Java工作经验的架构师聊Java和工作经验
黄勇( 博客),从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源 ...
- [转载]有经验的Java开发者和架构师容易犯的10个错误
首先允许我们问一个严肃的问题?为什么Java初学者能够方便的从网上找到相对应的开发建议呢?每当我去网上搜索想要的建议的时候,我总是能发现一大堆是关于基本入门的教程.书籍以及资源.同样也发现网上到处充斥 ...
- 10本Java架构师必读书籍
1.大型网站系统与JAVA中间件实践 本书围绕大型网站和支撑大型网站架构的Java中间件的实践展开介绍. 从分布式系统的知识切入,让读者对分布式系统有基本的了解:然后介绍大型网站随着数据量.访问量增长 ...
- Java架构师必看的10本书
1.大型网站系统与JAVA中间件实践 本书围绕大型网站和支撑大型网站架构的Java中间件的实践展开介绍. 从分布式系统的知识切入,让读者对分布式系统有基本的了解:然后介绍大型网站随着数据量.访问量增长 ...
- 华为云Stack首席架构师:打造“称手”的数字化工具,答好政企IT数字化转型这道必选题
摘要:数字化转型是一号位工程,数字化的工具本身就是企业的核心竞争力. 本文分享自华为云社区<华为云Stack首席架构师:打造"称手"的数字化工具,答好政企IT数字化转型这道必 ...
- 架构师如何借鉴他人经验快速成长? | 2018GIAC上海站日程上线!
随着网络技术的迅猛发展,越来越多的企业需要紧跟技术发展潮流以应对层出不穷的业务场景变化.如今多“语言”开发百花齐放,选择何种语言才能在合适的场景中发挥最大价值?互联网业务架构经过了长年的发展,已然朝着 ...
随机推荐
- dijkstra算法(朴素 + 堆优化)
dijkstra算法的大题思路是通过n - 1次迭代,每次迭代把一个点距汇点的最短路确定,当n - 1次循环过后所有点的最短路都已经确定 注意:dijkstra算法只适用于没有负权边的单源最短路 以下 ...
- shell脚本之规范与变量
shell编程规范与变量 名词简述 面向过程语言 按照顺序执行程序 第一件事干什么->第二件事干什么......(C,shell...) 面向对象语言 把程序看成一个整体(java,python ...
- langchain中的chat models介绍和使用
简介 之前我们介绍了LLM模式,这种模式是就是文本输入,然后文本输出. chat models是基于LLM模式的更加高级的模式.他的输入和输出是格式化的chat messages. 一起来看看如何在l ...
- 企业微信获取code
String url="https://open.weixin.qq.com/connect/oauth2/authorize?appid="+AuthUtil.APPID + ...
- C语言-变量常量数据类型
常量:不会变化的数据.不能被修改. 1. "hello".'A'.-10.3.1415926(浮点常量) 2. #define PI 3.1415 [强调]:没有分号结束标记. [ ...
- Winform 控件库 MaterialSkin.2 使用教程(鸿蒙字体版)
️MaterialSkin.2 控件库在之前的文章中已经介绍过了,就不啰嗦了 - > Winform 好看控件库推荐:MaterialSkin.2 ️官方库里使用的是 Google 的 Robo ...
- Activity发送信息给Fragment
在MainActivity中设置发送的信息,在fragment中接收, @Override public void onClick(View view) { switch (view.getId()) ...
- Python 潮流周刊第一季完结(1~30)
你好,我是猫哥.庆祝 Python 潮流周刊在几天前顺利更新到了第 30 期! 我觉得这是一个很有意义的时间节点,不太短也不漫长,很适合作一个小小的总结. 我打算今后每 30 期作为一季,都给大家做一 ...
- linux 上安装kapacitor
转载请注明出处: 1.通过安装包安装 1.使用以下命令下载安装包: wget https://dl.influxdata.com/kapacitor/releases/kapacitor_1.6.3- ...
- SpringBoot使用Environment对象封装全部配置信息
在组件中注入Environment @Autowired private Environment env; // 直接根据key获取值 String tempDir = env.getProperty ...