豆瓣网首席架构师洪强宁——寻找技术味儿相投的人

标签: CTO视点 架构师 豆瓣 | 发表时间:2011-07-28 13:43 | 作者:baiyuzhong Yousri
出处:http://www.programmer.com.cn

洪强宁及其技术团队在网站架构、性能、可伸缩性上有着深入研究。他们始终致力于用技术改善人们的文化和生活品质,用自己的技术口味去传播分享更好的技术。

加入豆瓣

2005年初,阿北在啄木鸟社区发出豆瓣网上线的通知,那时洪强宁加入啄木鸟社区,并学习使用Python已经有三年时间了。

洪强宁坦言,如何把以往的技术积累下来转变成产品, 是目前摆在自己面前最核心的问题
洪强宁坦言,如何把以往的技术积累下来转变成产品, 是目前摆在自己面前最核心的问题

与同龄人相比,因为受学计算机的哥哥的影响,洪强宁上小学时就开始接触计算机,并且很早就有写程序的爱好,并确定了做软件研发工作的方向。在清华的开放实验室里(全国最早允许学生访问互联网的地方),洪强宁接触到了大量国外的网站和技术。那是“我技术能力成长最快的时间”,洪强宁说。大四时候,洪强宁开始了解Linux,学习和使用了后来在豆瓣广泛使用的Gentoo,由此对开源软件产生了浓厚的兴趣,并参与到一些开源项目中去。

清华毕业后,洪强宁一直做嵌入式系统。出于对软件开发的喜爱,他在2002年开始接触Python语言,但只是业余时间才用Python做一些东西。进入第二家公司后,洪强宁在负责新的项目技术选型时,完全采用了Python语言,并应用在嵌入式XP系统上。就这样他逐步完成了硬件工程师到软件工程师的转变,也让洪强宁对一种语言在计算机底层如何工作有了深入的理解,从此无论是工作还是业余项目都使用Python。

2004年8月啄木鸟社区开始运营,这是由黄冬发起的Python语言社区,同在社区里活跃的洪强宁,最终被寻找技术伙伴的阿北发现,经过几次沟通,洪强宁成为豆瓣第一位全职员工。

洪强宁评论这次经验时说,选择一种技术,其实也在被技术选择,进入到和自己有相同技术味儿的圈子。他评价之所以会和阿北共事,也是因为两人在技术口味上有相似的地方,比如同样热爱开源,喜欢Python和Gentoo等等。

除了Python以外,工作中还需要应用的其他技术,如数据库、缓存、分布式系统等等,这些都是洪强宁之前很少接触的,全部在工作中一边做一边学起来。

因为参与社区而加入豆瓣的洪强宁,也与社区一同成长,虽然作为话题参与者的机会减少了,但作为社区建设者的比重却在增加。进入豆瓣的员工很多也都是从Python社区而来,豆瓣也支持员工参与社区讨论,并组织了多次啄木鸟社区的线下活动,而且接管了社区服务器,以至在中国提到Python,几乎到了不能不提豆瓣的地步。可以说,豆瓣成为国内互联网使用Python语言的一面旗帜。

到豆瓣做改变

洪强宁来到豆瓣前,阿北已经形成了目前豆瓣整套的服务架构,并考虑了未来规模扩大后的影响。

那么洪强宁来到豆瓣之后将如何做呢?

除了负责系统平台、提供技术设施和保证系统运维外,洪强宁及其领导的团队,将阿北原有的架构体系中的所有部分都改造成分布式的,包括架构、数据库、缓存和应用服务器,并开发工具软件去简化管理和维护的问题。原有的技术选型,也不总是能满足不断增长的性能要求,MySQL对服务的支持存在问题,于是他们自己开发了Beans DB。最早使用的是单机服务器,还没有消息队列的概念,这也是后来才加入的。

就这样,豆瓣的改变一步步得以实现,并和技术创新一起持续着。

2007年11月13日,豆瓣用户达到一百万。洪强宁表示,那时压力的确很大,做技术的只有两三个人,大家总是跟在事件之后跑,还没有时间去考虑技术储备,常常是发生什么问题,就赶紧去查找原因,然后设计解决方案,熬夜成了家常便饭。随着公司的技术人员慢慢增多,特别是将分布式的架构实现后,这种紧张的状况才有了好转,洪强宁开始考虑一些未来的情况,比如用户量到达一定量级时数据库的改进。做Beans DB的想法就是那时提出来的。2008年开始设计、讨论,并在2009年部署到豆瓣的部分产品中了。

