成为一名优秀的架构师是很多开发者的梦想,但对很多人来说却欠缺一条可供参考的实现路径。「云+社区沙龙online」邀请到腾讯云云服务器副总经理李力、贝壳金服小微企业生态CTO&腾讯云最具价值专家(TVP)史海峰、奈学教育科技创始人&CEO&腾讯云最具价值专家(TVP)孙玄三位大咖,针对架构技术,架构师所需掌握的软硬实力等话题展开的探讨,为想要转型做架构的同学们带来更多启发。本文是此次直播分享的整理回顾。

点击视频,查看完整直播回放

01

优秀架构师的成长故事

**李力:**我成为架构师从某种程度上是一件机缘巧合的事情,腾讯没有架构师这样一个实际存在只去做架构规划的岗位,我们技术人员都统称为工程师。腾讯云在2012-13年刚开始研究做云服务器产品的时候,我深入研究了OpenStack这个当时业界最知名的架构,思考我们的云服务器应该怎样去设计才能很好支撑起海量业务。最终在选用开源的OpenStack方案还是自研之间,我们选择了后者。于是我自己设计出了腾讯自研的大规模任务调度系统VStation,从这个项目后我开始觉得自己从工程师变成架构师了,因为我需要去规划一些技术方案和未来的产品走向。再后来,我成为了腾讯云服务器和区块链业务的负责人。

**孙玄:**我在浙大毕业以后就去了百度,选择百度的原因很简单,校招时的技术总监说三年内可以实现年薪百万的突破,我就签了offer。在百度第一年结束的时候离百万年薪还差很远,第二年依旧差很远,于是我忍不住跑去问当时的技术总监,结果他竟然说自己其实只是个例。为了实现百万年薪的梦想,我觉得代码基础上做得不错还不够,还要在深度和广度上有提升,2011年我加入了一个神奇的网站——58同城。加入58以后主要负责IM平台,这是我职业生涯的一个转折点。因为工作要求我必须从需求分析到架构设计、选型,都要很好地hold住。慢慢地在这个过程里我开始主导一些事情,逐渐成长为一名架构师。

再后来,我个人成长上除了负责IM相关的技术,也开始涉足其他业务方向,比如房产、招聘等业务线。在这个过程中,我觉得收获最大的是掌握了架构设计的本质。于是我逐渐成长为58集团的最高级别架构师、技术委员会主席、转转首席架构师,主要负责中后台、大数据、运维、安全、交易等技术建设。再后来,我有了更高的发展诉求,于是出来创办了奈学教育。

**史海峰:**2001年,我从北京化工大学计算机专业毕业。到今天已经有19年从业历史,历经四家公司,目前供职于贝壳金服。之前在当当架构部,对架构领域一直很关注,也写了一些架构领域相关的文章。

我记忆中有一件小事对我后来的影响很深:2006年,我当时在亚信工作,9月份的时候,有一个系统要求十月一日上线,到月底了还有一个模块没做。当时的项目经理找过来问我能不能搞定,我也没多想,觉得可以就去做了,最后成功上线了。好几年后,当时的项目经理跟我说起,就是因为这件事让他觉得我是一个靠谱的人。当时这个模块是另外一个同事负责,紧要关头掉了链子,交给我时不仅二话不说就做了,还做得很好,于是建立了对我的信任。回过头来再看,我觉得这是对我职业生涯影响很大的一件事,虽然在当时并不起眼。

信任的积累很重要,因为我们最终都要靠一件件小事,或者一个个成果来证明自己,可能自己都不觉得这些事情到底有多重要,但是人民的眼睛是雪亮的。所以我一直强调我们要踏实靠谱,要建立信任感。用金融的思维来说,这就是信用,因为你做任何一个决策的时候都要考虑风险、成本、收益,但是你的信用是能够影响决策的关键因素,这一点很重要。

02

怎么成为一名架构师?从普通程序员到架构师,只差一个机会怎么办?

**李力:**我成为架构师算是机缘巧合,而我本人其实还算是一个半路出家的工程师,大学期间学的并不完全跟计算机相关专业。早期的时候没想过自己会成为程序员、架构师甚至去管业务,当时只觉得写代码太难,架构太复杂。有一天一位前辈跟我这样说:“做程序员,是一件非常好的工作,它是把真实世界的需求映射到计算机的虚拟世界中,让机器帮你实现”。我听了之后觉得很科幻,逼格很高,于是决定投身于这个行业。

在这期间,我学了很多技术,也走了很多弯路,一直以来我都对自己早期的技术水平没有信心。有一天,又一位前辈告诉我:“程序开发这条路,技术本身变化非常快,如果追求新潮技术永远追不过来,技术的本质都是一些最基本的东西”。我听了以后大受启发,于是把大一、大二的书拿出来重新看。在这期间我培养出了一个技能,能把一本书从第一页看到最后一页。可能有人会觉得这不算什么,但你工作了以后就会发现人容易变得很浮躁,能完整看完一本计算机相关的书籍并不是那么容易。

类似《编译原理》、《计算机的组成原理》、《算法导论》等等经典书籍,一共看了七八本。一年时间,把书上的习题都做了,代码都写了。我自己定了一个小目标,花5年时间成为一个程序员。

工作以后发现,把基础打牢了,遇到的各种形式的问题其实都在已有的框架内。不论是微服务、无服务计算、大数据还是云服务,核心本质都在我学过的基础范围内。后来我明白了,做技术最重要的是对基础原理的研究,比如有一本书叫《C++的设计与演进》,当你了解原理以后就会理解表象的东西,API、UI是怎么来的。

腾讯云要做云服务的时候,我在想该怎么解决OpenStack的选型问题,到底是选择开源还是自己做。这背后的核心是:我要想清楚解决一个什么问题。最终我们决定,依靠一部分高级别工程师的力量,支持上百万核的调度,而OpenStack大概只能支持1万核不到的调度能力。这个过程其实仍旧是在基础原理里找到一些方法,看似完全不一样的东西,在原理上其实是相通的。所以我后来觉得,我之所以能成为一名架构师,是偶然也是必然。我比较幸运的是在早期花了很多时间把计算机的基础知识恶补和推演一遍,于是能在云领域做好架构师的保障。所以我的建议大家:如果想成为架构师,就不要过分追求新潮的技术,专注于基础的原理

**孙玄:**我们从需求方来看,你最终做项目也好还是其他工作也好,本质上都是面对需求,把需求落地到线上的代码、服务。所以我认为,架构师首先要清楚从需求到代码之间的gap,需要做什么去解决这个问题。