编者按:淘宝技术部总监、淘宝技术委员会Java分会会长曾宪杰将携他的新书《大型网站系统与Java中间件实践》做客我们社区问答栏目,担任第四期的问答嘉宾,届时会接受广大网友的提问,欢迎各位网友前来与淘宝网中间件大牛曾宪杰一起碰撞思想的火花。以下为采访正文:
淘宝技术部总监曾宪杰,他是淘宝近10年来历次技术飞跃的参与者、贡献者和带领者。
曾宪杰,淘宝花名华黎,现任淘宝技术部总监,淘宝技术委员会JAVA分会会长。2002年毕业于浙江大学计算机系。先后在中科院下属企业、先锋电子(中国)等企业就职,是一个桌面管理系统的软件公司的联合创始人并负责总体技术工作。参与过邮政省级地市集中化生产作业系统的设计开发以及大型企业内部桌面管理安全系统的设计和开发。
2007年6月加入淘宝网平台架构团队,负责构建淘宝自主的消息中间件系统,同期主导了淘宝数据层的创建,这两个产品也是淘宝中间件中较为重要的两个。2010年下半年起开始负责整个淘宝中间件团队,帮助团队成为业内知名的Java技术团队。2012年开始从中间件走向应用系统的研发工作,2013年初负责新组建的淘宝技术部。熟悉C++和Java,在多线程、并发、网络通信及支撑大型网站的中间件领域有较多经验,对新技术有浓厚的兴趣。致力于带领团队在无线、数据、业务 平台和组件化开发方面取得突破。
他也是《OSGi原理与最佳实践》一书的作者之一和《大型网站系统与Java中间件实践》的作者。
ImapBox:请和大家介绍下你及目前所从事的工作。
曾宪杰:目前主要职责是负责淘宝技术部,在技术和管理上都会投入精力。主要的工作会看技术的发展以及新的技术如何应用在淘宝,这里包括了工程和算法相关的,此外无线也是我们重点关注的部分。然后会和团队一起完成技术部的规划以及帮助团队落地,此外是一些管理上的工作。之前负责的中间件团队,在13年4月份的时候,交给了其他Leader负责。
ImapBox:能否具体介绍下淘宝网应用架构的变化历程以及架构中的自主研发部分?
曾宪杰:我是07年6月加入淘宝,当时淘宝已经是一个日成交超过1亿元的网站。网站从03年开始基本是一个LAMP架构,后面把应用从PHP迁移到了Java,数据库从Mysql迁移到了Oracle,在07年的时候,基本是一个集中式的应用,除了使用Oracle外,也有自研的搜索、缓存、分布式文件系统等基础设施。
而07年开始,主要的改造工作是围绕着应用和DB的扩展性做的,在应用方面,我们引入了服务框架,解决了应用服务化的问题;引入了消息中间件,完成了应用的解耦;引入了分布式数据层并且完成了数据变更通知以及数据迁移的系统,数据库也从Oracle换成了Mysql,完成了底层的数据库的伸缩性改造,通过这样的改造,使得我们的集中式的网站变成了一个大型的分布式系统,并且在一定程度内,在应用和数据库层面都是可以做到水平扩展的,这为业务的飞速发展以及应对高峰流量奠定了重要的基础。
上述过程中我提到的服务框架、消息中间件、分布式数据层以及支撑这三个重要系统的软负载中心、集中配置管理中心都是自研的。
ImapBox:一个大型的高并发高性能网站架构需要从哪些层面去考虑?技术堆栈的选择又应该注意什么?
曾宪杰:对于大型的高并发高性能网站的架构,我觉得主要考虑的方面包括水平扩展性、稳定性、架构相关基础设施的易用性、容错性、异地数据中心支持等方面。
而技术方面的选择,如果不考虑现有技术人员的情况,那么建议选择的是有成功案例并且社区比较活跃的技术。
ImapBox:其中存在的挑战是什么,架构和实现时需要避免哪些坑?
曾宪杰: 细节是魔鬼,一些架构从比较抽象的角度去看,可能比较简单,但是很大的挑战就是细节,这些细节有具体产品实现的细节,也有和业务相关的需求细节。
从我们的经验,从一个功能的构思到最终完全做好,会遇到很多的问题,另外一个方面是一致性,一致性尤其是强一致性的保障是非常具有挑战的事情,再有一个是完全的自动化,这个部分也很困难,一不留神就容易产生雪崩或者不一致等严重的问题,具体需要避免哪些坑,这个在不同的产品上会不一样。
总体来说,在实现中花掉绝大部分时间是用于思考和解决哪些很异常的情况下的实现。
ImapBox:关于高负载网站打造有什么建议?
曾宪杰:现在对于很多架构师和工程师来说,水平扩展是大家都特别注意的问题,我的建议是大家也要去重视垂直的扩展,去提升单点的能力在分布式系统中其实是很重要的;另外,我个人认为,去引入前面提到的那些组件并不算很困难,但是在这之外,我们如何能很好的评估系统的真实能力、了解当前线上峰值的压力、管理好我们应用之间的依赖,以及做好系统降级的工作是很重要的,此外,就是如何做到异地多数据中心。
ImapBox:你在分布式数据库中间件这方面有很深的造诣,能否分享一下你们的数据库中间件?与同类数据库中间件相比,它具有哪些特性?解决了哪些技术难点?
曾宪杰:这个只是有一定的了解和经验,不能说造诣很深。就我自己的看法,很多数据库中间件主要解决的是数据库请求的SQL解析和路由的工作,这个在淘宝来说,当然也完成了相关实现。而不太一样的是淘宝的数据访问层,解决了非对称的数据库的数据复制,这个具体指的是源数据和目标数据库系统不是同样数据库并且数据并不是镜像复制的需求,此外,我们的数据层不仅仅解决数据访问问题,也完成了数据库的平滑扩容和缩容处理。在使用方式上,集成在应用中的组件和独立部署的代理两种方式并存,而在数据源的实现上,也提供了三层的可选方式。
非常具体的内容,我是把自己的经验都写到了《大型网站系统与Java中间件实践》一书的章节中了。
ImapBox:是否可以分享一下淘宝网在开源方面的使用情况和贡献?
曾宪杰:淘宝网对待开源是积极和开放的,我们自己用到了很多的开源软件,小到一些组件,大到像Hadoop等一些系统。在使用开源的同时,我们会把自己对开源系统的修改以及完成Bugfix反馈给社区,来帮助开源软件的完善和发展,此外我们也把一些自研的系统进行了开源,给到那些需要使用的技术人员,并且也从使用者那里得到了很多的帮助,不论是提出的问题还是提交的一些代码,都给我们自身的软件发展带来了帮助。
ImapBox:机构在选择和使用开源技术时,你有什么建议?
曾宪杰:我个人觉得需要考虑这几个方面:
- 这个软件目前的功能和它的RoadMap
- 软件本身的架构
- 该软件开发的活跃度
- 该开源软件是否是遵守该领域内的国际规范的
- 在同类产品中,要挑选有比较优势的。并且要考虑可能存在的移植代价。这个移植指的是采用了这款开源软件后现有系统的移植,或者是从这个开源软件到其他软件的移植。
ImapBox:你现在最关注哪方面的技术?你自己是如何学习并掌握新技术的?
曾宪杰:现在关注的技术不是特别的聚焦,工程和算法的都比较有兴趣。近期相对更加关注的是无线相关的技术以及在目前多端情况下的后端架构改进的相关的内容。
对于新技术的学习,对我来说首先还是去了解这个新技术本身希望解决的问题跟某些现有技术的相关度,新的技术很多,对我来说重点去看的是对我们现在有帮助的,所以我首先要了解新技术到底能干什么,跟我们很相关就会投入比较多经历,否则就是先了解下这个技术能干什么,自己有个印象。另外,去寻找这个新技术和自己现有知识体系的关联是比较重要的,这会让你能更快的学习并且更深的理解,此外,动手做些实践很重要,不过我个人跟之前比,这个部分做的少了很多。
ImapBox:如今,你在技术管理者和程序员/技术人员两个身份之间是如何协调的?
曾宪杰:对我来说,首先是调整好自己的心态,让自己能够从内心把角色转变过来。因为现在负责的团队比较大,大概三百多个人,所以我首先会考虑自己作为一个管理者应该做什么事情。就我自己感觉,带这么大的团队的压力远远大于自己做技术,因为作为一个技术人员,自己没有做好,一些事情没看清楚,受到影响的主要是自己,而带领团队,自己会影响到整个团队,这个责任很大。
而这两个角色,我自己的感受是,作为原来一线技术人员需要去抠的细节和一些动手实践,我放到了自己的业余时间,因为我确实是对技术本身非常有兴趣的一个人,业余也没什么爱好,除了陪家人孩子也就是加班了。而工作中,其实还是有比较多的时间是花在技术上的,去了解学习新的技术,去参与团队中比较重要的技术方案,而花在管理上的时间,在技术团队并不需要特别的多。
友情提醒:曾宪杰老师从今天开始,坐镇ImapBox社区问答第四期,为大家解答关于中间件的学习、认识、开发等方面的问题。期间,曾宪杰还会就其最新力作《大型网站系统与Java中间件实践》一书为您答疑解惑,带您了解大型网站系统与Java中间件的实践。
参与活动请点击【社区问答第四期:曾宪杰——大型网站系统与Java中间件实践】。
本网页所有文字内容由 imapbox邮箱云存储,邮箱网盘, iurlBox网页地址收藏管理器 下载并得到。
ImapBox 邮箱网盘 工具地址: https://www.imapbox.com/download/ImapBox.5.5.1_Build20141205_CHS_Bit32.exe
PC6下载站地址:PC6下载站分流下载
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox 网页视频 工具地址: https://www.imapbox.com/download/ImovieBox4.7.0_Build20141115_CHS.exe
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算