【IT168 资讯】InfoQ:观众朋友大家好,我是来自InfoQ中文站的丁雪丰,现在正在QCon北京站的大会现场。在我身边这一位是来自阿里巴巴国际站的潘磊。潘磊能不能向观众朋友们介绍一下您自己,还有阿里巴巴国际站呢?
潘:大家好,我叫潘磊,来自于阿里巴巴国际站。我大约是04年加入阿里巴巴的,阿里巴巴国际站是一个B2B的电子商务网站,主要服务于全球用户,大概的情况就是这样。
InfoQ:我们知道阿里巴巴旗下的网站有淘宝、B2B国际站,还有支付宝等等。这些网站都有巨大的用户访问量,相信阿里巴巴能成长为现在这个规模,不是一日而成的,能否给大家介绍一下国际站的发展历程?
潘:阿里巴巴国际站可能是阿里系里面存在最久的一个站点,它建立于1999年,当时只有很少的几台服务器。发展至今已经整整十年了,这当中也经历好几次比较大的重构以及一些架构的变迁,才有了今天的访问量。当然在阿里系里面阿里巴巴国际站的访问量还是比较低的。
InfoQ:在整个发展过程当中,有没有让您觉得如履薄冰的时候?
潘:这个肯定有,印象最深的一件事情发生在早期,那时经常需要半夜起来做一些维护。阿里对外承诺7×24小时提供服务,维护过网站的朋友都知道,这就意味着我们要在很短的时间内,及时解决线上问题,而线上问题往往是稀奇古怪的,往往晚上一接到电话,大家神经就高度紧张,紧急成立一些团队,然后投入到紧张的处理故障过程当中。我觉得应该有无数个不眠之夜,让我印象非常深。
但这是很久以前的事了,最近还有一件事情,就是最近的那次重构。我们那次重构前后历时有六个月,把阿里积累了五六年的代码和数据都重新梳理了一遍,因为时间比较紧,过程当中出了很多的问题,也有很大的困难。当时的项目组,几乎就是整个国际站技术部,整整做了大半年。每个人都加班加点,基本没有休息日,一直到发布完成之后,我们还紧张了好几个礼拜,我觉得那件事情对我来说是印象最深得一件事情。
InfoQ:您刚才说国际站经过了一次大的重构,刚刚上线,那能不能从技术的角度,给大家讲一讲国际站现在的架构?
潘:我觉得阿里系的这些网站的架构,基本都还是比较类似的,除了支付宝,它的后台是一个支付平台,可能会有点差异。其他网站的架构基本上都会是基于数据库+搜索引擎+存储,当然也会有一些Cache,一些集中式或者分布式的Cache系统,这样的一个解决方案。我们基本的做法是实现系统的小型化,以及系统的分离,经常让读系统依附于一些可线性扩展的Cache系统,或者KV Store这样的系统,而把写系统集中在Oracle或者MySQL这样的数据库上。
InfoQ:讲到数据库,在国际站现在的规模下,数据量应该是不断成指数级地往上增长,在这方面,国际站会对数据库的容量有一定的规划,您在这方面是怎么做的呢?
潘:其实就数据库来说,我觉得业界的发展方向是比较明确的,首先是拆分的问题,拆分其实分成水平和垂直拆分。其实在这之前,我们做的最重要的一件事情是提供更多、更丰富的持久化解决方案。除了数据库,我们会把一些并不是非常关系型的数据,都迁移到一些KV Store,或者说迁移到一些其他的持久化解决方案上。
在这之外,对于数据库这块,阿里过去一直比较依赖于Oracle,甚至比较依赖Oracle的Rack解决方案,我们将来的目标是,首先让数据库变得更简单,因为我们会有自己的数据库分布式解决方案,以及Cluster解决方案。首先要做到,让数据库,让我们的应用对数据库的类型不再敏感,也就意味着我们可能并不一定继续依附于Oracle。对我们来说,只要是一个标准的关系型数据库我们都可以使用,MySQL、Oracle都没有问题,甚至是其他的一些开源的数据库。
在这个基础上,我们还要解决一个数据容量的问题,数据拆分是一个必然的解决方案,我们的方案通常是水平和垂直拆分结合使用。目前,所谓水平就是把数据按照用户的围度进行一个水平的拆分。所谓垂直是把数据按照一些业务进行独立的部署。通过这种方式,我们基本可以把数据的规模控制在一个比较稳定的范围内,甚至可以实现线性扩展。