阅读更多

11顶
0踩

企业架构
引用
2016年11月18-20日SDCC 2016中国软件开发者大会,易宝支付CTO陈斌给我们带来了“架构师的成长之路”的演讲。主要谈及了架构师的必备素质和成长途径及给准架构师的建议。

它山之石可以攻玉,尽管每个架构师都有自己的成长路径,但是了解其他架构师的成长之路,对未来想成为架构师的人有一定的借鉴价值。首先以我自己的成长过程为例,描述一下我的架构师之路。

图1 我的架构师之路

1989年研究生毕业后进入政府机构工作了三年,随后加入新加坡国际航空公司,从事IBM主机系统的汇编语言研发。顺应互联网技术的发展,航空公司开始把订票业务从传统的主机终端转向现代化的彩色PC客户端。为此需要在IBM主机系统和UNIX/Oracle数据库之间来回传输数据,所以我就开始研究Unix/Oracle,取得了Sun、HP和Oracle的认证,并由此进入了互联网技术领域。2000年以前,很多系统都是采用两位数字来标识年份,比如02代表1902,一个客户的出生年份是1902,系统会把他的年龄当成是两岁,这就是所谓的世纪之虫。很多医院、铁路、银行、政府机构都面临着这个问题,采用新的基于Unix/Oracle和互联网技术的新系统成为一个有效的解决方案。美国在这个方面有大量的需求,因此我就去了美国,专门做主机系统和Unix/Oracle以及互联网上的信息交互,这让我有机会接触大量不同的架构和系统,从而积累了丰富的经验,为后期的架构师之路奠定了坚实的基础。

日本工程师的特点是专、深、细,但是缺乏把所有的要素整合到一起解决一个问题的系统集成能力,所以我就成为负责系统集成的总体架构师,大量的系统集成业务为我提供了丰富的锻炼机会,把业务需求转换成技术解决方案,并进一步设计成各种系统,这些工作为我积累了丰富的架构经验。2004年,加入Abacus任首席架构师,开始协调其他的架构师一起做航空订票方面的互联网技术架构工作。2008年开始在eBay和PayPal任移动应用的高级架构师,从互联网时代进入移动互联时代。

纵观自己的架构师成长之路,我认为必须要踏踏实实地做好当下的事情,保持好奇心,不断地学习新技术、积累新经验和掌握新技能。紧跟时代的发展和技术的进步,不断地扩大自己的业务和技术领域,那么成长成为架构师就是水到渠成的事情。

建筑设计与软件架构

图2 古玛雅金字塔建筑设计之美

要了解架构师的成长之路,就要先清楚什么是架构。架构一词不是软件行业的专有名词,而是从古老的建筑行业借来的。在墨西哥有个很出名的古代玛雅金字塔,叫ChiChen Itza。塔的四个面分别代表春夏秋冬四个季节,每个面上有91级台阶,代表每个季节91天,4X91=364,再加上塔顶共365,代表一年有三百六十五天。在每年的冬至和夏至,塔身因为阳光照射会出现神奇的蛇影,准确地预测季节变化。古玛雅人的架构设计形神兼具,甚为奇妙,充分体现了架构之美。我们今天的软件系统架构设计与之相比,相形见绌。

图3 建筑师如何做架构设计

在日常工作中,架构师在设计系统的时候会画一张图,HP的服务器,思科的路由器,Palo Alto的防火墙,Tomcat的应用容器,mySQL的数据库等,把各种产品拼凑在一起叫架构设计。这是很棒的产品宣传。如果这是一部电影,可以售卖植入式广告。每个解决方案的供应商都肯定会对这个架构设计表示由衷的感激。 对建筑物,最好的建筑师从来不用供应商的名称来描述桁架、梁和支撑,而是用这些部件的大小、负载能力和组成等。这是因为建筑师会基于价格、信誉和质量选择不同供应商的解决方案。建筑师心里很清楚,用供应商的名字描述的是实施,而通过规范和要求来描述,这才是架构设计。

