前言
做技术的,一定不能放弃技术。在精进技术的同时完善其他方面的能力,十年如一日。不忘初心,方得始终。
正文
本文是看到阿里巴巴系统架构师黄勇的采访记录有感而发,如有侵权,请联系我。下面就一起来看看阿里架构师的十年架构路。
和大家介绍下我目前所从事的工作:我目前从事分布式服务架构的设计与开发工作,在阿里的大数据平台上进行应用程序开发。
我们整个系统架构采用了“前后端分离”的思想,前端关注数据展现,后端关注数据生产,通过 REST服务将前后端整合起来,所有的应用都是无状态的,可以做到水平扩展。
我们将整个系统拆分成许多“微服务”,服务之间通过统一的接口来调用,每个服务是通过容器技术进行隔离,此外服务可发布到统一的服务管理平台上,可通过该平台监控每个服务的运行状态与生命周期事件,并为服务调用者提供了服务发现的能力,可对服务进行平滑升级。
阿里有许多优秀的中间件与基础服务,可以快速帮助我们搭建应用系统,而且这些技术在阿里内部全是开源的,大家可以通过源码和文档学习到很多有价值的经验。阿里也提供了浓厚的技术氛围,每位同学都非常专注于自己的工作领域,大家对工作一丝不苟,相互配合,方向一致。
我是如何走上技术这条路的?
【2006 年大学毕业】,我离开了母校武汉理工大学。
在院长薛胜军老师的推荐下,我来到了上海,这个对于我来说非常陌生的地方。我有幸加入了一家名为“动量软件”的创业公司,这家公司的老板曾经是亚信科技的 CTO,他也是普元软件的创始人兼 CTO,他的名字叫黄柳青,他也是薛老师的大学同学。于是就这样,我的老板成为了我的老师,我习惯叫他黄老师,包括公司其他资深的同事也成为了我的老师,因为我很想他们身上学到更多有价值的东西。
刚开始工作的时候我学习了什么是云计算?什么是 SaaS、PaaS、IaaS?我们花了三年时间开发了一款名为 ODE 的 PaaS 平台,让用户可以在该平台上量身定制自己的软件,最终为客户提供基于 SaaS 的产品。确实很骄傲,那时我们已经在做云了,只是没想到后来云会在中国得到这么好的市场,可能当时只有黄老师一个人想到了吧。
【在 2008 年,我为公司拿回了“第一桶金”】,这也是我从程序员转向项目经理的里程碑。
当时我带领团队远赴深圳,为国信证券公司开发经纪人管理系统,这个项目对于我个人而言却是一笔至高无上的财富,我开始学习如何与人打交道,如何做需求分析,如何将需求转变为技术,如何带领团队小伙伴一起工作。
学到了太多太多,但我依然选择在我工作第四个年头里离开了动量软件,我刚加入动量软件的时候,公司只有 5 个人(包括老板和前台),当我离开动量软件的时候,公司已经有 200 人左右了。感谢黄老师!我在他身上学到了很多,他的思想和态度直到今天都还在影响着我。
【我的第二份工作还是选择了我最熟悉的证券金融行业】,同样也是一家创业型公司。
在这家公司里我担任了技术经理,管理了整个技术团队,从项目的售前到售后,我都亲自带领团队来完成。虽然在这家公司我只做了两年,但在这短短的时间里,我学会了如何提高开发效率、如何培养技术团队、如何选拔技术人才、如何建立企业文化。
但最后我发现了一个问题,越是想做好,越是很难做好,为了做成一件事情需要做很多的尝试,做事情缺乏正确并有效的方法。
回想我工作的前六年时间里,我一直都是在创业公司里成长,虽然可以快速学到东西,但似乎很难学到更加规范的做事方法。于是【我选择了新的工作机会,来到了 TCL 通讯】,这是一家相当大的公司,公司的研发管理流程来源于法国阿里卡特公司。
我在公司担任 Java 架构师职位,也算是整个 Java 团队的技术负责人,虽然团队并不是特别地大。我在这家公司做了三年,学到了如何整合现有资源、如何按标准流程去做事、如何设计系统架构、如何进行异地工作、如何跨团队工作、如何用英文来沟通。
说实话,当时我没有任何的工作压力,可以按时上下班,从来都不会加班。虽然自己空闲的时间很多,但我并没有选择去浪费时间,而是开始写点技术博客,也正是因为这些技术文章,才改变了我后续的职业发展道路。
我清楚的记得,那是在【2013 年 9 月 1 日】,我在开源中国(oschina.net)网站发表了我人生的第一篇博文《Smart Framework:轻量级 Java Web 框架》 ,这篇文章影响了我后续两年。其实说句心里话,当我第一次写这篇文章时,我心里是没底的,这个框架只是根据自己的理解做出来的一个设想,当时甚至连一行代码都没写过。我的想法是先将这个思想发表出来,让大家讨论起来,我会做一个决策,然后再亲自做具体实现,最后我会将实现过程通过博文的方式展现给大家,后续大家会对我的实现进行点评,我会基于大家的建议进行改善。整个开源过程正好与敏捷的思想是一致的,有效沟通、小步快跑、拥抱变化、不断改进。
也许就是我的技术文章吸引了很多广大读者,这里面不排除想邀请我加入的其它公司。我在【2014 年离开了 TCL 通讯,加入了易传媒】。为什么我要放弃如此舒适的工作环境,去加入一家还在不断拼搏的企业呢?其实我看到的是未来互联网的发展趋势,广告程序化交易以及广告与大数据的结合,未来最值钱的一定是数据。
抱着这样的信心,我加入了易传媒,担任系统架构师职位。当时易传媒正处于技术转型的初期,需要将 .Net 全部迁移到 Java,这件事情对于我而言是非常有挑战的。
我的做法是:
第一步定义开发规范与流程;
第二步培养核心技术人员;
第三步分阶段进行改造。
仅半年时间,我们所有的产品成功地迁移到了 Java 平台,结果出乎大家的想象。公司市场也非常不错,产品得到了业界的认可,订单数源源不断,大家每天都很忙碌,但却很开心。而易传媒的“易家人”企业文化,让我所感动,不管是核心技术部门还是其它支持性部门,大家就像一家人一样,你的事情就是我的事情。
直到【2015 年初,阿里巴巴与易传媒建立了合作关系】,两家公司进行了深度合作,易传媒公司与阿里妈妈事业部进行了整合,新阿里妈妈从此诞生了,于是我也成为了阿里巴巴的一员,目前负责阿里妈妈大数据品牌营销产品的系统架构工作。就在两家公司整合的过程中,我完成了人生中的处女作《架构探险 —— 从零开始写 Java Web 框架》这本书,目前该书正在各大网上书店售卖,我真心希望这本书能对一些想成为架构师的程序员们有所帮助。
我的思考
我可能永远不会想到,一个架构师的炼成经历了多少的曲折,多少个日日夜夜对技术的热枕和钻研才换来大家对于【架构师】三个字的羡慕与向往。
从作者的经历来看,06年从学校毕业,接触的是‘云计算’这种在当时很超前的领域,这也为作者打下了坚实的基础。
08年,作者需要带团队出差。担任技术经理的职位,负责整个技术团队。而这离作者毕业才仅仅2年的时间,让人不得不感叹这种进步速度。反观我们,是否能在程序员生涯重要的前两年打好坚实的基础,积累丰富的经验呢?我想大多数人并不能。
说到管理,一个快速发展的行业会推着你往前走,不会等你万事俱备了才让你带团队,泛互联网就是这样一个领域。也许你还没想过要做管理,而且你的上级也并不希望你做纯粹的人力管理,但是“带团队”这个事情,却已经变得不可避免。换句话说,你叫什么不重要,头衔也不重要,重要的是,你很快就得带着一个小团队做事了。
能在工作的头两年里得到提升管理能力的机会,一方面是幸运,另一方面更是能力。尤其是在技术这个领域,作为一个团队Leader,最应该拿出手的就是强悍的技术能力,在团队碰到技术难题的时带头攻克。对新手来说,技术的积累、沉淀绝对是重中之重。
技术经理的经历给作者带来的是技术上的愈加精进,同时还有管理方面的协调和统一。而这,也为作者第二份工作提供了经验支撑。因此,作者全程参与了一个项目的售前到售后工作,必定培养出了一个对项目的宏观认识。虽然也进行了很多必要的尝试,但是苦于没有正确有效的方法。
为什么作者要全程参与?一个优秀的程序员,他一定是技术和业务都很精通的人才。码农不是工程师,码农只会明确需求和逻辑的情况下写代码。工程师才懂得用技术怎么解决实际业务问题,用技术驱动业务的发展。
这个世界,缺的是技术过硬又精通业务的工程师,缺的是真正能解决实际业务问题的人,缺的是复合型的人才。
架构师为什么这么吃香我想大家也明白了吧?正是因为各个公司之间的业务千差万别,我们做出来的产品也是截然不同。相同的是:每个公司都想要一位甚至多位牛逼的架构师。
回到作者,在作者经历了6年的创业公司磨练后,认为自己需要一个更加规范的做事方法,因此来到了TCL,同时也真正地任职架构师职位。我认为这是一个比较重要的阶段,在技术已经达到一个相应的瓶颈,团队管理也已经步入正轨的情况下,那么接下来该如何提升自己呢?
可以看到,作者学到的(如何整合现有资源、如何按标准流程去做事、如何设计系统架构、如何进行异地工作、如何跨团队工作、如何用英文来沟通。)更多的是一种工作的方式方法,不仅解放了自己,也解放了团队,提升了公司的生产力。
这时,又来了一个重点,那就是技术博客。不少的程序员大牛都建议写技术博客,具体原因我这边就不再赘述。希望大家在看完这篇文章后能继续拾起落下的博客或者开始写博客的第一步。
经历了这么多年的摸爬滚打,作者已经有了自己对行业的理解,正如那句“未来最值钱的一定是数据”所说,现在的大数据行业谁敢小觑?最终作者原本供职的“易传媒”和“阿里巴巴”结为连理,作者也进入了“阿里巴巴”这家伟大的公司,也算是人生的另一个里程碑。
可以看到在作者十年架构之路上,技术总是不变的主题,随之提升的是管理、思维、眼界、方法论、远见等一系列各个维度像金字塔一样的层级。
对技术的追求是程序员永恒的主题,也是程序员赖以生存的发展之道。要想迈向架构师的方向,技术也是坚实的"地基",否则架构师也只是空中楼阁而已。关于架构师应该掌握的技术栈,我也有一套自己的理解:源码分析、分布式架构、微服务架构、并发编程、性能优化、团队协作等。具体的知识点我也整理成了一个Xmind脑图,同时还请资深架构师录制了一些视频,需要的同学可以加群:895244712
,这些资料我也分享到了群文件之中,欢迎大家加群交流。
故事到这里就结束了,至于未来会往哪里发展,我们谁都不清楚。但我坚信:是金子总会发光,比起背景,更重要的是坚持不懈的努力。正如文章开头所说 “做技术的,一定不能放弃技术。在精进技术的同时完善其他方面的能力,十年如一日。不忘初心,方得始终”。
那么,作为程序员的你,离架构师还差几步?
原文链接:https://www.csdn.net/article/2015-09-06/2825621
主人公:黄勇(阿里巴巴系统架构师)