摘要:华为云首席架构师分享成为架构师必备的一些特质和能力。

本文分享自华为云社区《10年经验总结,华为fellow教你如何成为一名优秀的架构师?》,作者: 技术火炬手 。

《云享人物·大咖面对面》第四期的采访中,华为云首席架构师顾炯炯基于10多年架构设计的经验,分享了架构师必备的一些特质和能力,本文将详细呈现顾炯炯对架构师能力的思考,并列出能力清单,和广大开发者共勉。

架构师要具备的专业视角

从云服务产品原始业务规划制定、需求定义,到方案设计开发联调测试,乃至最终的部署上线与生命周期运维与持续优化,架构师扮演了一个“关键桥梁”的角色,既要连接负责原始需求收集与规格定义的产品经理,又要串联起支撑这些原始需求与规格的每个软件特性编码落地的开发团队。

也即架构师既要从“为什么要这样做”“要做哪些功能”、“这些功能需要服务于哪些利益相关人”、“需要达到怎样的各维度质量属性”、“相比友商能构建什么样的差异化竞争力”等这些偏服务产品定义的宏观视角出发,去收集架构规划与设计的原始输入。

在这个过程中,架构师要有整体的宏观架构上下文的视角,避免“只顾埋头拉车,不顾抬头看路”,一头扎进技术实现与开发细节的讨论上。但与此同时,也需要架构师从偏研发的开发实现视角出发, 去判断如何进行领域服务架构的设计与划分,以及为支撑该领域服务架构,如何选择最合适的技术组件/微服务划分更为合理。

同时,在投入资源以及可选技术路径有限的前提下,架构师要权衡判断如何在各维度的方案选择与质量属性之间做出“恰如其分”的选择。

以华为全栈云为例,它的利益相关方包括云租户、云服务SRE运维人员,云服务运营与产品管理人员、云数据中心建设与运营、云服务生态合作伙伴,以及开发者等,设计架构时综合考量各方各面的核心诉求:

  • 最终云租户: 云服务承诺的业务功能,以及非业务功能(可靠性、可用性、安全性、性能、成本)质量属性(DFx, 安全可信、韧性等)均得到满足。
  • 云服务SRE运维人员: 尽可能降低人均运维成本,降低故障爆炸半径,最大限度确保云服务的连续性免受外部恶意安全攻击的影响,杜绝软硬件因系统单点失败导致的连续性受损。即便在极端的多点甚至站点全面故障的场景下,也具备跨站点切换的容灾保护能力。
  • 云服务运营人员: 云服务作为线上服务产品,支持多样化的计量计费策略,在购买以及使用体验方面,可以满足不同等级客户的诉求。
  • 云数据中心站点建设与运营人员: 云服务作为线上服务产品,支持多样化的计量计费策略,在购买以及使用体验方面,可以满足不同等级客户的诉求;软硬协同的云服务站点的构建要足够高效,同时云服务收入与云数据中心站点的成本投入要能支撑云服务赢利商业目标的要求。
  • 云服务生态与开发人员: 云服务API的易用性、全面性,生态的广泛接受度及兼容性,对敏捷快速迭代开放能力的支持等等。

在华为全栈云的落地实施过程中,往往由于投入资源的制约,在特定的时间窗内,必须要在不同质量属性之间,不同的架构利益相关方,甚至不同的服务产品团队的软件功能边界方面做出权衡和选择。

总而言之,架构师必须具备从开发者视角出发,对支撑产品实现落地的微服务、子系统在特定技术工具与语言选择下实现落地过程中遇到的挑战与代价,有基本全面、客观、准确的认知。还需从系统日常运维管理者(SRE运维团队)的视角,安全管理员的视角,以及“云生态开发者”的视角,全面整体、开放地看待云服务。

优秀的架构师:全局观+洞察力+想象力

从近10年来在云领域及架构师岗位的经验来看,架构师是一个既需要掌控整体,又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。

全局掌控指的是对业务层面或者商业价值层面上的深入理解,这一点也是架构师和研究人员、科学家的不同。某种意义上,架构师这个岗位首先还是为商业目标服务。在对业务有深入洞察和理解的同时,架构师要把握技术的敏感度,了解最新的技术发展动态、新技术的发展机会点,让技术得以跟业务有非常深度无缝的结合。