当被问到为何不在旧技术上做优化,而要提出新的解决方案时,洪强宁说,技术选型必须能满足需求,否则就是白谈。当若干技术方案都能满足需求时,豆瓣会采用集体决策的方式,大家一起讨论出结论,最后授予某个人去实现。并且在复杂和简单的技术之间,豆瓣倾向于选择后者,哪怕它不完美。Beans DB的作者Davis就是一个典型,他喜欢用极端简单的东西来解决技术问题。

早期架构的分布式转变完成后,洪强宁又遇到了未曾预想的变化。最为典型的是业务模式发生了很大转变,原来是主站,发展到后来包括社区、图书、电影、音乐四个相对分开的站点,导致开发方式也发生了很大的变化,团队面临很多网站需要开发维护的情况。洪强宁坦言,如何把以往的技术积累下来,转变成可适用于多个网站的技术产品,是目前摆在自己面前最核心的问题。
出于对豆瓣整体结构透彻的了解,洪强宁逐步走向技术管理者的岗位。他强调要发挥员工的主观能动性,而不是从上面压任务,让每个员工自己去发现什么是重要的,什么是应该做的,自己则更多担负起协调者的责任,给他们提供资源。正如他所欣赏的Linus Torvolds所言。“努力寻找可以信任的人,然后让他们放手去干……一旦我让某人负责维护某个项目,此人一定会拥有处理好日常事务的能力。”

员工的情况各有不同,如何保证人人都能自觉发挥工作中的能力呢?洪强宁解释说,他们把大量的精力放在招人上面,尽量使招进来的人是靠谱、愿意主动做事的。花大力气在招人上,带来的好处是可以省掉很多管理的琐事,只要让员工了解发展方向是怎样的、目标是怎样的。至于目标怎么完成,他自己会想办法找到最好的路径。

豆瓣气质

采访中,洪强宁提到一个词,“豆瓣气质”。

豆瓣招人的时候,无论笔试、面试,更多在考察这个人,第一技术基础是不是扎实;第二对于问题思考是否敏捷;第三除了职业修养,还包括对生活本身是否有热情,是否有奉献和共享的精神。所有这些都归结成一点,是否具有“豆瓣气质”。

如何描述这样一种气质呢?

洪强宁说,在豆瓣工作的人,不是说为谋生找了一份工作,写段代码拿工资回家吃饭,而要有追求和理想。而他自己无疑是具有豆瓣气质的典型,这正是如此,洪强宁身边聚合一群热爱技术和生活的人,他们始终致力于用技术改善人们的文化和生活品质,用自己的技术口味去传播分享更好的技术,推动中国互联网的发展。

本文选自《程序员》杂志2011年07期,更多精彩内容敬请关注07期杂志

《程序员》杂志订阅火热预定中

相关 [豆瓣网 首席 架构师] 推荐:

豆瓣网首席架构师洪强宁——寻找技术味儿相投的人

- Yousri - 《程序员》杂志官网
洪强宁及其技术团队在网站架构、性能、可伸缩性上有着深入研究. 他们始终致力于用技术改善人们的文化和生活品质,用自己的技术口味去传播分享更好的技术. 2005年初,阿北在啄木鸟社区发出豆瓣网上线的通知,那时洪强宁加入啄木鸟社区,并学习使用Python已经有三年时间了. 洪强宁坦言,如何把以往的技术积累下来转变成产品, 是目前摆在自己面前最核心的问题.

程序员 : 豆瓣网首席架构师洪强宁——寻找技术味儿相投的人 #转载收藏#

- Everbird - 张沈鹏 zuroc.42qu.com
洪强宁及其技术团队在网站架构、性能、可伸缩性上有着深入研究. 他们始终致力于用技术改善人们的文化和生活品质,用自己的技术口味去传播分享更好的技术. 2005年初,阿北在啄木鸟社区发出豆瓣网上线的通知,那时洪强宁加入啄木鸟社区,并学习使用Python已经有三年时间了. 洪强宁坦言,如何把以往的技术积累下来转变成产品, 是目前摆在自己面前最核心的问题.

拿数据说话—一位首席产品架构师的体悟

- - 互联网旁观者
孙云丰2004年进入百度,从之前普通的包装材料推销员变身成为百度的产品经理. 通过之后8年的努力,他最终跃升为百度首席产品架构师,并成为代表最核心团队的“fellow”级人物. 这归功于他每天花十几个小时与搜索引擎的产品和用户习惯打交道,让自己成为不折不扣的“网虫”. 现在百度用户体验部已经有190多名员工,而其他研究、开发、运营的人员同样也是提升用户体验的一分子.