实施代表着你已经作出了选择性的决策,这些决策包括成本的考虑、自建与外购、投资回报率、团队的技能等等。用C++、Java或PHP作为编程语言并不代表你的架构;相反,这些只是为实施架构的组成部分而选择的工具和材料。选择微软数据库,还是Sybase、MySQL或者Oracle数据库,这并不是架构,而是实施架构中的数据库组件。选择使用开源系统还是由供应商提供的解决方案是另一个实施决策的例子,这与使用微软的操作系统还是Linux的某个版本同样是实施决策。

假设现在某个业务需要一个解决方案,架构师负责把业务解决方案转换成技术解决方案,如果把所有产品罗列起来或许可以解决问题,但是也肯定不会有什么创新的机会。相反,如果从事情的本源或本质出发,往往有机会创造新工具或新方法,这就是非技术设计的概念。例如,当我们要解决近实时的动态交易量统计的时候,可以利用传统的数据库来做累加。也可以写一套类似Storm的工具,既轻松优雅地解决了问题,同时也带来了创新。做为一个合格的架构师,就要有能力从事情的本源出发去独立思考问题并做出各种分析和设计,最后拿出一个非常合适的解决方案。

架构师的必备素质

图4 架构师的八个素质

做为一个合格的架构师必须具备八个重要的素质,包括业务理解、技术广度、技术深度、丰富经验、美学素养、动手能力和沟通能力。架构师的业务素质就是指要懂业务,对业务有足够的敏感度,能够清楚地知道自己的设计能给公司带来多大的业务影响。对技术素质最基本的要求是深度和广度。美学素质是要求架构师有美感和艺术感,所以易宝经常安排技术人员听音乐会,看艺术表演,因为艺术和设计是相通的。动手能力是指在适当的时候架构师能够上手实际操作,需要写代码的时候动手写代码,尤其是底层的关键代码。沟通能力也极为关键,因为架构师水平再高,如果沟通能力很差,花半天时间说不清楚自己的方案,那么再好的方案又有什么用途?在易宝每个周五的下午请架构师进行内部分享,讲讲最近都设计了什么有价值的系统,把自己做的解决方案用一句或几句话清楚地表达出来。因为能简洁地表达清楚意味着架构师已经深刻地思考和提炼了自己的设计思想。