与此同时,一个架构师也需要有足够的洞察力与想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。不满足于“人云亦云”、“Me too, But Better”,能够准确地挖掘和识别出本领域可能存在的差异化竞争力构建的机会和路径,创造机会点,打破既有格局,构建真正业界领先、捅破天、扎到根的技术架构与竞争力来支撑所负责领域的商业成功。

另外,架构师要有空杯心态,虚心向各服务领域专家,以及业界标杆与主要竞争对手学习, 加之云与IT领域的技术可谓一日千里,因此架构师在这个行当里就好比“逆水行舟,不进则退”。如果平时不注意学习积累、缺乏深入钻研和思考的积极主动性,就不可能主导做好一个大系统的架构规划及各项重大方案设计权衡与最终落地。

架构师能力清单

最后,附上顾炯炯总结的架构师能力清单,和开发者共勉。

作为云领域架构持续竞争力的构建者: 具备深远而敏锐的技术洞察能力,广博、全面的云领域相关知识,将技术创新与商业价值无缝融合,构筑实现良性的互助互促闭环的能力。

作为云领域/云服务产品的架构设计者:

软能力: 技术领导能力、决策能力.

硬能力: 核心框架编码能力,架构设计模式、原则;架构设计方法、工具;系统成功经验;编程语言、操作系统、数据库、网络通信;等等。

业务能力: 云计算、大数据、AI、IOT、媒体、区块链等领域的知识,无需做到面面俱到,包罗万象,但也至少需要在其中2-3个领域内有比较好的积累。

作为云领域/云服务产品架构的守护者:出色的沟通能力、协调能力、决策能力。

点击关注,第一时间了解华为云新鲜技术~

10年经验总结,华为fellow教你如何成为一名优秀的架构师?的更多相关文章

  1. 一个4年工作经验的java程序员的困惑,怎样才能能为一个架构师,请教大神

    一个4年工作经验的java程序员的困惑,怎样才能能为一个架构师 LZ本人想往架构师发展, 业余时间也会看一些书籍, 但是感觉没有头绪, 有些书看了,也没有地方实践 我做了4年的java开发, 在一个公 ...

  2. 阿里Java架构师分享自己的成长经历,教你如何快速成长为架构师

    架构师是公司的“金领”,很少需要考虑生存的问题,从而有更多的精力思考关键技术,形成“强者愈强”的良性循环.当然,冰冻三尺非一日之寒,成为一名合格的架构师是一个漫长的积累过程.对于大部分的软件开发人员来 ...

  3. 为什么你有10年经验,但成不了专家?(重复性刻意训练+反馈修正,练习的精髓是要持续地做自己做不好的,太精彩了)真正的高手都有很强的自学能力,老师和教练的最重要作用是提供即时的反馈(莫非我从小到大学习不好的原因在这里?没有单独刻意训练?) good

    也许简单看书就是没有刻意训练.更没有反馈,所以没有效果 我倒是想起自己,研究VCL源码的时候,都是自己给自己提问,然后苦思冥想.自己解决问题,然后Windows编程水平果然上了一个台阶.对什么叫做“框 ...

  4. 一位10年Java工作经验的架构师聊Java和工作经验

    从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源软件推动者之一, ...

  5. 转:一位10年Java工作经验的架构师聊Java和工作经验

    黄勇( 博客),从事近十年的 JavaEE 应用开发工作,现任阿里巴巴公司系统架构师.对分布式服务架构与大数据技术有深入研究,具有丰富的 B/S 架构开发经验与项目实战经验,擅长敏捷开发模式.国内开源 ...

  6. [转载]有经验的Java开发者和架构师容易犯的10个错误

    首先允许我们问一个严肃的问题?为什么Java初学者能够方便的从网上找到相对应的开发建议呢?每当我去网上搜索想要的建议的时候,我总是能发现一大堆是关于基本入门的教程.书籍以及资源.同样也发现网上到处充斥 ...

  7. 10本Java架构师必读书籍

    1.大型网站系统与JAVA中间件实践 本书围绕大型网站和支撑大型网站架构的Java中间件的实践展开介绍. 从分布式系统的知识切入,让读者对分布式系统有基本的了解:然后介绍大型网站随着数据量.访问量增长 ...

  8. Java架构师必看的10本书

    1.大型网站系统与JAVA中间件实践 本书围绕大型网站和支撑大型网站架构的Java中间件的实践展开介绍. 从分布式系统的知识切入,让读者对分布式系统有基本的了解:然后介绍大型网站随着数据量.访问量增长 ...

  9. 华为云Stack首席架构师:打造“称手”的数字化工具,答好政企IT数字化转型这道必选题

    摘要:数字化转型是一号位工程,数字化的工具本身就是企业的核心竞争力. 本文分享自华为云社区<华为云Stack首席架构师:打造"称手"的数字化工具,答好政企IT数字化转型这道必 ...

  10. 架构师如何借鉴他人经验快速成长? | 2018GIAC上海站日程上线!

    随着网络技术的迅猛发展,越来越多的企业需要紧跟技术发展潮流以应对层出不穷的业务场景变化.如今多“语言”开发百花齐放,选择何种语言才能在合适的场景中发挥最大价值?互联网业务架构经过了长年的发展,已然朝着 ...

