个人简介 陈斌,1989 年毕业于吉林大学,曾在国内工厂和政府外交部门工作,一直专注于互联网技术领域的探索和创新; 1992 年任新加坡航空公司高级系统分析师,负责航空订票系统的高并发系统架构的设计; 1999 年投身于硅谷互联网技术发展的浪潮,参与硅谷互联网公司的创业,曾任日立美国系统集成总监,Abacus 首席架构师,Nokia 美国首席工程师; 2008-2013 年在 eBay/PayPal 任资深架构师,负责移动应用系统的架构设计。丰富的海外经历,多年的架构经验,深谙移动互联网对传统行业的影响; 2014年再次投身易宝集团,领导集团技术团队,建设易宝集团的技术体系,提出了大、平、移、商的战略方针,他是最前沿技术的实践者和布道者,全力推动移动互联网技术引领行业变革。
QCon是由InfoQ主办的全球顶级技术盛会,每年在伦敦、北京、东京、纽约、圣保罗、上海、旧金山召开。自2007年3月份首次举办以来,已经有超万名高级技术人员参加过QCon大会。QCon内容源于实践并面向社区,演讲嘉宾依据热点话题,面向5年以上的技术团队负责人、架构师、工程总监、高级开发人员分享技术创新和最佳实践。
1. 各位InfoQ的网友大家好,现在我们是在QCon2016北京现场,作客专访间的是易宝支付的陈斌。您在业界是前辈,打造易宝集团技术体系时您提了“大、平、移、商”四字方针,能否简单解释一下这个指导思想是什么含义?
陈斌:易宝的“大、平、移、商”是2014年我从硅谷回来重掌易宝技术之后提起来的,大是指大数据,“平”是指平台化,“移”是指移动,“商”是指我们易宝为企业提供服务。其实易宝长期是为企业提供服务的,不仅仅是对C,更重要的是聚焦在B端的服务上,所以“商”特别提出来。
2. 您微信签名上写架构即未来,有什么寓意吗?
陈斌:《架构即未来》是一本新的书,明天会在QCon大会上首发,当场做签售。这是一本做架构或者做互联网技术的孙子兵法,这个书的故事其实挺长。我在2013、2014年回来的时候,感觉国内做互联网技术有很多架构师都在摸索经验,很多是自己一点点摸索,一点点积累。我在美国待了二十几年,觉得有些成熟的架构经验已经成为一种经典的做法,是完全可以拿到中国的,让同行或其他架构师来分享,所以我就片段性的翻译了一本书的一部分。这本书是两个CTO写的,一个CTO是我以前工作的PayPal CTO,另外一个是eBay CTO写的,这两位一个是迈克,一个是马丁,是我以前在eBay工作的上级,我在eBay长期负责架构。这本书讲的东西刚好是我要传达给国内架构师的想法,所以与其片段性的一段段翻译过来讲给易宝这些技术和架构听,不如我把它全本翻译过来,给中国做互联网技术这些人共享,所以就跟出版社一拍即合,我在想的时候,出版社拿一本书给我,我一看,就是这两位CTO写的书,就把它翻译过来了。这两个CTO都是西点军校出来当兵的,做过空军飞行员,后来才出来改做技术,他们也是几十年经验,从管理的角度、技术角度和互联网技术、互联网架构怎么去做,整理和分析的非常像中国的孙子兵法。格调和形式都像孙子兵法,包括每章开头先讲一段孙子兵法,然后再讲这章的内容,感觉像架构师的孙子兵法。
3. 易宝支付的架构这几年有没有什么比较大的变迁?
陈斌:易宝支付是从03年开始的硅谷创业公司,05年做了我们第二代系统,我是05年回来了一年,后来又回去硅谷。第二代系统我们用了很长时间,后来又做了第三代系统,随着业务增加和扩展,不断的演进、不断的变化,等到我回来是第三代完善过程中,我回来后把它又调整了下,从这个时候开始不再考虑第二代系统、第三代系统,我们把它打散,只对单个服务有不同的版本第一代、第二代、第三代,不会出现整个平台第二代、第三代。所以现在的情况是架构在云和服务上面,靠服务的智力提供更加可靠、扩展性强的服务。
4. 之前有一种观点,尤其国内架构师都这样讲,说一个好的架构不是设计出来的,而是慢慢演进过来的,您怎么看这种观点?
陈斌:其实事实是这样。不管是硅谷的企业,你看亚马逊、eBay、PayPal和我们现在工作的yeepay,架构都是在演进过程中逐渐发生的,但是不是技术变换造成架构演进,更多是业务的需要促进你对技术的解决方案出现变化。在一段时间内肯定是某一种架构方式或某种技术更适合需求、更适合业务发展,长期在新的形式下,新的方式能支持新的业务。比如我们今天做移动互联网 ,以前我在eBay或者PayPal的时候,我们移动互联网也是从没有开始做起的,当时旧的架构当然不能支持移动互联网,有特别多不一样的地方,比如移动信号的传输、移动用手指输入而不是用键盘输入、CPU缓存等这些,很多资源限制决定你的后台架构是不同于pc时代b/s架构的新的架构形式。所以总结一下是两方面,一个方面是业务发展促进你架构变化,另外一个是技术不断演变也使你的架构产生一些变化的需要。
5. 您肯定在国外也知道,日本的移动支付相对于亚洲其他国家是比较发达的,尤其他们近场支付NFC,而且运营商支持也特别好。现在回到国内,以这个时间段来看,我们在国内已经有了这么好的设计的架构理念,您刚才提到那本书要在国内进行出版、进行签售,我们InfoQ也在做这种架构师的会,如果我现在在创业是否存在这样一种可能:我设计一个好的架构支撑未来某一个量级的业务,这种会不会成为现实?
陈斌:这是理想,是最好的情况,一次投入,脑袋想得完全清楚,然后永远不会变。 这就跟你做房子是一样的,就是现在有没有一种可能图纸设计得最好、所有因素考虑最好,设计一个房子使用一万年,答案是明显的。
6. 易宝网站上说解决高可用性问题的关键是合理地细分系统的服务,并对其运行环境进行有效的隔离。这种理念在微服务、容器云方面得到了很好的验证,在您看来,低耦合的架构有什么弊端?
陈斌:这个情况当年我在国外其他公司工作的时候也遇到过,比如这个公司从九几年就开始做业务,到我做架构师的时候已经是2008、2009,大概十几年过去了,就会看到有很多各种服务,包括刚才你提到的这种微服务的,也包括容器云的这种不同的服务存在,可能是上千种不同的服务,每种服务有自己不同的负载均衡的策略,有不同的认证、授权策略,有不同的安全机制,有不同的服务降级的策略,甚至有不同的熔断机制,全都是不一样的。对于一个网站或者对于一个大型的服务平台来讲,如果这种低耦合的服务遍地都是,一个最大的挑战是你如何治理这么多服务,每个服务对应了很多很多机器,现在对应容器云,每个服务会依赖于其他的服务,其他的服务可能又通过其他几个链接回来依赖我自己的服务,甚至走一个回路,所以这种交叉的关系是非常复杂的。我曾经在工作当中对这件事情特别做过详细的研究,就是我怎么能找到一个服务的入口,进去之后它的一级、二级、三级、四级、五级的依赖关系能看清楚,出了问题能快速定位,这个是相当具有挑战性的。所以耦合度高低不是一个绝对的标准,不能说完全低耦合的就是最好的、高耦合的就是不好的,这一定有个度,在你能掌握的范围内。你的公司或者你平台技术人员的掌控能力、技术水平,要跟你细分的这个程度相关联和相匹配。完全细分到一定程度可能变成一片散沙,拿不起来了。
7. 对,尤其现在电商产品线比较长,所以有很多微服务理念的架构班出来。
陈斌:这也是回到我刚才说的那本书The Art of Scalability,架构是一门艺术,不是一门技术。现在哪个大学开架构师课或者架构师研究生学历?也有,但是怎么培养?就像刚才讲的耦合度,没有绝对标准,只有一个度,掌握这个度更多是靠积累经验和智慧这两方面双重推动。
8. 易宝支付的客户包括像国航、华为、苹果各类企业,易宝一方面对接的是银行,一方面对接的是不同的企业,面对不同的数据。你们如何标准化不同的数据流?尤其是这种非结构化的,传统企业不一样的这种数据流你们怎么标准化它?
陈斌:对易宝支付来讲,我们面对的不同客户是做不同行业的业务,比如航空公司是做机票的、旅游的、酒店的业务,教育行业做的是考试报名、学生信息管理,保险行业做的是跟保险相关的信息处理。这种信息流我们有横向的和纵向的。纵向的从每个行业看,保险的信息流很特别,教育的信息流很特别,航空的很特别,但更多的是横向的看,比如订单类信息,一个订单不管是支付一个机票还是电商平台买一个电视机,订单信息是一致的,从这个层面可以抽象出来。所以我们既有横向的产品级的管理,又有纵向行业线的管理,是基于我们对这些行业线有比较深刻的长年积累的认识,所以是横和纵的交织,形成矩阵形的管理模式。
9. 这对你们的挑战主要在哪个方面?你们为了解决这个问题要做哪些事情?
陈斌:2013年我回来以后已经建立了大数据平台,我们数据平台基于Hadoop、Hbase、spark、各种sql数据库,这些交易数据、这些订单、这些跟银行往来的数据,都已经放到我们大数据平台上。应该说没有特别大的挑战,往往是在数据的清洗或者过滤过程中会遇到一些比如产品的标签标准化,比如这个产品今天叫这个名,明天可能因为某些原因改成另一个名,在过滤或统计数据时会有一些麻烦,应该没有特别大的挑战。
10. 机票这种票务类做得比较成熟,因为他们八九十年代就开始做系统化的东西,所以标签数据比较统一、比较好管理,其他的新产品比如互联网业务的酒店、旅游这种可能会比较难管理。
陈斌:越新型的业务它的产品定型会有一个过程,可能初期第一版产品有一些字段或者数据是一种定义,过了半年快速演进后就变成另外一种版本,管理过程中会有往回匹配的关系,有一定的挑战性,但是对易宝还好。
11. 因为你们纯做支付,不像其他还做很多事情。
陈斌:对,没错。
12. 最后想问您对技术社区的看法,现在随着移动互联网发展诞生了好多社群,像高可用架构这种,您觉得对架构、高可用设计领域的交流它会有哪些影响?以前是像线下这样开个大会,现在大家在微信上可能就完成交流了,您觉得这种影响是怎么样的?
陈斌:其实在美国这种社群也很普及、很活跃,包括我们经常在不同的社群帮助大家一起分析架构,解决一些比较棘手的问题。
13. 会很open吗
陈斌:很open。包括微博、微信这种社区,也包括公开、非公开的互相邀请到不同公司参访和作客。这种交流我觉得是两方面,一个是架构师在实战当中遇到问题,技术很多是比较封闭,要足够开发,可能有了问题想了很久没有解决办法,但是你提出来,别人几句就可能解决了。这就像下棋一样,你冥思苦想不如别人几句话给你点醒,这是鼓励大家去参加这种社区活动。另一方面,我也很高兴看到像QCon这种比较正式的把架构师、高级研发人员聚集在一起,通过年度的或者定期的研讨,把业界的经验或者知识互相交换、互相传播,这个对大家的影响或者对大家的启发会很大。包括我公司很多人过来。
14. 因为很多互联网公司他们有自己的技术学院或者研究院之类的,也会组织一些业界内的交流,易宝有没有做过这方面的事情?
陈斌:易宝也在去年成立了易宝大学,我是技术学院专业学院的院长,我们在易宝有个固定的技术交流的平台和办法,比如说每周的周五下午,我们会专门把研发人员的时间倒出来,周二下午的两点到其他的时间会到一个比较轻松的地方,大家随便交流,想说哪些都可以,包括数据库方面的东西,有一些是讲H5、讲移动研发、讲平台,有的讲Docker,所有这些技术都可以拿来讲,你也可以写一段比较牛的代码给大家,如果你觉得真的牛就拿出来讲。这个目的不仅仅是让大家在互相交流过程中学习到东西,更多是让研发人员能够思路开阔,不要总盯着自己研发的那一段,你可以看看别人在做什么,至少团队知道这个兄弟在做Docker,我感兴趣也可以参与一下。另外,每年我们在公司内会举办两次创新的活动,我们叫“创新二十四小时”活动,在春天和秋天各举办一次,我们会给二十四小时,一般在周六,周五晚上大家不会走,把你这半年有创意的想法拿出来,你可以自己组一个团队,三个人、五个人都没关系,把你的想法在二十四小时内做出方案,如果能实施就更好了,最后给所有的评委看,展示给大家看,你做这个东西有哪些经济效益,有哪些技术先进性,解决了什么问题,最后评委再给打一下分。作用还是挺明显的,至少让大家在繁忙的工作中有一天停下来想一想:我这个想法是不是真的靠谱?真的靠谱也可以创业,因为我们内部有创业机制,可以搞一票人跟自己一起干点什么更有利于发展的事情,也是挺受欢迎的一个活动。
15. 国内的技术人员尤其是架构师,更多的时间是被业务或者被工作拴住了,您怎样建议架构师如何更好走出去跟人家交流?像您刚才提到在公司内部办这样的活动,这还是在自己家里,怎么样更多地“走出去”跟业界的人多交流?
陈斌:易宝的架构师分成运维架构、信息安全架构、应用架构、数据架构、数据库架构、性能测试架构等很多种,我们每年会派这些架构师去硅谷定期交流。比如研发的架构每年会去JavaOne大会跟最顶级的人员交换意见,让他们增长见识。有很多大会,包括QCon,可以上网去看,更多是一种机会,认识其他公司做架构的人,建立私人的关系,互相交流。从我回来到易宝,这几年每年最少是4-6个架构师会出去,有的时候我有时间会领他们去硅谷,看谷歌、雅虎、PayPal、Oracle人家都是怎么做的,他们取得经验之后回来会有非常不一样的做法。以前我说我们是不是要考虑把什么东西调到哪一个版本或者做哪方面的改变,想半天想不清楚,这个时候你就很难办,因为这是思维的一个差距。你可以让他学,你可以让他想,但业务是不等人的。我发现送他们出去之后,有的人就过来找我:“为什么我们还在这个层面上?”、“为什么我们不往那个方向走?”这就是我要的。这个我们当然要花一些成本,成本很高,但是派大家出去,效果非常明显。包括国内也有很多架构会,今天的还有明后天在CSDN的等等,我们都会让大家积极参加。