沈剑:58到家的架构与性能调优

个人简介 沈剑,58到家技术总监,技术委员会负责人。曾任百度高级工程师,58高级架构师,C2C技术部负责人,58技术委员会 主席,58技术学院优秀讲师。参与过多个百度hi重大项目的研发,后加盟58同城,负责过58同城即时通讯,支付系统重构,摊销系统重构,数据库 中间件,58同城推荐系统,58同城商户平台App,58同城二手交易平台APP等多个系统与项目的设计与实现。曾多次代表58作为嘉宾参与系统 架构师大会,数据库大会,velocity等技术会议,分享58的架构技术。

全球架构师峰会(International Architect Summit,下简称ArchSummit)是由InfoQ中文站主办的一次全球性架构师峰会。ArchSummit专门针对架构师人群,讲述与架构和架构师相关的各方面趋势、技术和案例。这也是继QCon之后,InfoQ中文站主办的又一次高端技术盛会。

   

1. 沈老师好。

沈剑:你好。

   

2. 首先请向InfoQ的读者做一下自我介绍,介绍一下您现在负责的事情和个人的经历背景。

沈剑:大家好,我是来自58到家的技术总监沈剑,我之前在百度工作过两年,负责即时通讯后台的一些系统。我在2011年加入58同城,任技术委员会主席,高级架构师,负责过58同城的即时通讯系统,推荐系统,还做过支付优化、数据库中间件、APP的一些项目,我在今年9月份加入了58到家,现在是负责后端像平台、架构、基础服务、DBA等等的一些部门,同时任技术委员会主席,还负责58到家技术学院的一些相关的事情。

   

3. 58到家技术架构的工作和之前有哪些不一样的地方呢?

沈剑:技术架构和业务是结合的非常紧密的,之前58同城主要是信息平台,用户在上面发布信息,有一些信息发布者和信息索求者的即时沟通或者一些推荐相关的系统,58到家是一个订单的闭环系统,要求更高,因为在订单闭环中任何一个环节出现问题的话,整个订单都进行不下去。比如下单、订单处理、订单派发、订单结算任何一个点出了问题,订单都完成不了。像同城的话,如果你的信息发布不了,可能不会影响信息的搜索和浏览,所以58到家的技术架构对系统稳定性和性能要求更高一些。

   

4. 这个挑战是比较实时的需求?

沈剑:是的,58到家的订单,不管是下单,订单的策略和司机分派都是实时处理的,所以对实时性,吞吐量,包括时延的要求都是非常高的。

   

5. 因为您一直比较关注架构和性能这些方面,您做架构设计或者性能调优的时候,一般都会如何下手,这方面的经验可以分享一下吗?

沈剑:我先说一下架构方面,因为架构像互联网架构它的特点是流量可能非常大,数据量非常大,并发量非常大,在做架构设计的时候需要考虑系统的可用性,不管是在接入层、逻辑层、数据层都要考虑可用,解决可用性的方法就是冗余,比如冗余站点,冗余服务,冗余数据来解决可用性问题。第二点要考虑扩展性,当性能出现问题的时候,一定要能够实现增加机器就可以增加系统的性能,要考虑扩展性,第三块还有负载均衡的一些点,增加了机器要如何保证数据和流量上还继续是均衡的。架构上可能要考虑这几个点。

第二块是性能调优,我加入58同城也负责过一些系统优化的项目,比如支付的一些优化,当时系统出了问题临时把我派过去做系统优化,我从业务入手,和了解原来这个业务和系统的工程师一起讨论,观察现象,当前系统出现的问题是什么,瓶颈是在网络层,在磁盘,在内存还是CPU,通过观察先找到瓶颈,针对这个瓶颈做优化,从业务入手找到瓶颈,针对性的优化。

   

6. 您在58同城是不是有很多旧系统改造方面的经验?