随机推荐

  1. Kubernetes 中使用consul-template渲染配置

    Kubernetes 中使用consul-template渲染配置 当前公司使用consul来实现服务发现,如Prometheue配置中的target和alertmanager注册都采用了consul ...

  2. golang在win10安装、环境配置 和 goland开发工具golang配置 及Terminal的git配置

    前言 本人在使用goland软件开发go时,对于goland软件配置网上资料少,为了方便自己遗忘.也为了希望和我一样的小白能够更好的使用,所以就写下这篇博客,废话不多说开搞. 一.查看自己电脑系统版本 ...

  3. C++11 列表初始化都做了什么?

    类的成员变量的初始化细节 首先,来看两个问题: 类的构造函数中,成员变量的列表初始化是如何实现的? 为什么列表初始化效率上优于在构造函数中为成员变量赋值? (后文中,将 "在构造函数中为成员 ...

  4. Shader学习笔记 (一) :利用shader在一个面绘制出圆

    在各种游戏中,想必大家一定和我一样总是惊叹于游戏画面的各种炫酷的特效. 作为游戏开发中单独列出的一个职业TA(Technology Art),他们会利用GLSL或者HLSL等着色器语言绘制出一幅幅美丽 ...

  5. 在vue中如何使用echart

    1.在前面基础上搭建好vue环境,初始化webpack后,在终端使用npm i echarts -s 下载echart 2.下载完成后全局使用echart 在main.js文件中导入 import e ...

  6. FPGA常用IP核

    前言: 芯片行业中的IP,一般称为IP(Intellectual Property)核,是具有知识产权核的集成电路芯核的总称.说白了就是厂家实现的具有特定功能工具,然后我们可以直接调用,就相当于是函数 ...

  7. Codeforces Round #707 (Div. 2)A~C题解

    写在前边 链接:Codeforces Round #707 (Div. 2) 心态真的越来越不好了,看A没看懂,赛后模拟了一遍就过了,B很简单,但是漏了个判断重复的条件. A. Alexey and ...

  8. 【scipy 基础】--最优化

    SciPy库的optimize模块主要用于执行各种优化任务.优化是寻找特定函数的最小值或最大值的过程,通常用于机器学习.数据分析.工程和其他领域. scipy.optimize提供了多种优化算法,包括 ...

  9. pygame播放视频并实现音视频同步

    一.前言 在我接触pygame时最新的pygame已经不支持movie模块,这就导致在pygame播放视频变成一个问题,网上搜了下解决方案有两个: 一是使用opencv播放视频,再结合pygame.m ...

  10. weblogic端口号和内存怎么修改?

    在WebLogic中修改端口号和内存分配是一项重要的任务,它涉及到服务器性能和应用程序的可靠性.下面我将详细介绍如何修改WebLogic的端口号和内存设置. 修改端口号 WebLogic使用多个端口来 ...