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上海站日程上线!
随着网络技术的迅猛发展,越来越多的企业需要紧跟技术发展潮流以应对层出不穷的业务场景变化.如今多“语言”开发百花齐放,选择何种语言才能在合适的场景中发挥最大价值?互联网业务架构经过了长年的发展,已然朝着 ...
随机推荐
- Flyweight 享元模式简介与 C# 示例【结构型6】【设计模式来了_11】
〇.简介 1.什么是享元模式? 一句话解释: 将相似或同类的对象共享同一个对象,将这些对象暂存在列表中,使用时直接取出,避免每次使用时都要新建浪费资源. 享元模式的目的是减少对象的创建,通过共享对 ...
- golang在win10安装、环境配置 和 goland开发工具golang配置 及Terminal的git配置
前言 本人在使用goland软件开发go时,对于goland软件配置网上资料少,为了方便自己遗忘.也为了希望和我一样的小白能够更好的使用,所以就写下这篇博客,废话不多说开搞. 一.查看自己电脑系统版本 ...
- (int argc, char *argv[])在MCU中的调试使用
这里主要讲了基于RTT的 finsh->MSH_CMD_EXPORT 方法,在串口终端中调用自定义函数,并传入参数的方法. 在传统的MCU开发中 当我们需要测试一个函数在传入不同参数时的运算结果 ...
- MySQL运行在docker容器中会损失多少性能
前言 自从使用docker以来,就经常听说MySQL数据库最好别运行在容器中,性能会损失很多.一些之前没使用过容器的同事,对数据库运行在容器中也是忌讳莫深,甚至只要数据库跑在容器中出现性能问题时,首先 ...
- .NET 程序员-开源项目【藏】
Json.NET http://json.codeplex.com/ Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Net环境下使用Json更加简单.通过Lin ...
- Pattern类和Matcher类的使用
1.先看好数据源 先将一个String对象确定为程序要对其进行操作的数据源. String b="hello,good morning"; 2.建立Pattern类的对象 Stri ...
- Winform RichTextBox 控件文本内容自动滚动到最后一行
RichTextBox 控件文本内容始终显示追加的最新内容,也就是自动滚动到控件文本框的最后一行. 有两种方法: HideSelection设置为false: // RichTextBox1.Text ...
- Bert-vits2-v2.2新版本本地训练推理整合包(原神八重神子英文模型miko)
近日,Bert-vits2-v2.2如约更新,该新版本v2.2主要把Emotion 模型换用CLAP多模态模型,推理支持输入text prompt提示词和audio prompt提示语音来进行引导风格 ...
- lottie 动画在 vue 中的使用
前言 最近我所负责的项目中,我采用了动画效果,并开始使用 gif 来实现.然而,在实践过程中,我发现 gif 格式的动画在 git 中出现了明显的锯齿感,这让我非常困扰.为了追求更完美的表现效果,我最 ...
- ImportError: No module named pypinyin
import platform, subprocess, os, zipfile, xml, re, pypinyin ImportError: No module named pypinyin pi ...