Ruby之父松本行弘担任Heroku首席架构师,推进Ruby云计算应用

- Sonic - ITeye资讯频道
7月13日,美国著名的SAAS厂商Salesforce旗下的PAAS平台Heroku宣布,Ruby之父松本行弘加盟Heroku,担任该公司首席架构师,推动Ruby语言在云计算平台的应用. Heroku的官方博客发布了Matz joins Heroku的文章. Heroku是一个基于Amazon AWS之上构建的PAAS平台,用户申请了Heroku账号之后,就拥有一个完整的基于Ruby的Web应用栈,包括了Rails,MongoDB,Passenger等等,用户自己不需要做任何服务器配置,只需要下载安装一个heroku的gem包,通过两条简单的命令就可以发布一个基于Ruby的web应用.

今日头条推荐算法原理首公开,头条首席算法架构师带来详细解读

- - 雷锋网
雷锋网 AI 研习社按,本文作者今日头条,雷锋网 AI 研习社获其授权转载. 今天,算法分发已经是信息平台、搜索引擎、浏览器、社交软件等几乎所有软件的标配,但同时,算法也开始面临质疑、挑战和误解. 今日头条的推荐算法,从2012年9月第一版开发运行至今,已经经过四次大的调整和修改. 今日头条委托资深算法架构师曹欢欢博士,公开今日头条的算法原理,以期推动整个行业问诊算法、建言算法;通过让算法透明,来消除各界对算法的误解,并逐步推动整个行业让算法更好的造福社会.

京东首席架构师:618 大促网关承载十亿调用量背后的架构实践

- - IT瘾-dev
618大促,我们的网关承载了几十亿的流量和调用,在这种情况下,网关系统必须保证整个系统的稳定性和高可用,保证高性能和可靠,以支撑业务. 我们面临的是一个非常复杂的问题,基于这种复杂问题,怎样做到很好地提高它的性能和稳定性、复杂技术之间怎么整合保证整体网关的高可用,是本文的重点. 第一种叫客户端网关主要用来接收一些客户端的请求,也就是APP的服务端;.

【主数据架构】4种常见的主数据管理实现风格 | 首席架构师智库

- -
主数据管理(MDM)系统的基础是什么,这取决于您所认同的实现风格,这为项目成功提供了最佳机会. 这在很大程度上取决于您在数据管理方面的业务情况. 有几种不同的实现样式可供选择,主要的区别在于是否从中心集线器控制数据,还是将集线器与现有数据源同步. 但是,为什么必须仔细考虑执行的风格呢?. 对大多数组织来说,在整个组织中维护一个单一版本的真相是一个高度优先级的任务——同时还要满足遵从性和监管义务.

系统架构师JD

- - CSDN博客架构设计推荐文章
国内大型的物流企业,专业从事国内公路运输和航空运输代理. Foss项目的架构设计,包括需求分析,模块设计,系统结构设计,关键功能的开发,技术难题的解决,对团队质量输出的把控等等. 1、熟悉WebLogic/Websphere/JBoss等一个以上大型应用服务器,熟悉Linux及应用服务器集群. 2、 具有丰富J2EE架构设计经验,具有大型基于J2EE体系结构的项目规划、系统架构设计、开发经验.

微服务与架构师

- - 乱象,印迹
因为工作的关系,最近面试了很多软件架构师,遗憾的是真正能录用的很少. 很多候选人有多年的工作经验,常见的框架也玩得很溜. 然而最擅长的是“用既定的技术方案去解决特定的问题”,如果遇到的问题没有严格对应的现成框架,就比较吃力. 这样的技能水平或许适合某些行业,但很遗憾不符合我们的要求. 软件架构师到底应该做什么,又为什么这么难做好,这都是近来的热门问题,我也一直在和朋友们讨论.

架构师图谱(上)

- - DockOne.io
“架构师图谱”是一个很宏大的命题,特别是优秀的架构师自身也是“由点到面再到图”,一点点成长积累起来,尝试写这篇文章的目的更多的是结合自身的一些架构、研发、管理经验对现阶段做一个复盘总结,所以这里更偏向于后端图谱,依赖于开源技术、云原生或者其他第三方服务. 这里会重点介绍一些技术栈、设计理念以及适应场景,这些可以作为我们选型时的依据.