在美国工作时,曾经有一位CTO跟我说:我不希望架构师有太多的协作,希望架构师都是孤单的鹰。你什么时候看见过鹰是一群一群飞的?真正的雄鹰都是飞得很高很孤独的,架构师也是这样。这里并不是说架构师不需要交流,而是在正常的情况下,架构师应该有足够的智慧和独立思考能力去做出最优的技术与业务判断。架构师的位置越高这种孤独性就越大。假如你是CTO,整个公司的技术问题都要你自己去规划,并对结果负责,根本没有人可以商量。要求有鹰飞的高度还有一个原因,就是只有飞到一定的高度才能够看到全面和整体。另外,除了飞得高,还要求架构师要有鹰一样敏锐的眼睛,能够观察到设计中不为人知而又很重要的细节。架构师还要具备有艺术的品位,设计出的系统足够优雅,那么,应该怎么理解这个品位呢?每个系统研发人员,如果做研发的唯一目的是实现一些代码,做出某些满足业务需求的功能,那么就没有什么艺术品位。所谓的品位是指有个人独特的风格。做出的解决方案,具有不同于常人的地方,是经过架构师充分的独立思考提出来的。我们非常看重有独立思考和个人风格的艺术品味。
[

图5 架构师的三商

架构师要怎么做才能具备鹰飞的高度、鹰眼的敏锐和艺术的品味呢?首先架构师要有较高的智商,其次,架构师要有一定的的情商,做为一个高级的技术人员,拥有开放的心态、谦虚的态度、幽默的气质会帮助他传播自己的设计理念,形成自己的设计风格,赢得广泛的影响力。再次,还有另外一个不常为人知的悟商亦至关重要。这是百悟科技的负责人张总从老子《道德经》里领悟出来的,我有幸为该书作序。所谓的悟商是指足够快速感应并适应周边环境变化的学习能力。做为一个架构师,要能跟随技术发展的脚步,该做主机系统的时候学习主机系统,该做分步式计算的时候能适应分布式处理,该做移动应用时能设计移动服务。技术在不断地演进,业务在不断地变化,在这个世界上唯有变化是永恒的,特别是互联网技术领域,架构师的悟商有多高,学习和适应能力有多强,基本上决定了这个人能在架构师之路上能够走多远。

架构师成长途径
关于架构师的成长之路,还存在着一个误区,就是把架构师默认为软件架构师。因为今天我们所遇到的架构师,大多数都是围绕着软件研发。事实上这个认识有一定的片面性。诚然,现今我们所构建的系统都是软件系统,但是在实际的工作过程中,随着信息技术在深度和广度上的快速发展,除了软件研发以外,测试、网络、安全、配置、系统和数据都已经形成了具有自己独特专业知识和经验的领域,也都需要各个领域的架构师。比如信息安全是一个非常专业的领域,要软件架构师无法完全理解和驾驭信息安全是勉为其难。网络架构师日常研究的各种网络问题,软件架构师也难以置喙,因为这是完全不同的两个领域。数据方面亦如此,能够把整个公司业务数据之间的关联性了然于胸的人,一个公司或许能有一两个,这种人就是数据架构师。现实的情况是,软件架构师占据主导地位,基本上掩盖了其他领域架构师的光芒。当然出现今天这种情况的主要原因也是因为大部分的技术领导者也都是来源于研发领域。这种状态要尽快改变,否则在运维、安全、数据、测试等其他领域工程师很难有自己的成长空间。

图6 架构师的种类与成长历程

架构师的成长基本上可以分为初级、中级、高级、架构四个阶段。初级阶段是指大学毕业后的两年时间。这两年主要就是学习,目前大学的教材和讲义往往比现在企业正在使用或者发展的技术有一个时间差。学校教授的东西可能是几年前的技术,不是当下正需要的,所以毕业进入企业后要通过不断的学习赶上新技术发展的步伐。中级阶段是指两年到四年这段时间,主要是积累知识和技能,比如,怎么思考业务问题、怎么解决问题的技能,在这一阶段的人会在自己的工作小组内暂露头角,小有影响力。高级阶段是指四到七年这段时间,在这一阶段主要是积累经验,就是说以前类似的业务问题是怎样转换成技术解决方案的,这次应该怎么解决,方案的优点是什么,缺点在哪儿,未来怎么改进等等,这个阶段的人会逐步在自己的部门内有一定的影响力,开始带团队。架构阶段是指至少具备七年以上的经验,在美国,其实架构师不少都是鬓染白发的技术领导者,我在eBay工作的时候属于比较年轻的架构师。到了架构师这一阶段,企业期望架构师具有能够把各种经验和知识综合发挥的智慧,这里强调的是智慧,而不仅仅是经验,而且要求他们具有跨部门的影响力,也就是架构师的设计方案能够影响到公司副总裁一级的决策。

给准架构师的建议
总而言之,对普通技术人员成长为架构师,我有五个建议:第一要有高度,培养自己的思维高度,从而对技术和业务有整体的视野。第二要有深度,培养自己独立思考问题,看清问题本质的能力。第三要有广度,拓宽自己的技术和业务范围,从而确保自己不成为井底之蛙。第四要有新度,培养自己的好奇心,对任何相关的东西都感兴趣,并想去了解,不断地学习新技术掌握新技能。第五要有沟通力,培养讲清楚方案的能力,特别是用一句话把事情讲清楚的能力。今天,互联网技术飞速发展,已经成为社会和生产的重要推动力,架构师的作用由此变得愈来愈重要,成为很多技术人员的职业目标。从普通技术人员成长为架构师是一条艰苦漫长而且布满荆棘的路,如何对准目标、设计路径、培养素质、积累经验是每个想成为架构师的技术人员都必须要认真思考的问题。

引用
作者:陈斌,一直专注于互联网技术领域的探索和创新,拥有丰富的海外经历、多年的架构经验,深谙移动互联网对传统行业的影响。作为业界最前沿技术的实践者和布道者,致力于推动移动互联网技术引领行业变革,译著《架构即未来》已于2016年5月上市。
责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「CSDN 高级架构师群」,内有诸多知名互联网公司的大牛架构师,欢迎架构师加微信qianshuguangArch申请入群,备注姓名+公司+职位。
  • 大小: 19.6 KB
  • 大小: 451 KB
  • 大小: 357.4 KB
  • 大小: 312.5 KB
  • 大小: 122.7 KB
  • 大小: 169.5 KB
11
0
评论 共 6 条 请登录后发表评论
6 楼 yuntui 2017-02-27 05:05
引用
5 楼 st4024589553 2017-02-14 15:54
perfect
4 楼 吴二白 2017-02-13 09:32
写的不错~
3 楼 流浪天下 2017-01-10 22:11
厉害     
2 楼 迪科好男人 2017-01-06 17:01
说的太好了,资深人士!
1 楼 forcer521 2017-01-06 16:23
     说的很好,学些了!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 什么是博客,它与网站有何不同? (说明)

    Often readers ask us about what is a blog, and how is it different from a website? If you are thinking about starting a blog or a website, then understanding these terms will help you meet your goals....

  • 什么是博客?

    Blog是“一种表达个人思想和网络链接、内容按照时间顺序排列、并且不断更新的出版方式”。网上有专门的网站为网民提供上传文章的空间,只要能上网,就能通过极简单的操作很方便地建立、更新、编辑自己的网上日记本。这种被称为Blog的网上日记的应用人群被称为Blogger,根据其发音在中文中译为“博客”。具体说来, 博客(BLOGGER)这个概念解释为使用特定的软件,在网络上出版、发表和张贴个人文章的人。

  • What is this blog for?

    This is Blog is maintained to recording some technical details that i have encountered.The content of this blog will mainly falls into the categories belows:embedded systemLinuxVDHL

  • What is zero-shot learning?

    Zero-shot learning is being able to solve a task despite not having received any training examples of that task. For a concrete example, imagine recognizing a category of object in photos without ever

  • What is EDI?

    What is EDI?EDI stands for Electronic Data Interchange, a method of transporting all types of information, such as purchase orders, invoices, payments and even graphics, to another party electronicall

  • 程序员成长为架构师必备的十项技能

    一、卓越的程序员 ... 不过,在搞了四、五年编程之后,程序员们往往早已失去了当年对这些“高级”职位的神秘感,甚至会对自己所在项目的架构师抱怨不已,背后里称他们是一群水王。所以有江南白衣曾撰文述说:“...

  • 软件工程师成长为架构师必备的十项技能

    软件工程师成长为架构师必备的十项技能 来源:51CTO 一、卓越的程序员 1. 每个好架构师都是一位出色的程序员 架构师,听起来是如此神秘的一个称号。尤其是在开发领域刚入门不久的菜鸟级程序员眼中,...

  • 现代企业架构师的5大特征及六种方法

    本文将为你介绍每个人都应该知道的现代企业架构师的 5 个特征。除此之外,还可以学习如何构建所需特征以保持相关性,并以此来发展自己的业务。 现代企业架构师的5个特征 1. IT 战略驱动者 战略 IT 驱动力可以帮助...

  • 后端架构师技术图谱

    《后端架构师技术图谱》(转) 数据结构 队列 集合 链表、数组 字典、关联数组 栈 树 二叉树 完全二叉树 平衡二叉树 二叉查找树(BST) 红黑树 B-,B+,B*树 LSM 树 BitSet ...

  • http组成部分_博客的组成部分| 第1部分

    http组成部分 什么是博客? (What Is A Blog?) A blog (a contraction of the term “Web log”), is a site whose structure allows for the quick update from additions of so-called articles or “posts”. These are usually...

  • What is CRA?

    What is CRA? 什么是CRA? 众所周知,sensor的效能与sensor本身的灵敏度与光线入射到sensor的角度有关。而光线入射到sensor pixel的角度是由Lens的CRA和sensor的Micro Lens开口布局(sensor的CRA)决定的。 CRA是Chief Ray Angle的缩写,意思是主光角。从镜头的传感器一侧,可以聚焦到像素上的光线的最

  • What is an object?(CVPR2010) 论文及代码解读

    代码以及运行方法见上之前的这篇博客

  • What is an Object?(转载)

    Objects defined        So what is an object? An object is a component of a program that knows how to perform certain actions and to interact with other pieces of the program. Functions have previous

  • 06_QLibrary.zip

    06_QLibrary.zip

  • 毕业设计: 基于Densenet + CTC技术的文字检测识别的技术研究

    本毕设课题是属于计算机视觉下的目标检测与识别,对象为自然场景下的各种文本信息,通俗的说就是检测识别图片中的文本信息。由于文本的特殊性,本毕设将整个提取信息的过程可以分为检测、识别两个部分。 论文对用到的相关技术概念有一定的介绍分析,如机器学习,深度学习,以及各种的网络模型及其工作原理过程。 检测部分采用水平检测文本线方式进行文本检测,主要参考了乔宇老师团队的 CTPN 方法,并在正文部分从模型的制作到神经网络的设计实现对系统进行了较为详细的分析介绍。 识别部分则采用的是 Densenet + CTC,对于印刷体的文字有较好的识别。

  • 毕业设计 基于javaweb的在线答题平台

    毕业设计 基于javaweb的在线答题平台

  • numpy安装 python get-pip.py

    numpy安装 numpy安装 python get-pip.py

  • 基于用户、物品的协同过滤算法.zip

    协同过滤算法(Collaborative Filtering)是一种经典的推荐算法,其基本原理是“协同大家的反馈、评价和意见,一起对海量的信息进行过滤,从中筛选出用户可能感兴趣的信息”。它主要依赖于用户和物品之间的行为关系进行推荐。 协同过滤算法主要分为两类: 基于物品的协同过滤算法:给用户推荐与他之前喜欢的物品相似的物品。 基于用户的协同过滤算法:给用户推荐与他兴趣相似的用户喜欢的物品。 协同过滤算法的优点包括: 无需事先对商品或用户进行分类或标注,适用于各种类型的数据。 算法简单易懂,容易实现和部署。 推荐结果准确性较高,能够为用户提供个性化的推荐服务。 然而,协同过滤算法也存在一些缺点: 对数据量和数据质量要求较高,需要大量的历史数据和较高的数据质量。 容易受到“冷启动”问题的影响,即对新用户或新商品的推荐效果较差。 存在“同质化”问题,即推荐结果容易出现重复或相似的情况。 协同过滤算法在多个场景中有广泛的应用,如电商推荐系统、社交网络推荐和视频推荐系统等。在这些场景中,协同过滤算法可以根据用户的历史行为数据,推荐与用户兴趣相似的商品、用户或内容,从而提高用户的购买转化率、活跃度和社交体验。 未来,协同过滤算法的发展方向可能是结合其他推荐算法形成混合推荐系统,以充分发挥各算法的优势。

  • strcmp函数应用.zip

    strcmp函数应用.zip

Global site tag (gtag.js) - Google Analytics