沈剑:有一些救火的旧系统改造的经验。包括像我刚刚提到的支付系统,还有摊销系统,还有推荐系统等等做过一些系统优化和系统改造。

   

7. 这个其实都是从分析入手吗?

沈剑:是的,从分析入手找到痛点找到主要矛盾然后进行针对性的优化和改造。

   

8. 像比较新的系统你在设计的时候一般会怎么入手?

沈剑:比较新的系统,以今天我分享的话题58速运有一个消息推送的系统,当时那个系统是我设计和底下同学一起讨论做的,也是先和业务线同学沟通交流,了解在这方面有什么痛点,要解决什么业务问题和有哪些业务特点,为了满足这些业务特点,解决技术和业务的痛点,系统要做针对性的设计,比如系统推送对实时性和到达率的要求比较高,我们会针对实时性做一些tcp的针对性的架构设计,对可达性也做一些针对性的设计,还是要先和业务线的业务需求方和技术方讨论,找到他的痛点是什么,针对性的来进行新的系统的架构设计。

   

9. 谈到架构,其实很多工程师和架构师,有的人可能更偏重于纯技术层面的研究或者是设计,很多时候在我们具体的企业中,懂业务、结合业务做事情可能会更重要一些,这方面的差别您怎么看,比如说怎么让架构师更喜欢钻研业务,这方面有什么做法吗?

沈剑:的确是有两类这样的人,一类人他做系统、做架构的方式是自己先研究出来一个,他去了解业界先进的技术,做出来一个平台或者是一个框架或者一个架构然后推广到业务线,这种方式的缺点就是做架构的人跟业务的人非常远,他自己去想象业务线有一些什么样的需求,然后设计一个架构到业务线推广,业务线的同学可能根本没有这样的需求,所以这样的架构或者组件在推广过程中会遇到很大的困难和阻力。我做架构的方式是一定要贴近业务线,我们的架构是解决业务线出现的问题的,这样设计出来的架构和系统才有价值。我曾经说过一句话,不知道大家认不认可,就是一切脱离业务的架构设计都是耍流氓,所以希望未来如果大家有兴趣做架构师的话一定要和业务线贴近在一起,设计架构解决业务问题。

   

10. 这样是不是对架构师的要求就更高一层?

沈剑:对,他需要了解一些通用的架构设计方法和方案,但是他对业务也是要非常了解。

   

11. 您现在除了架构设计还有很多管理方面的工作,你是怎么平衡协调的?

沈剑:我现在也承担一部分管理工作,甚至公司对我的要求可能未来更多的会有一些技术管理的要求,现在除了负责团队管理,我仍然会留出很多时间和一线同学一起讨论技术体系和一些架构,因为我知道其实这些才是我的核心竞争力,利用自己的技术优势、专业优势同时做好技术管理,两方面都要一起提高。

   

12. 可以分享一下您是怎么推动其他设计或者架构同学成长的呢?

沈剑:也是和一线同学多进行沟通和讨论吧,在做设计的过程中让大家发表自己的意见,根据他们的经验设计一些初步的方案,我会将自己的经验和他们沟通交流。在沟通交流的过程中,技术氛围其实就逐步的培养起来了,同时我学到了你的点,你学到了我的点,甚至有时候可能我的方案并不是最好的方案,我在这个过程中也学习了很多别人的经验,大家共同进步,共同成长。

   

13. 您会组织很多技术交流和讨论活动吗?

沈剑:有两块吧,一块是我所负责的团队我会定期的,甚至我对底下leader的考核都要包含组内技术分享和组内技术交流这一块。第二块我现在负责58到家技术委员会,我们的一部分工作职责就是组织58技术学院的技术交流,每周四晚上7点,58到家会有定期的技术分享和技术交流活动,同时我也经常到业界参加一些大会,分享58同城和58到家的一些技术,也经常和业内同仁一起沟通交流。

InfoQ:感谢您的精彩分享,谢谢!

你可能感兴趣的:(沈剑:58到家的架构与性能调优)